欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    河南科技大学C语言课程设计设计报告.docx

    • 资源ID:3620068       资源大小:40.20KB        全文页数:18页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    河南科技大学C语言课程设计设计报告.docx

    河南科技大学C语言课程设计设计报告设 计 报 告 学院:电子信息工程学院 班级:自动化101班 姓名:高贤哲 学号:10104010104 一、综合训练的任务及要求 任务:C语言综合训练是为了提高学生综合使用本学期我们所学的C语言知识编写大型程序的能力,了解大型程序设计的开发步骤,以上机为主,每个学生按照要求使用C语言设计一个大型程序,并提供相关的设计文档和源程序,从网站提交。 要求:已知在磁盘上有一个文本文件,此文件存放了一组学生的成绩信息,按照如下格式存放: 1001 stuname1 89 1002 stuname2 78 1003 stuname3 60 1100 stuname100 87 请按照如下要求编写程序: a定义一个结构体类型数组,结构体类型含有学号、姓名和成绩三个域; b将文本文件的内容读入到结构体数组中; c显示成绩最高的人的学号、姓名和成绩; d显示平均成绩、高于、低于和等于平均成绩的人数; e显示成绩为优秀、良好、中等、及格、不及格的人数和所占百比分; f将以上显示的信息存放到stuout.txt文件中。 二、程序实现的功能、算法描述和程序实现的流程图 程序的功能: a 将指定文本文件的内容读入到程序定义的结构体数组中; b 显示成绩最高的人的学号、姓名和成绩; c 显示平均成绩、高于、低于和等于平均成绩的人数; d 显示成绩为优秀、良好、中等、及格、第 1 页 ,共 16 页 设 计 报 告 不及格的人数和所占百分比; 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;定义全局浮点型变量ave S2:以”r”的方式打开文本文件stuin.txt S3:将文本文件stuin.txt的内容读入到结构体数组student100中 S4:score_max=student0.score S5:i=1 S6:若studenti.score>score_max执行S7;否则,执行S8 S7:score_max=studenti.score S8:i=i+1 S9:若i<100,返回S6;否则,执行S10 S10:输出所有studenti.score=score_max的studenti的成员studenti.num、studenti.name和studenti.score到屏幕;以”w” 的方式打开文本文件studenti.score=score_max的stuout.txt,输出所有studenti的成员studenti.num、studenti.name和studenti.score到文本文件stuout.txt,然后关闭文本文件stuout.txt S11:sum=0 S12:i=0 S13:sum=sum+studenti.score S14:i=i+1 S15:若i<100,返回S13;否则,执行S16 S16:ave=sum/100 S17:输出ave到屏幕;以”a” 的方式打开文本文件stuout.txt,输出ave到文本文件stuout.txt,然后关闭文本文件stuout.txt S18:i=0 S19:more_than=0 第 2 页 ,共 16 页 设 计 报 告 S20:equal=0 S21:less_than=0 S22:若studenti.score>ave执行S23;否则,执行S24 S23:more_than=more_than+1,执行S27 S24:若studenti.score=ave执行S25;否则,执行S26 S25:equal=equal+1,执行S27 S26:less_than=less_than+1 S27:i=i+1 S28:若i<100,返回S22;否则,执行S29 S29:输出more_than、equal、less_than到屏幕;以”a” 的方式打开文本文件stuout.txt,输出more_than、equal、less_than到文本文件stuout.txt,然后关闭文本文件stuout.txt S30:i=0 S31:A=0 S32:B=0 S33:C=0 S34:D=0 S35:E=0 S36:若90studenti.score100执行S37;否则,执行S38 S37:A=A+1,执行S46 S38:若80studenti.score89执行S39;否则,执行S40 S39:B=B+1,执行S46 S40:若70studenti.score79执行S41;否则,执行S42 S41:C=C+1,执行S46 S42:若60studenti.score69执行S43;否则,执行S44 S43:D=D+1,执行S46 S44:若0studenti.score59执行S45 S45:E=E+1 S46:i=i+1 S47:若i<100,返回S36;否则,执行S48 第 3 页 ,共 16 页 设 计 报 告 S48:输出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“%”到文本文件stuout.txt,然后关闭文本文件stuout.txt S49:关闭文本文件stuin.txt,stuout.txt,然后算法结束 流程图: 开始定义一个结构体类型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;定义全局浮点型变量ave主函数开始以”r”的方式打开文本文件stuin.txt是打开错误否将文本文件stuin.txt的内容读入到结构体数组student100中max函数输出“can not open stuin.txt”到屏幕average函数average_compare函数rank函数关闭文本文件stuin.txt主函数结束结束第 4 页 ,共 16 页 设 计 报 告 max函数开始score_max=student0.scorei=1i<100是否否studenti.score>score_max是score_max=studenti.scorei=i+1输出“取得最高成绩的学生的信息:”到屏幕i=0否i<100是否studenti.score=score_max是输出studenti.num、studenti.name和studenti.score到屏幕i=i+1save_max函数max函数结束,返回第 5 页 ,共 16 页 设 计 报 告 save_max函数开始以”w”的方式打开文本文件stuout.txt输出“取得最高成绩的学生的信息:”到文本文件stuout.txti=0i<100是否否studenti.score=score_max是输出studenti.num、studenti.name和studenti.score到文本文件stuout.txti=i+1关闭文本文件stuout.txtsave_max函数结束,返回第 6 页 ,共 16 页 设 计 报 告 average函数开始sum=0i=0i<100是否sum=sum+studenti.scorei=i+1ave=sum/100输出ave到屏幕save_average函数average函数结束,返回save_average函数开始以”a”的方式打开文本文件stuout.txt输出ave到文本文件stuout.txt关闭文本文件stuout.txtsave_average函数结束,返回第 7 页 ,共 16 页 设 计 报 告 average_compare函数开始more_than=0equal=0less_than=0i=0i<100是否studenti.score>ave是否studenti.score=ave是more_than=more_than+1equal=equal+1否less_than=less_than+1i=i+1输出more_than到屏幕输出equal到屏幕输出less_than到屏幕save_average_compare函数average_compare函数结束,返回第 8 页 ,共 16 页 设 计 报 告 save_average_compare函数开始以”a”的方式打开文本文件stuout.txt输出more_than到文本文件stuout.txt输出equal到文本文件stuout.txt输出less_than到文本文件stuout.txt关闭文本文件stuout.txtsave_average_compare函数结束,返回save_rank函数开始以”a”的方式打开文本文件stuout.txt输出A和A/100*100“%”到文本文件stuout.txt输出B和B/100*100“%”到文本文件stuout.txt输出C和C/100*100“%”到文本文件stuout.txt输出D和D/100*100“%”到文本文件stuout.txt输出E和E/100*100“%”到文本文件stuout.txt关闭文本文件stuout.txtsave_rank函数结束,返回第 9 页 ,共 16 页 设 计 报 告 rank函数开始A=0B=0C=0D=0E=0i=0i<100是否否90studenti.score100是否80studenti.score89是70studenti.score79否是否60studenti.score69是A=A+1B=B+1C=C+1D=D+1E=E+1i=i+1输出A和A/100*100“%”到屏幕输出B和B/100*100“%”到屏幕输出C和C/100*100“%”到屏幕输出D和D/100*100“%”到屏幕输出E和E/100*100“%”到屏幕save_rank函数rank函数结束,返回第 10 页 ,共 16 页 设 计 报 告 三、程序的调试 调试过程中遇到fread函数使用错误,导致文件读取失败。后改用fscanf函数,解决了文件读取问题。 变量的运用出现了一些问题。最后把多个函数需要用到的需要保存原值的变量设为了全局变量。 四、课程设计总结与体会 通过这次课程设计,我对循环结构控制、函数调用、结构体、文件操作更加熟悉,对C语言程序设计有了更加深入的认识,锻炼了编写大型程序的能力,了解了大型程序设计的开发步骤。 C语言主体应是由函数调用构成的,应尽可能把相对独立的功能单独用一个函数来编写,这样可以提高程序的可读性,也能降低编写大型程序的难度,减少编程出错的可能性。 第 11 页 ,共 16 页 设 计 报 告 源代码: #include<stdio.h> struct student int 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 第 12 页 ,共 16 页 void save_max; score_max=student0.score; for(i=0;i<100;i+) if(studenti.score>score_max) score_max=studenti.score; printf("取得最高成绩的学生的信息:n"); for(i=0;i<100;i+) if(studenti.score=score_max) printf("%dt%st%dn",studenti.num,studenti.name,studenti.score); printf("n"); save_max; 设 计 报 告 FILE *fp2; fp2=fopen("stuout.txt","w"); fputs("取得最高成绩的学生的信息:n",fp2); for(i=0;i<100;i+) if(studenti.score=score_max) fprintf(fp2,"%dt%st%dn",studenti.num,studenti.name,studenti.score); fclose(fp2); void average void save_average 第 13 页 ,共 16 页 void save_average; sum=0; for(i=0;i<100;i+) sum+=studenti.score; ave=sum/100.0; printf("平均成绩为:%fnn",ave); 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 第 14 页 ,共 16 页 void save_average_compare; more_than=0; equal=0; less_than=0; for(i=0;i<100;i+) printf("高于平均成绩的学生人数:%dn",more_than); printf("等于于平均成绩的学生人数:%dn",equal); printf("低于平均成绩的学生人数:%dnn",less_than); save_average_compare; if(studenti.score>ave) more_than+; else if(studenti.score=ave) equal+; else less_than+; 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 void save_rank; A=B=C=D=E=0; for(i=0;i<100;i+) printf("取得“优秀”的学生人数:%dt%.1f%n",A,A/100.0*100); 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; if(studenti.score>=90)&&(studenti.score<=100) A+; else if(studenti.score>=80)&&(studenti.score<=89) B+; else if(studenti.score>=70)&&(studenti.score<=79) C+; else if(studenti.score>=60)&&(studenti.score<=69) D+; else E+; FILE *fp2; fp2=fopen("stuout.txt","a"); fprintf(fp2,"取得“优秀”的学生人数:%dt%.1f%n",A,A/100.0*100); 第 15 页 ,共 16 页 设 计 报 告 fprintf(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) for(i=0;i<100;i+) fscanf(fp1,"%d%s%d",&studenti.num,studenti.name,&studenti.score); printf("can not open stuin.txtn"); exit(0); max; average; average_compare; rank; fclose(fp1); 第 16 页 ,共 16 页

    注意事项

    本文(河南科技大学C语言课程设计设计报告.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开