收藏 分享(赏)

综合程序实验.docx

上传人:kaixinyidian 文档编号:12221034 上传时间:2021-11-15 格式:DOCX 页数:9 大小:48.11KB
下载 相关 举报
综合程序实验.docx_第1页
第1页 / 共9页
综合程序实验.docx_第2页
第2页 / 共9页
综合程序实验.docx_第3页
第3页 / 共9页
综合程序实验.docx_第4页
第4页 / 共9页
综合程序实验.docx_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、综合程序实验实验者姓名:何彦辉 学号:1100160105 实验日期:2012/6/9一、实验题目学生信息管理程序二、实验的目的和要求有一个班级的学生(不超过 50人),每个学生的数据包括学号、姓 名、五门课(英语、高数、马哲、计算机、电子技术)的成绩,从键 盘输入此数据,要求按总分从高到低的顺序保存到 cj.dat中,并按按 学号大小从小到大排序打印出没门课的成绩,以及总分最高分的学生 的数据(包括学号、姓名、各门课的成绩、平均分数)。要求:用input函数输入学生数据,用printscore (x)函数打印出 课程x的成绩表;用max函数找出最高分数数据;最高分的学生在 主函数中输出。三、

2、程序设计思路、流程图1、程序设计思路:定义结构体数组来存放学生信息。用 input函数输入学生数据,for循环输入学生数据。再编写printscore (x) 函数打印出课程x的成绩表,其中用了冒泡排序法对学号的排序,还用了 if语句对分数范围的判断,来统计人数以及计算比例,在输出 统计结果。用max函数找出最高分数数据,用for语句遍历一遍, 晒筛选出最高分成绩的学生数据,再返回结构体函数值。文件的打开 以及输入数据到文件中再关闭,其中用了 for语句对文件的输出,使 用了函数fprintf , fopen , fclose等。最后用main函数调用这些 函数,再在main函数里输出最高成绩

3、的学生数据即完成。2、程序流程图:数据的输入n-s图小i大于n (学生人数)scanf ()输入学生数据赋彳1给结构体数组stu口 ,计算总成绩赋值给结构体存放以及平均值存放到结构体stu口中for (i=0;in;i+)for(j=0;jstuT前一项与后一项交换-可编辑修改-对其中一门课程的成绩输出,并进行了统计:for(i=0;in;i+)输出某个科目的数据for(i=0;in;i+)算出总成绩以及每个分数段的人数for(k=0;k5;k+)计算每个分数段的比例输出某科的全班平均分以及每个分数段的人数以及比例筛选最高分的成绩的学生数据:四、 关键部分的源代码定义结构体:struct St

4、udentlong int num;char name20;float grade5;float aver;float total;对最高分的输出:max_stu=Max(p,n);printf(n);printf( 输出最高分的学生数据:n 学号 姓名 英语 高数马哲 计算机 电子技术 n);printf(%-10d%8s%6.2f%6.2f%6.2f%6.2f%6.2fn,max_stu.num,max_stu.name,max_stu.grade0,max_stu.grade1,max_stu.grade2,max_stu.grade3,max_stu.grade4);输入的关键for

5、循环输入学生数据:for(i=0;iN;i+)scanf(%d %s %f %f %f %f %f,&stui.num,stui.name,&s tui.grade0,&stui.grade1,&stui.grade2,&stui.gra de3,&stui.grade4);stui.total=stui.grade0+stui.grade1+stui.grade2+stui.grade3+stui.grade4;stui.aver=stui.total/5.0;冒泡排序算法:使用了两次;一次是对学号的排序,另一次是对总成绩的排序:for (i=0;iN;i+)for(j=0;jstuj.to

6、tal)t=stuj;stuj=stuj+1;stuj+1=t;文件的打开以及输入数据到文件中在关闭的程序代码:fp=fopen(cj.dat,w+);for(i=0;inum,p-name);for(j=0;jgradej);fputs(n,fp);fclose(fp);如下是对其中一门课程的成绩输出, 并进行了统计: 其实可以用一个函数把这些代码包含在里面, 之后再调用五次就可以完成五门课的成绩表输出了.但由于程序已经写好了,不怎么想改动。就免了,其实改过了也很方便, 用个一个形参输入即可控制哪一门的输出。 此处在源程序代码中 copy 了五次。printf( 课程名称 :英语 n);pr

7、int1();for(i=0;i3;i+)printf(%-10ld%5s%8.2fn,stui.num,stui.name,stui.grade0);print2();for(i=0;i=90) rs0+=1;if(stui.grade0=80&stui.grade0=70&stui.grade0=60&stui.grade070)rs3+=1;if(stui.grade060) rs4+=1;for(k=0;k5;k+)blk=100.0*rsk/n;printf(90100分 ( 优 ):占 %6.2f%n,rs0,bl0);printf(8089分(良):4d 占6.2%坨”,网1,皿

8、1);printf(7079 分中) : %4d 占 %6.2f%n,rs2,bl2);printf(6069 分 ( 及 格 ):占 %6.2f%n,rs3,bl3);printf(059 分 ( 不 及 格 ):占 %6.2f%n,rs4,bl4);筛选最高分的成绩的学生数据:for(i=0;iN;i+)if(stuk.totalstui.total) k=i;return stuk;%4d%4d%4d五、实验运行结果的典型画面-可编辑修改-*CUsersAdmi nDe5ktcjp筹建文件夹、Debugwice情痢人手主人教*3i青郡停埔彘学号,姓名,各门课的成靖英语,高配马哲计算机,电

9、子技术KB3B405 林子虎 62 71 75 62.5 7802038491 前明 78.5 72 68 86 64吃睡412唐晓芙82 86 78 75 80.5课程名解关语2030412唐晓至S2.602030405林了成62 .丽203Q401 丽为 78,50全班成绩统小平均分;74/66667 70100 (榆): g占 0 5岫 行8将(良+ ;崎33.33707?4 (中,:1Q 33.33%的笔9分(及其):i占蓊.羽片旷5吩(不加Q ! 咕0.9 课程名称:高数学号 姓名 成绩I2030412唐晓芙86.02039405林亍虎71.02030401 版明 72.全班成统统中

10、平均会75.m9?9 70100 7 (做; 目占0 .佩 MT8吩(良j 11 占 33.33X7r79分(中 j : 2J 66.67 EffTS出速和:咕配巾 屣99(木质格):咕0.00X-可编辑修改-海程名琳马哲证亚 晟奈领3B41Z唐晓芳 78.082B3046S和宁虎75 -002S30401 就响 8.00住班成绩统计!平均分! 73,66666791眄分(优): 8占 0.。鼠80年吩(艮); 噎必.国做 旭*79分(中)2占 66.67m口飞吩(后科)1占33.33k0f 9分(不及检:。占0.00果程名称:计算机ti 还 搬030412唐晓芙75.900304 g5林子虎

11、82.5030401 顾明 86.90由班成绩统计;平均分.81-166667 90100 (优); 口占瓦酶X 80*89 (良 j :2 占 66 .fi7z分(中) ;1 占 33.33/切用汾(及将):占0-00心9分(不及格):。占0.00课程名称:电子技术承喜 冠工 甚930412唐鹿苦80.50030495株千虎78.00030481 领日月 64.00全班成绩统计;平均分 74,16666790i00fr (优U0占 0.00X8089 (H.) :1 占 33.39709 (中);占 33.336”场底将); L 占 33.33HFT分(木及格; 日占0.00X里最管学逮据:

12、高数马哲计算机电子技术Z03011Z,唐晓夫 82.R0 86,0 78.00 75.00 80.56六、实验总结 这个实验真有点难,算法不难,很简单,但是格式的要求等等以及语法会经常出错,这个程序我调试了好久,终于完成了。很高兴,不仅因为程序完成了, 更是因为从中学会了很多, 有很多以前不太注意的,现在大部分发现了。 在今后的进一步学习中应该会有更大的进步。 坚信! 其中一个选择排序导致了无限循环最终什么也没输出, 后来单步调试了挺久知道 (因为过程中有许多问题) , 之后采用了冒泡排序法,同时也知道了什么地方错误, 想用另一种做法试试。 指针的使用应该特别小心。变量在过程中的改变后记得要在次赋值为零。-可编辑修改-THANKS !致力为企业和个人提供合同协议, 策划案计划书,学习课件等等打造全网一站式需求欢迎您的下载,资料仅供参考

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 中学实验

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报