#include <>
#include <>
#include <>
#include <>
#define N 1000
typedef struct student
{
int number;
char name[20];
int grade;
int gaoshu;
int yingyu;
int jisuanji;
int sum;
}STUDENT;
STUDENT student[N];
int shuliang=0;
void menu();
void fhzjm()
{
char biaozhi[20];
printf(\"\\n\");
printf(\"还需要操作么如果需要操作请输入:yes,否则请输入:no\\n\");
scanf(\"%s\
if(strcmp(biaozhi,\"yes\")==0)
{
menu();
}
else if(strcmp(biaozhi,\"no\")==0)
exit(0);
else
{
printf(\"请输入正确的字符,谢谢!\\n\");
fhzjm();
}
}
void DengJi()
{
int rs;
int i,k=1;
system(\"CLS\");
printf(\"请输入需要输入几个学生信息:\");
scanf(\"%d\
for(i=shuliang;i printf(\"请输入第%d个学生的学号:\ scanf(\"%d\ printf(\"请输入学生的姓名:\"); scanf(\"%s\ printf(\"请输入学生3门课的成绩:\"); printf(\"请输入第1门课的成绩:\"); scanf(\"%d\ printf(\"请输入第2门课的成绩:\"); scanf(\"%d\ printf(\"请输入第3门课的成绩:\"); scanf(\"%d\ } shuliang=shuliang+rs; fhzjm(); } void ShanChu() { char shanchuinfo[10]; system(\"CLS\"); printf(\"删除全部学生信息请输入\\\"all\\\",删除指定学号的学生信息请输入\\\"one\\\"\\n\"); scanf(\"%s\ if(strcmp(shanchuinfo,\"all\")==0) { int j; printf(\"你删除的学生信息如下:\\n\"); printf(\"-----------学号-------------姓名-------------高数--------------英语--------------计算机\\\n\"); for(j=0;j shuliang=0; printf(\"删除成功\\n\\n\"); } else if(strcmp(shanchuinfo,\"one\")==0) { struct student *p=NULL; int choice; int i,j,k=0; printf(\"请输入你要删除的人的学号:\"); scanf(\"%d\ for(i=0;i if(choice==student[i].number) { k=1;j=i;break; } } if(k) { if(shuliang==1) { p=&student[0]; free(p); shuliang=0; } else { for(i=j;i student[i]=student[i+1]; } shuliang=shuliang-1; } printf(\"删除成功\\n\\n\"); } else { printf(\"输入数据错误!\\n\"); } } fhzjm(); } void LiuLan() { int i; system(\"CLS\"); if(shuliang==0) { printf(\"系统里面没有任何学生的信息!\\n\"); } else { for(i=0;i printf(\"第%d个学生的学号为:%d\\n\ printf(\"第%d个学生的姓名为:%s\\n\ printf(\"第%d个学生的第一门课的成绩为:%d\\n\ printf(\"第%d个学生的第二门课的成绩为:%d\\n\ printf(\"第%d个学生的第三门课的成绩为:%d\\n\ student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuanji; printf(\"第%d个学生的总成绩为:%d\\n\ } } fhzjm(); } void ChaZhao() { int xx; char choice,yy[20]; int i,j,k=0; system(\"CLS\"); if(shuliang==0) { printf(\"系统里面没有任何学生的信息!\\n\"); fhzjm(); } printf(\"三种查找方式:学号,姓名,成绩\\n\"); printf(\"如果按学号查找请输1,如果按姓名查找请输2,如果按成绩查找请输3\\n\"); printf(\"请输入您查找的方式:\"); scanf(\"%s\ if(choice=='1') { printf(\"请输入需要查找学生的学号:\"); scanf(\"%d\ printf(\"您所查找的学生的信息为:\\n\"); printf(\"----学号----姓名----高数成绩----英语成绩----计算机成绩----\\\n\"); for(i=0;i if(xx==student[i].number) { j=i;k=1; printf(\"----%d-------%s-------%d-------%d-------%d----\\\n\j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jisuanji); } } if(k==0) printf(\"输入信息有误:\\n\"); } else if(choice=='2') { printf(\"请输入需要查找学生的姓名:\\n\"); scanf(\"%s\ printf(\"您所查找的学生的信息为:\\n\"); printf(\"----学号----姓名----高数成绩----英语成绩----计算机成绩----\\\n\"); for(i=0;i if(strcmp(yy,student[i].name)==0) { j=i;k=1; printf(\"----%d-------%s-------%d-------%d-------%d----\\\n\j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[j].jisuanji); } } if(k==0) printf(\"输入信息有误:\\n\"); } else if(choice=='3') { printf(\"请输入需要查找学生的成绩:\\n\"); scanf(\"%d\ printf(\"您所查找的学生的信息为:\\n\"); printf(\"----学号----姓名----高数----英语----计算机----\\\n\"); for(i=0;i if(xx==student[i].grade) { j=i;k=1; printf(\"----%d-------%s-------%d-------%d-------%d----\\\n\j].number,student[j].name,student[j].gaoshu,student[j].yingyu,student[i].jisuanji); } } if(k==0) printf(\"输入信息有误:\\n\"); } fhzjm(); } void PaiXu() { struct student *p1[N],**p2,*temp; int i,j; system(\"CLS\"); p2=p1; for( i=0;i p1[i]=student+i; } for( i=0;i for( j=i+1;j if((*(p2+i))->sum<(*(p2+j))->sum) {temp=*(p2+i);*(p2+i)=*(p2+j);*(p2+j)=temp;} } } printf(\"按照总成绩排序之后的信息为:\\n\"); printf(\"----学号----姓名----总成绩----\\\n\"); for( i=0;i student[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuanji; printf(\"----%d-----%s----%d-----\\n\+i))->sum); } fhzjm(); } void CunChu() { int i; FILE *rs; if((rs=fopen(\"\ { printf(\"not open\"); exit(0); } for(i=0;i fwrite(&student[i], sizeof(student[i]), 1, rs); } if(ferror(rs)) { fclose(rs); perror(\"写文件失败!\\n\"); return; } printf(\"存储文件成功!\\n\"); fclose(rs); fhzjm(); } void DaoChu() { struct student t; int i=0; FILE* fp = fopen(\"\ shuliang=0; if(NULL==fp) { perror(\"读取文件打开失败!\\n\"); return; } memset(student,0x0,sizeof(student)); while(1) { fread(&t,sizeof(t),1,fp); if(ferror(fp)) { fclose(fp); perror(\"读文件过程失败!\\n\"); return; } if(feof(fp)) { break; } student[i]=t; i++; } fclose(fp); shuliang=i; printf(\"导出文件成功!\\n\"); fhzjm(); } void menu() { int n=0; system(\"CLS\"); printf(\" 学生信息管理系统\\n\"); printf(\" 作者:陈椿\\n\"); printf(\"-------------------MENU-----------------\\n\"); printf(\" 1.登记学生信息\\n\"); printf(\" 2.删除学生信息\\n\"); printf(\" 3.浏览所有已经登记的学生\\n\"); printf(\" 4.查找\\n\"); printf(\" 按学号查找\\n\"); printf(\" 按姓名查找\\n\"); printf(\" 按成绩查找\\n\"); printf(\" 5.根据总成绩排序\\n\"); printf(\" 6.存储到文件\\n\"); printf(\" 7.从文件导出\\n\"); printf(\" 8.退出系统\\n\"); a: printf(\" 请选择:\"); scanf(\"%d\ switch (n) { case 1: DengJi();break; case 2: ShanChu();break; case 3: LiuLan();break; case 4: ChaZhao();break; case 5: PaiXu();break; case 6: CunChu();break; case 7: DaoChu();break; case 8: exit(0);break; default: { printf(\"请输入1-8之间的数字,谢谢!\\n\"); goto a; } } } main() { menu(); } 因篇幅问题不能全部显示,请点此查看更多更全内容