编译一个文档形式的c程序:比如一个学生的数据库:其中包括(1)查找某个学生的数据;(2)删除某个学生的数据;(3)插入某个学生的数据;(4)对学生数据库进行排序(比如按照:数学成绩) 各位大侠多多指教啊!!!!急用......
#include <stdio.h> int main() { printf( "(1)查找某个学生的数据;\n" "(2)删除某个学生的数据;\n" "(3)插入某个学生的数据;\n" "(4)对学生数据库进行排序;\n"); getchar(); return 0; } 回答者:匿名 11-17 11:24#include<iostream.h> #include<string.h> #include<fstream.h> class stu { char name[20]; double math,chinese,english,average,sum; public: stu() { } stu(char n[20],double ma,double chin,double eng) { strcpy(name,n); math=ma; chinese=chin; english=eng; } double getsum() { sum=chinese+english+math; return sum; } double getaver() { average=getsum()/3; return average; } friend void main(); }; void main() { cout<<"请选择您需要的操作!"<<endl; cout<<"操作:"<<endl; cout<<"(0)数据录入"<<endl; cout<<"(1)增加人员"<<endl; cout<<"(2)删除人员"<<endl; cout<<"(3)修改数据"<<endl; cout<<"查询:"<<endl; cout<<"(4)按总成绩查询"<<endl; cout<<"(5)按姓名查询"<<endl; cout<<"(6)输出所有学生的数据"<<endl; cout<<"成绩名词"<<endl; cout<<"(7)按总分查询排名"<<endl; cout<<"(8)按语文查询排名"<<endl; cout<<"(9)按数学查询排名"<<endl; cout<<"(y)按英语查询排名"<<endl; cout<<"选择相关操作请输入相对的括号里的阿拉伯数字!"<<endl; char p;char w; stu *s[50]; ofstream *file[50]; int i=0; int j=0; bool flag2=0; do { cin>>p; if((p>='0'&&p<='10')) flag2=1; else cout<<"指令错误!请重新输入:"<<endl; }while(flag2==0); do{ switch(p) { case '0': { char c; char name[20];double math,chinese,english; do{ cout<<"请输入姓名"<<endl; cin>>name; cout<<"请输入数学成绩:"<<endl; cin>>math; cout<<"请输入语文成绩:"<<endl; cin>>chinese; cout<<"请输入外语成绩:"<<endl; cin>>english; file[j]=new ofstream("d:\\document",ios::ate); *file[j]<<"姓名"<<name<<"数学成绩"<<math<<"语文成绩"<<chinese<<"外语成绩"<<english<<endl; j++; s[i]=new stu(name, math, chinese, english); i++; cout<<"数据录入成功,想继续录入吗(y/n)"<<endl; cin>>c; flag2=0; do { if(c!='y'&&c!='n') { cout<<"指令错误!请重新输入!"<<endl; cin>>c; } else flag2=1; }while(flag2==0); }while(c=='y'); break; } case '4': { double t;char c; do { int flag1=0; cout<<"请输入你要查询学生的总成绩"<<endl; cin>>t; for(int q=0;q<i;q++) { if(s[q]->getsum()==t) { flag1=1; cout<<"您要查询的学生是:"<<(*s[q]).name<<endl; } } if(flag1==0) cout<<"对不起!您要查询的学生不存在!"<<endl; cout<<"您想继续查询吗?(y/n)"<<endl; cin>>c; if(c!='y'&&c!='n') { cout<<"指令错误!请重新输入!"<<endl; cin>>c; } } while(c=='y'); break; } case '5': { char n[20];int j=0;char c; do{ int flag=0; cout<<"请输入你要查询的学生姓名"<<endl; cin>>n; for(int j=0;j<i;j++) { if(strcmp(n,(*s[j]).name)==0) { flag=1; cout<<"您要查询的学生是:"<<(*s[j]).name<<endl; cout<<(*s[j]).name<<"的总成绩成绩是"<<(*s[j]).getsum()<<endl<<"平均成绩是:"<<(*s[j]).getaver()<<endl; } } if(flag==0) cout<<"对不起!您要查询的学生不存在!"<<endl; cout<<"您想继续查询吗?(y/n)"<<endl; cin>>c; if(c!='y'&&c!='n') { cout<<"指令错误!请重新输入!"<<endl; cin>>c; } } while(c=='y'); break; } case '1': { char name[20];double math,chinese,english; char c; do { cout<<"请输入您要增加的学生的姓名:"<<endl; cin>>name; cout<<"请输入数学成绩:"<<endl; cin>>math; cout<<"请输入语文成绩:"<<endl; cin>>chinese; cout<<"请输入外语成绩:"<<endl; cin>>english; file[j]=new ofstream("d:\\document",ios::ate); *file[j]<<"姓名"<<name<<"数学成绩"<<math<<"语文成绩"<<chinese<<"外语成绩"<<english<<endl; j++; s[i]=new stu(name, math, chinese, english); i++; cout<<"数据录入成功,想继续录入吗(y/n)"<<endl; cin>>c; if(c!='y'&&c!='n') { cout<<"指令错误!请重新输入!"<<endl; cin>>c; } }while(c=='y'); break; } case '2': { char name[20];bool flag3=0;char c; do{ cout<<"请输入您要删除的学生姓名:"<<endl; cin>>name; for(int h=0;h<i;h++) { if(strcmp(name,s[h]->name)==0) { flag3=1; i--; do{ s[h]=s[h+1]; h++; }while(h<=i); } } if(flag3==0) cout<<"您要求删除的对象本来就不存在!请检查输入的正确性!"; cout<<"要继续删除吗?(y/n)"<<endl; cin>>c; if(c!='y'&&c!='n') { cout<<"指令错误!请重新输入!"<<endl; cin>>c; } }while(c=='y'); break; } case '3': { char name[20];double mat,chin,eng;flag2=0; char c; do { cout<<"请输入您要修改的学生的姓名:"<<endl; cin>>name; for(int h=0;h<i;h++) { if(strcmp(name,s[h]->name)==0) { flag2=1; cout<<"请输入新的数学成绩:"<<endl; cin>>mat; cout<<"请输入新的语文成绩:"<<endl; cin>>chin; cout<<"请输入新的外语成绩:"<<endl; cin>>eng; s[h]->chinese=chin; s[h]->math=mat; s[h]->english=eng; cout<<"数据修改成功!"; } } if(flag2==0) { cout<<"您要修改的学生本来就不存在!请检查重新输入!"<<endl; } cout<<"想继续修改吗(y/n)"<<endl; cin>>c; if(c!='y'&&c!='n') { cout<<"指令错误!请重新输入!"<<endl; cin>>c; } }while(c=='y'); break; } case '6': { cout<<"本系统所有学生数据如下:"<<endl; if(i==0) cout<<"管理系统中没有录入数据或者数据已经被删除!"<<endl; for(int k=0;k<i;k++) { cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<< "语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math <<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<(*s[k]).getsum() <<"平均分:"<<" "<<(*s[k]).getaver()<<endl; } break; } case '7': { int t;stu b; cout<<"本系统所以学生排名如下:"<<endl; for(int x=0;x<i-1;x++) { t=x; for(int y=x+1;y<i;y++) { if((s[t]->getsum())<(s[y]->getsum())) t=y; if(t!=x) { b=*s[x]; *s[x]=*s[t]; *s[t]=b; } } } if(i==0) cout<<"管理系统中没有录入数据或者数据已经被删除!"; for(int k=0;k<i;k++) { cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<< "语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math <<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum() <<"平均分:"<<" "<<s[k]->getaver()<<endl; } break; } case '8': { int t;stu b; cout<<"本系统所以学生语文排名如下:"<<endl; for(int x=0;x<i-1;x++) { t=x; for(int y=x+1;y<i;y++) { if((s[t]->chinese)<(s[y]->chinese)) t=y; if(t!=x) { b=*s[t]; *s[t]=*s[x]; *s[x]=b; } } } if(i==0) cout<<"管理系统中没有录入数据或者数据已经被删除!"; for(int k=0;k<i;k++) { cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<< "语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math <<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum() <<"平均分:"<<" "<<s[k]->getaver()<<endl; } break; } case '9': { int t;stu b; cout<<"本系统所以学生数学排名如下:"<<endl; for(int x=0;x<i-1;x++) { t=x; for(int y=x+1;y<i;y++) { if((s[t]->math)<(s[y]->math)) t=y; if(t!=x) { b=*s[t]; *s[t]=*s[x]; *s[x]=b; } } } if(i==0) cout<<"管理系统中没有录入数据或者数据已经被删除!"; for(int k=0;k<i;k++) { cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<< "语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math <<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum() <<"平均分:"<<" "<<s[k]->getaver()<<endl; } break; } case 'y': { int t;stu b; cout<<"本系统所以学生英语排名如下:"<<endl; for(int x=0;x<i-1;x++) { t=x; for(int y=x+1;y<i;y++) { if((s[t]->english)<(s[y]->english)) t=y; if(t!=x) { b=*s[t]; *s[t]=*s[x]; *s[x]=b; } } } if(i==0) cout<<"管理系统中没有录入数据或者数据已经被删除!"; for(int k=0;k<i;k++) { cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<< "语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math <<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum() <<"平均分:"<<" "<<s[k]->getaver()<<endl; } } break; } cout<<"您想继续进行其他操作吗?(y/n)"<<endl; bool flag4=0; do { cin>>w; if(w!='y'&&w!='n') cout<<"指令错误!请重新输入!"<<endl; else flag4=1; }while(flag4==0); if(w=='y') cout<<"请输入操作代码(0 录入/4 按总分查询/5 按姓名查询/1 增加人员/2 删除人员/3 修改数据/6 显示所有成员数据/7 按总分排名/8 按语文排名/9按数学排名/y按英语排名)"<<endl; cin>>p; }while(w=='y'); for(int x=0;x<i;x++) { delete s[x]; cout<<"delete all members!"<<endl; } 要不然#include "stdio.h" #include "conio.h" #include "stdlib.h" #include "string.h" FILE *fp; struct record { char num[20]; char name[20]; char classes[20]; char sex[10]; char chinese[520]; char maths[520]; char english[520]; }student[500]; int n;//外部变量n为文件中的纪录数 void save();//保存函数 即写入文件 void mainmemu();//主菜单 void amend();//修改文件 void del();//删除菜单 void delall();//删除全部函数 void delone();//个别删除菜单 void search(); void add(); int main(int argc, char* argv[]) { save(); while (1) mainmemu(); return 1; } void mainmemu()//主菜单 { int choice; system ("cls"); printf ("\n\t\t******************学生信息管理系统****************"); printf ("\n\t\t* *"); printf ("\n\t\t* 1.添加学生信息 *"); printf ("\n\t\t* *"); printf ("\n\t\t* 2.修改学生信息 *"); printf ("\n\t\t* *"); printf ("\n\t\t* 3.删除学生信息 *"); printf ("\n\t\t* *"); printf ("\n\t\t* 4.查询学生信息 *"); printf ("\n\t\t* *"); printf ("\n\t\t* 5.保存 *"); printf ("\n\t\t* *"); printf ("\n\t\t* 6.退出 *"); printf ("\n\t\t**************************************************"); printf ("\n\n\t请输入数字进入对应菜单:"); getch (); choice=getch (); switch(choice) { case '1': add();break; case '2': amend();break; case '3': del(); break; case '4': search();break; case '5': save();break; case '6': exit(0);break; default : mainmemu(); } } void save () { if ((fp=fopen("student.bin","rb"))==NULL) { printf ("\n\t\t学生信息文件不存在"); if ((fp=fopen("student.bin","wb"))==NULL) { printf ("\n\t\t建立文件失败"); exit (0); } else { printf ("\n\t\t学生信息文件已经建立"); printf ("\n\t\t请按任意键进入主菜单:"); getch (); return ; } exit (0); } fseek (fp,0,2);//文件位置指针移动到文件末尾 if (ftell (fp)>0)//文件不为空 { rewind (fp);//文件位置指针移动到文件开始位置 for (n=0;!feof(fp)&&fread(&student[n],sizeof (struct record),1,fp);n++); printf ("\n\t\t文件导入成功 "); printf ("\n\t\t请按任意键返回主菜单"); getch (); return; } printf ("\n\t\t文件导入成功"); printf ("\n\t\t学生信息文件中无任何记录"); printf ("\n\t\t请按任意键返回主菜单"); getch (); return; } void amend ()//修改函数 输入学生学号删除 再添加 { char c; del (); printf ("是否添加新信息? (Y/N)"); getch (); c=getch(); if (c=='y'||c=='Y') add(); else return ; } void del() //删除菜单 { int z; system("cls"); printf("\n\t\t******************删除菜单******************"); printf("\n\t\t*****************1.删除全部*****************"); printf("\n\t\t*****************2.删除个别*****************"); printf("\n\t\t********************************************"); getch (); z=getch (); switch(z) { case '1': delall(); break; case '2':delone();break; default : mainmemu(); } } void delall()//删除所有 { char q; printf("\n\t\t确认删除所有记录?(y/n)"); getch(); q=getch(); if(q=='y'||q=='Y') { fclose (fp); if((fp=fopen("student.bin","wb"))==NULL) { printf ("\n\t\t不能打开文件,删除失败"); save(); } n=0; printf ("\n\t\t记录已删除,按任意键返回主菜单"); getch (); return ; } else return ; } void delone()//个别删除 { char mingzi[20]; int u; printf ("请输入要删除学生姓名:"); scanf ("%S",mingzi); for (u=0;u<n;u++) { if(strcmp(mingzi,student[u].name)) del(); } } void search() { char mingzi[20]; int u; printf ("请输入要查询学生姓名:"); scanf ("%S",mingzi); for (u=0;u<n;u++) { if(strcmp(mingzi,student[u].name)) { printf ("\n学号:%s",student[n].num); printf ("\n姓名:%s",student[n].name); printf ("\n班级:%s",student[n].classes); printf ("\n性别:%s",student[n].sex); printf ("\n语文成绩:%s",student[n].chinese); printf ("\n数学成绩:%s",student[n].maths); printf ("\n英语成绩:%s",student[n].english); } } return; } void add()//添加函数 { system("CLS"); printf ("\n\t\t\t**********请输入学生信息********"); printf ("\n请输入学号:"); scanf ("%s",student[n].num); printf ("\n请输入姓名:"); scanf ("%s",student[n].name); printf ("\n请输入班级:"); scanf ("%s",student[n].classes); printf ("\n请输入性别:"); scanf ("%s",student[n].sex); printf ("\n请输入语文成绩:"); scanf ("%s",student[n].chinese); printf ("\n请输入数学成绩:"); scanf ("%s",student[n].maths); printf ("\n请输入英语成绩:"); scanf ("%s",student[n].english); n++; printf("\n\t\t是否继续添加?(Y/N):"); if (getch()=='y'||getch()=='Y') add(); return; } 是
#include<iostream.h> #include<string.h> #include<fstream.h> class stu { char name[20]; double math,chinese,english,average,sum; public: stu() { } stu(char n[20],double ma,double chin,double eng) { strcpy(name,n); math=ma; chinese=chin; english=eng; } double getsum() { sum=chinese+english+math; return sum; } double getaver() { average=getsum()/3; return average; } friend void main(); }; void main() { cout<<"请选择您需要的操作!"<<endl; cout<<"操作:"<<endl; cout<<"(0)数据录入"<<endl; cout<<"(1)增加人员"<<endl; cout<<"(2)删除人员"<<endl; cout<<"(3)修改数据"<<endl; cout<<"查询:"<<endl; cout<<"(4)按总成绩查询"<<endl; cout<<"(5)按姓名查询"<<endl; cout<<"(6)输出所有学生的数据"<<endl; cout<<"成绩名词"<<endl; cout<<"(7)按总分查询排名"<<endl; cout<<"(8)按语文查询排名"<<endl; cout<<"(9)按数学查询排名"<<endl; cout<<"(y)按英语查询排名"<<endl; cout<<"选择相关操作请输入相对的括号里的阿拉伯数字!"<<endl; char p;char w; stu *s[50]; ofstream *file[50]; int i=0; int j=0; bool flag2=0; do { cin>>p; if((p>='0'&&p<='10')) flag2=1; else cout<<"指令错误!请重新输入:"<<endl; }while(flag2==0); do{ switch(p) { case '0': { char c; char name[20];double math,chinese,english; do{ cout<<"请输入姓名"<<endl; cin>>name; cout<<"请输入数学成绩:"<<endl; cin>>math; cout<<"请输入语文成绩:"<<endl; cin>>chinese; cout<<"请输入外语成绩:"<<endl; cin>>english; file[j]=new ofstream("d:\\document",ios::ate); *file[j]<<"姓名"<<name<<"数学成绩"<<math<<"语文成绩"<<chinese<<"外语成绩"<<english<<endl; j++; s[i]=new stu(name, math, chinese, english); i++; cout<<"数据录入成功,想继续录入吗(y/n)"<<endl; cin>>c; flag2=0; do { if(c!='y'&&c!='n') { cout<<"指令错误!请重新输入!"<<endl; cin>>c; } else flag2=1; }while(flag2==0); }while(c=='y'); break; } case '4': { double t;char c; do { int flag1=0; cout<<"请输入你要查询学生的总成绩"<<endl; cin>>t; for(int q=0;q<i;q++) { if(s[q]->getsum()==t) { flag1=1; cout<<"您要查询的学生是:"<<(*s[q]).name<<endl; } } if(flag1==0) cout<<"对不起!您要查询的学生不存在!"<<endl; cout<<"您想继续查询吗?(y/n)"<<endl; cin>>c; if(c!='y'&&c!='n') { cout<<"指令错误!请重新输入!"<<endl; cin>>c; } } while(c=='y'); break; } case '5': { char n[20];int j=0;char c; do{ int flag=0; cout<<"请输入你要查询的学生姓名"<<endl; cin>>n; for(int j=0;j<i;j++) { if(strcmp(n,(*s[j]).name)==0) { flag=1; cout<<"您要查询的学生是:"<<(*s[j]).name<<endl; cout<<(*s[j]).name<<"的总成绩成绩是"<<(*s[j]).getsum()<<endl<<"平均成绩是:"<<(*s[j]).getaver()<<endl; } } if(flag==0) cout<<"对不起!您要查询的学生不存在!"<<endl; cout<<"您想继续查询吗?(y/n)"<<endl; cin>>c; if(c!='y'&&c!='n') { cout<<"指令错误!请重新输入!"<<endl; cin>>c; } } while(c=='y'); break; } case '1': { char name[20];double math,chinese,english; char c; do { cout<<"请输入您要增加的学生的姓名:"<<endl; cin>>name; cout<<"请输入数学成绩:"<<endl; cin>>math; cout<<"请输入语文成绩:"<<endl; cin>>chinese; cout<<"请输入外语成绩:"<<endl; cin>>english; file[j]=new ofstream("d:\\document",ios::ate); *file[j]<<"姓名"<<name<<"数学成绩"<<math<<"语文成绩"<<chinese<<"外语成绩"<<english<<endl; j++; s[i]=new stu(name, math, chinese, english); i++; cout<<"数据录入成功,想继续录入吗(y/n)"<<endl; cin>>c; if(c!='y'&&c!='n') { cout<<"指令错误!请重新输入!"<<endl; cin>>c; } }while(c=='y'); break; } case '2': { char name[20];bool flag3=0;char c; do{ cout<<"请输入您要删除的学生姓名:"<<endl; cin>>name; for(int h=0;h<i;h++) { if(strcmp(name,s[h]->name)==0) { flag3=1; i--; do{ s[h]=s[h+1]; h++; }while(h<=i); } } if(flag3==0) cout<<"您要求删除的对象本来就不存在!请检查输入的正确性!"; cout<<"要继续删除吗?(y/n)"<<endl; cin>>c; if(c!='y'&&c!='n') { cout<<"指令错误!请重新输入!"<<endl; cin>>c; } }while(c=='y'); break; } case '3': { char name[20];double mat,chin,eng;flag2=0; char c; do { cout<<"请输入您要修改的学生的姓名:"<<endl; cin>>name; for(int h=0;h<i;h++) { if(strcmp(name,s[h]->name)==0) { flag2=1; cout<<"请输入新的数学成绩:"<<endl; cin>>mat; cout<<"请输入新的语文成绩:"<<endl; cin>>chin; cout<<"请输入新的外语成绩:"<<endl; cin>>eng; s[h]->chinese=chin; s[h]->math=mat; s[h]->english=eng; cout<<"数据修改成功!"; } } if(flag2==0) { cout<<"您要修改的学生本来就不存在!请检查重新输入!"<<endl; } cout<<"想继续修改吗(y/n)"<<endl; cin>>c; if(c!='y'&&c!='n') { cout<<"指令错误!请重新输入!"<<endl; cin>>c; } }while(c=='y'); break; } case '6': { cout<<"本系统所有学生数据如下:"<<endl; if(i==0) cout<<"管理系统中没有录入数据或者数据已经被删除!"<<endl; for(int k=0;k<i;k++) { cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<< "语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math <<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<(*s[k]).getsum() <<"平均分:"<<" "<<(*s[k]).getaver()<<endl; } break; } case '7': { int t;stu b; cout<<"本系统所以学生排名如下:"<<endl; for(int x=0;x<i-1;x++) { t=x; for(int y=x+1;y<i;y++) { if((s[t]->getsum())<(s[y]->getsum())) t=y; if(t!=x) { b=*s[x]; *s[x]=*s[t]; *s[t]=b; } } } if(i==0) cout<<"管理系统中没有录入数据或者数据已经被删除!"; for(int k=0;k<i;k++) { cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<< "语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math <<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum() <<"平均分:"<<" "<<s[k]->getaver()<<endl; } break; } case '8': { int t;stu b; cout<<"本系统所以学生语文排名如下:"<<endl; for(int x=0;x<i-1;x++) { t=x; for(int y=x+1;y<i;y++) { if((s[t]->chinese)<(s[y]->chinese)) t=y; if(t!=x) { b=*s[t]; *s[t]=*s[x]; *s[x]=b; } } } if(i==0) cout<<"管理系统中没有录入数据或者数据已经被删除!"; for(int k=0;k<i;k++) { cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<< "语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math <<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum() <<"平均分:"<<" "<<s[k]->getaver()<<endl; } break; } case '9': { int t;stu b; cout<<"本系统所以学生数学排名如下:"<<endl; for(int x=0;x<i-1;x++) { t=x; for(int y=x+1;y<i;y++) { if((s[t]->math)<(s[y]->math)) t=y; if(t!=x) { b=*s[t]; *s[t]=*s[x]; *s[x]=b; } } } if(i==0) cout<<"管理系统中没有录入数据或者数据已经被删除!"; for(int k=0;k<i;k++) { cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<< "语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math <<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum() <<"平均分:"<<" "<<s[k]->getaver()<<endl; } break; } case 'y': { int t;stu b; cout<<"本系统所以学生英语排名如下:"<<endl; for(int x=0;x<i-1;x++) { t=x; for(int y=x+1;y<i;y++) { if((s[t]->english)<(s[y]->english)) t=y; if(t!=x) { b=*s[t]; *s[t]=*s[x]; *s[x]=b; } } } if(i==0) cout<<"管理系统中没有录入数据或者数据已经被删除!"; for(int k=0;k<i;k++) { cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<< "语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math <<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum() <<"平均分:"<<" "<<s[k]->getaver()<<endl; } } break; } cout<<"您想继续进行其他操作吗?(y/n)"<<endl; bool flag4=0; do { cin>>w; if(w!='y'&&w!='n') cout<<"指令错误!请重新输入!"<<endl; else flag4=1; }while(flag4==0); if(w=='y') cout<<"请输入操作代码(0 录入/4 按总分查询/5 按姓名查询/1 增加人员/2 删除人员/3 修改数据/6 显示所有成员数据/7 按总分排名/8 按语文排名/9按数学排名/y按英语排名)"<<endl; cin>>p; }while(w=='y'); for(int x=0;x<i;x++) { delete s[x]; cout<<"delete all members!"<<endl; } }
#include "stdio.h" #include "conio.h" #include "stdlib.h" #include "string.h" FILE *fp; struct record { char num[20]; char name[20]; char classes[20]; char sex[10]; char chinese[520]; char maths[520]; char english[520]; }student[500]; int n;//外部变量n为文件中的纪录数 void save();//保存函数 即写入文件 void mainmemu();//主菜单 void amend();//修改文件 void del();//删除菜单 void delall();//删除全部函数 void delone();//个别删除菜单 void search(); void add(); int main(int argc, char* argv[]) { save(); while (1) mainmemu(); return 1; } void mainmemu()//主菜单 { int choice; system ("cls"); printf ("\n\t\t******************学生信息管理系统****************"); printf ("\n\t\t* *"); printf ("\n\t\t* 1.添加学生信息 *"); printf ("\n\t\t* *"); printf ("\n\t\t* 2.修改学生信息 *"); printf ("\n\t\t* *"); printf ("\n\t\t* 3.删除学生信息 *"); printf ("\n\t\t* *"); printf ("\n\t\t* 4.查询学生信息 *"); printf ("\n\t\t* *"); printf ("\n\t\t* 5.保存 *"); printf ("\n\t\t* *"); printf ("\n\t\t* 6.退出 *"); printf ("\n\t\t**************************************************"); printf ("\n\n\t请输入数字进入对应菜单:"); getch (); choice=getch (); switch(choice) { case '1': add();break; case '2': amend();break; case '3': del(); break; case '4': search();break; case '5': save();break; case '6': exit(0);break; default : mainmemu(); } } void save () { if ((fp=fopen("student.bin","rb"))==NULL) { printf ("\n\t\t学生信息文件不存在"); if ((fp=fopen("student.bin","wb"))==NULL) { printf ("\n\t\t建立文件失败"); exit (0); } else { printf ("\n\t\t学生信息文件已经建立"); printf ("\n\t\t请按任意键进入主菜单:"); getch (); return ; } exit (0); } fseek (fp,0,2);//文件位置指针移动到文件末尾 if (ftell (fp)>0)//文件不为空 { rewind (fp);//文件位置指针移动到文件开始位置 for (n=0;!feof(fp)&&fread(&student[n],sizeof (struct record),1,fp);n++); printf ("\n\t\t文件导入成功 "); printf ("\n\t\t请按任意键返回主菜单"); getch (); return; } printf ("\n\t\t文件导入成功"); printf ("\n\t\t学生信息文件中无任何记录"); printf ("\n\t\t请按任意键返回主菜单"); getch (); return; } void amend ()//修改函数 输入学生学号删除 再添加 { char c; del (); printf ("是否添加新信息? (Y/N)"); getch (); c=getch(); if (c=='y'||c=='Y') add(); else return ; } void del() //删除菜单 { int z; system("cls"); printf("\n\t\t******************删除菜单******************"); printf("\n\t\t*****************1.删除全部*****************"); printf("\n\t\t*****************2.删除个别*****************"); printf("\n\t\t********************************************"); getch (); z=getch (); switch(z) { case '1': delall(); break; case '2':delone();break; default : mainmemu(); } } void delall()//删除所有 { char q; printf("\n\t\t确认删除所有记录?(y/n)"); getch(); q=getch(); if(q=='y'||q=='Y') { fclose (fp); if((fp=fopen("student.bin","wb"))==NULL) { printf ("\n\t\t不能打开文件,删除失败"); save(); } n=0; printf ("\n\t\t记录已删除,按任意键返回主菜单"); getch (); return ; } else return ; } void delone()//个别删除 { char mingzi[20]; int u; printf ("请输入要删除学生姓名:"); scanf ("%S",mingzi); for (u=0;u<n;u++) { if(strcmp(mingzi,student[u].name)) del(); } } void search() { char mingzi[20]; int u; printf ("请输入要查询学生姓名:"); scanf ("%S",mingzi); for (u=0;u<n;u++) { if(strcmp(mingzi,student[u].name)) { printf ("\n学号:%s",student[n].num); printf ("\n姓名:%s",student[n].name); printf ("\n班级:%s",student[n].classes); printf ("\n性别:%s",student[n].sex); printf ("\n语文成绩:%s",student[n].chinese); printf ("\n数学成绩:%s",student[n].maths); printf ("\n英语成绩:%s",student[n].english); } } return; } void add()//添加函数 { system("CLS"); printf ("\n\t\t\t**********请输入学生信息********"); printf ("\n请输入学号:"); scanf ("%s",student[n].num); printf ("\n请输入姓名:"); scanf ("%s",student[n].name); printf ("\n请输入班级:"); scanf ("%s",student[n].classes); printf ("\n请输入性别:"); scanf ("%s",student[n].sex); printf ("\n请输入语文成绩:"); scanf ("%s",student[n].chinese); printf ("\n请输入数学成绩:"); scanf ("%s",student[n].maths); printf ("\n请输入英语成绩:"); scanf ("%s",student[n].english); n++; printf("\n\t\t是否继续添加?(Y/N):"); if (getch()=='y'||getch()=='Y') add(); return; }
运行一下试试吧,真的可以运行耶。#include <stdio.h>int main() { printf( "(1)查找某个学生的数据;\n" "(2)删除某个学生的数据;\n" "(3)插入某个学生的数据;\n" "(4)对学生数据库进行排序;\n"); getchar(); return 0;}