1. 概述
该软件(教师住房管理系统)能实现如下功能:
(1) 基本信息录入:提供友好的录入界面,便利的录入方法,以及较强的自动纠错
机制。
(2) 基本信息浏览:较直观地按住房等级列出住号及该等级的住户数,一目了然,
并可实现随意浏览。
(3) 基本信息浏览:
a. 基本查询:根据输出的字段(如姓名、住号等),查找匹配纪录;
b. 分类查询:根据预设的条件,查询匹配的纪录(如查找婚后分居在集体宿舍户
主信息。
(4) 基本信息的添加、删除修改。
(5) 分房申请信息的录入及平分:提供快捷的信息录入方法:由于申请分房的即为
教师(户主或家庭成员),故可直接从基本信息库中直接调入,节省输入时间并能保证数据的正确性。信息录入后能立刻计算出各申请者的各单项分及总分,并能自动动态地按分数由高到低以列表形式非常直观的列出并能查找及删除。
(6) 分房处理:给分房者测评的目的是为了辅助分房。该项功能能灵活选择总分前
若干名申请者准予分房,并能任意地且十分直观地为每个拟分房者选择新居,且分房后能自动更新基本信息表中的相关信息(住号、住房登记及入住时间相应改变),并给出分房纪录,一边检查。
(7) 报表生成:能将分类查询以及分房申请者详细测评信息生成报表。 (8) 打印功能:提供褒贬的打印功能。
(9) 身份确认及密码管理:进入系统时,对用户身份检查,只允许系统操作员登录
系统,并提供注销功能,注销后,需重新注册操作员信息,方便管理权的转让。用户登录密码采用加密算法,一定程序上保护了系统的安全性,用户可随时更换自己的密码,或注销后重新注册新的用户名和密码。
(10) 帮助:为用户的使用提供帮助。 2. 模块结构图。
身份验证 登录系统 重新登录 消息循环 基本信息录入 基本信息浏览 基本信息查询 基本信息更新 申信录及分 请息入评分房处理 密码管理 退出 正常 退出 分类查询 基本查询 增加 删除 修改 浏览 查找 删除
3. 外部接口设计
(1) 用户界面:采用目前非常留下的GUI,即诸如窗口、菜单、对话框、状态栏等,
其基本信息相关模块的界面如图1示。
(2) 软件接口:能运行于win9X/win2K/winNT/winXP上。 (3) 硬件接口:需Intel Pentium级处理器,大于16MB内存。 4. 数据结构设计
(1) 数据库(表)host定义 字段名 ID Name Sex Married Birth Workdate Zc Xl Livedgr Livearea 中文名 住号 户主姓名 性别 婚否 出生年月 参加工作年月 职称 学历 住房等级 入住时间 类型 Char 4 Char 12 Char 2 Bool Date Date Char 10 Char 8 Integer Float Indate 入住时间 Date (2) 数据库(表)member定义 字段名 ID Name Sex Relation Birth 中文名 住号 姓名 性别 与户主关系 出生年月 类型 Char 4 Char 12 Char 2 Char 10 Date (3) 数据库(表)login 定义 字段名 Name Password Time 中文名 用户名 密码 最近一次登录时间 类型 Char 20 Char 20 Date (将login.mdb伪装为login.dll以此作为保护系统安全的手段之一) (4) 数据库Applyinfo.mdb 表1~6结构定义 字段名 ID Name zc xl Birth workdate livedgr zcf nlf xlf zf newID 中文名 住号 申请者姓名 职称 学历 出生年月 参加工作年月 原住房等级 职称分 年龄分 学龄分 总分 拟分房号 类型 Char4 Char12 Char10 Char8 Date Date Integer Float Float Float Float Char4 (5) 全局变量: 打开数据库:
① 数据库对象 db 打开数据库 basicinfo.mdb ② 数据库对象 db 打开数据库 applyinfo.mdb
系统初始化后,各需访问数据库的模块均访问全局变量①和② 5.模块描述
5.1 模块说明:
表1 模块设计 模块编号 M1 M2 M3 模块名称 身份验证模块 密码管理模块 基本信息录入模块 备注 验证用户身份 修改密码,注销信息 M4 M5.1 M5.2 M6 M7 M8 M9.1 M9.2 M9.3 M10 基本信息浏览模块 基本信息普通查询模块 基本信息分类查询模块 基本信息的删除模块 基本信息的修改模块 申请信息的录入及评分模块 申请信息的浏览模块 申请信息的查找模块 申请信息的删除模块 分房及更新基本信息模块 生成报表 5.2 各模块使用的算法及数据结构 5.2.1 身份验证模块:
数据结构:见4.3 算法:主要算法为密码加密算法。保存密码的数据库虽伪装为.dll(动态连接库)文件,但能被破解的可能性还是较大的,加密算法将用于输入的密码经过加密存入数据库,及时数据库被人恶意查看,能看到的密码亦将是毫无意义的几个字符而已。
加密原理:由于用户通常输入的字符其ASCII码都在32~126之间,所以先将用户输入的字符的ASCII码减去32后乘以19,再对94取模,此时得到的字符范围在0~94之间,再加上33既得到33~127之间的字符,且加密前的字符与加密后的字符是一一对应的。即对于任一字符a,其加密语句为chr(((ASC(a)-32)*19) MOD 94+33 5.2.2 密码管理模块:
基于的数据结构同5.2.1 无复杂算法
5.2.3 基本信息录入模块: 数据结构见4.1和4.2
算法:该模块的复杂算法体现在对树型图中结节数目相应发生变化,由于树型图中各节点的索引值(唯一标识节点对象的值)是按节点加入的先后顺序设立的,当删除掉一个节点后再次添加节点时(即录入数据时)即会出现索引值不唯一的情况,为此,巧妙地利用表单的Form_load事件重载该表单,则节点的索引值重新变得有规律,再次添加时不会出现混乱现象。
5.2.4 基本信息浏览 数据结构同5.2.3
算法:该模块主要算法即为按钮浏览的处理问题。通过调用自定义函数用节点对象为值传递参数,辅以其他参数,巧妙地发挥代码的重用率。
5.2.5 基本信息查询(普通查询、分类查询)模块。 数据结构同5.2.3 无复杂算法
5.2.6 基本信息删除模块
数据结构同5.2.3 算法见5.2.3 5.2.7 基本信息的修改模块
数据结构同5.2.3 无复杂算法 5.2.8 申请信息的录入及评分模块
数据结构见4.1、4.2及4.4。无复杂算法
5.2.9 申请信息相关处理模块
数据结构见4.3 无复杂算法。 5.2.10 分房及更新基本信息模块 数据结构同5.2.8
次模块算法关键用扫描法找出空余房号供分房使用,详见源代码。
因篇幅问题不能全部显示,请点此查看更多更全内容