#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;jprintf(\"----%d-------%s-------%d-------%d-------%d\\\n\,student[j].name,student[j].gaoshu,student[j].jisuanji);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;iif(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;istudent[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;iprintf(\"第%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\ber,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;iif(strcmp(yy,student[i].name)==0) { j=i;k=1;printf(\"----%d-------%s-------%d-------%d-------%d----\\\n\ber,student[j].name,student[j].gaoshu,student[j].yingyu,student[j].jisuanji); } } if(k==0)
printf(\"输入信息有误:\\n\"); }
else if(choice=='3') {
printf(\"请输入需要查找学生的成绩:
scanf(\"%d\
\\n\");
printf(\"您所查找的学生的信息为:\\n\");
printf(\"----学号----姓名----高数----英语----计算机----\\\n\");
for(i=0;iif(xx==student[i].grade) { j=i;k=1;printf(\"----%d-------%s-------%d-------%d-------%d----\\\n\ber,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;ip1[i]=student+i; }for( i=0;ifor( j=i+1;jif((*(p2+i))->sum<(*(p2+j))->sum){temp=*(p2+i);*(p2+i)=*(p2+j);*(p2+j)=temp;} }
}
printf(\"按照总成绩排序之后的信息为:\\n\");
printf(\"----学号----姓名----总成绩----\\\n\");
for( i=0;istudent[i].sum=student[i].gaoshu+student[i].yingyu+student[i].jisuanji;printf(\"----%d-----%s----%d-----\\n\*(p2+i))->sum); } fhzjm(); }
void CunChu() { int i; FILE *rs;
if((rs=fopen(\"\ {
printf(\"not open\"); exit(0); }
for(i=0;ifwrite(&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之间的数字,谢谢! goto a; }
\\n\"); } } main() { menu(); }