学籍管理系统实验报告.docx
- 文档编号:10891157
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:7
- 大小:21.14KB
学籍管理系统实验报告.docx
《学籍管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《学籍管理系统实验报告.docx(7页珍藏版)》请在冰豆网上搜索。
学籍管理系统实验报告
学籍管理系统实验报告
山东中医药大学理工学院 课程设计报告 课程名称:
高级语言课程设计 课程代码:
07300561 设计内容:
学籍管理系统 专 业:
计算机科学与技术 班 级:
成 员:
指导教师:
二0一二年12月18日 -1- 目 录 1.系统简介.............................................................32设计概要.............................................................3主要功能设计组织图.................................................3主界面介绍.........................................................63.详细内部设计介绍....................................................7类.h..............................................................7成员函数.cpp.......................................................8主函数.cpp.........................................................94.实现过程............................................................95.系统总结...........................................................11系统优点..........................................................11系统不足..........................................................116.附录...............................................................11系统测试及结果....................................................11小组分工..........................................................17 2 一、系统简介 软件名称:
学籍管理系统软件大小:
645KB授权方式:
试用软件类型:
应用软件运行平台:
DOS界面作者名:
谷香丽、路伟 设计目的:
随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息 量也成倍增长。
面对庞大的信息量,就需要有学籍管理系统来提高学生管理工作的效率。
通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作量。
软件介绍:
本系统可实现学生信息的添加、更改、删除、查找、全部显示,并带 有登陆功能以及密码维护。
系统特色:
⑴具有一定的容错机制,不会因小的失误造成死循环。
⑵具有安全的保密性同时兼有密码保护机制,保证系统的安全性。
⑶错误报警机制可以提醒用户进行正确的操作。
⑷设计的功能,尽可能满足用户需求。
3 二、设计概要 一、主要功能设计组织图 首次进入设置用户名和密码学籍管理系统输入用户名和密码正确新增功能更改功能删除功能查找功能显示功能密码维护退出 说明:
本系统主要功能包含7项,上图已经给出了简单介绍。
以下是各个功能的具体的介绍:
1、添加功能:
在本功能中我们考虑到用户进行添加时可能遇到系统中已经存 在用户想要添加的学生的学号,我们会给与提示,用户可选择继续添加其他学生信息也可以返回主界面,进行相关操作。
在用户添加学生信息时,添加完学号后,如果用户不想继续添加可以根据提示返回主菜单。
功能流程图:
添加学生信息学号是否存在否是添加或返回添加或返回重新添加返回主界面继续添加返回主界面 2、查找功能:
在本功能中我们提供给用户用学号查找方式,若系统中没有用户 4 要查找的学生信息时系统将给出相应提示。
功能流程图:
查找学生信息学号是否存在否否判断数据是否为空是显示学生信息在数据库中没有对应的学号,继续查找或返回主界面是按2返回主界面3、更改功能:
本功能中我们首先提示用户进行相应的查找,查找成功后方可进 行修改,若输入的学号不存在,则要重新输入或返回主菜单。
功能流程图:
更改学生信息学号是否存在判断数据是否为空 否否是显示学生信息在数据库中没有对应的学号,重新输入继续更改或返回主界面是按2返回主界面删除学生信息 4、删除功能:
在此功能模块中用户可先根据我们的提示进行相应的删除,同时可查看要删除的学生的信息,然后用户决定是否进行删除。
若不存在要删除的信息提示用户退出或继续删除其他学生信息。
功能流程图:
学号是否存在选择修改项继续修改返回主界面否否判断数据是否为空是删除学生信息继续删除在数据库中没有对应的学号,重新输入继续删除或返回主界面是按2返回主界面按2返回主界面 5
5、显示:
执行本功能后会将全部信息显示出来。
功能流程图:
显示判断数据是否为空否显示全部学生信息是 6、密码维护:
此功能模块主要包括添加用户、删除用户、修改用户密码、显示 用户名和密码、退出维护,可同时拥有多个用户名和密码登陆该系统。
功能流程图:
增加用户输入增加的用户和密码按2返回主界面删除用户输入密码,正确后方可进行操作输入要删除的用户名,选择是否删除修改密码输入要修改的用户名,输入旧密码正确后方可更改显示用户名和密码显示出所有用户名和密码退出维护按任意键返回主界面 二、主界面介绍 于编者水平有限本系统采用的是DOS界面,因此界面上与可视化编程还有一定差距。
但我们在现有的知识基础上充分考虑了用户的需求,把我们的主界面设计的比较友好。
主界面抓图 6 若密码输入有误时:
若输入的密码错误次数达到3次系统将自动退出。
当用户输入用户名和密码正确后才能进入以下界面:
7 三、详细内部设计介绍 本学籍管理系统采用c++编程,使用面向对象的程序设计思想来编写的。
主要采用了数据结构中的顺序表来实现学生学籍信息的保存和各种功能的实现。
并将记录以.data文件存储。
本系统主要两个文件组成分别是:
database、user。
database是用来保存学生信息的文件。
User是保存系统用户及密码的文件。
为了简化程序使主函数简洁,我们将本系统分成三部分分别来编写。
这三部分分别为:
类.h、成员函数.cpp、主函数.cpp。
这样实现了程序分模块编写。
下面将详细介绍各模块的具体功能和实现过程以及各个函数的实现细节。
一、类.h 此头函数主要作用是定义了一个枚举类一个结构体(user)和三个类。
头函数中的三个类分别是学生信息类、操作系统类、设置密码的类。
在枚举类中主要有; 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)中定义有:
charusername[11];//用户名 charpassword[11];//密码 在学生信息类中分别定义了十八个成员变量。
这十八个成员变量分别是 intstu_Num;//学号stringstu_Name;//姓名stringstu_Sex;//性别stringstu_Nation;//民族stringstu_Institude;//学院stringstu_Zhuanye;//专业 stringstu_Id; //身份证号stringstu_Birth; //出生日期stringstu_Phone; //联系方式stringstu_Oldname; //曾用名stringstu_Jiguan; //籍贯 stringstu_Familyaddr; //家庭住址stringstu_Xuezhi; //学制stringstu_Banji; //行政班级 stringstu_Ruxue; //入学日期stringstu_xueli; //学历层次stringstu_Mianmao; //政治面貌stringstu_Email; //电子邮箱 将其中十七个成员变量分别定义为string型的,这是因为如果定义成其他类型,用户在输入信息时可能会输入一些不合法的数据造成系统的死循环。
应用string型就会避免死循环情况。
在类.h中定义的操作系统类,此类就相当于十二个功能组成的模块。
在类的public部分基本 intShowMainMenu(); //显示主界面intAddStuInfo(); //添加学生信息intChangeStudentInfo(); //修改学生信息intDeleteStudentInfo(); //删除学生信息intSearchStuInfo(); //查找学生信息 intShowDispInfo(); //全部输出学生信息intAppendUser(); //增加用户intDelUser(); //删除用户 intModifyPassword(); //修改用户密码intPrintUser(); //显示用户名和密码 9 intModifyUser(); //用户维护主菜单 voidDrawtree(); //美化主界面 组成。
这十二个成员函数彼此独立并在成员函数.cpp中定义。
在类的private部分基本m_TotalNum用来记载学生的个数的,及定义了一个容量为11的结构体数组user,应用此数组来保存用户名及密码,它决定了用户的最多为11个。
在设置密码的类中两个主要的成员函数分别为 voidInputUserName(int&i);//输入用户名 intInputPassWord(inti);//输入密码二、成员函数.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中的记录读到顺序表中来。
在修改前必须先找到要修改的学生信息,用户根据提示选择操作数,查找成功的话就将此人信息显示,让用户确定。
此时如果不再需要修改也可以退出修改操作。
如果查找失败的话,程序将提示用户不存在此该学生信息,系统给以提示,用户进行选择是退出修改函数返回主界面还是继续修改其他学生信息。
若修改成功系统将提示用户是否确定修改,确定则将修改后的信息以覆盖原文件的方式保存到文件中,否则取消修改。
4、DeleteStudentInfo() 本成员函数是实现删除功能的函数,在执行时首先进行database文件打开的判断,操作同Change()。
判断m_TotalNum的值。
如果m_TotalNum为0学籍为空无法进行删除,退出删除函数,系统提示用户返回主界面。
若m_TotalNum不 10
为0,首先提示用户查找出要删除的学生信息。
如果该生信息存在,输出此人的所有信息后询问用户是否真的要删除,用户选择。
此处同样设计了容错机制。
如果删除了该生信息将m_TotalNum减1并重新保存到database文件中,然后用户选择是否要返回主界面。
5、ShowDispInfo() 此函数是实现将学籍系统中全部信息输出的成员函数,在执行时首先也是进行database文件打开的判断操作,同上,将database文件中的值赋给m_TotalNum。
判断m_TotalNum的值。
若m_TotalNum的值为0,学籍系统为空并退出输出函数,返回主界面。
若m_TotalNum不为0将保存记录的文件database打开将内,然后用for循环将数组的内容以表格的形式显示。
6、ModifyUser() 为了保护用户的个人资料不被非授权人查看或篡改,我们特为本系统进行了加密处理。
此函数主要是实现密码的维护。
下面详细介绍各个函数AppendUser()此函数是实现增加用户功能。
在执行此函数时首先定义一结构体数组大小为11,用来存储用户名及输入的密码以及再次输入的用户名及密码。
DelUser()此函数是实现删除用户功能的。
ModifyPassword()此函数是实现修改用户密码功能的。
PrintUser()此函数是实现显示用户名和密码功能的。
7、InputPassWord()和InputUserName() 当用户对系统进行了用户及密码的设定后,主函数将自动调用它们。
它们分别是实现输入用户及密码的功能。
在函数中主要是将用户登陆时输入的用户及密码与保存用户及密码的文件中的内容进行比较。
如果匹配将成功登陆,如果不匹配将提示重新输入密码,在函数中有一个专门记录输入用户或密码次数的变量i,每次重新输入密码时变量加1。
如果用户或密码错误输入次数达到三次将自动退出系统。
四、主函数.cpp 此函数为整个程序的核心部分,在此函数中将执行各个函数来实现各种功能时,直接调用.cpp内的成员函数。
四、实现过程 运行系统时首先输出系统标题及提示用户输入用户名和密码。
程序将执行InputUserName(int&i)函数和InputPassWord(inti)函数进行用户名和密码的输入。
若用户名和密码正确系统将进入主界面。
主界面7项构成分别代表是:
添加、查找、修改、删除、全部输出、密码维护、退出系统。
它们分别有各自所代表的操作数。
用户输入操作数执行相应的操作。
此功能switch语句实现,当用户输入不同的操作数程序将进入不同的函数模块。
进入各个函数后的运作过程在“详细内部设计”中已给出此处不再赘述。
本系统主要的算法都是与顺序表有关的算法,在查找时是将文件中保存的记录读出送到一个结构体数组中。
然后将输入的信息与相应的结构体中的成员进行顺序比较。
修改时也是将结构体数组中的某个成员的属性进行修改。
删除操作对应于顺序表的删除操作,其具体过程为:
如果查到要删除的记录在数组 11 中的位置为i就用一个for循环将i后的记录全部前移一位,然后将count减1。
全部输出是将文件中保存的记录赋给一个数组,然后用一个for循环将数组的内容全部输出显示。
实现过程流程图:
判断有无密码有密码无密码输入用户名及密码设密及用户名后进入主界选择操作数密码错误密码正确进入主界面错误次数达到三次选择操作数操作数合法操作数不合法退出系统操作数不合法操作数合法进入操作数代表的功能模块进入操作数代表的功能模块 五、系统总结 一、系统优点:
1、程序中大多数变量定义为string型的,使系统具有较高的容错机制,对错 误有较强的处理功能,使系统一般不会因用户的失误而进入死循环状态。
2、系统界面简洁、方便、友好,用户根据我们的提示会很容易的进行相应的操作。
12 3、系统考虑周到,充分满足了用户的需求。
在添加时我们对重名进行了处理,在进行添加和修改学生信息时,我们在每次输入完一样信息后,都会出现继续操作或返回主界面,使用户根据需要进行操作。
4、系统具有错误提示功能。
当用户进行错误的操作时,系统将以文字提示用户注意。
5、系统的密码维护功能设置了权限只有在密码输入正确的情况下,才能进行密码维护下的相关操作。
13 二、系统的不足:
本系统存在一些不足,在更改学生信息时,每次只能更改一项,若要继续更改同一人的其他信息则需要再次输入此学生的学号,给系统使用者造成不便;在进行密码维护时,需要输入的密码只能在源代码中进行更改,如果能够直接在系统中更改,我们无法达到想要的效果。
本系统采用DOS界面,界面单一,无法达到MFC视觉上的效果。
六、附录:
一、系统测试及结果 1、在主界面中按1键进入新增界面:
14 依次输入各项信息 如果遇到学号相同现象:
15
如果选择操作时输入错误会出现:
用户选择继续添加同最上图,当选择退出添加即进入主界面 2、按2键进入更改学生信息菜单当数据库为空时出现下面的界面:
当数据库不为空时:
用户可以根据相应选项进行相应的更改。
16 3、按3键进入删除学生信息菜单 选择1将把此人信息删除,选择2将退出删除,返回主菜单。
若没找到此人信息:
4、按4键选择查找学生信息菜单:
若没有找到该生信息:
17 5、按5键全部输出学生信息菜单6、按6进入密码维护菜单 为了保护用户信息安全当进行其中的操作时,得输入密码。
当输入密码错误时:
18 A、增添用户时:
B、删除用户时:
C、修改用户密码:
19 若输入密码不同:
D、显示用户名和密码:
Q、退出维护:
7、按7退出系统 20
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学籍 管理 系统 实验 报告