




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录一、问题描述1二、基本要求1三、系统分析和设计2四、结构图2五、流程图2六、源程序代码6七、测试数据8八、软件说明11九、小结与体会 11十、参考资料 11C语言课程设计实验报告一 、问题描述编辑一个学生成绩统计软件二 、基本要求1) 每条记录由学号、姓名、若干门课程的成绩组成;2) 能计算每个学生的总分和平均分并显示;3) 能按平均分统计各分数段的人数,并以分布图显示,如右图所示。4) 在此基础上,可进行文件操作。IIII III II III IIIII60708090100三 、系统分析和设计 函数的设计,其最终目的是要实现所需要的功能。本例中,是用main函数调用两个子函数来实现的!1)文件的建立:要想实现对学生成绩的统计,首先要建立一个文件用来存放学生信息,要用到FILE文件指针fp1=fopen(file1,w+)2)程序的设计:学生的信息放在结构体数组struct student_score sN中。通过for循环,调用子函数getdata,从键盘接收学生信息(num,name,score0,score1,score2,score3),并计算总分与平均分,返回学生信息return st到调用处。用fprintf函数向文件中逐一写入学生的信息,通过rewend(fp1)函数使文件指针回到文件头,用fscanf读学生信息,并显示在屏幕上。同时根据所读学生信息,统计各分数段的人数s1+,s2+,s3+,s4+,s5+,然后调用一个子函数putsgraph用来输出图表! 四、结构图主函数struct student_score getdata(struct student_score st ,int x)int putsgraph(int sa,int sb, int sc,int sd,int se)调用返回返回调用五、流程图#define N 5#include#includestruct student_score sNfp1=fopen(file1,w+)开始真i=0iNsi=getdata(si,i);从键盘输入学生信息并计算总分与平均分假返回学生信息,i+;i=0iNfprintf向文件输入学生信息:学号,各门成绩,总分,平均分真i+;假Rewind(fp1)i=0iNfscanf读取学生信息假fclose(fp1);printf学生num,name,total,aver.并用s1+,s2+,s3+,s4+,s5+.统计各分数段人数i+调用putsgraph(s1,s2,s3,s4,s5);char graph1680;i=0i16真j=0j=0j79graphi79=0;i+假真graphij= ;j+假j79graph11j=-;graph0j=-;graph15j=-;真j+;假给graph12 赋值:60 70 80 90 (10-sa);i-) graphi4=I;for(i=10;i(10-sb);i-) graphi8=I;for(i=10;i(10-sc);i-) graphi12=I;for(i=10;i(10-sd);i-) graphi16=I;for(i=10;i(10-se);i-) graphi20=I;将柱状图信息赋给graphii=0i16puts(graphi);假结束i+;六、源程序代码#define N 8#include#includestruct student_scorelong num;char name20;float score4;float total;float aver;sN;void main()FILE *fp1;struct student_score getdata(struct student_score st,int x);int putsgraph(int sa, int sb,int sc,int sd,int se);int i,s1=0,s2=0,s3=0,s4=0,s5=0;if(fp1=fopen(file1,w+)=NULL)printf(cannot open file %sn,fp1);exit(0);for(i=0;iN;i+)si=getdata(si,i);for(i=0;iN;i+)fprintf(fp1,%-9ld%-10s%10.1f%10.1f%10.1f%10.1f%10.1f%10.1fn,si.num,,si.score0,si.score1,si.score2,si.score3,si.total,si.aver);rewind(fp1);long num;char name20;float e,f,g,h,total,aver;for(i=0;iN;i+)fscanf(fp1,%ld%s%f%f%f%f%f%fn,&num,name,&e,&f,&g,&h,&total,&aver);printf(%-9ld%-20s%10.1f%10.1fn,num,name,total,aver);if(aver60) s1+;else if(aver70) s2+;else if(aver80) s3+;else if(aver90) s4+;else if(aver=100) s5+;fclose(fp1);putsgraph(s1,s2,s3,s4,s5);struct student_score getdata(struct student_score st,int x) int y; printf(nEnter student%ds num:n,x+1); scanf(%ld,&st.num); getchar(); printf(nEnter name:n); gets(); st.total=0; printf(nEnter 4 scores:n); for(y=0;y4;y+) scanf(%f,&st.scorey); getchar(); st.total+=st.scorey; st.aver=st.total/4; return st; int putsgraph(int sa, int sb,int sc,int sd,int se) int i,j; char graph1680; for(i=0;i16;i+) for(j=0;j79;j+) graphij= ; graphi79=0; for(j=0;j79;j+) graph11j=-; graph0j=-; graph15j=-; for(j=3;j=15;j+=4) graph12j=; graph12j+2=0; graph124=6; graph128=7; graph1212=8; graph1216=9; graph1219=(10-sa);i-) graphi4=I; for(i=10;i(10-sb);i-) graphi8=I; for(i=10;i(10-sc);i-) graphi12=I; for(i=10;i(10-sd);i-) graphi16=I; for(i=10;i(10-se);i-) graphi22=I; for(i=0;i16;i+) puts(graphi); 七、测试数据 七 软件说明本程序采用宏定义方式定义学生人数,增加程序的通用性,文件的路径为fp1=fopen(file1,w+),当运行结束后,可在dos状态下,本程序基本实现了要求的内容: 能计算每个学生的总分和平均成绩,能按平均分统计各分数段的学生人数,并以分布图显示,在此基础上可以进行文件操作。 八 小结与体会 此次课程设计,初步锻炼了我运用所学基础知识解决实际问题的能力,掌握软件开发的基本过程和基本方法 ,培养在软件开发中相互合作的团队意识。通过此次课程设计,我对C语言有了更深入的了解,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 部编人教版八年级语文教学计划与评优方案
- 金融行业网络安全工作自查报告范文
- 四年级数学在线评测计划
- 美术创作工作坊教学计划
- 行业协会教师信息技术能力提升计划
- 2024-2025学年度高一英语教学计划概述
- 软件开发团队工作任务分配计划
- 儿童阅读启蒙:古代神话故事计划
- 四年级语文上册创新阅读推广计划
- 中草药研发合同范例
- (市质检)莆田市2025届高中毕业班第四次教学质量检测试卷语文试卷(含答案解析)
- 瓷砖空鼓装修合同协议
- 中职生职业生涯课件
- 烟台2025年烟台市蓬莱区“蓬选”考选90人笔试历年参考题库附带答案详解
- 2025年浙江省生态环境厅所属事业单位招聘考试备考题库
- 入团考试测试题及答案
- 【语文试卷+答案 】上海市崇明区2025届高三第二学期第二次模拟考试(崇明二模)
- 化妆品公司生产部奖惩管理制度
- 家长近视防控课件
- 2025年湘教版初中地理七年级下册重点知识点梳理与归纳
- 劳务公司与公司合作协议书
评论
0/150
提交评论