c语言——课程设计实验报告网页未完版
中南大学
C语言程序设计实践报告
学生姓名 木雕小象
题 目 学 生 成 绩 管 理 系 统
指导教师 × × ×
学 院 信 息 科 学 与 工 程 学 院
专业班级 电 气 0900 班 完成时间 2010 年 7 月 8 日
系统描述
功能模块结构
数据结构设计
主要模块的算法说明
运行结果
课程设计总结
附录(源代码)
一、系统描述
1. 学生成绩管理系统对日常学生的基本成绩信息进行管理,能实现对学生多种信息的存储,可以对多种数据进行各种各样的操作。 2. 管理系统首先能实现数据的输入。学生的各种信息(比如:班级,学号,姓名,性别,年龄,选修课程编号,名称,考试成绩,平时成绩,综合成绩)能正确的输入,从而可以进行处理。 3. 待所有学生信息输入以后,如果发现输入有误或者需要修改一些学生的信息,可以利用修改函数进行修改,并且可以修改任意需要修改的信息。
4. 同时当学生管理系统需要进行学生的添加时(比如:新生转学时),利用添加函数能及时的补充所需要的信息。
5. 当所需的学生信息正确而完整的输入后,该信息系统可以进行信息的查询(本系统可按学生姓名和学号查询),当输入正确的查询信息后,该管理系统可以显示出该生的所有信息。当输入信息不正确时,系统会提示错误,并允许重新输入。
6. 此系统同时可以进行信息的删除,当有学生退学或休学时,利用删除函数可以删除特定的学生信息,从而减少冗余的信息。 7. 该系统可以显示输入的所有信息。
8. 利用该系统可以同时计算每个同学的平均成绩,并对所有的学生按平均成绩高低进行排序,同时输出排序后的成绩表。 9. 此系统同时还可以列出不及格学生的学号,姓名,课程和成绩,便于进行统一的管理。
二、功能模块结构
1. 该系统的模块设计清晰,各模块的算法简单,高效,整个系统由主函数调用各个模块而组成。可以把函数分为数据录入模块,数据修改模块,数据添加模块,数据查询模块(可分文姓名和学号查询),数据删除模块,数据统计模块(成绩显示模块,成绩计算及排序模块,成绩分类模块),文件保存模块共七大模块,其中主函数中包含界面模块 2. 主要模块的结构图如下:
模块功能描述
1. 主控模版:主控模版是整个系统的模块交汇点,使用者使用系统时先进入主控模版,通过主控模版可以调用任意的模块,达到预期的功能。
2. 数据录入模块:该模块可以实现学生多种数据的录入,录入的信息储存在数组中,其他模块能够调用。
3. 数据模块修改:该模块可以实现数据的修改。当输入修改的学生信息时,模块会自动找寻,未找到则显示不存在,若找到则进入下级列表,操作者可以根据界面标号进行任意的修改
4. 数据添加模块:该模块将学生的信息完整的存入一个结构体数组中,其他模块可以调用。
5. 数据模块查询:该模块可以对信息进行检索,挑选出符合要求的信息,并显示列表,如果没有搜索的信息,则显示未找到。(1)按姓名查询(2)按学号查询
6. 数据删除模块:该模块可以删除任意指定学生的信息,模块首先会提醒操作者输入特定的学号,数据输入后进行搜寻,若无此学生的信息,则显示不能找到,若找到此生信息,则显示删除成功。 7. 数据统计模块
(1)成绩显示模块:输入选择号后,该模块可以显示已经输入系统的学生信息。
(2)成绩计算及排序模块:该模块可以利用平均成绩函数计算每位学生的平均成绩,并按学生平均成绩的高低进行排序,然后将学生姓
名列表显示。
(3)成绩分类模块:该模块可以查找系统中不及格学生的信息,然后将该生的学号,姓名,不及格科目及分数显示出来。 8、退出系统模块
三、数据结构设计
学生成绩管理系统在使用中用到了众多的数据,数据多,数据类型复杂,给数据的管理和使用带来了很大的麻烦。所以我使用了数组来存放数据。定义了结构体来存放学生的各种类型的数据,使存放更合理,便于管理。
为避免学生基本信息结构体stu太长,嵌套定义了一个选修课程结构体course struct course {
课程编号 整型 int num; 课程名 字符串 char name[10]; 考试成绩 浮点型 float score; 平时成绩 浮点型 float usual; 综合成绩 浮点型 float integral; }; struct stu {
专业班级 整型 int class; 学生编号 整型 int num; 学生姓名 字符串 char name[10]; 性别 字符串 char sex[2]; 年龄 整型 int age;
嵌套定义课程信息 struct course course[2]; 平均成绩 浮点型 float avescore; }
程序后面的模块都会要用到以上结构体的信息,控制好循环结构,能随时调用结构体中的信息。
四:数据模块结构说明
本系统的功能都是由主函数调用各个模块来实现,每个模块都是一个特定的自定义函数,能分别实现不同的功能。采用的思想也就是“化整为零”,将一个问题分解为一个个的小问题,各自来攻破。下面将分写介绍每个模块的实现过程及功能。在最开始,定义了一个全局变量m,m是结构体数组stu的有效长度,能够对后面的插入,删除等范围进行控制。 1. void menu()
改函数为主控函数,起到功能菜单的作用,每个功能从这个界面选择,实现功能后返回改界面,进而选择其他功能。 2. void input();
此函数实现最开始数据的输入功能。在屏幕的提示下,操作者能输入相应学生的信息,采用的是双重循环:外层循环for(i=0;i<m-1;i++)来控制学生的个数,输入基本信息;内循环for(j=0,sum=0;j<COURSENUM;j++)控制课程门数,此处COURSENUM是一个宏定义,指的是课程门数,能相应的输入学
生
的
选
修
课
程
信
息
。
stu[i].course[j].integral=stu[i].course[j].usual*0.3+stu[i].course[j].score*0.7,此式为综合成绩的计算表达式,当integral<60时,为“Y”(由条件语句if来判断实现)。平均分也在此模块求:总分sum为各科的综合成绩之和,除以课程数,就是平均分。 3. void modify();
此函数实现修改功能。在屏幕提示下,操作者可选择修改基本信息或课程信息,接着输入相关的信息。修改成功会提示,否则显示“无学生信息”。 4. void insert()
此函数实现插入功能。在屏幕提示下,操作者输入要增加的学生信息,此时,信息被放在数组元素stu[m]中(即最后一个,m为全局变量)。插完一个人之后,m自增,屏幕会显示“插入成功”,还会询问操作者“继续添加吗?”此处定义了一个字符型变量ch,当ch为Y或y时,继续输入,当ch为其他字符时,停止添加。
5. void search()
此函数实现查询功能。定义了一个字符串数组来存放输入的学生姓名。操作者在屏幕提示下输入要查询的名字或学号,本模块采用了字符串比较函数,当输入的字符串(名字或学号)与程序中的相同时,输出该生的所有信息(包括基本信息,选修信息),由for循环控制。此处采用了查询标志p:当查询正确时,p被赋值为1,显示信息;当没有查 …… 此处隐藏:3660字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [实用文档]李践-有效提升销售的12大黄金法则8-大
- [实用文档]党支部换届工作方案
- [实用文档]2013年下期电子商务专业部宣传工作计划
- [实用文档]方庄一矿通风、钻探绩效工资考核管理办
- [实用文档]项目一 认识企业物流认识企业物流
- [实用文档]MBI_Display_产品蓝图规画
- [实用文档]北京市建筑业劳务作业人员普法维权培训
- [实用文档]锅炉燃烧调整与运行优化
- [实用文档]4支付结算业务的核算
- [实用文档]米什金_货币金融学_第9版各章学习指导
- [实用文档]水泥混凝土路面硬化工程施工组织设计
- [实用文档]钢筋工程安全技术交底书
- [实用文档]关于公布华中师范大学本科毕业论文
- [实用文档]太原市园林绿化施工合同范本 2
- [实用文档]周日辅导 初中英语分类复习单项选择题(
- [实用文档]第四章 文化经纪人的管理形式 第二节
- [实用文档]学宪法讲宪法竞赛题库
- [实用文档]《数值计算方法》期末考试模拟试题二
- [实用文档]爱词霸学英语:每日一句( 十月)
- [实用文档]2014年国家公务员面试:无领导小组讨论
- 新课程主要理念和教学案例分析汇编(24
- 英国人的快乐源于幸福的家庭生活
- 七年级上册第一次月考模拟数学试卷
- 真丝及仿真丝的种类有哪些?
- 【最新】华师大版八年级数学下册第十六
- 高中英语3500个必背单词
- 我可以接受失败,但我不能接受放弃!
- 最近更新沪科版八年级物理上册期末试卷
- 绿化工作先进乡镇事迹材料
- 鲁教版九年级上册思想品德教学计划
- 英语音标的分类
- 地下室底板无梁楼盖与普通梁板结构形式
- 美容师黄金销售话术
- 雅思写作满分作文备考方法
- 血清甲状腺激素测定与高频彩色多普勒超
- 1度浅析装修对室内空气品质的影响
- 2017-2022年中国汞矿行业深度分析与投
- 计算机二级VB公共基础知识
- (何勇)秸秆禁烧_重在寻找出路
- 内外墙抹灰工程分包施工合同1




