- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE
3 -
目录
一、问题描述 1
二、基本要求 1
三、系统分析和设计 2
四、结构图 2
五、流程图 2
六、源程序代码 6
七、测试数据 8
八、软件说明 11
九、小结与体会 11
十、参考资料 11
C语言课程设计实验报告
一 、问题描述
编辑一个学生成绩统计软件
二 、基本要求
每条记录由学号、姓名、若干门课程的成绩组成;
能计算每个学生的总分和平均分并显示;
能按平均分统计各分数段的人数,并以分布图显示,如右图所示。
在此基础上,可进行文件操作。
I
I
I
I
I I
I
I I
I I
I
I I
I
I
I
I
60
70
80
90
≤100
三 、系统分析和设计
函数的设计,其最终目的是要实现所需要的功能。本例中,是用main函数调用两个子函数来实现的!
1)文件的建立:
要想实现对学生成绩的统计,首先要建立一个文件用来存放学生信息,要用到FILE文件指针fp1=fopen(file1,w+)
2)程序的设计:
学生的信息放在结构体数组struct student_score s[N]中。
通过for循环,调用子函数getdata,从键盘接收学生信息(num,name,score[0],score[1],score[2],score[3]),并计算总分与平均分,返回学生信息return st到调用处。用fprintf函数向文件中逐一写入学生的信息,通过rewend(fp1)函数使文件指针回到文件头,用fscanf读学生信息,并显示在屏幕上。同时根据所读学生信息,统计各分数段的人数s1++,s2++,s3++,s4++,s5++,然后调用一个子函数putsgraph用来输出图表!
四、结构图
主函数
struct student_score getdata(struct student_score st
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
#define N 5
#includestdio.h
#includestdlib.h
struct student_score s[N]
fp1=fopen(file1,w+)开始
fp1=fopen(file1,w+)
开始
真
真
i
i=0
iN
s[i]=getdata(s[i],i);
从键盘输入学生信息并计算总分与平均分
假
返回学生信息,i++;
i=0
iN
fprintf向文件输入学生信息:学号,各门成绩,总分,平均分
真
i++;
假
Rewind(fp1)
i=0
iN
fscanf读取学生信息
假
fclose(fp1);
printf学生num,name,total,aver.
并用s1++,s2++,s3++,s4++,s5++.
统计各分数段人数
i++
调用putsgraph(s1,s2,s3,s4,s5);
char graph[
char graph[16][80];
i=0
i16
真
j=0
j=0
j79
graph[i][79]=\0;
i++
假
真
graph[i][j]= ;
j++
假
j79
graph[11][j]=-;
graph[0][j]=-;
graph[15][j]=-;
真
j++;
假
给graph[12][] 赋值:
60 70 80 90 =100
for(i=10;i(10-sa);i--) graph[i][4]=I;
for(i=10;i(10-sb);i--) graph[i][8]=I;
for(i=10;i(10-sc);i--) graph[i][12]=I;
for(i=10;i(10-sd);i--) graph[i][16]=I;
for(i=10;i(10-se);i--) graph[i][20]=I;
将柱状图信息赋给graph[i]
i=0
i16
puts(graph[i]);
假
结束
i++;
六、源程序代码
#define N 8
#includestdio.h
#includestdlib.h
struct student_score
{
long num;
char name[20];
float score[4];
float total;
float aver;
}s[N];
void main()
{
FILE *fp1;
struct student_score getdata(struct student_score st,int x);
int putsg
您可能关注的文档
最近下载
- 教师基本能力—阅读理解能力.pptx VIP
- 茶艺师岗位试题及答案.docx
- (正式版)B-T 176-2017 水泥化学分析方法.docx VIP
- 鱼菜共生商业计划书.docx VIP
- 剑桥少儿英语二级上unit1.ppt VIP
- Module 3 Unit 1 They're all my favourite festivals!(课件)-五年级英语同步备课(外研版一起).pptx VIP
- 教师资格考试基本能力第一节阅读理解能力演示教学.ppt VIP
- 2025第三届全国技能大赛海南省选拔赛-餐厅服务(国赛精选)项目技术文件.pdf VIP
- 麻醉药品和精神药品培训试题及答案.docx VIP
- 导视标识标牌系统制作安装方案(全面标准版).pdf VIP
文档评论(0)