5、显示:执行本功能后会将全部信息显示出来。 功能流程图: 显示 判断数据是否为空 否显示全部学生信息 是
6、密码维护:此功能模块主要包括添加用户、删除用户、修改用户密码、显示
用户名和密码、退出维护,可同时拥有多个用户名和密码登陆该系统。
功能流程图:
增加用户 输入增加的用户和密码 按2返回主界面 删除用户 输入密码,正确后方可进行操作 输入要删除的用户名,选择是否删除 修改密码 输入要修改的用户名,输入旧密码正确后方可更改 显示用户名和密码 显示出所有用户名和密码 退出维护 按任意键返回主界面
二、主界面介绍
由于编者水平有限本系统采用的是DOS界面,因此界面上与可视化编程还有一定差距。但我们在现有的知识基础上充分考虑了用户的需求,把我们的主界面设计的比较友好。
主界面抓图
6
若密码输入有误时:
若输入的密码错误次数达到3次系统将自动退出。
当用户输入用户名和密码正确后才能进入以下界面:
7
三、详细内部设计介绍
本学籍管理系统采用c++编程,使用面向对象的程序设计思想来编写的。主要采用了数据结构中的顺序表来实现学生学籍信息的保存和各种功能的实现。并将记录以.data文件存储。本系统主要由两个文件组成分别是:database、user 。database是用来保存学生信息的文件。User是保存系统用户及密码的文件。为了简化程序使主函数简洁,我们将本系统分成三部分分别来编写。这三部分分别为:类.h、成员函数.cpp、主函数.cpp。这样实现了程序分模块编写。下面将详细介绍各模块的具体功能和实现过程以及各个函数的实现细节。 一、类.h
此头函数主要作用是定义了一个枚举类(SysStatus)一个结构体(user)和三个类。头函数中的三个类分别是学生信息类(StudentInfo)、操作系统类(StuInfoSys)、设置密码的类(PassWord)。
在枚举类(SysStatus)中主要有;
SYS_MainMenu= 0,//主菜单
SYS_AddInfo = 1,//添加
8
SYS_Change = 2,//修改 SYS_Delete = 3,//删除 SYS_SearchInfo = 4,//查询 SYS_ShowDispInfo = 5,//显示所有学生信息 SYS_mimaweihu =6,//用户名及密码维护 Sys_Exit=7//退出 在结构体(user)中定义有:
char username[11];//用户名
char password[11];//密码
在学生信息类(StudentInfo)中分别定义了十八个成员变量。这十八个成员变量分别是
int stu_Num;//学号 string stu_Name;//姓名 string stu_Sex;//性别 string stu_Nation;//民族 string stu_Institude;//学院 string stu_Zhuanye ;//专业
string stu_Id; //身份证号 string stu_Birth; //出生日期 string stu_Phone; //联系方式 string stu_Oldname; //曾用名 string stu_Jiguan; //籍贯
string stu_Familyaddr; //家庭住址 string stu_Xuezhi; //学制 string stu_Banji; //行政班级 string stu_Ruxue; //入学日期 string stu_xueli; //学历层次 string stu_Mianmao; //政治面貌 string stu_Email; //电子邮箱
将其中十七个成员变量分别定义为string型的,这是因为如果定义成其他类型,用户在输入信息时可能会输入一些不合法的数据造成系统的死循环。应用string型就会避免死循环情况。
在类.h中定义的操作系统类(StuInfoSys),此类就相当于由十二个功能组成的模块。在类的public部分基本由
int ShowMainMenu(); //显示主界面 int AddStuInfo(); //添加学生信息 int ChangeStudentInfo(); //修改学生信息 int DeleteStudentInfo(); //删除学生信息 int SearchStuInfo(); //查找学生信息
int ShowDispInfo(); //全部输出学生信息 int AppendUser(); // 增加用户 int DelUser(); // 删除用户
int ModifyPassword(); // 修改用户密码 int PrintUser() ; // 显示用户名和密码
9
int ModifyUser(); // 用户维护主菜单
void Drawtree(); //美化主界面
组成。这十二个成员函数彼此独立并在成员函数.cpp中定义。在类的private部分基本由m_TotalNum用来记载学生的个数的,及定义了一个容量为11的结构体数组user,应用此数组来保存用户名及密码,它决定了用户的最多为11个。
在设置密码的类(PassWord)中两个主要的成员函数分别为
void InputUserName(int &i) ; // 输入用户名
int InputPassWord(int i); // 输入密码 二、成员函数.cpp
在此文件中主要是定义了类的各个成员函数,相当于六种功能。每个函数是彼此独立的功能模块。具体介绍如下: 1、AddStuInfo()
此函数是实现添加功能的成员函数,执行此函数时,如果已有记录存在,用一个for循环将database文件中的内容读出,并将添加的学生的学号与已经存储的所有学生学号进行比较。如果出现学号重复就提示用户进行相应操作,我们提供了两种处理方法:1、继续添加2、退出添加。由用户进行选择。如果没有出现学号重复就继续添加。而且在用户添加该生每一个信息时系统都将提示用户是否还要继续下去,其相应的操作由用户进行选择。每次如果添加了一个信息成功就将m_TotalNum加1并将m_TotalNum的值送回database文件中覆盖原有的值。 2、SearchStuInfo()
本函数是实现查找功能的成员函数,在此函数中首先也是先进行打开database文件的判断。如果能打开database文件就将内容读出并赋给m_TotalNum,如果打不开文件就建立此文件并赋初值为0,然后将m_TotalNum赋值为0。如果m_TotalNum的值为0说明学籍系统中没有记录,也就无法进行查找,系统将退出查找。如果m_TotalNum的值不为0可以进行查找,用一个for循环将database中的记录读到顺序表中来进行查找。当未查到时提示用户没有所要查找的信息,并由用户进行选择是否还要继续查找。若查找到则将此人信息显示,然后由用户进行选择是否还要继续查找或进入主界面选择其他操作。 3、ChangeStudentInfo()
此函数是实现修改功能的成员函数,同样在执行时也是先进行database文件数据的判断,将文件中的内容赋给m_TotalNum。如果m_TotalNum为0说明学籍系统为空无法进行修改,退出修改函数,系统将提示用户返回主界面。如果m_TotalNum不为0可以进行修改, 用一个for循环将database中的记录读到顺序表中来。在修改前必须先找到要修改的学生信息,由用户根据提示选择操作数,查找成功的话就将此人信息显示,让用户确定。此时如果不再需要修改也可以退出修改操作。如果查找失败的话,程序将提示用户不存在此该学生信息,系统给以提示,由用户进行选择是退出修改函数返回主界面还是继续修改其他学生信息。若修改成功系统将提示用户是否确定修改,确定则将修改后的信息以覆盖原文件的方式保存到文件中,否则取消修改。(此处要用for循环实现) 4、DeleteStudentInfo()
本成员函数是实现删除功能的函数,在执行时首先进行database文件打开的判断,操作同Change( )。判断m_TotalNum的值。如果m_TotalNum为0学籍为空无法进行删除,退出删除函数, 系统提示用户返回主界面。若m_TotalNum不
10
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库学籍管理系统实验报告(2)在线全文阅读。
相关推荐: