题目: 学生成绩管理系统
1、课程设计的内容和要求(包括原始数据、技术要求、工作要求等):
1)设计内容:
制作学生成绩管理系统,实现数据录入、数据删除、数据浏览以及数据查询等功能。
2)课程设计的要求:
包括系统设计要求,开发环境要求,技术文档要求三部分。
系统设计要求:
- 学生成绩管理系统中不同使用单位(用户)的学生人数事先无法确定。
- 该学生成绩管理系统要求有学生成绩录入,查询,修改,删除,保存文件。
- 系统使用文字菜单,用户通过选择菜单项的编号,实现系统对子模块的调用。也可用windows界面下的菜单栏、弹出式菜单、下拉菜单。
- 每个班级每门课程的成绩可以从学生的成绩总表提取出子表并存储成一个文本文件。该文本文件名由班级号和课程名拼音字符串构成。输入班级号和课程名字符串后自动生成文件名。如1班,语文,则文件名为:c1yuwen.txt。
- 每个学生学习的课程有语文,英语,数学,物理,化学,生物。
- 学生的成绩总表结构约定为(学号,姓名,课程名,平时成绩,期末成绩,总评成绩).总评成绩由程序自动计算,总评成绩=平时成绩×30%+期末成绩×70%。
- 学号是一个9位整数构成的字符串, 学号的编码规则:入学年份+在读年级+在读班级+班内编号;入学年份用4位整数构成字符串,如2015年入学则表示为:”2015”;在读年级用1位整数构成字符串,如正在1年级读书则表示为:”1”;在读班级用2位整数构成字符串,如正在1班读书则表示为:”01”;班内编号用2位整数构成字符串,如在班内编号为23号则表示为:”23”。
开发环境要求:
软件环境:windows 7,Visual C++
硬件环境:计算机(Pen4 CPU, 512MRAM,60G以上硬盘,输入输出设备)
技术文档要求:
按软件工程技术文档要求。要求流程图绘制规范,模块功能描述清晰,数据字典齐全。
2、对课程设计成果的要求〔包括图表、实物等硬件要求〕:
1)提交课程设计报告
按照系统设计要求,用Visual C++设计和开发一个应用程序—学生成绩管理系统,提交由需求分析;系统设计说明(包括主菜单、子菜单、模块功能简介、数据字典、系统结构图);系统技术文档 (包括系统各模块主要流程图,软件总体测试方案与测试记录、局部测试方案与测试记录、软件调试和修改记录、测试结论、运行情况记录),系统使用说明书,源程序代码为附录构成的课程设计报告。
2)课程设计报告版式要求
打印版面要求:A4纸,页边距:上2cm,下2cm,左2.5cm、右2cm;字体:正文宋体、小四号;行距:固定值20;页眉1.5cm ,页脚1.75cm;页码位于页脚居中打印;奇数页页眉“C++程序设计课程设计”,偶数页页眉“学生成绩管理系统”,页眉宋体小5号;段落及层次要求:每节标题以四号黑体左起打印(段前段后各0.5行),节下为小节,以小四号黑体左起打印(段前段后各0.5行)。换行后以小四号宋体打印正文。节、小节分别以1、1.1、1.1.1依次标出,空一字符后接各部分的标题。
当论文结构复杂,小节以下的标题,左起顶格书写,编号依次用(1)、(2)……顺序表示。字体为小四号宋体。
对条文内容采用分行并叙时,其编号用a)、b)……顺序表示,如果编号及其后内容新起一个段落,则编号前空两个中文字符。
3)设计报告装订顺序与规范
封面、C++程序设计课程设计任务书、目录、C++程序设计设计课程设计报告正文、设计体会及改进意见、参考文献。
要求左边装订
3、课程设计工作进度计划:
时间 | 设计任务及要求 |
第1~4天 | 需求分析、功能分解 |
第4~8天 | 收集相关知识 |
第8~15天 | 编程实现 |
第15~20天 | 完成课程设计报告 |
第20天以后 | 准备课程设计答辩 |
目 录
1 系统设计前提
1.1 选题背景
随着信息化时代的来临,数据的管理与处理变得日益重要。特别是在教育领域,学生成绩的管理是一项繁琐且重要的任务。传统的手工管理方式已经无法满足现代教育的需求,因此,开发一款高效、便捷的学生成绩管理系统成为了迫切的需求。
C++作为一种高效、面向对象的编程语言,具有强大的数据处理能力和丰富的库函数支持,非常适合用于开发学生成绩管理系统。通过使用C++,我们可以快速地开发出稳定、可靠的系统,实现对大量学生成绩的高效管理。
此外,学生成绩管理系统的开发也是对C++课程知识的实践应用。通过实际操作,学生可以深入理解面向对象编程的思想,掌握如何使用C++进行数据库操作、界面设计以及数据处理等方面的技能。
因此,选择“C++学生成绩管理系统”作为课程设计的题目,旨在让学生通过实践操作,深入理解并掌握C++的编程技巧,同时提高学生的项目开发能力、团队协作能力以及解决实际问题的能力。
1.2 系统需求
1)便捷性:要求使用者便捷快速上手使用,有很好的人机交互功能。
2)简洁性:实验代码越简洁越好。
3)实用性:对数据录入查重、计算等不能出现问题。
1.3 设计要求
- 学生成绩管理系统中不同使用单位(用户)的学生人数事先无法确定。
- 该学生成绩管理系统要求有学生成绩录入,查询,修改,删除,保存文件。
3)系统使用文字菜单,用户通过选择菜单项的编号,实现系统对子模块的调用。也可用windows界面下的菜单栏、弹出式菜单、下拉菜单。
4)每个班级每门课程的成绩可以从学生的成绩总表提取出子表并存储成一个文本文件。该文本文件名由班级号和课程名拼音字符串构成。输入班级号和课程名字符串后自动生成文件名。如1班,语文,则文件名为:c1yuwen.txt。
- 每个学生学习的课程有语文,英语,数学,物理,化学,生物。
6)学生的成绩总表结构约定为(学号,姓名,课程名,平时成绩,期末成绩,总评成绩).总评成绩由程序自动计算,总评成绩=平时成绩×30%+期末成绩×70%。
7)学号是一个9位整数构成的字符串, 学号的编码规则:入学年份+在读年级+在读班级+班内编号;入学年份用4位整数构成字符串,如2015年入学则表示为:”2015”;在读年级用1位整数构成字符串,如正在1年级读书则表示为:”1”;在读班级用2位整数构成字符串,如正在1班读书则表示为:”01”;班内编号用2位整数构成字符串,如在班内编号为23号则表示为:”23”。
1.4 系统模块功能简介
学生成绩管理系统分为多个个模块,分别是:添加信息,查找学生成绩,查找信息,浏览信息,修改信息,删除信息,保存数据到文件的模块。
2 方案论证
2.1 主菜单
界面显示的是一个“学生信息管理系统登录界面”,总的操作流程共三个方面:
1)管理员身份。
2)教师身份。
3)退出菜单界面。
最后是提示用户做出要软件进行怎样功能运行的选择。
图2-1 主菜单界面
2.2 子菜单
(a)界面显示的是一个“管理员操作界面”,总的操作流程共五个方面:
1)信息录入(系统自动以文件形式保存);
2)浏览信息;
3)按姓名查询信息;
4)按姓名删除信息;
5)退出菜单界面.
最后是提示用户做出要软件进行怎样功能运行的选择。
图2-2 管理员端子菜单界面
(b)界面显示的是一个“教师操作界面”,总的操作流程共七个方面:
1)学生信息录入(系统自动以文件形式保存);
2)浏览学生信息;
3)按学号查询信息;
4)按学号删除学生信息;
5)按学号修改学生信息;
6)按班级存储信息
7)退出菜单界面.
最后是提示用户做出要软件进行怎样功能运行的选择。
图2-3 教师端子菜单界面
2.3模块功能简介
1)添加信息:用Add()函数,用于添加信息的函数包括学号姓名成绩等的内容。
2)浏览信息:用Look()函数,对各项信息进行浏览操作。
3)查找信息:用Find()函数,用于查找学生各项信息。
4)修改信息:用modify()函数,用于修改各项信息。
5)删除信息:用delete()函数,用于删除各项信息。
6)保存信息:用save()函数,将学生信息保存到文件中。
7)菜单实现:用menu()函数,将人机交互做到。
8)函数串联:用main()函数实现,在主函数中调用函数。
2.4数据字典
表2-1 数据字典表
名称 | 类型 | 作用 | 名称 | 类型 | 作用 | 名称 | 类型 | 作用 |
Main() | int | 主函数 | Find () | void | 查找信息 | year | int | 入学年份 |
Menu() | void | 菜单函数 | Modify () | void | 修改信息 | grade | int | 所在年级 |
Class admini | 公有 | 管理员类 | Delete () | void | 删除信息 | lesson | int | 所在班级 |
Class teacher | 公有 | 教师类 | Save () | void | 存储信息 | Score[] | float | 课程成绩 |
Add () | void | 添加信息 | name | char | 存放姓名 | crou | string | 课程名字 |
Look() | void | 浏览信息 | password | char | 存放密码 | ID | int | 账号 |
3 过程(设计或实验)论述
3.1 系统流程图
学生成绩管理系统结构:主要应用主函数和菜单函数,菜单函数实现人机交互和衔接功能,在主函数里定义两个类通过对模块函数的引用实现整体的系统。
图3-1 整体程序的流程图
3.2 模块功能图
- Add()函数:用于添加学生信息的函数包括学号姓名成绩等的内容。
图3-2 Add函数流程图
2)Look()函数:对各项信息进行浏览操作。
图3-3 Look函数流程图
3)Find()函数:用于查找学生各项信息。
图3-5 modify函数流程
图3-6 delete函数流程图
图3-7 save函数流程图
4 结果分析
4.1 菜单
图4-1 系统菜单界面
图4-2 退出学生成绩管理系统界面
4.2 管理员端
从菜单界面选择输入1,并在键盘上敲enter键,得到管理员登陆界面,在这里输入姓名和密码(默认初始化密码为123456)并按enter键得到管理员菜单,根据界面提醒选择需要的功能进行操作。下面是我自己的运行界面(将每一个功能都展示到啦)
1)登录
图4-3 管理员登陆界面
图4-4 管理员菜单
2)添加老师
图4-5 添加老师界面
3)查询信息
图4-6 查询信息界面
4)浏览信息
图4-7 浏览信息界面
5)删除信息
图4-8 删除信息界面
4.3 教师端
从菜单界面选择输入2,并在键盘上敲enter键,得到教师登陆界面,在这里输入姓名和密码(默认初始化密码为123456)并按enter键得到教师菜单,根据界面提醒选择需要的功能进行操作。下面是我自己的运行界面(将每一个功能都展示到啦)
1)登录
图4-9 教师登录界面
图4-10 教师菜单
2)学生成绩录入
图4-11 学生成绩录入界面
3)浏览学生成绩
图4-12 浏览学生成绩界面
4)查询具体学生成绩
图4-13 查询信息错误界面
图4-14 查询学生信息界面
5)修改学生成绩
图4-15 修改学生成绩界面
图4-16 修改信息录入界面
图4-17 修改成功界面
6)删除学生成绩
图4-18 删除学生信息界面
7)学生成绩持久化存储
图4-19 学生成绩存储界面
5 总述
5.1 使用说明书
根据文字说明运行,输入加enter键。 请记住,程序不会在两次运行之间保存数据——当程序终止时,所有数据都将丢失。此外,如果您输入无效数据或试图删除或查询不存在的学生代码,将显示错误消息。
5.2 今后的改进意见
1)学校规模:根据学校规模和学生数量调整系统架构和数据库规模,保证系统的稳定性和性能。
2)学校需求:针对不同类型学校的实际需求进行功能调整和优化,满足不同学校的个性化需求。同时,提供定制化服务,为学校量身打造适合自身特点的管理系统。
3)个人用户需求:定期开展问卷调查,根据用户需求进行改进。
5.3 设计体会
经过一个学期对《C++程序设计》的学习,我学习到了基本的理论知识,了解到了C++语言程序设计的思想,这些知识都为我的课程实践和进一步的学习打下了坚实的基础。在为期近两周的C++课程设计中,我体会颇多,学到了很多东西。我加强了对C++程序设计这门课程的认识,并且复习了自我以前学习到的知识,这些都使得我对计算机语言的学习有了更深入的认识!总之,经过这次课程设计,我收获颇丰,相信会为自我以后的学习和工作带来很大的好处,像学生成绩管理系统这样的程序设计,经历了平时在课堂和考试中不会出现的问题和考验,而这些问题,这并不是我们平时只靠课本,就能够轻易解决的.所以,锻炼了我们挑战难题,学会用已掌握的知识去解决具体问题的本事,进一步培养了独立思考问题和解决问题的本事,学会了在VisvalC++中如何调试程序的方法、当然,老师的指导和同学的帮忙也是不可忽视的,他们给了我许多提示和帮忙,教会了我编译复杂程序的方法。
在教师和同学的帮忙下,经过自我的努力,最终完成了这次职工信息表的简单课程设计。我经过这段时间的编程,对其中的艰辛,我是深有体会。从刚开始的选择程序、理解程序到之后的调试程序以及改善程序这个过程中,我遇到了各种各样的困难和挫折,可是我坚定信念,对自我充满了信心,想尽一切办法克服重重困难。
参 考 文 献
[1]马婷婷,李浩峰.学生成绩管理系统设计与实现[J].电脑知识与技术,2020,16(24):81-82+88.
[2]王祥. 基于visual C++的联合空冷系统设计软件开发[D].华中科技大学,2017.
[3]石国涛,李泽华,李勇等.学生成绩管理系统的设计与开发研究[J].现代信息科技,2020,4(19):48-52.
[4]江志华.学生成绩管理系统的设计与实现[J].信息与电脑(理论版),2020,32(10):79-81.
[5]马赫,冯思度,张红伟.学生成绩管理系统的设计与实现[J].电脑知识与技术,2019,15(06):61-62.
[6]孙庆彬.学生成绩管理系统的设计与实现[D].吉林大学,2016.