C++面向对象专业综合课程设计
题目:成绩管理系统
年级:15 级计算机
开发组序号:第 1 组
开发组情况:
姓名 学号 班级 分工 自评分
韩诺
150104010125
5 班
代码编写与调试
A
吴霞
150104010122
5 班
报告撰写及程序测试
B+
李秀真
150104010126
5 班
流程图绘制及程序测试
B
金月
150104010123
5 班
流程图绘制及程序测试
B
郝俊洁
150104010124
5 班
流程图绘制及程序测试
B
指导教师:王倩
开发日期:
1 概述
1.1 目的与意义
通过本课程设计的实践,全面总结 课程学习中的的数据类型、程序结构、数组、
函数、指针、结构体、链表等基本概念,掌握其使用方法。掌握面向对象程序设计中有关
类、对象、继承、重载、多态性、输入输出流类体系、文件操作的基本概念,初步学会用
类与对象这种面向对象的程序设计方法编写应用程序。培养使用面向对象的程序设计方法
编写计算机程序的能力。
通过设计一个《学生成绩统计管理》,进一步熟悉 中类的概念、类的封装、继
承的实现方式。了解系统开发的需求分析、类层层次设计、模块分解、编码测试、模块组
装与整体调试的全过程,加深对 的理解与 环境的使用;逐步熟悉程序
设计的方法,并养成良好的编程习惯。程序设计是一门实践性很强的课程,必须十分重视
实践环节。许多实际的知识不是靠听课和看书学到的,而是通过长时间的实践积累的。
1.2 主要完成的任务
学生成绩管理系统是对学生信息及成绩的管理。开发工具 。主要用于
对学生的学号、姓名等基本信息以及各个学科成绩进行增加、删除、修改、查询以及保存
到文件等操作。系统给用户提供一个人机界面,使用户可以根据提示输入操作项,调用系
统提供的管理功能。
1.3 解决的主要问题
由于所学的知识不多,编程经验不足,遇到了一些问题。例如:多个数据存储问题,
返回上一菜单问题,未接受回车符而造成的后面程序无法运行等问题,经过查询资料,小
组讨论以及向指导老师求助,我们顺利地解决了上述问题,从而积累了一些编程经验。
1.4 人员分工
韩诺:主要负责代码的编写与调试工作
吴霞:主要负责文档报告的撰写与编辑,以及程序的测试工作
金月:主要负责流程图的绘制、资料查询以及程序的测试工作
郝俊洁:主要负责流程图的绘制、资料查询与程序的测试工作
李秀真:主要负责流程图的绘制、资料查询与程序的测试工作
1.5 开发计划、开发环境
在设计时考虑以下几个方面:
操作简单。因为使用者多为非计算机专业人员,所以该系统要求设计的界面美观,操
作方便。要充分考软件界面友好和操作方便,便愈使用人员快速上手。
易于维护。一个软件的好坏,关键在于产品的可靠,稳定,便于维护。
.开发语言的选择
针对世界上流行的大量软件和开发工具,经过认真分析其优缺点,结合目前的软硬件
开发环境,选用微软 平台下的 作为软件开发工具。选用工具有
几下几方面优点:
面向程序设计语言简洁、紧凑、使用方便、灵活。有 个关键字。 语言程序
比其他许多高级语言简练,源程序短,因此输入程序时工作量小。
运算符丰富。
数据类型丰富,具有现代语言的各种数据结构。
面向程序设计语言是完全模块化和结构化的语言。用函数作为程序的模块单位,
便于实现程序的模块化。
语法限制不太严格,程序设计自由度大。
生成目标代码质量高,程序执行效率高。
用 面向程序设计语言编写的程序可移植性好。
综上所述,使用 面向程序设计语言可以满足学生成绩管理的要求,所以用来开发学
生成绩管理系统是非常合适的。
2 总体设计
2.1 总体结构
图 系统模块图
如图 2.1,本系统分为读取文件、添加学生成绩模块、删除学生成绩模块、修改学生成
绩模块、查找学生成绩模块、显示学生成绩模块、排序模块、统计分析模块、保存、退出
十个主要实现功能的模块,每个模块分别有个主函数,用来实现这个模块的信息。
2.2 模块功能
软件的主要功能有:
系统主控平台
通过主菜单允许用户选择想要的操作。包括添加学生信息、显示学生信息、查询学生
信息、修改学生信息、删除学生信息、统计各个分数段学生信息、学生排序输出、保存等
通过输入相应的序号选择相应的操作。
增加学生成绩信息模块
用户根据提示输入学生的学号、姓名、 门课程的成绩。输入完一条学生记录,保存
在学生数组中,可选择继续输入下条学生记录还是退回到主菜单。
显示学生信息模块
将保存在学生数组中的学生记录逐行显示出来。若数据很多,应该每显示若干行后暂
停,按回车后继续显示后续内容。
查询学生信息模块
先询问按学号、姓名做查询若按学号查询,则输入要查找的学号,然后在学生数组中
找到该学号的学生记录,显示出该学生的信息。若找不到该学号信息,则显示无此学号。
若按姓名查询,则输入要查找的姓名,然后在学生数组中找到该姓名的学生记录,显示出
该学生的信息。若找不到该姓名信息,则显示无此姓名。每次查询完,询问是否继续查询
是则继续下轮查询,否则退回主菜单。
修改学生成绩信息模块
先提示输入要修改的学生的学号,在学生数组中找出该学生记录,若找到,则重新输
入学生的姓名、 门课程的成绩等。然后保存到学生数组的该学生记录中。若找不到,则
显示无此学号。
删除学生成绩信息模块
先提示输入要删除的学生的学号,在学生数组中找出该学生记录,若找到,则在学生
数组中删除该学生记录。若找不到,则显示无此学号。
学生信息排序模块
在本模块中,系统自动遍历信息链表并排序来对链表中所有的信息进行排序,并在排
序后显示排序后的所有信息。
统计分析学生信息模块
计算学生总人数,各科平均分、方差,分析各科良好率与良好人数,统计在某固定分
数段人员信息。
保存数据到文件与将文件数据装入学生数组
在系统退出前,先将学生数组的学生信息保存的文件中。然后结束系统。每次进入系
统时,先将文件中的学生数据装入学生链表中,然后才进入系统的主菜单。
2.3 总体流程
图 2.2 总体流程图
3 详细设计
3.1 读取文件模块
读取文件代码:
!"##$!%&!'!()
*
+$!&,!-..读操作(输入)的文件类
$"'$!-
/001请输入文件所在地址:100!"-
/"22$!-
,!3!"($!/%$())-
+(4,!)
/001打开失败!100!"-
!!
*
"&-
56!()
*
,!227"&8!"%227"&8!"%"&!22
7"&8&6%/$!
227"&8369/%/$!227"&8:"'6%/$!-
+(,!!+()4;)..判断文件是否为空或者是否读到文件结尾了
<$!=-
"&-
>
"&-
,!/!()-