- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言成绩管理系统.doc
目 录
1前言 2
2需求分析 3
2.1要求 3
2.2任务 3
2.3运行环境 3
2.4开发工具 4
3概要设计 5
3. 1系统流程图如3.1. 5
3.2 查找流程图如3.2. 5
4详细设计 5
4.1分析和设计 6
4. 2 具体代码实现. 8
4. 3程序运行结果. 13
5课程设计的总结与体会 15
参考文献 16
致 谢 17
1前言
随着科学技术的不断书展,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。使用计算机对学校学生成绩统计,具有对于手工统计所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生成绩统计的效率。
为此,我们编写了学生成绩统计系统。本系统共实现四大功能,包括:
随机产生学生的学号、三门成绩、姓名;
输出学生的数据;
3、计算三门科目的平均成绩和每个学生的总成绩;
4、用平均数找出最高成绩和最低成绩输出他们的信息。
本程序应用了rand、函数,结构体,共用体,函数,数组,for循环,switch语句等相关内容。
由于自己能力有限,难免有不足的地方,恳请老师耐心指导,提出建议。
2需求分析
2.1要求
(1)用c语言实现程序设计;利用结构体进行相关信息处理;3)画出成绩统计的系统流程图;
(4)系统的各个功能模块要求用函数的形式实现;界面友好(良好的人机互交),程序要有注释。(包括、C语言
3概要设计
3. 1系统流程图如3.1.
3.2 查找流程图如3.2.
4详细设计
4.1分析和设计
在程序的开头部分用宏定义,因为学生人数为10名,所以N的宏定义为10。
#define N 10
再定义结构体类型和全局的结构体数组,用来存放学生的信息。
struct student
{
int number;
char name[N];
int score[3]; /*三门成绩*/
};
struct student studata[N];
用随机函数Random()来随机产生学生信息放在name[]字符数组和score[]数组中。
void GetName(char name[])
{
int len, i=0;
len=Random(3,10); /*用随机函数产生学生姓名字母的长度3-10*/
name[i]=Random(65,90); /*随机产生学生姓名的首个大写字母*/
for (i=1; ilen; i++)
name[i]=Random(97,122); /*随机产生学生姓名的小写字母*/
name[i]=\0;
}
GetName(studata[i].name);
studata[i].score[0]=Random(60,100);
studata[i].score[1]=Random(60,100);
studata[i].score[2]=Random(60,100);
}
} /*随机产生每个学生3门成绩的分数*/
自定义函数PrintData(),里面包括printf()输出函数,用来输出10名学生随机产生的姓名和三门成绩。
void PrintData()
{
int i;
for (i=0; iN; i++)
{
printf(Student %d:\n, studata[i].number);
printf(Name: %s\n, studata[i].name);
printf(Scores of three subjects: %d, %d, %d\n, studata[i].score[0], studata[i].score[1], studata[i].score[2]);
}
}
查找函数FindPeak(),用来查找总分最高的学生和总份最低的学生,并且输出他们的信息,包括姓名,学号,三门成绩,总分和平均分,具体分析如图3.2。
void FindPeak()
{
int maxbound=0, minbound=0;
int max=0, min=300; /*将最高分赋值为0,因为每个同学的总分总会大于0,所以一定不会出现找不到的情况;将最低分赋值为300,因为总分最高不会超过300,所以不会出现找不到的情况*/
int sum=0, i;
for (i=0; iN; i++)
{
sum=studata[i].score[0]+studata[i].score[1]+studata[i].score[2];
if (summax)
{
maxbound=i;
max=su
您可能关注的文档
最近下载
- 2024年广东省初中学业水平考试模拟地理试卷(一)课件.pptx VIP
- 广州洪德巷历史文化街区保护利用规划.pdf
- 广州市人民南历史文化街区保护利用规划(文本+图纸).pdf VIP
- 关于烹饪的策划书3.pptx
- WALL·E《机器人总动员(2008)》完整中英文对照剧本.pdf VIP
- LDT 99.13-2008 建设工程劳动定额市政工程-维修养护工程.docx
- 实验报告之spss频数分析.docx VIP
- 新教科版科学小学科学五年级下册全册教案(表格式,可打印).docx
- 2022年新改版教科版五年级上册科学全册教案教学设计(新整理版).doc
- 某小区高楼变频恒压供水系统设计.docx
文档评论(0)