目 录
一、 项目技术路线说明 1
二、 项目需求分析 2
2.1 项目介绍 2
2.2 功能需求 2
三、 系统分析与设计 3
3.1 本程序需解决的关键技术问题 3
3.2 程序流程 3
3.2.1 注册或登陆流程图 3
3.2.2 信息日期判断流程图 4
3.2.3 操作功能选择模块 5
3.3 功能模块 6
3.3.1 增删改查总模块 6
3.3.2 录入信息模块 7
3.3.3 查找模块 7
3.3.4 删除模块 7
3.3.5 修改模块 8
3.4 类的设计 8
四、 程序设计与实现 10
4.1 工程文件组织结构 10
4.2 程序设计 10
4.2.1 Date类设计 10
4.2.2 Person类设计 11
4.2.3 Student类设计 11
4.2.4 Teacher类设计 11
4.2.5 Graduate类设计 11
4.2.6 GraduateTeacher类设计 11
4.2.7 Surface类设计 11
4.3 程序实现 12
4.3.1 Date类实现 12
4.3.2 Person类实现 12
4.3.3 Student类实现 12
4.3.4 Teacher类实现 12
4.3.5 Graduate类实现 13
4.3.6 GraduateTeacher类实现 13
4.3.7 注册登陆功能实现 13
4.3.8 录入信息功能实现 13
4.3.9 查找信息功能实现 14
4.3.10 删除信息功能实现 14
4.3.11 修改信息功能实现 14
4.3.12 输出信息功能实现 15
4.3.13 文件读写操作实现 15
五、 系统测试 17
5.1 测试概要 17
5.2 测试环境与配置 17
5.3 测试方法和工具 17
5.4 系统功能分解 17
5.5 测试内容 18
5.5.1 注册和登陆模块测试 18
5.5.2 录入信息模块测试 20
5.5.3 查询信息模块测试 21
5.5.4 删除信息模块测试 22
5.5.5 修改信息模块测试 23
5.5.6 文件读写模块测试 25
六、 个人小结 28
七、 参考文献 29
一、项目技术路线说明
使用C++面向对象设计该游客信息管理系统,必然需要面向对象的三大特性:封装、继承和多态。对于项目实现要将不同的类的成员进行封装,只保留相应的接口提供给外部。而因为是面向高校的师生,所以有不同的类型的游客,比如老师、本科生、研究生和助教学生等等。那么就可以抽象出统一的一个Person类,那其他的类就可以去继承这个类,而助教学生一般既是老师又是研究生,那么又要求到老师和学生是虚继承Person类,才能保证助教学生的对象不会产生二义性。而多态有静态多态和动态多态两种,动态多态要保证基类中有虚函数,所以要在基类中定义相应的虚函数。文件操作需要有文件流,这样才能实现文件操作。因为是管理系统,必然具备多文件结构的思想,将类的定义与类的实现进行分离。对于用户操作的菜单界面,要提供友好的提示,便于用户进行使用,保证管理系统的合理与规范。
二、项目需求分析
2.1项目介绍
项目是面向高校师生的游客信息管理系统,当前疫情防控前提下,当高校师生进行旅游或者游玩时,为了便于进入各个景区或者娱乐场所,除了要收集汇总师生们的个人基本信息外,还需要统计大家的体温状况等。
2.2功能需求
项目面向高校师生,所以需要有登录和注册的功能,当然有时为了方便可以提供普通游客免密登陆,省去注册和使用密码的步骤,但是提供给游客登陆的功能相对其他类型的成员就会缩减。比如不能让普通的游客对已有的师生信息进行修改。
需要菜单功能供选择,从而进入不同的功能模块。所以需要有总菜单,还需要不用的子菜单的功能,比如不用的用户类型所具备的操作功能不同的显示,还有在部分操作功能下还需要有子菜单。
需要录入师生信息的功能,可以录入用户的信息(姓名、身份证号、出生年月日,以及体温以及不同身份所具有的特有的信息)。同时还要对对用户的出生日期进行合法的检测,以及通过用户的体温判断当前的健康状况,并予以提醒。还需要有计算功能,通过用户输入的合法出生日期,可以调用系统函数获取系统的当前的日期计算用户的年龄,可以省去用户自己输入年龄的步骤。
需要查看并输出信息的功能,输出可输出各类成员的人数和总人数,每类成员的发热人数。
还要又各中人员的具体信息(包括姓名、身份证号、出生年月日,以及体温以及不同身份所具有的特有的信息)。
并需要查找、修改、删除的功能,可以通过选择按姓名、学号或职工号、身份证号三种方式进行查找;同时删除和修改的功能可以先利用查找功能寻找对应的人员,再进行删除或者修改。
需要文件操作功能,对如已经录入好的师生信息,需要能够生成相应的文件,进行信息的长久保存,便于实际在游客游玩的过程之中进行使用。同时,也可以对已经保存下来的师生信息,再进行文件内容的对取。
#include <iostream>
#include<string>
#include "Surface/Surface.h"
using namespace std;
int main() {
Surface menu;
menu.Connection_one();
return 0;
}