当前位置:首页 > 代码 > 正文

管理系统1.0版源代码(源码版本管理工具)

admin 发布:2022-12-19 17:47 162


今天给各位分享管理系统1.0版源代码的知识,其中也会对源码版本管理工具进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

求C语言学生档案管理界面的源代码

# includeiostream.h

# includestring.h

# includestdio.h

# includestdlib.h

# includefstream.h

//*****定义一个学生原子的的数据结构*****//

struct stuatom

{

char *name;

int id;

char sex;

float math, eng, comp, totll, aver;

void show();

void setup();

};

//*********定义一系列对学生的操作**********//

class student

{

private:

stuatom ob[100];

int stulen;

public:

student();

void input();

void order();

void save();

void Query();

void read();

void add();

void del();

};

//********对学生数据的初始化(类的构造函数)**********//

student::student()

{

//用for循环对全部数组中的数据初始化

for(int i=0;i100;i++)

{

ob[i].math=ob[i].eng=ob[i].comp =ob[i].totll =ob[i].aver =0;

ob[i].id =0;

ob[i].sex =' ';

ob[i].name =NULL;

}

this-stulen =0;

}

//********输入学生的数据,并判断是否在规定数据域内*******//

void stuatom::setup()

{

char n[20]; char s;

int b;

//如果输入学好在数据域内,跳出循环并且赋值。

//如果不再数据域内,一直循环到输入数据符合数据域为止

do {

cout" 学号: ";

cinb;

if(b1020||b1001)

cout"Bad data input!!"endlendl;

}while (b1001||b1020);

id=b;

//如果输入学好在数据域内,跳出循环并且赋值。

//如果不再数据域内,一直循环到输入数据符合数据域为止

do{

name=new char[strlen(n)+1];

cout" 姓名: ";

cinn;

if( strlen(n)6 || strlen(n)4 )

cout"Bad data input!!"endlendl;

}while ( strlen(n)6 strlen(n)4 );

strcpy(name,n);

cout" 性别(m/f):" ;

cins;

//如果输入学好在数据域内,跳出循环并且赋值。

//如果不再数据域内,一直循环到输入数据符合数据域为止

while (s!='m' s!='f')

{

cout"Bad data input!!"endlendl;

cout" 性别(m/f):";

cins;

}

sex=s;

float m, e, co;

cout" 数学: ";

cinm;

//如果输入学好在数据域内,跳出循环并且赋值。

//如果不再数据域内,一直循环到输入数据符合数据域为止

while (m0 || m100)

{

cout"Bad data input!!"endlendl;

cout" 数学: ";

cinm;

}

math=m;

cout" 英语: ";

cine;

//如果输入学好在数据域内,跳出循环并且赋值。

//如果不再数据域内,一直循环到输入数据符合数据域为止

while (e0 || e100)

{

cout"Bad data input!!"endlendl;

cout" 英语: ";

cine;

}

eng=e;

cout" 计算机: ";

cinco;

//如果输入学好在数据域内,跳出循环并且赋值。

//如果不再数据域内,一直循环到输入数据符合数据域为止

while (co0 || co100)

{

cout"Bad data input!!"endlendl;

cout" 计算机: ";

cinco;

}

comp=co;

totll=math+eng+comp;

aver=(math+eng+comp)/3;

}

//*******按照规定格式把该学生的数据显示在屏幕上******//

void stuatom::show()

{

cout.setf(ios::left);

cout.width(6);

cout""id" ";

cout.width(8);

coutname;

cout.width(10);

coutsex;

cout.width(9);

coutmath;

cout.width(9);

couteng;

cout.width(11);

coutcomp;

cout.width(10);

couttotllaverendl;

}

//**************输入学生的数据***********************//

void student::input()

{

int n;

coutendl"输入将要录入的学生数目: ";

cinn;

int j;

//通过循环输入要求输入学生个数的学生的数据。

for(j=0; jn; j++)

{

cout" 输入学生信息 "jendl;

ob[j].setup();

}

this-stulen=n; //学生个数赋值

//学生数据显示格式

system("cls");

coutendl"----------------------------- 学生信息表 ------------------------------------"endl;

coutendl" 学号 姓名 性别 数学 英语 计算机 总分 平均分"endl;

//通过循环输出所有学生数据。

for(j=0; jn; j++)

{

ob[j].show();

}

coutendl;

cout" 是否保存? (Y/N): ";

char Y;

cinY;

system("cls");

}

//**************按照一定格式显示所要查询学生的信息。**************//

void student::Query()

{

int x , i;

coutendl" 输入要查询学生的学号: ";

cinx;

coutendl" 学号 姓名 性别 数学 英语 计算机 总分 平均分"endl;

for(i=0;i=this-stulen ;i++)

{ if (x==ob[i].id)

{

cout.setf(ios::left);

cout.width(6);

cout""ob[i].id" ";

cout.width(8);

coutob[i].name;

cout.width(10);

coutob[i].sex;

cout.width(9);

coutob[i].math;

cout.width(9);

coutob[i].eng;

cout.width(11);

coutob[i].comp;

cout.width(10);

coutob[i].totllob[i].averendl;

}

}

getchar();

}

//*******************保存学生数据**************************//

void student::save()

{

int i;

ofstream outfile;

outfile.open("list.txt",ios::trunc);

if(!outfile)

{

cout"Cannot open output file!\n,";

}

//通过循环把所有的学生数据保存在list.txt里边。

for(i=0; ithis-stulen; i++)

{

outfileob[i].id" "ob[i].name" "ob[i].sex" "

ob[i].math" "ob[i].eng" "ob[i].comp" "ob[i].totll" "ob[i].averendl;

}

outfile.close();

}

//*************显示所有学生数据*********************//

void student::read()

{

int i;

system("cls");

coutendl"----------------------------- 学生信息表 ------------------------------------"endl;

coutendl" 学号 姓名 性别 数学 英语 计算机 总分 平均分"endl;

for(i=0; ithis-stulen; i++)

{

ob[i].show();

}

getchar();

}

//*******************一个学生的数据****************//

void student::add()

{

int i, d=this-stulen ;

cout"输入要添加学生的信息:"endl;

ob[d].setup();

coutendl"----------------------------- 学生信息表 ------------------------------------"endl;

coutendl" 学号 姓名 性别 数学 英语 计算机 总分 平均分"endl;

for(i=0; i=d; i++)

{

ob[i].show();

}

ofstream fout("list.txt",ios::app);

if(!fout)

{

cout"Cannot open output file!\n,";

}

//把添加的学生数据添加到list.txt里边去。

foutob[d].id" "ob[d].name" "ob[d].sex" "

ob[d].math" "ob[d].eng" "ob[d].comp" "ob[d].totll" "ob[d].averendl;

fout.close();

getchar();

}

//*********************删除指定名字学生的数据*******************//

void student::del()

{

int i,p; char x[8];

cout" 输入要删除学生名字:"endl;

cinx;

//通过for循环查找要删除学生的姓名

for(i=0; istulen; i++)

{

if(strcmp(ob[i].name,x)==0)

{

p=i;

coutendl"学号 姓名 性别 数学 英语 计算机 总成绩 平均成绩"endl;

coutob[i].id" "ob[i].name" "ob[i].sex" "ob[i].math" "ob[i].eng" "ob[i].comp" "ob[i].totll" "ob[i].averendl;

break;

}

else

continue;

}

coutendl"----------------------------- 学生信息表 ------------------------------------"endl;

coutendl" 学号 姓名 性别 数学 英语 计算机 总分 平均分"endl;

//删除了之后,应该把后面的数据往前移,把要删除的数据覆盖,并且学生长度减1

stulen--;

for(i;istulen;i++)

{

ob[i]=ob[i+1];

}

this-read ();

cout" 删除成功!"endl;

getchar();

}

//***********把学生成绩排序******************//

void student::order()

{

int k,j;

float t; char n[20];

//排序算法。

for(j = 0; j=(2-1); j++)

{

for(k=1; k=(2-j); k++)

{

if(ob[k].totll ob[k + 1].totll)

{

t = ob[k].totll;

ob[k].totll = ob[k+1].totll;

ob[k+1].totll = t;

strcpy(n, ob[k].name);

strcpy(ob[k].name, ob[k+1].name);

strcpy(ob[k+1].name, n);

}

cout" 成绩排名:"endl;

cout" 姓名 总成绩 名次"endl;

for(k=0; k=stulen; k++)

{

cout" ";

cout.setf(ios::left);

cout.width(9);

coutob[k].name;

cout.width(9);

coutob[k].totllkendl;

}

getchar();

}

}

}

//********************选择菜单。*****************//

void menu()

{

cout"\n\n";

cout"------------------ 学生成绩系统 -----------------"endlendl;

cout"\t\t1.录入与保存学生信息.\n";

cout"\t\t2.读取学生信息.\n";

cout"\t\t3.删除学生信息.\n";

cout"\t\t4.追加学生信息.\n";

cout"\t\t5.查询学生信息.\n";

cout"\t\t6.显示成绩名次.\n";

cout"\t\t7.退出系统......\n\n\n";

cout"\t\t请选择功能项: ";

}

//---------------------------------------------------------------------------------------

void main()

{

student a;

while(1)

{

int SEL;

system("cls");

menu();

cinSEL;

switch(SEL)

{

case 1:

system("cls"); a.input();a.save();break;

case 2:

system("cls"); a.read(); break;

case 3:

system("cls"); a.del(); break;

case 4:

system("cls"); a.add();break;

case 5:

system("cls"); a.Query();break;

case 6:

system("cls"); a.order();break;

case 7:

coutendl" 按任意键退出.... "endl;

getchar();

exit(0);

default:

cout"Bad input!!\n";

break;

}

}

} 我比较忙,没有亲自帮你写,你自己改改吧,框架出来了。

急用,C++学生成绩管理系统源代码,感谢

/*#includestdio.h

#includestdlib.h

#includestring.h

//函数的声明,扩展作用域

//能够储存的成绩个数

#define SIZE 10

//菜单函数

void ment(void);

//添加成绩函数

void chengji(int p[]);

//输出所有成绩函数

void sccj(int p[]);

//选择函数

int chse(int num);

//删除成绩函数

void dloe(int p[]);

//修改成绩

void cger(int p[]);

//查询成绩函数

void scere(int p[]);

//求平均分函数

void aser(int p[]);

//求最高分函数

void mascer(int p[]);

//求最低分函数

void miscer(int p[]);

int len=0;

int name[24];

int p[10];

int main(void)

{

//定义相关变量

//选择菜单的序号

int sent = 0;

//存放结果

int rese = 0;

char name[15];

int i=0;

for(i=0;i4;i++)

{

printf("\n请输入您的名字:");

scanf("%s",name);

if(strcmp(name,"张浪浪")==0)

{

printf("欢迎使用成绩管理系统!\n");

break;

}

else

{

printf("输出错误!!\n");

printf("请重新输入!!\n");

printf("你只有三次机会,当前为%d次\n",i+1);

if(i+1==3)

{

printf("\n账号已锁定!!\n");

return 0;

}

}

}

while(1)

{

ment();//调用菜单函数

printf("\n====请输入您选择的序号:");

scanf("%d",sent);

while(sent0 || sent8)

{

printf("\n输入错误!请输入0-8!\n");

scanf("%d",sent);

}

//调用选择函数

rese = chse(sent);

if(rese == -1) break;

}

system("pause");

return 0;

}

//菜单函数

void ment(void)

{

printf("\n=====成绩管理系统=====\n");

printf("======1:添加成绩======\n");

printf("======2:删除成绩======\n");

printf("======3:修改成绩======\n");

printf("======4:查询成绩======\n");

printf("======5:求平均分======\n");

printf("======6:求最高分======\n");

printf("======7:求最低分======\n");

printf("====8:输出所有成绩====\n");

printf("====0:退出管理系统====\n");

}

//选择函数

int chse(int num)

{

//定义相关变量

int sun = 0;//存放返回值

//利用开关函数实现函数的调用

switch(num)

{

//添加成绩

case 1:

chengji(p);

break;

//删除成绩

case 2:

dloe(p);

break;

//修改成绩

case 3:

cger(p);

break;

//查询成绩

case 4:

scere(p);

break;

//求平均分

case 5:

aser(p);

break;

//求最高分

case 6:

mascer(p);

break;

//求最低分

case 7:

miscer(p);

break;

//输出所有成绩

case 8:

sccj(p);

break;

//退出程序

case 0:

sun= -1;

break;

}

return sun;

}

//添加成绩函数

void chengji(int p[])

{

//判断是否已存满

if (len == SIZE)

{

printf("容量已满,添加失败!\n");

//退出函数,中断函数执行

return ;

}

else

{

printf("请输入要添加的成绩");

//把最新的数据存放在最后一个元素那里

scanf("%d",p[len]);

//len++;成绩个数+1

len++;

printf("成绩添加成功!\n");

}

}

//输出所有成绩函数

void sccj(int p[])

{

int i = 0;

if(len == 0)

printf("当前没有任何成绩!\n");

else

{

printf("所有成绩为:");

//对当前所有成绩进行遍历输出

for(i = 0 ; i len ; i++)

{

printf("%d",p[i]);

}

printf("\n");

}

}

//删除成绩函数

void dloe(int p[])

{

int i=0;

int idx=0;

printf("请输入同学要删除成绩的序号(第一个序号为0);");

scanf("%d",idx);

if(idx0||idxlen-1||len==0)

{

printf("找不到需要删除的成绩序号\n");

//退出函数

return;

}

//从需要删除的元素开始,后面一个元素的数据依次增加

for(i=idx;ilen-1;i++)

{

p[i]=p[i+1];

}

p[i]=0;

len=len-1;

printf("成绩删除成功\n");

}

//修改成绩函数

void cger(int p[])

{

int value=0;

int index=0;

printf("请输入要修改成绩的序号(第-一个序号为0);");

scanf("%d",index) ;

if (index0||indexlen-1l||len==0)

{

printf("找不到需要修改的成绩序号!\n");

return;

}

printf("请输入修改后的成绩:");

scanf("%d",value);

//修改成绩

p[index]=value;

printf ("成绩修改成功!\n");

}

//查询成绩函数

void scere(int p[])

{

int index=0;

printf("请输入要查询成绩的序号(第一个序号为0);");

scanf("%d",index);

if(index0|| indexlen-1||len==0)

{

printf("找不到需要查询的成绩序号!\n");

return;

}

printf("要查询的成绩为:%d分\n",p[index]);

}

//求平均分函数

void aser(int p[])

{

double avg = 0;//定义一个变量来存储平均值

int i =0,j=0;

if(len == 0)

{

printf("%s同学当前还没添加成绩!!!\n",name);

}

else

{

for(i=0;ilen;i++)

{

avg+=p[j++]/(len*1.0);

}

printf("%s同学当前成绩的平均分为:%.2f\n",name,avg);

}

}

//求最高分函数

void mascer(int p[])

{

int max = 0;

int i = 0,j = 0;

if(len == 0)

{

printf("%s同学当前还没添加成绩!!!\n",name);

}

else

{

for(i=0;ilen;i++)

{

if(p[j++] max)

max = p[j-1];

}

printf("%s同学当前成绩的最高分为:%d\n",name,max);

}

}

//求最低分函数

void miscer(int p[])

{

int min = p[0];

int i = 0,j = 0;

if(len == 0)

{

printf("%s同学当前还没添加成绩!!!\n",name);

}

else

{

for(i=0;ilen;i++)

{

if(p[j++] min)

min = p[j-1];

}

printf("%s同学当前成绩的最低分为:%d\n",name,min);

}

}

*/

/*#includestdio.h

#includestdlib.h

#define SIZE 10

int len = 0;

void addscore(int p[])

{

int index;

int i = 0;

int score = 0;

printf("请输入需要添加的位置(当前已有%d个数,第一个位置为0):",len);

scanf("%d",index);

printf("请输入添加的数据:");

scanf("%d",score);

for(i=len;iindex;i--)

{

p[i]=p[i-1];

}

p[index]=score;

len++;

}

int main(void)

{

int arr[SIZE] = {10,20,30,40};

int i = 0;

len = 4;

addscore(arr);

printf("当前数组中的数为:");

for(;ilen;)

{

printf("%d\t",arr[i++]);

}

printf("\n");

system("pause");

}

*/

/*

int j =0 ;//统计素数的个数

void fun(int *a)

{

int i = 0;

int z = 0;

for(i=2;i=100;i++)

{

for(z=2;z=i;z++)

{

if(i%z == 0)

break;

}

if(i=z)

{

*(a+j)=i;

j++;

}

}

}

int main(void)

{

int arr[100];//存放素数

int i = 0;

fun(arr);

printf("arr数组中共有%d个素数,分别是:",j);

for(;ij;i++)

{

printf("%d\t",*(arr+i));

}

printf("\n");

return 0;

}

/*

int max = 0;

int min = 0;

int fun(int *a)

{

int i = 0;

int j = 0;

max = *a;

min = *a;

for(i=0,j=0;i10;i++)

{

if(max*(a+j++))

max = *(a+j-1);

}

for(i=0,j=0;i10;i++)

{

if(min*(a+j++))

min = *(a+j-1);

}

}

int main(void)

{

int arr[10] = {10,20,30,40,50,60,70,80,90,100};

fun(arr);

printf("最大值为:%d\n最小值为:%d\n",max,min);

return 0;

}

*/

用C++编写图书管理系统(源代码)

这个由于你给的分太少,估计每人会给你做的。

我给你一个做参照吧,基本功能都已经实现了,并且在VC6上已经编译运行确认:

#include iostream

#include iomanip

#include string

#include fstream//输入/输出文件流类

using namespace std;

const int Maxr=100;//最多的读者

const int Maxb=100;//最多的图书

const int Maxbor=5;//每位读者最多借五本书

//读者类,实现对读者的信息的描述

class Reader

{

private:

int tag; //删除标记 1:已删 0:未删

int no; //读者编号

char name[10]; //读者姓名

int borbook[Maxbor];//所借图书

public:

Reader() {}

char *getname() {return name;} //获取姓名

int gettag() {return tag;} //获取删除标记

int getno() {return no;} //获取读者编号

void setname(char na[]) //设置姓名

{

strcpy(name,na);

}

void delbook(){ tag=1; }//设置删除标记 1:已删 0:未删

void addreader(int n,char *na)//增加读者

{

tag=0;

no=n;

strcpy(name,na);

for(int i=0;iMaxbor;i++)

borbook[i]=0;

}

void borrowbook(int bookid)//借书操作

{

for(int i=0;iMaxbor;i++)

{

if (borbook[i]==0)

{

borbook[i]=bookid;

return;

}

}

}

int retbook(int bookid)//还书操作

{

for(int i=0;iMaxbor;i++)

{

if(borbook[i]==bookid)

{

borbook[i]=0;

return 1;

}

}

return 0;

}

void disp()//读出读者信息

{

cout setw(5) no setw(10) name"借书编号:[";

for(int i=0;iMaxbor;i++)

if(borbook[i]!=0)

cout borbook[i] "|";

cout "]"endl;

}

};

//读者类库,实现建立读者的个人资料

class RDatabase

{

private:

int top; //读者记录指针

Reader read[Maxr];//读者记录

public:

RDatabase() //构造函数,将reader.txt读到read[]中

{

Reader s;

top=-1;

fstream file("reader.txt",ios::in);//打开一个输入文件

while (1)

{

file.read((char *)s,sizeof(s));

if (!file)break;

top++;

read[top]=s;

}

file.close(); //关闭 reader.txt

}

void clear()//删除所有读者信息

{

top=-1;

}

int addreader(int n,char *na)//添加读者时先查找是否存在

{

Reader *p=query(n);

if (p==NULL)

{

top++;

read[top].addreader(n,na);

return 1;

}

return 0;

}

Reader *query(int readerid)//按编号查找

{

for (int i=0;i=top;i++)

if (read[i].getno()==readerid

read[i].gettag()==0)

{

return read[i];

}

return NULL;

}

void disp() //输出所有读者信息

{

for (int i=0;i=top;i++)

read[i].disp();

}

void readerdata();//读者库维护

~RDatabase() //析构函数,将read[]写到reader.txt文件中

{

fstream file("reader.txt",ios::out);

for (int i=0;i=top;i++)

if (read[i].gettag()==0)

file.write((char *)read[i],sizeof(read[i]));

file.close();

}

};

void RDatabase::readerdata()

{

char choice;

char rname[20];

int readerid;

Reader *r;

while (choice!='0')

{

cout "\n\n\t\t\t读 者 维 护\n\n\n\t\t 1 新 增\n\n\t\t 2 更 改\n\n\t\t 3 删 除\n\n\t\t 4 查 找\n\n\t\t 5 显 示\n\n\t\t 6 全 删\n\n\t\t 0 退 出"endl;

cin choice;

switch (choice)

{

case '1':

cout "输入读者编号:";

cin readerid;

cout "输入读者姓名:";

cin rname;

addreader (readerid,rname);

break;

case '2':

cout "输入读者编号:";

cin readerid;

r=query(readerid);

if (r==NULL)

{

cout " 该读者不存在 "endl;

break;

}

cout "输入新的姓名:";

cin rname;

r-setname(rname);

break;

case '3':

cout " 输入读者编号:";

cin readerid;

r=query(readerid);

if (r==NULL)

{

cout " 该读者不存在" endl;

break;

}

r-delbook();

break;

case '4':

cout "读入读者编号:";

cin readerid;

r=query(readerid);

if (r==NULL)

{

cout "该读者不存在" endl;

break;

}

r-disp();

break;

case '5':

disp();

break;

case '6':

clear();

break;

default:cout"输入错误,请从新输入:";break;

}

}

}

//图书类,实现对图书的描述,图书的编号,书名,借出,还入等

class Book

{

private:

int tag;//删除标记 1:已删 0:未删

int no;//图书编号

char name[20];//书名

int onshelf;//是否再架 1:再架 2:已借

public:

Book(){}

char *getname() { return name; }//获取姓名

int getno(){ return no; }//获取图书编号

int gettag(){ return tag; }//获取删除标记

void setname(char na[])//设置书名

{

strcpy(name,na);

}

void delbook(){ tag=1;}//删除图书

void addbook(int n,char *na)//增加图书

{

tag=0;

no=n;

strcpy(name,na);

onshelf=1;

}

int borrowbook()//借书操作

{

if (onshelf==1)

{

onshelf=0;

return 1;

}

return 0;

}

void retbook()//还书操作

{

onshelf=1;

}

void disp()//输出图书

{

cout setw(6) no setw(18) name setw(10)

(onshelf==1? "在架":"已借") endl;

}

};

//图书库类,实现对图书的维护,查找,删除等

class BDatabase

{

private:

int top; //图书记录指针

Book book[Maxb]; //图书记录

public:

BDatabase()//构造函数,将book.txt读到book[]中

{

Book b;

top=-1;

fstream file("book.txt",ios::in);

while (1)

{

file.read((char *)b,sizeof(b));

if (!file) break;

top++;

book[top]=b;

}

file.close();

}

void clear()//全删

{

top=-1;

}

int addbook(int n,char *na)//增加图书

{

Book *p=query(n);

if (NULL==p)

{

top++;

book[top].addbook(n,na);

return 1;

}

return 0;

}

Book *query(int bookid)//查找图书

{

for (int i=0;i=top;i++)

if (book[i].getno()==bookid book[i].gettag()==0)

{

return book[i];

}

return NULL;

}

void bookdata();//图书库维护

void disp()

{

for (int i=0;i=top;i++)

if (book[i].gettag()==0)

book[i].disp();

}

~BDatabase()//析构函数,将book[]写到book.txt文件中

{

fstream file("book.txt",ios::out);

for (int i=0;i=top;i++)

if (book[i].gettag()==0)

file.write((char *)book[i],sizeof(book[i]));

file.close();

}

};

void BDatabase::bookdata()

{

char choice;

char bname[40];

int bookid;

Book *b;

while (choice!='0')

{

cout "\n\n\n\t\t\t图 书 维 护 "endlendl;

cout"\t\t1 新 增\n \t\t2 更 改\n\t\t3 删 除\n\t\t4 查 找\n\t\t5 显 示\n\t\t6 全 删\n\t\t0 退 出"endl;

cin choice;

switch (choice)

{

case '1':

cout "输入图书编号:"endl;

cin bookid;

cout "输入图书书名:"endl;

cin bname;

addbook(bookid,bname);

break;

case '2':

cout "输入图书编号:"endl;

cin bookid;

b=query(bookid);

if (b==NULL)

{

cout " 该图书不存在 "endl;

break;

}

cout "输入新的书名:"endl;

cin bname;

b-setname(bname);

break;

case '3':

cout " 读入图书编号:"endl;

cin bookid;

b=query(bookid);

if (b==NULL)

{

cout " 该图书不存在" endl;

break;

}

b-delbook();

break;

case '4':

cout " 读入图书编号:"endl;

cin bookid;

b=query(bookid);

if (b==NULL)

{

cout " 该图书不存在" endl;

break;

}

b-disp();

break;

case '5':

disp();

break;

case '6':

clear();

break;

default:cout"输入错误,请从新输入:";

}

}

}

//main() 函数的实现,程序的主界面的引导

void main()

{

char choice;

int bookid,readerid;

RDatabase ReaderDB;

Reader *r;

BDatabase BookDB;

Book *b;

while(choice!='0')

{

cout endlendl"\t\t\t 图 书 管 理 系 统\n\n\n";

cout "\t\t\t1 借 书\n\n\t\t\t2 还 书 \n\n\t\t\t3 图 书 维 护\n\n\t\t\t4 读 者 维 护\n\n\t\t\t0 离 开"endl;

cin choice;

switch (choice)

{

case '1':

cout " 借书 读者编号:";

cin readerid;

cout " 图书编号: ";

cin bookid;

r=ReaderDB.query(readerid);//按编号查找

if (NULL==r)

{

cout " 不存在该读者,不能借书" endl;

break;

}

b=BookDB.query(bookid);

if (b==NULL)

{

cout " 不存在该图书,不能借书" endl;

break;

}

if (b-borrowbook()==0)

{

cout " 该图书已借出,不能借书" endl;

break;

}

r-borrowbook(b-getno());

break;

case '2':

cout"还书\n 读者编号:";

cin readerid;

cout " 图书编号:";

cin bookid;

r=ReaderDB.query(readerid);

if (r==NULL)

{

cout " 不存在该读者,不能还书" endl;

break;

}

b=BookDB.query(bookid);

if (b==NULL)

{

cout " 不存在该图书,不能还书" endl;

break;

}

b-retbook();

r-retbook(b-getno());

break;

case '3':

BookDB.bookdata();

break;

case '4':

ReaderDB.readerdata();

break;

default:cout"输入错误,请从新输入:";

}

}

}

学生基本信息管理系统C++源代码

#include iostream

#include iomanip

#include string

using namespace std;

typedef struct student {

unsigned m_id;

string m_name;

unsigned m_age;

string m_sex;

string m_address;

string m_contact;

string m_dormitory;

struct student *m_next;

}student;

class CStudent {

private :

student *head;

public :

CStudent() {

head = new student;

head-m_id = 0;

head-m_name = "noname";

head-m_next = NULL;

}

~CStudent() {

student *p = head,*q;

while(p) {

q = p;

p = q-m_next;

delete q;

}

}

student readdata(int model); // model = 1:不读取学号,2:不读取姓名,其他,读取所有信息

void entering();

bool insert(const student astu);

student *findid(unsigned id) const;

student *findname(const string name) const;

student *findsex(const string sex) const;

student *finddormitory(const string dormitory) const;

unsigned boys() const;

unsigned girls() const;

unsigned headcount() const;

bool eraseid();

bool erasename();

bool modifyid();

bool modifyname();

void Show() const;

void query() const;

void friend statistics(const CStudent aclss);

void friend erase(CStudent aclss);

void friend modify(CStudent aclss);

};

string readstring() {

string str;

while(cin.get() != '\n');

cin  str;

return str;

}

student CStudent::readdata(int model) {

student tmp;

if(model != 1) { cout  "学    号: "; cin  tmp.m_id; }

if(model != 2) { cout  "姓    名: "; tmp.m_name = readstring(); }

cin  tmp.m_age;

cout  "性    别: ";

tmp.m_sex = readstring();

cout  "住    址: ";

tmp.m_address = readstring();

cout  "联系方式: ";

tmp.m_contact  =readstring();

cout  "寝    室: ";

tmp.m_dormitory = readstring();

return tmp;

}

void CStudent::entering() {

student tmp;

cout  "学号(0 to return): ";

cin  tmp.m_id;

while(tmp.m_id) {

if(findid(tmp.m_id) == NULL) {

cout  "姓    名: ";

tmp.m_name = readstring();

cout  "年    龄: ";

cin  tmp.m_age;

cout  "性    别: ";

tmp.m_sex = readstring();

cout  "住    址: ";

tmp.m_address = readstring();

cout  "联系方式: ";

tmp.m_contact = readstring();

cout  "寝    室: ";

tmp.m_dormitory = readstring();

insert(tmp);

}

else cout  "重复的学号:"  tmp.m_id  endl;

cout  "学号(0 to return): ";

cin  tmp.m_id;

}

}

student *CStudent::findid(unsigned id) const {

student *p;

for(p = head; p-m_next; p = p-m_next)

if(p-m_next-m_id == id) return p;

return NULL;

}

student *CStudent::findname(const string name) const {

student *p;

for(p = head; p-m_next; p = p-m_next)

if(p-m_next-m_name == name) return p;

return NULL;

}

student *CStudent::findsex(const string sex) const {

student *p;

for(p = head; p-m_next; p = p-m_next)

if(p-m_next-m_sex == sex) return p;

return NULL;

}

student *CStudent::finddormitory(const string dormitory) const {

student *p;

for(p = head; p-m_next; p = p-m_next)

if(p-m_next-m_dormitory == dormitory) return p;

return NULL;

}

bool CStudent::insert(const student astu) {

student *newnode,*p = head;

if(p-m_next == NULL) {

p-m_next = new student(astu);

p-m_next-m_next = NULL;

return true;

}

while(p-m_next) {

if(p-m_next-m_id == astu.m_id) {

cout  "重复的学号,插入失败!\n";

return false;

}

if(p-m_next-m_id  astu.m_id) {

newnode = new student(astu);

newnode-m_next = p-m_next;

p-m_next = newnode;

return true;

}

p = p-m_next;

}

p-m_next = new student(astu);

p-m_next-m_next = NULL;

return true;

}

unsigned  CStudent::boys() const {

unsigned cnt = 0;

student *p;

for(p = head-m_next; p; p = p-m_next)

if(p-m_sex == "男") ++cnt;

return cnt;

}

unsigned CStudent::girls() const {

unsigned cnt = 0;

student *p;

for(p = head-m_next; p; p = p-m_next)

if(p-m_sex == "女") ++cnt;

return cnt;

}

unsigned CStudent::headcount() const {

unsigned cnt = 0;

student *p;

for(p = head-m_next; p; p = p-m_next,++cnt);

return cnt;

}

bool CStudent::eraseid() {

student *q,*p;

unsigned id;

cout  "输入要删除的学号:";

cin  id;

p = findid(id);

if(p == NULL) {

cout  "没有找到学号是\""  id  "\"的学生,删除失败!\n";

return false;

}

q = p-m_next;

p-m_next = q-m_next;

delete q;

return true;

}

bool CStudent::erasename() {

student *q,*p;

string name;

cout  "输入要删除人的姓名:";

name = readstring();

p = findname(name);

if(p == NULL) {

cout  "没有找到姓名是\""  name  "\"的学生,删除失败!\n";

return false;

}

q = p-m_next;

p-m_next = q-m_next;

delete q;

return true;

}

bool CStudent::modifyid() {

student tmp,*p;

unsigned id;

cout  "输入要修改的学号:";

cin  id;

p = findid(id);

if(p == NULL) {

cout  "没有找到学号是\""  id  "\"的学生,修改失败!\n";

return false;

}

tmp = readdata(1);

tmp.m_id = id;

*p = tmp;

return true;

}

bool CStudent::modifyname() {

student *p,tmp;

string name;

cout  "输入要修改人的姓名:";

name = readstring();

p = findname(name);

if(p == NULL) {

cout  "没有找到姓名是\""  name  "\"的学生,修改失败!\n";

return false;

}

tmp = readdata(2);

tmp.m_name = name;

*p = tmp;

return true;

}

int menu() {

int choice;

do {

system("cls");

cout  "\t****************************\n";

cout  "\t*   学生基本信息管理系统   *\n";

cout  "\t*==========================*\n";

cout  "\t*    1、录入学生信息       *\n";

cout  "\t*    2、显示学生信息       *\n";

cout  "\t*    3、查询学生信息       *\n";

cout  "\t*    4、添加学生信息       *\n";

cout  "\t*    5、统计学生信息       *\n";

cout  "\t*    6、删除学生信息       *\n";

cout  "\t*    7、修改学生信息       *\n";

cout  "\t*    0、退出管理系统       *\n";

cout  "\t****************************\n";

cout  "\n\t请选择:";

cin  choice;

}while(choice  0 || choice  7);

return choice;

}

void show(student *p) {

cout  p-m_id  " "  p-m_name  " "  p-m_age  " ";

cout  p-m_sex  " "  p-m_address  " ";

cout  p-m_contact  " "  p-m_dormitory  endl;

}

void CStudent::Show() const {

student *p;

cout  "----------------------------------------------------------\n";

for(p = head-m_next; p; p = p-m_next) show(p);

cout  "----------------------------------------------------------\n";

system("pause");

}

void CStudent::query() const {

int select;

unsigned id;

string name;

student *p;

cout  "1、按学号查询\n2、按姓名查询\n0、返回\n";

cin  select;

switch(select) {

case 1 : cout  "请输入学号:"; cin  id;

if(p = findid(id)) show(p-m_next);

break;

case 2 : cout  "请输入姓名:"; name = readstring();

if(p = findname(name)) show(p-m_next);

break;

case 0 : return;

default : cout  "选择错误。\n";

}

system("pause");

}

void statistics(const CStudent a) {

unsigned total = a.headcount();

unsigned boys = a.boys();

unsigned girls = a.girls();

cout  "学生总数:"  total  "人。\n";

cout  "其中,男生:"  boys  "名。";

cout  "女生:"  girls  "名。\n";

system("pause");

}

void erase(CStudent a) {

int select;

unsigned id;

string name;

student *p,*q;

cout  "1、按学号删除\n2、按姓名删除\n0、返回\n";

cin  select;

switch(select) {

case 1 : cout  "请输入学号:"; cin  id;

if(p = a.findid(id)) {

q = p-m_next;

p-m_next = q-m_next;

delete q;

cout  "成功删除 "  id  " 的信息。\n";

}

break;

case 2 : cout  "请输入姓名:"; name = readstring();

if(p = a.findname(name)) {

q = p-m_next;

p-m_next = q-m_next;

delete q;

cout  "成功删除 "  name  " 的信息。\n";

}

break;

case 0 : return;

default : cout  "选择错误。\n";

}

system("pause");

}

void modify(CStudent a) {

int select;

cout  "1、按学号修改\n2、按姓名修改\n0、返回\n";

cin  select;

switch(select) {

case 1 : if(a.modifyid()) cout  "修改成功。\n"; break;

case 2 : if(a.modifyname()) cout  "修改成功。\n"; break;

case 0 : return;

default : cout  "选择错误。\n";

}

system("pause");

}

int main() {

CStudent a;

int an;

do {

an = menu();

switch(an) {

case 1 : a.entering(); break;

case 2 : a.Show(); break;

case 3 : a.query(); break;

case 4 : a.entering(); break;

case 5 : statistics(a); break;

case 6 : erase(a); break;

case 7 : modify(a); break;

case 0 : break;

default : cout  "选择错误。\n"; break;

}

}while(an);

return 0;

}

关于管理系统1.0版源代码和源码版本管理工具的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/16032.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载