基于C++实现的学生成绩管理系统

摘 要

学生成绩管理系统是典型的信息管理系统,是学校教务管理的重要组成部分,其处理信息量很大。它对教学管理和学校的决策者都非常重要,它给学校教学管理提供了极大的方便,提高了工作效率。但是一直以来人们用传统人工的方式管理文件文档,这种管理方式效率低,保密性差。

本课程设计是用C++实现对学生的成绩管理作一个简单的模拟,实质是建立学生类,由学号,姓名,班级,以及大学英语一,大学英语二,大学英语三,采用菜单选择操作方式完成7项功能分别写成7个函数,录入、显示、查询、修改、添加、排序、删除七大基本操作。

通过对学生成绩管理系统的制作,能够让使用者迅速地对学生的成绩做各项处理和显示,最终的到想要的信息,方便且易于操作。

关键词:学生成绩管理系统;C++;类 

1 系统需求分析

1.1 性能要求分析

随着学校学生数量的不断增加,仅靠传统的学生管理方法,不仅效率低,而且还会浪费大量的人力物力,这已经远远不能满足学校对学生成绩管理的需要。学生成绩管理系统从学生成绩管理现状出发,以实现学生成绩管理为设计目标,加以强大的数据库管理功能,可以方便对学生信息进行管理。本系统在设计时应该满足以下几点:

(1)对学生信息操作简单,可以方便地进行添加,修改和输出操作。

(2)采用人机对话的操作方式,信息查询灵活、方便、快捷、准确,数据存储安全。

(3)对用户输入的数据,系统进行严格数据检测,信息查重等,尽可能排除人为错误。

(4)可以根据需要灵活地调整信息。

(5)系统最大限度地实现了易维护性和易操作性。

(6)系统运行稳定、安全、可靠。

1.2 功能分析

在学生成绩管理系统中,主要有以下功能:

(1)系统以菜单方式工作。

(2)能够注册学生的学号、姓名、大学英语一、大学英语二,大学英语三。

(3)修改已知学号的学生信息。

(4)能够添加学生信息。

(5)删除已知学号的学生信息。

(6)按平均成绩进行排序。

(7)查询学生的信息。

1.3 系统E-R图

图1  学生信息实体图

2 系统总体设计 

图2 总体设计流程图

3 系统详细设计

3.1 类模块设计

类模块class student。首先在student中定义几个私有型数据成员,学号ID,姓名name,班级class1,大学英语一,大学英语二,大学英语三。

普通成员函数介绍:

void set();//录入学生信息

void show();//输出学生信息

double ad();//计算总成绩

double aver();//计算平均成绩

友元函数介绍:

friend void show();//输出学生信息

friend    void  search();//查询学生信息

friend    void  change();//修改学生信息

Friend void add();//添加学生信息

friend    void  paixu();//对学生信息排序

friend void del();//删除学生信息

friend    void   Save();//保存学生信息

3.2 主要算法设计

本题要求做出学生成绩管理系统,系统以菜单方式工作,我们可以用一个类的成员函数来单独完成菜单功能,然后在主函数调用。

根据题目我们首先确定用两个类去实现,一个为类student,里面为学生的信息,例如学号,姓名等,主函数实现各个功能的操作,例如查询,删除等。

需要对学生成绩进行录入,那么我们就用input()输入函数去完成录入,在主函数中进行调用函数进行学生信息的录入。

主函数执行命令:

初始化对象

初始化菜单

操作执行,结果显示。

4 系统调试与运行

4.1 录入学生信息

图3 学生管理系统界面

4.2 显示学生信息

图4 学生信息界面 

4.3 查询学生信息

 图5 学生信息查询界面

4.4 修改学生信息

图6 学生信息修改界面

4.5 添加学生信息

图7 学生信息添加界面

4.6 排序学生信息

图8 学生信息排序界面

4.7 删除学生信息

图9 学生信息删除界面 

4.8 保存学生信息

图10 学生信息保存界面

5 系统分析

5.1 结果分析

该学生成绩管理系统能够完成一些基本的操作功能,例如查询,删除,修改等功能,运用了面向对象的程序设计,所以程序比较安全可靠,功能也比较齐全,操作方便,界面清晰,容易维护和扩充。但是该系统还是有一些不足。

对于系统的查询这一模块设计的比较简单,仅仅只需要全部成绩的平均成绩进入系统还是想的有点不全面,应考虑各科成绩。

对于修改的这块方面,因为是通过学号或者姓名进行修改的,姓名有可能会重复,导致删除的信息不是用户想要的效果。系统也没有进行提示,只有学号才是唯一的,且删除时姓名重复系统不会提醒。

5.2 改进措施

对于删除这项操作如果用姓名进行查找,如果有姓名重复的,系统应该提醒下,并输出学号来进行准确删除,以免造成删除了用户本不想删除的信息。

对于排序这项操作应该设置不同科目的单项排序,最后来一个总成绩的排序。以此可以满足用户需要单项成绩的排名。

对于修改这项操作如果用姓名进行查找,如果有姓名重复的,系统应该提醒下,并输出学号来进行准确修改,以免造成修改了用户本不想修改的信息。

6 总结

两周的课程设计结束了,在这次课程设计中,不仅检验了我平时上机课所学的知识和敲代码的熟练度,也使我更加懂得并亲身体会到了理论与实践相结合的重要性。只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从实践中得出结论,才能提高自己的实际动手能力和独立思考能力,在设计过程中遇到很多问题,比如功能的实现,修改接连不断的Bug等等,我发现自己对之前学习的知识理解的并不深刻,在实际操作上还远远不够。

由于很多方面因,这次课程设计存在许多不足的地方。但此次课程设计确实让我学到许多知识,并且发现了自身的不足,在以后的学习生活中,我会更加努力学习,并将链表这一方面的知识重新梳理,找到问题的不足。

最后我要衷心的感谢所有给予我帮助和指导的老师和同学,谢谢你们让我有了很大的进步!成功完成该学生学籍管理系统。

7参考文献

[1] 谭浩强.C程序设计(第三版).北京:清华大学出版社,2005

[2] 唐宁九.数据结构与算法实验和课程设计教程.北京:清华大学出版社,2008

[3] 刘光然.数据结构实践训练教程.天津:南开大学出版社,2009

[4]  苏仕华.数据结构课程设计.北京:机械工业出版社,2005

[5]  苏小红.C语言程序设计.北京:高等教育出版社,2011

[6]  严蔚敏.数据结构C语言版[M].清华大学出版社,2007

点击获取源码资源

  • 10
    点赞
  • 96
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柒月玖.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值