#include
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(\
printf(\还需要操作么?如果需要操作请输入:yes,否则请输入:no\\n\
scanf(\
if(strcmp(biaozhi,\{ menu(); }
else if(strcmp(biaozhi,\exit(0); else {
printf(\请输入正确得字符,谢谢!\\n\fhzjm(); } }
void DengJi() { int rs; int i,k=1; system(\
printf(\请输入需要输入几个学生信息:\scanf(\
for(i=shuliang;i printf(\请输入第%d个学生得学号:\scanf(\、number); printf(\请输入学生得姓名:\scanf(\、name); printf(\请输入学生3门课得成绩:\printf(\请输入第1门课得成绩:\scanf(\、gaoshu); printf(\请输入第2门课得成绩:\scanf(\、yingyu); printf(\请输入第3门课得成绩:\scanf(\、jisuanji); } shuliang=shuliang+rs; fhzjm(); } void ShanChu() { char shanchuinfo[10]; system(\ printf(\删除全部学生信息请输入\\\,删除指定学号得学生信 息请输入\\\scanf(\if(strcmp(shanchuinfo,\{ int j; printf(\您删除得学生信息如下:\\n\ printf(\学号-------------姓名-------------高数--------------英语--------------计算机\\t\\n\for(j=0;j printf(%udent[j] 、 number,student[j] 、 name,student[j] 、 gaoshu,student[j]、jisuanji); shuliang=0; printf(\删除成功\\n\\n\} else if(strcmp(shanchuinfo,\{ struct student *p=NULL; int choice; int i,j,k=0; printf(\请输入您要删除得人得学号:\scanf(\ 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(\if(shuliang==0) { printf(\系统里面没有任何学生得信息!\\n\} else { for(i=0;i printf(\第%d个学生得学号为:%d\\n\、number); printf(\第%d个学生得姓名为:%s\\n\、name); printf(\第%d 个学生得第一门课得成绩 为:%d\\n\、gaoshu); printf(\第%d 个学生得第二门课得成绩 为:%d\\n\、yingyu); printf(\第%d 个学生得第三门课得成绩 为:%d\\n\、jisuanji); student[i]、sum=student[i]、gaoshu+student[i]、yingyu+student[i]、jisuanji; printf(\第%d个学生得总成绩为:%d\\n\、sum); } } fhzjm(); } void ChaZhao() { int xx; char choice,yy[20]; int i,j,k=0; system(\if(shuliang==0) { printf(\系统里面没有任何学生得信息!\\n\fhzjm(); } printf(\三种查找方式:学号,姓名,成绩\\n\ printf(\如果按学号查找请输1,如果按姓名查找请输2,如果按成绩查找请输3\\n\ printf(\请输入您查找得方式:\scanf(\if(choice=='1') { printf(\请输入需要查找学生得学号:\scanf(\ printf(\您所查找得学生得信息为:\\n\ printf(\学号----姓名----高数成绩----英语成绩----计算机成绩----\\t\\n\ for(i=0;i if(xx==student[i]、number) { j=i;k=1; printf(\ \、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(\ printf(\您所查找得学生得信息为:\\n\ printf(\学号----姓名----高数成绩----英语成绩----计算机成绩----\\t\\n\ for(i=0;i if(strcmp(yy,student[i]、name)==0) { j=i;k=1; printf(\\、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(\ printf(\您所查找得学生得信息为:\\n\ printf(\学号----姓名----高数----英语----计算机----\\t\\n\for(i=0;i if(xx==student[i]、grade) { j=i;k=1; printf(\\、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(\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(\学号----姓名----总成绩----\\t\\n\for( i=0;i student[i]、sum=student[i]、gaoshu+student[i]、yingyu+student[i]、jisuanji; printf(\2+i))->name,(*(p2+i))->sum); } fhzjm(); } void CunChu() { int i; FILE *rs; if((rs=fopen(\、txt\{ printf(\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(\、txt\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(\ printf(\学生信息管理系统\\n\printf(\作者:陈椿\\n\ printf(\printf(\、登记学生信息\\n\printf(\、删除学生信息\\n\ printf(\、浏览所有已经登记得学生\\n\printf(\、查找\\n\printf(\、1按学号查找\\n\printf(\、2按姓名查找\\n\printf(\、3按成绩查找\\n\printf(\、根据总成绩排序\\n\printf(\、存储到文件\\n\printf(\、从文件导出\\n\printf(\、退出系统\\n\a: printf(\请选择:\scanf(\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(); }