#include #include #include#include#includeusing namespace std;int amount=0;int num=100000000; //当前最高学号ofstream *file[50];/////////////////////////////////*学生信息结构体*////////////////////////////////////////struct info{string yw;string sx;string yy;string wl;string hx;string sw;struct info *next;};/////////////////////////////////*学生数据类*////////////////////////////////////////class student{public:int id;string mun;string name;info sc3;class student *next;};/////////////////////////////////*函数声明*////////////////////////////////////////void input(student *head); //录入void search1(student *head); //姓名查询void search2(student *head); //学号查询void change(student *head); //修改void shanchu(student *head); //删除void get(student *head); //取数据void display(); //显示菜单void show(student *head); //显示数据void readin(student *head); //保存数据void chushihua(student *head); //初始化string int_char(int);/////////////////////////////////*主函数*////////////////////////////////////////void main() //主函数{system("color f0");char x;bool flag2=0;student *head=new student; //初始化学生数据head->next=NULL;cout<<" ★ 欢迎使用学生信息管理系统 ★ \n ";display(); //显示菜单do{do{cin>>x;if((x>='0'&&x<='8'))flag2=1;else{cout<<"指令错误!!!!!!!!!!"<>z;while(z!='0'&&z!='1'){cout<<"指令错误<请选择(0)或者(1)!>!!!!!!!"<>z;}switch(z){case '0': search1(head);break;//按姓名查询case '1': search2(head);break;//按学号查询}cout<<"********************************************************************************\n";display();break;}case '2': cout<<"******************************现在进行学生信息修改******************************\n";change(head);cout<<"********************************************************************************\n";display(); break; //按姓名修改case '3': cout<<"******************************现在进行学生信息删除******************************\n";shanchu(head);show(head);cout<<"********************************************************************************\n";display();break; //删除case '4': cout<<"******************************现在进行显示学生信息******************************\n";show(head);cout<<"********************************************************************************\n";display();break; //显示数据case '5':cout<<"******************************现在进行初始化学生信息****************************\n";chushihua(head);cout<<"********************************************************************************\n";display() ;break;case '6':cout<<"******************************现在进行提取学生信息******************************\n";get(head);cout<<"********************************************************************************\n";display(); break;case '7':cout<<"******************************现在进行保存学生信息******************************\n";readin(head);cout<<"********************************************************************************\n";display();break;case '8':cout<<"********************************************************************************\n";cout<<" ¤ 您已退出学生信息管理系统, 谢谢您的使用! ¤ \n";cout<<"********************************************************************************\n";cout<文件中的所有信息!!!!!!\n";cout<<"是否继续操作?(y/n):";cin>>c;if (c='y'){amount=1;file[j]=new ofstream("D:\\课设\\学生信息.txt",ios::out);}cout<<"......成功清除<学生信息.txt>的信息\n ";}/////////////////////////////////*显示学生数据*////////////////////////////////////////void show(student *head){student *stu=head;cout<<"| 学号 | 学位 | 姓名 | 学院 | 专业 | 班级 | 导师 | 论文 | 成绩|"<next!=NULL){stu=stu->next;cout<<"| "<next;cout<<"现在保存输入学生数据,是否继续操作?(y/n)";cin>>a;ofstream outfile("D:\\课设\\学生信息.txt",ios::out);if(! outfile){cout<<"打开文件错误!!!!!!!\n";exit(0);}while(a!='n'){while(stu!=NULL){ outfile<<"************************第"<next;}break;}cout<<"......成功将学生数据保存到<学生信息.txt>中! ";();}/////////////////////////////////*录入学生数据*////////////////////////////////////////void input(student *head){char c;int j=0;student *p=head;file[j]=new ofstream("D:\\课设\\学生信息.txt",ios::app);do{student *stu=new student;(*stu).id=num+1;num++;cout<<"请输入学位(本科,硕士研究生,博士研究生,第二学位等):"<>(*stu).mun;cout<<"请输入姓名:"<>(*stu).name;cout<<"请输入该生所在学院:"<>(*stu).;cout<<"请输入该生所在专业:"<>(*stu).;cout<<"请输入该生所在班级):"<>(*stu).;cout<<"请输入该生导师姓名:"<>(*stu).;cout<<"请输入该生论文标题:"<>(*stu).;cout<<"请输入该生加权成绩:"<>(*stu).;stu->next=p->next;p->next=stu;amount++;cout<<"数据录入成功,想继续录入吗(y/n)"; cin>>c;p=p->next;while(c!='y'&&c!='n'){cout<<"指令错误<请输入y/n!>!!!!!!"<>c;}}while(c=='y');j++;cout<<"输入了 "<next;bool flag=0;cout<<"请输入你要查询的学生姓名:";cin>>name;do{if(stu!=NULL&&name==(*stu).name) //输出总成绩{flag=1;cout<<"您要查询的学生是:"<name<next;}while(stu!=NULL);if(flag==0)cout<<"对不起!您要查询的学生不存在!!!!!!!"<>c;while(c!='y'&&c!='n'){cout<<"指令错误<请输入y/n!>!!!!!!!"<>c;}} while(c=='y');}/////////////////////////////////*用学号查询学生数据*////////////////////////////////////////void search2(student *head)//学号查询{char c;int no;do{student *stu=head->next;int flag=0;cout<<"请输入你要查询的学生学号:";cin>>no;do{if(stu!=NULL&&no==(*stu).id){flag=1;cout<<"您要查询的学生是:"<name<next;}while(stu!=NULL);if(flag==0)cout<<"对不起!您要查询的学生不存在!!!!!!!"<>c;while(c!='y'&&c!='n'){cout<<"指令错误<请输入y/n!>!!!!!!!"<>c;}}while(c=='y');}/////////////////////////////////*修改学生数据*////////////////////////////////////////void change(student *head){string name; char c;do{bool flag2=0;student *stu=head ;info sc3;string mu;cout<<"请输入您要修改的学生的姓名:";cin>>name;do{if(name==(*stu).name){flag2=1;cout<<"请输入新学位信息:";cin>>mu;cout<<"请输入新学院信息:";cin>>;cout<<"请输入新专业信息:";cin>>;cout<<"请输入新班级信息:";cin>>;cout<<"请输入新导师信息:";cin>>;cout<<"请输入新论文信息:";cin>>;cout<<"请输入新加权成绩信息:";cin>>;(*stu).mun=mu;(*stu).;(*stu).;(*stu).;(*stu).;(*stu).;(*stu).;cout<<"| 学号 | 学位 | 姓名 | 学院 | 专业 | 班级 | 导师 | 论文 | 成绩 |"<next;}while(stu!=NULL);if(flag2==0){cout<<"对不起!您要修改的学生不存在!请检查重新输入!!!!!!!"<>c;if(c!='y'&&c!='n'){cout<<"指令错误!请重新输入!!!!!!!";cin>>c;}}while(c=='y');}/////////////////////////////////*删除学生数据*////////////////////////////////////////void shanchu(student *head)//学号{char c;int no;do{int flag=0;cout<<"请输入你要删除的学生学号:";cin>>no;student *q,*p;q=head;while(q->next!=NULL&&q->next->id!=no)q=q->next;if(q->next!=NULL){flag=1;p=q->next;q->next=q->next->next;amount--;free(p);cout<<"......成功删除! ";}if(flag==0)cout<<"对不起!您要删除的学生不存在!!!!!!!"<>c;while(c!='y'&&c!='n'){cout<<"指令错误<请输入y/n!>!!!!!!!"<>c;}}while(c=='y');}/////////////////////////////////*提取学生数据*////////////////////////////////////////void get(student *head){student *p;p=head;int j=0;string no;cout<<"请输入您想提取的学号前7位:";cin>>no;string aa;aa=int_char(p->next->id);while(p->next!=NULL){if(no==(0,7)){cout<<"管理系统有您要提取的信息!"<next;if(j==1)break;}if(j==1){int c,m=0;string b,b1,e,infoma[6]={"xueyuan","zhuanye","banji","daoshi","lunwen","jiaquan"};string kemu[6]={"学院","专业","班级","导师","论文","加权"};cout<<"输入您想提取的信息代码:"<学院 2-->专业 3-->班级"<导师 5-->论文 6-->加权"<>c;string cla="class";e=(6,1);b1=cla+e;b=b1+infoma[c-1];char *f=new char[20];for(int i=0;i<20;i++)f[i]=b[i];f=strcat(f,".txt");ofstream outfile(f,ios::out);if(! outfile){cout<<"打开错误!!!!!!!"<next!=NULL){outfile<<" -----------------------------"<next->id<<" | "<next->name<<" |";switch(c){case 1:outfile<next-><<" |";outfile<next-><<" |";outfile<next-><<" |";outfile<next-><<" |";outfile<next-><<" |";outfile<next-><<" |";outfile<next;}outfile<<" -----------------------------"<>b;for(i=0;i<9;i++){a=b%10;b=b/10;c[8-i]=a+'0';}c[9]='\0';return c;}