
#include"stdio.h"
#include #include #include"process.h" #include"ctype.h" typedef struct { }Student; Student stu[99]; int shuru(Student stud[],int n)/*输入若干条记录*/ { while(sign!='n'&&sign!='N') { printf("输入学生学号:"); scanf("%s",stu[n+i].num); printf("输入学生姓名:"); printf("输入学生的语文、数学、英语、电路分数:"); scanf("%d%d%d%d",&stu[n+i].chinese,&stu[n+i].math,&stu[n+i].english,&stu[n+i].dianlu); a=1.0*(stu[n+i].chinese+stu[n+i].math+stu[n+i].english+stu[n+i].dianlu)/4; stu[n+i].aver=a; g清除多余的输入*/ printf("是否继续输入?(Y/N):\\n"); scanf("%c",&sign); i++; } return(n+i); } void xianshi(Student stud[],int n) /*显示所有记录*/ { int i ; printf("----------------------------------------------------------\\n"); /*格式头*/ printf("学号 姓名 语文 数学 英语 电路 平均成绩 \\n"); printf("----------------------------------------------------------\\n"); for(i=0;i printf("%-10s%-10s%-10d%-10d%-10d%-10d%-10.2lf\\n",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].english,stu[i].dianlu,stu[i].aver); } } void xiugai(Student stud[],int n)/*修改*/ { int i=0,choice=1; char x[10]; { printf("请输入您要修改的学生的学号:\\n"); 请选择您要修改的内容:\\n"); 姓名 请按 1 |\\n"); 语文 请按 2 |\\n"); 数学分数 请按 3 |\\n"); 英语分数 请按 4 |\\n"); 电路 请按 5 |\\n"); 退出 请按 0|\\n"); 请输入您的选择:"); { 请输入新姓名:"); case 2: 请输入新的语文分数: 请输入新的数学分数:"); 请输入新的英语分数: 请输入新的电路分数: 无效选项!"); int shanchu(Student stud[],int n) /*按姓名查找,删除一条记录*/ { char s[20]; int i; int j; i=0; printf("输入要删除记录的姓名:"); scanf("%s",s); while(strcmp(stu[i].name,s)!=0&&i {printf("not find!\\n"); for(j=i;j strcpy(stu[j].num,stu[j+1].num); strcpy(stu[j].name,stu[j+1].name); stu[j].chinese=stu[j+1].chinese; stu[j].math=stu[j+1].math; stu[j].english=stu[j+1].english; stu[j].dianlu=stu[j+1].dianlu; stu[j].aver=stu[j+1].aver; } printf("Delete Successed!\\n"); return(n-1); } void chaxun_xingming(Student stud[],int n) /*按姓名查找并显示一个记录*/ int i=0; printf("输入姓名:"); scanf("%s",s); while(strcmp(stu[i].name,s)!=0&&i {printf("not find!\\n"); /*输入失败信息*/ return; } printf("他的姓名、学号是:输出该学生信息*/ printf("语文 高数 英语 电路 平均成绩是 } void chaxun_pingjun(Student stud[],int n) /*按平均成绩查找并显示一个记录*/ int i=0; printf("输入平均成绩:"); scanf("%lf",&s); while(stu[i].aver!=s && i { printf("not find!\\n"); /*输入失败信息*/ } printf("他的学号是:%s\\n",stu[i].num); /*输出该学生信息*/ printf("他的姓名是:%s\\n",stu[i].name); printf("他的语文、数学、英语、电路分数是 } void paixu_xuehao(Student stud[],int n) /*按学号排序*/ { int i,j,p,q,r,w; double y; char x[20],t[10]; for(i=0;i { strcpy(t,stud[j].num); strcpy(stud[j].num,stud[j+1].num); strcpy(stud[j+1].num,t); strcpy(x,stud[j].name); strcpy(stud[j].name,stud[j+1].name); strcpy(stud[j+1].name,x); y=stu[j].aver;stu[j].aver=stu[j+1].aver;stu[j+1].aver=y; p=stu[j].chinese;stu[j].chinese=stu[j+1].chinese;stu[j+1].chinese=p; q=stu[j].math;stu[j].math=stu[j+1].math;stu[j+1].math=q; r=stu[j].english;stu[j].english=stu[j+1].english;stu[j+1].english=r; w=stu[j].dianlu;stu[j].dianlu=stu[j+1].dianlu;stu[j+1].dianlu=w; } return; } void paixu_pingjun(Student stud[],int n) /*按平均成绩排序*/ { int i,j,p,q,r,w; double y; char x[20],t[10]; for(i=0;i } void paixu_chinese(Student stud[],int n) /*按语文成绩排序*/ { int i,j,p,q,r,w; double y; char x[20],t[10]; for(i=0;i { } void paixu_english(Student stud[],int n) /*按英语成绩排序*/ { int i,j,p,q,r,w; double y; char x[20],t[10]; for(i=0;i { } void paixu_math(Student stud[],int n) /*按数学成绩排序*/ { int i,j,p,q,r,w; double y; char x[20],t[10]; for(i=0;i { } void paixu_dianlu(Student stud[],int n) /*按电路成绩排序*/ { int i,j,p,q,r,w; double y; char x[20],t[10]; for(i=0;i { } void tongji(Student stud[],int n)//按分数段统计人数 你想统计哪科成绩: 1语文 2数学 3英语 4电路 5平均 \\n"); 分数段的人数为 :%d",k); 分数段的人数为 :%d",l); 分数段的人数为 :%d",p); 分数段的人数为 :%d",w); 分数段的人数为 :%d",q); } int wenjian2(Student stud[],int n) /*从文件中读入数据*/ { int i=0,num; FILE *fp; /*定义文件指针*/ char filename[20]; /*定义文件名*/ printf("\\\Input the filename:"); scanf("\\\%s",filename); /*输入文件名*/ if((fp=fopen(filename,"rb"))==NULL) /*打开文件*/ { printf("\\\cann't open the file\\n"); /*打开失败信息*/ printf("\\\"); system("pause"); return(n); } fscanf(fp,"%d",&num); /*读入总记录量*/ while(i fscanf(fp,"%s %s %d %d %d %d %lf\\n",stu[n+i].num,stu[n+i].name,&stu[n+i].chinese,&stu[n+i].math,&stu[n+i].english,&stu[n+i].dianlu,&stu[n+i].aver); i++; } n+=num; fclose(fp); /*关闭文件*/ printf("\\\Successed!\\n"); printf("\\\"); system("pause"); return(n); v将所有记录写入文件*/ { int i=0; F定义文件指针*/ c定义文件名 输入文件名*/ if((fp=fopen(filename,"w"))==NULL) /*打开文件*/ fprintf(fp,"%d\\n",n); /*循环写入数据*/ fprintf(fp,"%s %s %d %d %d %d %lf\\n",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].english,stu[i].dianlu,stu[i].aver); fclose(fp); /*关闭文件*/ printf("Successed!\\n"); /*返回成功信息*/ } i菜单函数*/ { do{ 学生信息管理系统菜单****\\n"); 编辑 \\n"); 显示 \\n"); 查询 \\n"); 排序\\n"); 统计\\n"); 文件 \\n"); 退出 \\n"); 请选择(0-6):"); }while(c<0||c>6); return(c-0); /*返回选择*/ int bianji() { printf("\\ 1. 录入\\n"); printf("\\ 2 .修改\\n"); printf("\\ 3. 删除 \\n"); printf("\\ 按其它数字键退出 \\n"); int i; scanf("%d",&i); return i; } int chaxun() { printf("\\ 1. 按姓名查询\\n"); printf("\\ 2 .按平均成绩查询\\n"); printf("\\ 按其它数字键退出\\n"); int i; scanf("%d",&i); return i; } int paixu() { 按学号\\n"); 按语文成绩\\n"); 按数学成绩\\n"); 按英语成绩\\n"); 按电路成绩\\n"); 按平均成绩\\n"); 按其它数字键退出\\n"); } int wenjian() { printf("\\ 1. 从文件中读入数据\\n"); printf("\\ 2 .将所有记录写入文件\\n"); 按其它数字键退出 \\n"); int i; scanf("%d",&i); return i; } v主函数*/ { int n=0; for(;;) { case 1: switch(bianji()) case 2:xianshi(stu,n);break; case 3: case 4: switch(paixu()) case 1:paixu_xuehao(stu,n);xianshi(stu,n); break ; case 5:tongji(stu,n);break; case 6: exit(0); /*结束程序*/ } }
