1、完成日期 2011/12/29 一、 分析设计与说明分别建立两个数据文件文件1(bjcj.txt)用于存放学生成绩;文件2(kcxf.txt)用于存放课程学分;文件3 (xsxx、txt)用于存放学生信息。程序设计思想(1)学生成绩管理系统1读入原始数据并显示(将其读入另外的“grcj.txt”中);2编写函数用于计算平均分及名次(将其读入另外的”bjnpm.txt”中);每个学生各科分数乘以相应的学分并相加除以学分总和;先令每个学生的名次都是1,在把一个学生的加权平均分与其他的所有学生的进行比较,遇到一个比该学生平均分高的,该学生的名次加1。循环依次得出全班人的名次;并将这种结果输出到文本文
2、件bjnpm.txt3编写函数计算分数段人数(将其读入另外的”gkpjf.txt”中);先令每一个分数段(=90;=80;=70;=60;60)的人数都是0,然后利用循环结构,遇到一个在某个分数段的成绩,那个分数段的计数变量加1,最后可得每门科目每个分数段人数;并将这种结果输出到文本文件gkpjf.txt4利用循环结构,将所有人的同一科成绩相加,再除以总人数,课程平均.txt中;编写函数统计不及格情况(将其读入另外的”bjgxs.txt”中) ;5利用循环,将每个人的各科成绩和60相比较,若小于60,则输出名单 (学号、姓名、不及格课程名称、课程学分及成绩)结果存放在文本文件:bujige.t
3、xt6 编写函数输出优秀学生(将其读入另外的”优秀干部.txt”中);1平均分90,2.名次在本班前三名,3.平均分85,并且至少有一门课的成绩为100分,4平均分85,并且至少有二门课的成绩为90分。将上述条件作为逻辑或的判别式,找到符合条件的所有学生,输出并同时存放到优秀干部.txt中;程序实现功能1)学生成绩管理系统1.班级成绩单查看见文件(bjcj.txt);2.课程学分详情见(kcxf.txt);3.班级成绩排名表单(bjnpm.txt);4.成绩分数分布段见(gkpjf.txt)5.课程平均分见(bjxx.txt)6.不及格学生的名单(bjgxs.txt);7.优秀生的名单(优秀干
4、部.txt);8.退出。(3).程序框一 主菜单功能模块图二 一级菜单结构图9. 返回上级菜单3. 计算分数段人数作分布图返回上一级菜单大物C语言制图英语数学四.源程序清单 #include#includemath.hstring.h#define M 30struct studentlong num;char name20;float score5;float aver;int row;int p1;int p2;stuM;struct chengjiint num;float fen;course5;struct informachar sex3; int age; char poisit
5、ion20;inforM;struct fenduanint p;int q;int r;int s;int l;count5; void main() int section1(); int section2(); int section3(); /*主菜单*/ char ch1; system(graftabl 936); do clrscr(); /*清屏*/ printf(nnnnnnnnn * C语言程序设计上机实习 *n -nn 1 学生成绩管理nn 2 破译密码nn 3 组成大字符nn 4 退 出nn 输入选择序号n while( (ch1=getchar(), ch1!=1&
6、ch1!2 &ch1!34 ) ; switch(ch1) case : section1(); break; case section2();case section3(); exit(0); while(1); int section1() /*第1个2级菜单*/ char ch21; void function1_1(); void function1_2(); void function1_3(); void function1_4(); void function1_5(); void function1_6(); void function1_7();nnnnnnnnnn *学 生
7、 成 绩 管 理 系 统*n -nn 1. 读入原始数据并显示 2. 计算平均分及名次nn 3. 输出课程平均分和各分数段人数 4 输出男生和女生课程平均成绩nn 5. 统计不及格情况 6. 输出优秀学生nn 7. 输出优秀学生干部 8. 返回上级菜单nn while(ch21=getchar(),ch21!ch21!5678) ; switch(ch21) function1_1(); function1_2(); function1_3(); function1_4(); function1_5(); function1_6(); function1_7(); return(0);int
8、section2() /*第2个2级菜单*/ char ch22; void function2_1();printf( *破译密码*n -n 1. 运行nn 2. 返回上级菜单nn while(ch22=getchar(), ch22!ch22!); switch(ch22) function2_1();int section3() /*第3个2级菜单*/ char ch23; void function3_1(); *组成大字符*n -n while(ch23=getchar(),ch23!ch23! switch(ch23) function3_1();void function1_1()int i,j; FILE*fp,*fp1;char str100; if(fp=fopen(bjcj.txt,r)=NULL) printf(connot open this filenif(fp1=fopen(grcj.txtwprintf(exit(0);fgets(str,100,fp);for(i=0;iM;i+) fscanf(fp,%ld%s,&stui.num,stui.name); for(j=0;j5;j+)%fstui.scorej);序号 姓名 英语 数学 大学物理 机械制图 C程序设计fprintf(fp1,n if(i%10=0) getch();%-11
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1