源码下载地址:/download/sheziqiong/87791265
源码下载地址:/download/sheziqiong/87791265
系统总体设计
校友管理系统是一套功能强大、操作简便而又实用的校友信息管理软件,它可以被广泛的应用于各高校校友之间的信息交换。开发此校友系统的目的为了克服高校师生传统落后的信息交换方式,难以应对信息更换等突发情况,联系人过多、杂乱等问题,根据对现有校友联系信息记录模式的分析,确定了该系统需实现以下功能:
实现对校友有关的信息的添加、删除、查询、修改等操作;实现各校友实时共享、更新联系信息;实现各校友筛选符合条件的校友联系信息;实现联系信息的导出、备份功能;
系统功能模块图
根据用户需求,本系统将主要实现以下功能:
其中:
读取:包括对校友信息、学校信息、公司信息的读取。
查询:针对校友信息,按编码、姓名、电话、职务等可见字段进行模糊查询。
排序:对于可见字段,按列进行排序的功能。
筛选:对于可见字段,按内容进行多列筛选显示。
添加:在信息末尾添加新的校友信息字段记录。
删除:对已存在校友信息、学校信息、公司信息进行删除操作。
打印(未完成):将校友详细信息以图片格式输出。
维护:对所有数据信息和操作进行备份、记录。
各类间关系
本系统共主要使用23种类:
其中Qt类库含13种(八边形框表示):主视窗类、浮动视窗类、对话视窗类、工具栏类、按钮类、菜单栏类、表格类、关系表格模型类、数据库类、标签类、行编辑器类、下拉框类、排布器类;
继承自Qt类库7种(圆角矩形框表示):主窗口类、连接视窗类、关于视窗类、表格数据视窗类、 用户视窗类、学校视窗类、公司视窗类、查找视窗类;
自定义类2种(方角矩形框表示):筛选框类、自定义表头类;
其余部分为以上主要类的对象实现(六边形框表示)。
以下是各主要类之间关系说明图:
详细设计
本系统主要功能包括:信息读取,编辑,排序,筛选,查找,打印,维护等
其中信息读取功能使用连接视窗类和表格数据视窗类来实现,编辑、排序、筛选、查找、打印功能使用表格数据视窗和详细数据视窗来实现。下面分别介绍连接视窗类,表格数据视窗类,详细数据视窗的详细设计。
连接视窗类
主要功能:连接数据库
具体实现流程:
主窗口连接按钮触发弹出连接视窗
设置、排布数据库连接相关编辑信息元件
用户输入相关连接信息并点击连接
返回错误信息或获得数据库指针并进入表格数据视窗界面
主要定义:
成员变量:layout、kindBox、hostLine、dataLine、userLine、portLine、passwordLine、connectLine、btn、db。
成员函数:link、getDB。
成员函数link主要功能为连接数据库,实现方式为:作为槽函数与btn按钮绑定,在按钮点击触发时读取成员变量Box和各Line的内容,并使用db数据库类进行链接。成员函数getDB主要功能为获取数据库指针,实现方式为:作为共有成员函数,在数据库连接成功后传递数据库信息至表格数据视窗内。
表格数据视窗类
主要功能:显示数据信息,并进行排序、筛选、编辑等操作。
具体实现流程:
连接视窗数据库连接成功后展开表格数据视窗
设置右键菜单、表格、数据模型、表头信息等
右键菜单进行数据刷新、切换数据表、增加信息、查找信息
点击表头和筛选元件进行排序、筛选
双击数据行弹出详细数据视窗界面进行编辑信息。
主要定义:
成员变量:db、Parent、tableview、menu、RefreshAction、AddAction、FindAction、PeopleAction、SchoolAction、CompanyAction、showFilter、model、Filter、findwidget。
成员函数:dataClick、Menu、refresh、add、find、showPeople、showSchool、showCompany、onDelete、onFilterClicked、onHeaderDataChanged、onFilterHide。
成员函数dataClick主要功能为弹出详细数据视窗界面,实现方式为:作为槽函数与menu中的AddAction绑定,在菜单栏按钮点击时触发函数信号,检测model当前数据表名,并弹出相应详细数据视窗。成员函数refresh主要功能为读取数据信息,实现方式为:作为槽函数与menu中的RefreshAction绑定,在菜单栏按钮点击时触发函数信号,刷新model中的数据信息,并刷新showFilter中的筛选信息。成员函数add主要功能为添加信息,实现方式为:作为槽函数与menu中的AddAction绑定,在菜单栏按钮点击时触发函数信号,添加一行空白数据,并呼出详细数据视窗进行编辑。成员函数find主要功能为查找信息,实现方式为:作为槽函数与menu中的FindAction绑定,在菜单栏按钮点击时触发函数信号,呼出findwidget窗口进行数据查找。成员函数showPeople、showSchool、showCompany主要功能为切换数据表,实现方式为:作为槽函数与menu中相应的Action绑定,在菜单栏按钮点击时触发函数信号,初始化表格数据并切换数据表。成员函数onDelete、onFilterClicked、onHeaderDataChanged、onFilterHide主要功能为处理筛选框事件,实现方式为:作为槽函数与showFilter中的信号触发函数绑定,在筛选框编辑时时触发相应函数信号,实现数据筛选功能。
详细数据视窗类
主要功能:显示和编辑某一条数据的详细信息
具体实现流程:
鼠标双击某一条数据或触发addAction
设置、排布数据相关编辑信息元件
信息元件链接数据表数据
用户编辑修改信息,点击保存、取消或删除
提交信息并保存,检测是否提交成功
返回表格数据视窗
主要定义:
成员变量:layout、mapper、btn、model、Row、若干Edit、若干Box
成员函数:save、remove、cancel
成员函数save主要功能为保存数据,实现方式为:作为槽函数与btn按钮绑定,在按钮点击触发时读取成员变量Box和各Line的内容,并使用mapper数据映射实现数据保存。成员函数remove主要功能为删除数据,实现方式为:作为槽函数与btn按钮绑定,在按钮点击触发时调用model的成员函数removeRow删除一行数据。成员函数cancel主要功能为取消操作,实现方式为:作为槽函数与btn按钮绑定,在按钮点击触发时调用窗口类的成员函数close关闭详细数据视窗并返回父窗口。
系统测试
测试方法
软件测试的一般方法有:白盒测试、黑盒测试、灰盒测试
白盒测试是指:借助程序内部的逻辑和相关信息,通过检测内部动作是否按照设计规格说明书的设定进行,检查每一条通路能否正常工作。
黑盒测试是指:把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
灰盒测试是指:介于黑盒测试和白盒测试之间。灰盒测试除了重视输出相对于出入的正确性,也看重其内部表现。但是它不可能像白盒测试那样详细和完整。它只是简单的靠一些象征性的现象或标志来判断其内部的运行情况,因此在内部结果出现错误,但输出结果正确的情况下可以采取灰盒测试方法。
本系统采用黑盒测试方法进行测试
测试用例
本系统使用MySQL进行数据存储,采用Navicat进行数据管理测试,所用数据表有:people、company、school、job、major、scale、trade、work、propertiesc、propertiess。其中job、major、scale、trade、work、propertiesc、propertiess为预设数据,不可通过本系统进行编辑。
School测试数据共6组:
Company测试数据共10组:
People测试数据共10组:
源码下载地址:/download/sheziqiong/87791265
源码下载地址:/download/sheziqiong/87791265