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

上传人:精*** 文档编号:865067 上传时间:2023-10-02 格式:DOC 页数:16 大小:1.93MB
下载 相关 举报
河南科技大学C语言课程设计设计报告(含源代码).doc_第1页
第1页 / 共16页
河南科技大学C语言课程设计设计报告(含源代码).doc_第2页
第2页 / 共16页
河南科技大学C语言课程设计设计报告(含源代码).doc_第3页
第3页 / 共16页
河南科技大学C语言课程设计设计报告(含源代码).doc_第4页
第4页 / 共16页
河南科技大学C语言课程设计设计报告(含源代码).doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

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

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

3、79)、及格(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:将文本文件stuin.txt的内容读入到结构体数组student100中S4:score_max=st

4、udent0.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的studenti的成员studenti.num、studenti.name和stude

5、nti.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,返回S22;否则,执行S29S29:输出more_than、equal、less_than到屏幕

6、;以”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.score79执行S41;否则,执行S42S41:C=C+1,执行S46S42:若60student

7、i.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“%” ,C/100*100“%”, D/100*100“%”, E/100*100“%”

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

9、函数来编写,这样可以提高程序的可读性,也能降低编写大型程序的难度,减少编程出错的可能性。源代码:#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=studenti.score;printf(取得最高成绩的学生的信息:n);for(i

10、=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%st%dn,studenti.num,studenti.name,studenti.sco

11、re);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 average_compare()void save_average_compare();

12、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(fp

13、2,高于平均成绩的学生人数:%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=60)&(studenti.score=69)D+;else E+;printf(取得“优秀”的学生人数:%dt%.1f%n,A,A/100.0*1

14、00);printf(取得“良好”的学生人数:%dt%.1f%n,B,B/100.0*100);printf(取得“中等”的学生人数:%dt%.1f%n,C,C/100.0*100);printf(取得“及格”的学生人数:%dt%.1f%n,D,D/100.0*100);printf(取得“不及格”的学生人数:%dt%.1f%n,E,E/100.0*100);save_rank();void save_rank()FILE *fp2;fp2=fopen(stuout.txt,a);fprintf(fp2,取得“优秀”的学生人数:%dt%.1f%n,A,A/100.0*100);fprintf(

15、fp2,取得“良好”的学生人数:%dt%.1f%n,B,B/100.0*100);fprintf(fp2,取得“中等”的学生人数:%dt%.1f%n,C,C/100.0*100);fprintf(fp2,取得“及格”的学生人数:%dt%.1f%n,D,D/100.0*100);fprintf(fp2,取得“不及格”的学生人数:%dt%.1f%n,E,E/100.0*100);fclose(fp2);void main()FILE *fp1;if(fp1=fopen(stuin.txt,r)=NULL)printf(can not open stuin.txtn);exit(0);for(i=0;i100;i+)fscanf(fp1,%d%s%d,&studenti.num,studenti.name,&studenti.score);max();average();average_compare();rank();fclose(fp1);第 16 页 ,共 16 页

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

当前位置:首页 > 技术资料 > 课程设计

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922