软件文档写作超市收银员管理系统详细设计Word文档格式.docx
《软件文档写作超市收银员管理系统详细设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《软件文档写作超市收银员管理系统详细设计Word文档格式.docx(14页珍藏版)》请在冰点文库上搜索。
![软件文档写作超市收银员管理系统详细设计Word文档格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/12/27eeb2bc-3625-45c9-9241-6fbde20811a1/27eeb2bc-3625-45c9-9241-6fbde20811a11.gif)
4.1程序描述11
4.2功能11
4.3性能12
4.4输入项12
4.5输出项13
4.6算法13
4.7流程逻辑18
4.8测试计划19
1.引言
1.1编写目的
本文档为《超市收银员管理系统》的详细设计书,详细记录了收银员管理系统的实现细节,本文的读者为系统设计人员和编码人员以及测试人员。
1.2背景
将要开发的软件名为《超市收银员管理系统》,本项目的任务提出者是Wind小组,而开发者也将是Wind小组负责,主要用户是各个小型超市,由超市内的多台计算机组成小型的计算机网络,来对超市信息进行操作,适用于Windows98以上的操作系统。
1.3定义
PC机:
个人计算机
中文之星:
中文之星智能狂拼简称智能狂拼,智能狂拼是一种基于CLM(中文语言模型)技术的整句输入法,是目前唯一款担当中的开发者保留着整句技术的整句输入法软件。
1.4参考资料
[1]《超市收银员管理系统》可行性分析研究报告。
[2]《超市收银员管理系统》项目开发计划报告。
[3]《超市收银员管理系统》软件需求分析报告。
[4]《超市收银员管理系统》软件概要设计报告。
[5]郑人杰,殷人昆,陶永雷,《实用软件工程》,清华大学出版社,1997。
[6]布劳德,《软件设计-从程序设计到体系结构》,电子工业出版社,2007。
2.程序系统的结构
2.1运行环境
2.1.1硬件环境
用户终端机:
采用XXPC机,内存2G,硬盘250GB,大屏幕液晶显示器。
主机:
XXPC机,内存4GB,高速硬盘组250GB,高速缓存,液晶显示器。
网络:
采用TCP/IP网络建立的局域网。
后台服务器支持系统硬件要求:
CPUPentiumIV3.0以上,内存容量2GB以上,硬盘500GB以上。
2.1.2软件环境
可选软件平台:
中文Windows98
Windows98、WindowsNT4.0或更高版本+中文之星2.0;
WindowsCE+中文平台
服务器:
Tomcat5.5
数据库:
MySQL
2.2系统功能结构图
图2-1系统功能结构图
3.程序1(标识符)设计说明
3.1程序描述
管理员子系统主要服务于管理员,管理员用来统一创建收银员登录用的用户名和密码。
管理员根据自己的用户名和密码登录《超市收银员管理系统》之后,可以进入管理员子系统,在相关页面中编辑、查询收银员的个人信息。
3.2功能
图3-1管理员子系统功能图
3.3性能
(1)精度
该程序在输入时时间精确到天。
(2)时间特性要求
(1)响应时间:
小于0.1s
(2)更新处理时间:
小于1s
(3)数据的转换和传输时间:
(4)解题时间:
(3)灵活性
(1)操作方式上的变化:
不变
(2)运行环境的变化:
(3)同其他软件接口的变化:
没有
(4)精度和有效时限的变化:
可调
(5)计划的变化和改进:
可改
3.4输入项
本软件在输入上只要求用户单击界面中相应的按钮即可。
3.5输出项
对于用户单击按钮的行为,软件会做出相应的反应,将信息反馈给用户。
3.6算法
本程序没有采用特殊的算法。
3.7流程逻辑
图3-2流程逻辑图
3.8测试计划
(1)测试新建的信息是否加入数据库。
(2)测试选择查询信息时是否出现收银员信息列表。
(3)测试能否正确提交对收银员信息的修改和删除。
(4)测试能否正确退出。
4.程序2(标识符)设计说明
4.1程序描述
收银员子系统主要服务于收银员,管理员用来统一创建收银员登录用的用户名和密码。
收银员根据自己的用户名和密码登录《超市收银员管理系统》之后,可以进入收银员子系统,在相关页面中查询收银员的个人信息、交易信息、收银信息、商品信息,进行交易操作。
4.2功能
图4-1收银员子系统功能图
4.3性能
4.4输入项
输入数据类型有char型、int型、data型和money型数据,其中money型数据要求精确到小数点后两位,data精确到分钟。
4.5输出项
4.6算法
(1)收银员登录对话框增加了“记住用户名”这一选项。
实现算法为:
将选项是否勾选的状态用一个bool变量表示,新建一个名为“user.dat”的文件。
每次登陆时,读取文件中的内容到“用户名”栏中。
如果选择了“记住用户名”,则将用户输入的用户名重新写到user.dat文件中,否则写入空。
(2)系统中使用了很多对话框,而且每个对话框都不相同。
我们采用了复用对话框的方式。
实现方法为:
定义状态变量
typedefenumstype{
CASHIER_ADD,CASHIER_DELETE,CASHIER_EDIT,CASHIER_QUERY,
Member_ADD,Member_DELETE,Member_EDIT,Member_QUERY,
GOODS_ADD,GOODS_DELETE,GOODS_EDIT,GOODS_QUERY,
CASHINFO_ADD,CASHINFO_QUERY,
TRADE_ADD,TRADE_QUERY
}STYPE;
在OnInitDialog()函数中,用switch-case语句来初始化不同用途的对话框。
这样,16个对话框只用1个对话框资源。
(3)为了能够实时更新系统中的时间(如交易时间,上班下班时间等等),create几个触发器用来获得系统时间。
添加新会员的时候,自动获得系统时间作为注册时间
createtriggerInsert_Member
beforeinsertonMember
foreachrow
begin
:
new.Creg:
=curdate();
end;
添加交易信息的时候,自动获得系统时间作为交易时间
createtriggerInsert_Trade
beforeinsertonTradeinfo
new.Ttime:
=current_timestamp();
--用户登录系统时插入新记录
createtriggerInsert_CashinfoOn
beforeinsertonCashinfo
new.CtimeOn:
--用户更新Crecv时(logout)
createtriggerInsert_CashinfoOff
beforeupdateonCashinfo
if:
old.CtimeOffisnull
then:
new.CtimeOff:
endif;
(4)为了查询的方便,创建了Query_Tradeinfo和Query_Cashinfo两个视图。
createviewQuery_Cashinfo(Qcno,Qcname,Qcrecv,Qctimeon,Qctimeoff)
as
selectCashinfo.Cno,Cname,Crecv,CtimeOn,CtimeOff
fromCashinfo,Cashier
whereCashinfo.Cno=Cashier.Cno;
createview
Query_Tradeinfo(Qcno,Qcname,Qgno,Qgname,Qgprice,Qttime,Qtquantity)
selectTradeinfo.Cno,Cname,Tradeinfo.Gno,Gname,Gprice,Ttime,Tquantity
fromTradeinfo,Member,Goods
whereTradeinfo.Cno=Member.CnoandTradeinfo.Gno=Goods.Gno;
(5)在交易的过程中,会弹出其他的对话框用来更新数据库,采用了重载消息函数的方法,使得更新的数据能以参数的形式传到对话框中。
(6)采用了动态条件修改,删除和查询的方式,实现方法是,在源程序中动态改变查询的条件。
以删除收银员为例:
M_Cashier是CCashierRecordSet(从CRecordSet继承,与Cashier表关联)的对象
如果输入不为空
if(m_strEdit1.GetLength())
{
if(bFirst)
m_Cashier.m_strFilter+="
and"
;
strFilter.Format("
Cno='
%s'
"
m_strEdit1);
//增加对应的条件
m_Cashier.m_strFilter+=strFilter;
bFirst=TRUE;
}
if(m_strEdit2.GetLength())
Cname='
m_strEdit2);
if(m_strEdit3.GetLength())
Csex='
m_strEdit3);
if(m_strEdit4.GetLength())
Clogname='
m_strEdit4);
4.7流程逻辑
图4-2流程逻辑图
4.8测试计划
(1)测试新建的会员信息是否加入数据库。
(2)测试是否可查询收银员信息、会员信息、商品信息、收银信息。
(3)测试能否正确提交对会员、商品信息的修改和删除。
(4)测试收银信息是否可改动。
(5)测试交易是否能进行。
(6)测试时间是否显示正确。
(7)测试商品信息是否会随着交易进行变动。