- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
PAGE
PAGE12
《C程序设计》课程实践报告
[学生成绩管理]
设计目标
学生信息包括:学号,姓名,班级、学期、成绩等。
解决问题:提高学生成绩的管理水平和管理效率,为全校职工和学生提供方便、快捷、准确的学生成绩服务。
主要功能:
(1)能按学期、按班级完成对学生成绩的录入、修改。
(2)能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序。
(3)能查询学生成绩,不及格科目及学生名单。
(4)能按班级输出学生各个学期的成绩单。
要求:系统以菜单方式工作。
学期intterm班级intclasses姓名
学期intterm
班级intclasses
姓名charname
学号intnum
成绩intcore[4]
主流程修改单个学生信息 修改
主流程
修改单个学生信息
修改monify
信息录入voidinput
成绩统计voidsort
查询
void
search
学号stu[i].num、班级stu[i].classes,姓名stu[i].name、四门课成绩stu[i].score
能按学号查询单个学生成绩
按班级统计学生的成绩,求学生的总分及平均分,排序
成绩输出voidprint
能按班级,学期输出学生成绩单和不及格科目及学生名单
结构数组structstudent
3.详细设计
整个系统除了主函数外,另外还有5个函数,实现六大功能:输入功能、输出功能、修改功能,查找并显示功能、排序并显示功能。
各个函数分别如下::
(1).定义结构体及宏定义
#includestdlib.h
#includestdio.h
#includestring.h
#defineNUM100
structstudent
{intterm;
intnum;
intclasses;
charname[10];
intscore[4];
intsum;
floataverage;
}stu[NUM];
(2).主菜单函数:voidzcd()
利用无限次循环for(;;)和swithch()进行菜单选择来实现各函数的调用,系统根
据输入的数字选项来调用相应的函数。等执行完每一个函数功能后,按任一键回
到主界面也要通过这个函数来实现!
(3).输入信息函数:voidinput()
利用循环for(;;)输入学生的信息和求各学生的平均分。
(4).排序并显示函数:voidsort()
用循环for(;;)求各学生的平均分,用冒泡法基于平均分对学生进行排序并输出。
(5).查找并显示一个记录:voidsearch()
利用循环for(;;)依次与输入的学号对比,若找到相符的,则输出该生的相关信息;否则提示无此学生。
(6).按学期、按班级输出成绩函数:voidprint()
利用swithch()进行菜单选择来实现print1()和print2()的各自调用,print1()实现按学期输出成绩,print2()实现按班级输出成绩;利用循环for(;;)依次输出不及格学生的名单及成绩。
(7).修改成绩函数:voidmodify()\
利用循环for(;;)依次与输入的学号对比,若找到相符的,则提示要修改的相关信息;否则,提示无此学生。
4.调试与测试
初次遇到这个程序,以为所学知识肯定不够用但是整体框架给出我们后就觉得还是可行的。即通过主函数中的switch选择结构,在通过用户的可视化界面做出选择,通过对switch各个分支的副函数进行编写调试。最终完成程序,并优化。
最后通过多次的使用,对细节进行了优化。增加一些判断语句,让用户了解程序运行状况;增加提示。学c需要的是一颗好奇、细心、勤奋的心。多多练习,多多思考。多了解硬件知识,熟悉并记忆一些小的程序片段。必能有所收获。
5.分析及结论
实现功能:
1、输入功能:可以一次完成无数条信息的输入。
2、输出功能:能按班级输出学生的成绩单。
3、修改功能:完成对单个学生成绩的修改。
4、查找功能:完成对单个学生信息查找,并显示。
5、排序功能:按学生成绩进行排序,并显示。
总结经验:
1、要对系统的功能和要求做出详细的分析,并合理分解任务。
2、把分解出来的子任务,做给一个相对独立的模块。
3、在设计一个模块之前,要简单构想一下总界面的显视情况。
4、针对构想出来的界面进行程序的编写。
6.运行结果
运行开始:
输入成绩记录:
排序并显示:
结束语
通过这次课程设计使我们懂得了理论与实际相结合
文档评论(0)