1、C程序设计训练C程序设计训练实验报告题目:学生综合成绩分析系统时间:2009年9月718日指导老师:*老师设计人:*模块系统的组织结构模块设计详细说明表模 块 名 称输入功能模 块 功 能通过键盘输入学生学号及各科成绩的信息并生成系统文件,通过查找功能读取已保存信息性 能 要 求可以对输入的数据进行存盘和读取,并在运行过程并在运行过程中能随时推出系统输 入学生人数、学号及学生各科成绩等个人信息输 出学生学号、各科成绩等信息模 块 名 称计算功能模 块 功 能对学生的成绩进行排序求出各学生平均成绩及全体学生单科成绩性 能 要 求对学生成绩进行准确计算输 入计算指令 输 出计算结果模 块 名 称查
2、找功能模 块 功 能根据学号或姓名查询系统文件中的某各学生的各门成绩输 入学生学号或姓名输 出该学生各科成绩及个人信息备 注请正确运行程序并输入准确信息测试结果经过测试运行,程序功能均能实验,界面美观。实验信息设计人:方泽建 陈 柏参考文献:数据结构(C语言版),C程序设计,数据结构学习指导实验指导课程指导(机械工业出版社实验心得:经过这两个星期的程序设计训练,我们重新复习了学过的知识,并学会将这些知识运用到实际当中去,而且我们也参考了很多课外的相关资料,认识到我们在课堂学不到的东西,我们受益良多。源程序:#includestdio.h#define maxsize1 100 /*maxsiz
3、e1 为学生名字的最大字符数*/#define maxsize2 10 /*maxsize2 为学生的最大个数*/#define null 0typedef struct int number;/*学号域*/ char namemaxsize1;/*姓名域*/ int pro5;/*pro1为math成绩;pro2为english成绩;pro3为computer成绩;pro4为平均成绩;*/ node;typedef struct node stumaxsize2;/*存放学生信息*/ int num;/*存放学生人数*/md;md creat()/*创建学生信息*/ md a; int i;
4、 printf(nenter student NO:); scanf(%d,&a.num); for(i=1;i=a.num;i+)/*输入每个学生的三门课的成绩*/ printf(enter %d number name math english computer:,i); scanf(%d %s %d %d %d,&a.stui.number,a.stui.name,&a.stui.pro1,&a.stui.pro2,&a.stui.pro3); save(a); return a;save(md a) int i; FILE *fp; if(fp=fopen(c:INPUT.txt,a)
5、=null) printf(can not open this filen); return 1; for(i=1;i=a.num;i+) fprintf(fp,%d %s %d %d %dn,a.stui.number,a.stui.name,a.stui.pro1,a.stui.pro2,a.stui.pro3); fclose(fp);printf(n*n); void disp(md a)/*输出学生信息*/ int i; for(i=1;i=a.num;i+) printf(number:%d,name:%s,math:%d,english:%d,computer:%d,averag
6、e:%dn,a.stui.number,a.stui.name,a.stui.pro1,a.stui.pro2,a.stui.pro3,a.stui.pro4);void sort(md a,int m)/*排序函数,若m为1,则按math成绩排序;若m为2,则按english成绩排序;若m为3,则按computer成绩排序;若m为4,则按平均成绩排序*/ int i,j,max; node temp; for(i=1;i=a.num;i+)/*采用选择排序*/ max=i; for(j=i+1;ja.stumax.prom) max=j; if(max!=i) temp=a.stumax;
7、a.stumax=a.stui; a.stui=temp; disp(a);void fun1(md a)/*按学生的各门功课排序*/ int select,i; for(i=1;i=a.num;i+)/*求每个学生的平均成绩*/ a.stui.pro4=(a.stui.pro1+a.stui.pro2+a.stui.pro3)/3; printf(n*n); do printf(1.math sortn); printf(2.english sortn); printf(puter sortn); printf(4.averagen); printf(5.returnn); printf(e
8、nter select(1-5):); scanf(%d,&select); printf(n*n); if(select!=5) sort(a,select); else return; while(1);void fun2(md a)/*按各门功课的平均成绩排序*/ int select,i,tatal;printf(n*n); do printf(1.math-classn); printf(2.english-classn); printf(puter-classn); printf(4.returnn); printf(enter select(1-4):); scanf(%d,&s
9、elect); printf(n*n); if(select=4) return; else tatal=0; for(i=1;i=a.num;i+) tatal+=a.stui.proselect; printf(class-average:%dn,tatal/a.num); while(1);md get_file(md a) FILE *fp; int i=1,j; if(fp=fopen(c:INPUT.txt,r)=null) printf(can not open this filen); printf(error); printf(n*n); while(!feof(fp) if
10、(fscanf(fp,%d %s %d %d %d,&a.stui.number,a.stui.name,&a.stui.pro1,&a.stui.pro2,&a.stui.pro3)=EOF) break; i+; fclose(fp); return a;void find_nu(md a,int b)/*按学号查找学生信息*/ int i; for(i=1;i=a.num;i+) if(a.stui.number=b) printf(name:%s,math:%d,english:%d,computer:%dn,a.stui.name,a.stui.pro1,a.stui.pro2,a.
11、stui.pro3); return; printf(n*n);void find_na(md a,char ch)/*按名字查找学生信息*/ int i; for(i=1;i=a.num;i+) if(!strcmp(a.stui.name,ch) printf(number:%d,math:%d,english:%d,computer:%dn,a.stui.number,a.stui.pro1,a.stui.pro2,a.stui.pro3); return; printf(n*n);void fun3(md a)/*学生信息查找函数*/ int x,select; char chmaxs
12、ize1; printf(n*n); do printf(1.find by number:n); printf(2.find by name:n); printf(3.returnn); printf(select(1-3):); scanf(%d,&select);getchar(); printf(n*n); if(select=3) return; else if(select=1)/*按学号查找*/ printf(enter number:); scanf(%d,&x); find_nu(a,x); else if(select=2) printf(enter name:);/*按名
13、字查找*/ gets(ch); find_na(a,ch); while(1);main() md h; int select; FILE *fp; if(fp=fopen(c:INPUT.txt,r)=null) printf(can not open this filen);h=creat(); h=get_file(h);printf(n*n); do printf(1.sortn); printf(2.class-averagen); printf(3.findn); printf(4.exitn); printf(enter select(1-4):); scanf(%d,&select); printf(n*n); if(select=4) printf(OK!n); exit(0); if(select=1) fun1(h); else if(select=2)fun2(h); else if(select=3) fun3(h); while(1);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1