随机点名系统软件详细设计说明书Word文档格式.docx
《随机点名系统软件详细设计说明书Word文档格式.docx》由会员分享,可在线阅读,更多相关《随机点名系统软件详细设计说明书Word文档格式.docx(15页珍藏版)》请在冰点文库上搜索。
4.9存储分配11
4.10注释设计11
4.11限制条件11
4.12测试计划11
4.13尚未解决的问题11
详细设计说明书
1引言
1.1编写目的
在本随机点名系统项目的前一阶段,也就是概要设计阶段中,已经将系统用户对本系统的子模块功能做了详细的阐述,这些模块功能具体设计将在本报告中详尽得以叙述及阐明。
本阶段已在系统的概要设计的基础上,对随机点名系统做详细设计。
主要解决了实现该系统程序模块具体设计问题。
包括确定算法,数据结构,模块接口的使用,数据库的动态操作以及界面设计等。
在以下的概要设计报告中将对在本阶段中对系统所做的所有详细设计进行详细的说明。
在下一阶段的编码过程中,可参考此详细设计报告,在详细设计对随机点名系统所做的算法设计,数据结构以及数据库动态操作的基础上,对系统进行编码。
1.2背景
开发软件名称:
随机点名系统。
开发者:
李昊霖
用户:
高校教师,学生,教务人员
运行环境:
个人电脑
开发平台:
VB平台,Mysql数据库。
1.3定义
流程图:
反映现行系统各机构的业务处理过程和它们之间的业务分工与联系,以及连接学生,教师和管理员信息流的传递和流通关系,体现现行系统的界限、环境、输入、输出、处理和数据存储等内容。
功能需求:
用以说明系统“做什么”
用户接口:
在数据库系统中,数据库管理系统作为用户与数据库的接口,提供了数据库定义、数据库运行、数据库维护和数据安全性、完整性等控制功能。
模块:
模块,又称构件,是能够单独命名并独立地完成一定功能的程序语句的集合(即程序代码和数据结构的集合体)。
系统安全性:
是指系统有能力防范意外或人为地破坏信息系统的运行,或非法使用信息资源的能力。
Random-RollcallSystem,随机点名系统:
是局域网环境下的计算机管理信息系统,其功能主要包括对班级学生进行清点,以及上课时随机提问点名,给出学生回答的分数,记录查询等系统功能。
1.4参考资料
参考资料:
《软件工程导论》(第四版)张海藩编著清华大学出版社
《数据库系统概论》萨师煊王珊主编高等教育出版社
《软件文档编写》.潘孝明辛明海主编.高等教育出版社
《管理信息系统》陆安生主编,水利水电出版社
2程序系统的结构
图1系统结构图
3程序1(教师记录考勤情况)设计说明
3.1程序描述
本程序用于教师记录学生考勤情况目的是为了给学生评分。
本程序具有非常驻内存,可以重入的,有覆盖要求,顺序处理等特性。
3.2功能
图2记录考勤情况程序IPO图
3.3性能
1.精度
由于采用数据库技术并且用户的应用领域对数据精确度的要求不是太高,所以这点在系统中表现得比较少,但是用户数据的安全性与正确性是完全保证的,所以对用户的使用没有多大的障碍。
2.响应时间
本系统的数据库较小,所以程序在响应时间,数据更新处理时间上性能是比较突出的。
而且也正由于数据量相对较少,故在数据传输时间和系统运行时间上表现的较让人满意。
并且在编写代码时注意到了处理时间的问题,有效的避免了死循环以及无效命令。
3灵活性
该软件是使用ASP在windowsxp系统下完成的所以只要是兼容windows的软件或是操作系统,该软件都可以正确地运行,有较好的适应能力与兼容性。
而且应用户的特殊需求软件在完成后的维护阶段可以保持一个与其他类软件接口,随时满足用户的使用要求。
本系统要求灵活性强,能根据适当情况进行数据更改。
3.4输人项
输入的各项要求如下表所示:
Student表
字段名
意义
数据类型
宽度
Null
PrimaryKey
S_num
序号
Numeric
9
No
S_id
学号
Char
12
√
C_name
班级
10
S_name
姓名
S_sex
性别
2
S_tel
联系电话
11
Yes
S_fenshu
分数
表1Student表
3.5输出项
本程序输出项为返回用户的输入项,并且要求用户确认输入项是否正确,故输出项与输入项要求一致,具体可参见输入项。
3.6算法
本程序的目的就是把数据输入到数据库中,所以算法就是数据库的储存方法。
stringstr_savename,named,s_grxh
intexcelok,li_net
longli_count,i
excelok=excelserver.connecttonewobject("
excel.application"
)
//检查返回值,以确保已成功地连接到了Excel
ifexcelok<
>
0then
messagebox("
信息提示"
"
连接EXCEL失败,请检查计算机中是否安装了EXCEL!
"
return-1
endif
li_net=GetFileOpenName("
选择文件"
str_savename,named,"
xls"
Excel文件(*.xls),*.xls"
ifli_net>
ifstr_savename="
thenreturn-1
dw_xinxi.settransobject(sqlca)
excelserver.activesheet.cells.copy
li_count=dw_xinxi.importclipboard
(2)//导入数据
clipboard("
excelserver.quit()
excelserver.disconnectobject()
update(dw_xinxi)
messagebox("
系统提示"
导入成功!
!
)
destroyexcelserver
return1
elsemessagebox('
信息提示'
'
没有指定导入文件!
'
)return-1
3.7流程逻辑
N
Y
图3流程逻辑图
3.8接口
在输入方面,对于键盘、鼠标的输入,可用Java、jsp的标准输入/输出,对输入进行处理。
在输出方面,打印机的连接及使用,也可用Java的标准输入/输出对其进行处理。
内部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进行信息传递。
具体参数的结构将在下面数据结构设计的内容中说明。
接口传递的信息将是以数据结构封装了的数据,以参数传递或返回值的形式在各模块间传输。
3.9存储分配
本程序用语言vb进行编程,直接内存分配由VB程序运行时分配。
本组件所依赖的变量,结构要求全部在组建内申明。
3.10注释设计
注释的原则是助于对程序的阅读理解,不宜太多或者太少,注释语言必须准确、易懂、简洁。
下面是对源程序里面的注释的设计:
1、说明性文件头部进行解释,头文件的注释中有函数功能的必要说明;
2、代码的目的、功能和采用方法,提供代码以外的信息,帮助读者理解代码,防止没必要的重复注释信息;
3、边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性;
4、对于所有有物理含义的变量、常量,如果其命名不是充分来自注释的,均加以注释,
说明其物理含义。
变量、常量、宏的注释放在了其上方相邻位置或右方。
3.11限制条件
暂无限制条件
3.12测试计划
在测试过程中,首先需要对各子单元过程进行测试。
在各子单元过程测试完毕后,再对各模块(包括各子单元过程之间的接口)进行测试,处理好各模块之间的接口,最后对系统进行测试和维护。
主要通过测试部分,发现开发人员忽视的部分,通过测试人员和编码人员的沟通和协作,可以不断的改进系统,不断提高系统的性能以及安全性。
3.13尚未解决的问题
由于本程序涉及模块简单,教师记录考勤程序的漏洞较少,故暂时没有发现待解决的问题。
4程序2(登陆程序)设计说明
4.1程序描述
本程序主要是用于用户的登录系统,主要是举例说明教师登录的程序,其他的登录程序与之类似。
同理,本程序具有非常驻内存,不可重入的,无覆盖要求,顺序处理的特性。
4.2功能
登录程序的功能在于控制各种权限的用户以不同身份登录到程序中,从而实现对软件安全性的有效控制。
4.3性能
精度要求:
密码为0到10个字符或数字。
灵活性要求:
可在windows98/windows2000/windowsMc/windowsXP下正常运行。
时间特性:
登录到主界面的时间正常下少于3秒。
说明对该程序的全部性能要求,包括对精度、灵活性和时间特性的要求
4.4输入项
由于登录程序输入项类别比较少,所以不用列表的形式表出:
输入用户名,密码,用户类别(教师),字符类型均是字符型;
4.5输出项
验证成功登录系统
失败提示验证失败
4.6算法
加密解密类的设计
加密算法采用的是变换法,先确定密钥是0X01、0X2E、0X6E、0X6D。
考虑到本算法是针对密码加密,所以用户输入的密码为明文,加密后的内容为密文。
简要算法如下:
加密:
密文=明文+密钥(明文+密钥<
=FF)
密文=明文+密钥-256(明文+密钥>
FF)
同时,考虑到对很多无法显示的字符很难以字符的形式进行存储。
所以,需要对加密后的内容进行处理,使其能够以可显示的字符的形式存储到数据库中。
将任何一个1字节的数变为两个大写字母来表示,是解决此种意外情况的关键所在。
先简要以代码的形式描述如下:
for(int=0;
I<
S.GetLength();
i++)
{
J=(BYTE)S.GetAt(i);
Str=”12”;
Str.setat(0,65+j/26);
Str.setat(1,65+j%26);
Result+=str;
}
关于解密函数,这里不做过多说明,解密是加密过程的的、逆过程。
对于整体的登录算法如下:
Stringls_leixing,ls_mima
ls_leixing=trim(ddlb_leixing.text)
ls_mima=trim(sle_mima.text)
//判断是否输入数据
ifddlb_leixing.text="
then
messagebox("
缺少数据"
请选择用户类型"
ddlb_leixing.setfocus()
return
elseifsle_mima.text="
请输入密码"
sle_mima.setfocus()
endif
//确定登录的类型并进入相应的界面
管理员"
andsle_mima.text="
1111"
Open(w_guanliyuan)
Close(w_denglu)
elseifddlb_leixing.text="
andsle_mima.text<
then
您输入的用户类型与密码不匹配"
)
sle_mima.text="
教师"
2222"
then
Open(w_tishi)
22222"
学生"
3333"
Open(w_xuesheng)
4.7流程逻辑
逻辑流程如下图所示:
图4逻辑流程图
4.8接口
4.9存储分配
4.10注释设计
见对记录考勤情况的注释设计。
4.11限制条件
由于在算法中已经解决密码非数字的问题,故对密码是没有限制的。
4.12测试计划
4.13尚未解决的问题
对用户ID和密码的更安全加密方式尚未解决