河南科技大学C语言课程设计报告设计报告(含源代码)

上传人:yh****1 文档编号:135599815 上传时间:2020-06-17 格式:DOC 页数:16 大小:2.06MB
返回 下载 相关 举报
河南科技大学C语言课程设计报告设计报告(含源代码)_第1页
第1页 / 共16页
河南科技大学C语言课程设计报告设计报告(含源代码)_第2页
第2页 / 共16页
河南科技大学C语言课程设计报告设计报告(含源代码)_第3页
第3页 / 共16页
河南科技大学C语言课程设计报告设计报告(含源代码)_第4页
第4页 / 共16页
河南科技大学C语言课程设计报告设计报告(含源代码)_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《河南科技大学C语言课程设计报告设计报告(含源代码)》由会员分享,可在线阅读,更多相关《河南科技大学C语言课程设计报告设计报告(含源代码)(16页珍藏版)》请在金锄头文库上搜索。

1、设 计 报 告设 计 报 告学院:电子信息工程学院 班级:自动化101班 姓名:高贤哲 学号:10104010104一、综合训练的任务及要求任务:C语言综合训练是为了提高学生综合使用本学期我们所学的C语言知识编写大型程序的能力,了解大型程序设计的开发步骤,以上机为主,每个学生按照要求使用C语言设计一个大型程序,并提供相关的设计文档和源程序,从网站提交。要求:已知在磁盘上有一个文本文件(stuin.txt),此文件存放了一组学生的成绩信息,按照如下格式存放:1001 stuname1 891002 stuname2 781003 stuname3 601100 stuname100 87请按照如

2、下要求编写程序:a定义一个结构体类型数组,结构体类型含有学号、姓名和成绩三个域;b将文本文件的内容读入到结构体数组中;c显示成绩最高的人的学号、姓名和成绩(如果有相同的人要全部显示);d显示平均成绩、高于、低于和等于平均成绩的人数;e显示成绩为优秀(90100)、良好(8089)、中等(7079)、及格(6069)、不及格(059)的人数和所占百比分;f将以上显示的信息存放到stuout.txt文件中。二、程序实现的功能、算法描述和程序实现的流程图程序的功能:a将指定文本文件的内容读入到程序定义的结构体数组中;b显示成绩最高的人的学号、姓名和成绩(如果有相同的人全部显示);c显示平均成绩、高于

3、、低于和等于平均成绩的人数;d显示成绩为优秀(90100)、良好(8089)、中等(7079)、及格(6069)、不及格(059)的人数和所占百分比;e将以上显示的信息存放到指定文件中。算法描述:S1:定义一个结构体类型struct student数组student100,结构体类型struct student含有int num、char name20、float score三个域;定义全局整型变量i,score_max,sum,more_than,equal,less_than,A,B,C,D,E;定义全局浮点型变量aveS2:以”r”的方式打开文本文件stuin.txtS3:将文本文件st

4、uin.txt的内容读入到结构体数组student100中S4:score_max=student0.scoreS5:i=1S6:若studenti.scorescore_max执行S7;否则,执行S8S7:score_max=studenti.scoreS8:i=i+1S9:若i100,返回S6;否则,执行S10S10:输出所有studenti.score=score_max的studenti的成员studenti.num、studenti.name和studenti.score到屏幕;以”w” 的方式打开文本文件stuout.txt,输出所有studenti.score=score_max

5、的studenti的成员studenti.num、studenti.name和studenti.score到文本文件stuout.txt,然后关闭文本文件stuout.txtS11:sum=0S12:i=0S13:sum=sum+studenti.scoreS14:i=i+1S15:若iave执行S23;否则,执行S24S23:more_than=more_than+1,执行S27S24:若studenti.score=ave执行S25;否则,执行S26S25:equal=equal+1,执行S27S26:less_than=less_than+1S27:i=i+1S28:若i100,返回S2

6、2;否则,执行S29S29:输出more_than、equal、less_than到屏幕;以”a” 的方式打开文本文件stuout.txt,输出more_than、equal、less_than到文本文件stuout.txt,然后关闭文本文件stuout.txtS30:i=0S31:A=0S32:B=0S33:C=0S34:D=0S35:E=0S36:若90studenti.score100执行S37;否则,执行S38S37:A=A+1,执行S46S38:若80studenti.score89执行S39;否则,执行S40S39:B=B+1,执行S46S40:若70studenti.score7

7、9执行S41;否则,执行S42S41:C=C+1,执行S46S42:若60studenti.score69执行S43;否则,执行S44S43:D=D+1,执行S46S44:若0studenti.score59执行S45S45:E=E+1S46:i=i+1S47:若i100,返回S36;否则,执行S48S48:输出A,B,C,D,E和A/100*100“%”, B/100*100“%” ,C/100*100“%”, D/100*100“%”, E/100*100“%”到屏幕;以”a” 的方式打开文本文件stuout.txt,输出A,B,C,D,E和A/100*100“%”, B/100*100“

8、%” ,C/100*100“%”, D/100*100“%”, E/100*100“%”到文本文件stuout.txt,然后关闭文本文件stuout.txtS49:关闭文本文件stuin.txt,stuout.txt,然后算法结束流程图:三、程序的调试调试过程中遇到fread函数使用错误,导致文件读取失败。后改用fscanf函数,解决了文件读取问题。变量的运用出现了一些问题。最后把多个函数需要用到的需要保存原值的变量设为了全局变量。四、课程设计总结与体会通过这次课程设计,我对循环结构控制、函数调用、结构体、文件操作更加熟悉,对C语言程序设计有了更加深入的认识,锻炼了编写大型程序的能力,了解了大

9、型程序设计的开发步骤。C语言主体应是由函数调用构成的,应尽可能把相对独立的功能单独用一个函数来编写,这样可以提高程序的可读性,也能降低编写大型程序的难度,减少编程出错的可能性。源代码:#includestruct studentint num;char name11;int score;student100;int i,score_max,sum,more_than,equal,less_than,A,B,C,D,E;float ave;void max()void save_max();score_max=student0.score;for(i=0;iscore_max)score_max

10、=studenti.score;printf(取得最高成绩的学生的信息:n);for(i=0;i100;i+)if(studenti.score=score_max)printf(%dt%st%dn,studenti.num,studenti.name,studenti.score);printf(n);save_max();void save_max()FILE *fp2;fp2=fopen(stuout.txt,w);fputs(取得最高成绩的学生的信息:n,fp2);for(i=0;i100;i+)if(studenti.score=score_max)fprintf(fp2,%dt%s

11、t%dn,studenti.num,studenti.name,studenti.score);fclose(fp2);void average()void save_average();sum=0;for(i=0;i100;i+)sum+=studenti.score;ave=sum/100.0;printf(平均成绩为:%fnn,ave);save_average();void save_average()FILE *fp2;fp2=fopen(stuout.txt,a);fputs(n平均成绩为:,fp2);fprintf(fp2,%fnn,ave);fclose(fp2);void a

12、verage_compare()void save_average_compare();more_than=0;equal=0;less_than=0;for(i=0;iave)more_than+;else if(studenti.score=ave)equal+;else less_than+;printf(高于平均成绩的学生人数:%dn,more_than);printf(等于于平均成绩的学生人数:%dn,equal);printf(低于平均成绩的学生人数:%dnn,less_than);save_average_compare();void save_average_compare()FILE *fp2;fp2=fopen(stuout.txt,a);fprintf(fp2,高于平均成绩的学生人数:%dn,more_than);fprintf(fp2,等于平均成绩的学生人数:%dn,equal);fprintf(fp2,低于平均成绩的学生人数:%dnn,less_than);fclose(fp2);void rank()void save_rank();A=B=C=D=E=0;for(i=0;i=90)&(studenti.score=80)&(studenti.score=70)&(studenti.score=79)C+;else if(studenti.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号