C++ 基于MFC的学籍管理系统

目录

                 基于MFC的学籍管理系统

选题

前言

系统的设计过程

登录界面

学生界面

管理员界面

系统测试情况

运行后的界面如下:

需要项目源码的朋友请后台私信!!!或添加QQ3203499787


                 基于MFC的学籍管理系统

需要项目源码的朋友请后台私信!!!

选题

学籍管理系统(Windows版本)

前言

一款高效的学籍管理系统是教育单位必不可少的利器,随着互联网的普及,对于这样一款系统的需求也日益增长。这样的系统能够极大提升教育单位的运营效率。

以下是系统的主要功能:

用户管理:包括用户的添加、删除、修改以及退出系统功能;

成绩管理:涵盖学生成绩的录入、删除、修改和查询;

学生管理:管理学生的基本信息,包括添加、删除、修改和查询功能;

课程管理:课程的添加、删除、修改和查询;

打印:能够打印学生和课程的基本信息。

此系统具有自动增强功能,支持管理员和学生两种用户角色。管理员拥有添加、删除、修改学生用户的权限,同时可以更改自己的密码。学生登录后可以查看个人基本信息和成绩排名,也可以修改自己的密码。

设计要求包括:

数据存储在文件中。

支持DOS版或WINDOWS版(WINDOWS版难度较高)。

使用类和向量(可参考VC的STL)。

WINDOWS版采用VC MFC模式,核心技术涉及消息机制、窗口类、对话框与控件、菜单等。

软件环境要求为Windows 11操作系统,开发工具为VS2022 MFC工程。

  • 系统的设计过程

  1. 首先设计一个文件类CinfoFile,用于所有文件的操作,在其它界面功

能需要用到文件操作时都调用这个类的函数完成文件读取与写入。CinfoFile的部分定义如下图所示:

首先看到这个头文件<list>,这次项目我采用list的这个容器来存放数据,<fstream>是文件读取与写入要用到的头文件,<string>是定义string类型所需要的头文件,接下来的几个宏定义是所需要用到的数据文件,administratorLogin.txt是管理员登录的数据文件,其内容如下(用户名和密码):

studentLogin.txt是学生登录的数据文件,其内容如下(包括学号和密码):

studentMessage.txt是学生基本信息的数据文件,其内容如下(包括学号,姓名,性别,学院,专业,年级):

course.txt是课程信息的数据文件,其内容如下(包括课程名称,授课教师,开课学院,课程代码,课程学分,课程学时):

score.txt是学生成绩信息的数据文件,其内容如下(包括学号,姓名,绩点,年级排名):

stu.txt这个文件是用于存放登录学生的学号,用于后面学生登录界面信息的显示,找到对应的信息文件并显示。

下面是学生登录,学生信息,课程信息,成绩信息结构体的定义以及对应的链表容器的定义,用于存放数据:

下面是对管理员登录,学生登录,学生基本信息,学生成绩,课程信息

的文件读取与写入操作实现:

接下里的读取学生个人信息,成绩信息,课程信息的操作与读取学生登录信息差不多,只是打开的数据文件和存储容器名字以及分割数量不同,所有方法一致,不在重复描述;还有学生个人信息写入文件,学生成绩信息写入文件,和课程信息写入文件与学生登录信息写入文件的操作大体上相同,不在描述,以上就是文件类的所有操作。

  1. 登录界面

登录界面采用了两个复选框用于选择学生登录还是管理员登录,两者只能选一个,否则警告。登录界面对应的对话框类名为LoginDlg,主要有两个功能,一是登录按钮功能,而是取消按钮功能。取消按钮是退出系统,其实现如下图:

登录按钮的功能实现如下图:

      重写了WM_CLOSE,使其关闭时退出整个系统

          在对话框的初始化函数增加了字体设置,其操作如下(其中m_Static是开头的全国高校学籍管理系统这个静态文本的变量名,m_editFont是Cfont类型的变量):

              重写了OnOK函数,使其按回车不进入系统,其实现如下:

      以上是登录界面类的所有实现。

  1. 学生界面

         学生界面是用对话框实现的,它的对话框类是StudentDlg,其中主要有三个功能:确定按钮功能(确定修改密码),取消按钮功能(清空修改密码的编辑框内容),退出系统按钮(退出系统),取消按钮功能实现如下:

     确定按钮的实现如下:

退出系统按钮功能实现如下:

初始化函数中对编辑框的数据进行初始化,其实现如下:

初始化函数中加载了对话框的图标显示以及字体的修改,其实现如下:

以上是学生界面的的主要操作的实现

  1. 管理员界面

      管理员界面采用的是单文档,静态拆分窗口,自定义了了MFC视图类,自定义两个类CselectView继承与CtreeView和 CdisplayView继承与CformView.

其静态拆分窗口实现如下(在MainFrm类重写OnCreateClient函数):

将界面分成了两部分,一部分用于选择,另外一部分用于显示,接着自定消息,用于界面挂载,即实现点击左边窗口实现更新相应的右边界面,其自定义的消息如下(在MainFrm.h文件里定义):

界面挂载的实现如下(只描述一个,其他类似,在MainFrm的成员函数OnMyChange实现):

在CselectView中实现图标加载和添加视图节点

以上是界面拆分的一些实现。

     以下是系统管理节点的相关界面

      该界面的的类是CsystemDlg类,它的主要功能有修改管理员密码跟上面修改学生密码的操作类似,退出系统的按钮也与上面一致,不再重述。主要是介绍的是学生用户的操作,主要功能有三个:添加、删除、更改学生用户

添加学生用户的实现如下:

      删除学生按钮的实现如下:

     更改学生的按钮实现如下:

      以上是系统界面类的所有主要实现。

      接下来的是学生管理界面,成绩管理界面和课程管理界面,由于这三个界面的相关操作一致,就不一一描述,只描述一个界面,此处只描述学生管理界面,它的类名为CstuManger。

学生管理界面的主要操作有学生信息的操作和学生信息的显示,学生信息的显示使用List控件来显示数据。学生信息的操作主要有更改、添加、查询、删除、打印学生信息。

添加学生信息的功能实现如下(根据一个弹窗来添加数据):

      删除学生信息的功能实现如下:

       查询学生信息的功能实现如下:

查询结果显示在左边的编辑框里面,如:

       更改学生信息的功能实现如下:

      打印学生信息的功能实现如下:

       打印过程以及结果如下:

以上就是整个系统的主要功能的实现,主要是登录界面,学生界面,管理员界面,系统界面,学生管理界面的介绍,其中还有静态拆分的操作以及界面挂载的实现,还有图标加载已经字体的调整的实现。

  • 系统测试情况

运行后的界面如下:

测试错误警报如下:

学生界面如下:

测试错误警报如下:

     管理员界面如下:

     测试错误警报如下:

      课程管理界面如下:

学生管理和成绩管理与课程管理一致,就不展示测试情况。

  • 系统的优点与改进

优点:在原本的要求上增加了学生用户的操作,学生登录和管理员登录显示不同的界面,本次实验采用单文档和对话框相结合,是界面更加简洁美观,清晰明了,基本满足需求。

改进:学生成绩信息只给了绩点和年级排名,没有显示学生各个科目的成绩,学生成绩信息比较少,值得改进。还有就是数据文件太多,可以把学生操作的数据放在同一个文件去实现,这样看起来比较清晰明了,关联性更强。

需要项目源码的朋友请后台私信!!!或添加QQ3203499787

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小A远离BUG

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

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

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

打赏作者

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

抵扣说明:

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

余额充值