摘 要
【摘要】
随着小超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息
量也成倍增长。超市时时刻刻都需要对商品各种信息进行统计分析。而大型的超
市系统功能过于强大而造成操作繁琐降低了小超市的工作效率。
虚拟超市购物系统由 DELPHI+ACCESS 实现,主要包含以下几个模块:登
录模块、购物管理模块、用户管理模块、货物管理模块、数据备份模块等。从而,
实现对购物及客户信息等实现动态、及时的管理。
全文共分六部分:第一部分主要是可行性研究;第二部分主要是系统需求分
析;第三部分主要是总体设计;第四部分是主界面及购物管理模块的设计及编码;
第五部分主要是软件测试;第六部分是对课程设计的总结。
【关键词】 虚拟超市购物系统,购物车,DELPHI,ACCESS
目 录
摘要-―――――――――――――――――――― 1
第 1 章 可行性研究―――――――――――――― 3
第 2 章 系统需求分析――――――――――――― 4
2.1 系统功能结构――――――――――――――― 4
2.2 系统数据库设计和状态图―――――――――― 5
2.3 数据流图――――――――――――――――― 6
2.4 数据字典――――――――――――――――― 7
第 3 章 总体设计――――――――――――――― 8
3.1 设计思想――――――――――――――――― 8
3.2 设计原则――――――――――――――――― 8
3.3 功能划分――――――――――――――――― 9
第 4 章 窗体设计及编码(主界面及购物模块)―― 10
4.1 主界面设计―――――――――――――――― 10
4.2 购物管理模块设计――――――――――――― 10
第 5 章 软件测试――――――――――――――― 14
5.1 模块测试――――――――――――――――― 14
5.2 整体测试――――――――――――――――― 17
第 6 章 课程设计总结――――――――――――― 17
参考文献-―――――――――――――――――― 18
第1章 可行性研究
可行性研究是为了弄清楚系统开发的项目是不是可以实现和值得进行研究的
过程,实际上是一次大大简化系统分析和系统设计的过程,所以,进行可执行性
的分析是非常必要的,也是很重要的。
经济可行性:超市有能力承担系统开发费用。开发新系统的工作是一项间距
复杂的工作,它的投资主要是人力和物力的投资。对于本系统的开发者来说,其
主要投资还是在人力和物力两个方面。如果是企业自己安排人手开发系统的话,
其主要的投资还是在人力资源上,从系统的业务需求调查到系统的分析编码制作
都是需要巨大的人力投入的。软件企业作为一个简短的高科技产业,其员工要求
都比一般企业的要求要高,而且对系统开发及软件产业了解比较多,所以在自我
开发管理系统的过程中,企业自己比较容易安排人手,这样就可以为企业借阅大
部分的额外开支。同时软件就其它产品来说,属于高端行业,无论是产品的价格
还是质量都比较高,而经营产品的经销商或者是商家都要求有雄厚的资金支持。
所以,在系统的开发过程中,企业完全有能力承担开发费用。
技术可行性:在 IT 行业中从业的工作人员一般都要求掌握计算机技术,具有
一定的软硬件基础,会使用各种管理软件,熟悉 IT 产品。因为,有的超市对员工
的素质要求比较高,从管理层到下面的销售人员,都要求具有一定的计算机基础,
所以在新系统投入使用时,只要对员工进行少量的培训,系统的功能和使用方法
就基本上能够掌握。
运行可行性:本系统采用基于 Windows 的图形用户界面,而该系统是大家熟
悉的操作系统,对于那些有一般的计算机知识的人员就可以轻松上手。而整个虚
拟超市购物系统采用友好的交互界面,简介明了,不需要对数据库进行深入的了
解。
由此,该系统的操作是可行的,有必要开发该系统。
综合以上三方面,该系统具有很高的开发可行性,无论是从技术上或者经济
上还是操作上。因此,可以设计该系统的数据流图,建立数据字典。
第 2 章 系统需求分析
2.1 系统功能结构
虚拟超市购物系统,实现两个方面的需求,分别是商品购买者和购物系统管
理人员。商品购买者的需求是查询购物系统所存的商品、个人购买情况及个人信
息的修改;购物系统管理人员的功能较为复杂,包括对购买者、商品信息进行管
理和维护等。
商品购买者可直接查看商品情况,如果商品购买者根据本人用户名和密码登
录系统,还可以进行本人购物情况的查询和维护部分个人信息。一般情况下,商
品购买者只应该查询和维护本人的购物情况和个人信息。
购物系统管理人员功能的信息量大,数据安全性和保密性要求很高。本功能
实现对商品信息、购买者信息管理和查看及维护。购物系统管理员可以浏览、添
加、删除商品的基本信息;浏览、添加、删除、修改用户信息,但不能添加、删
除和修改购买信息。
整个虚拟超市购物系统的功能结构如图 2-1 所示:
图 2-1 系统的功能结构图
2.2 系统数据库设计
图 2-2 虚拟超市购物系统 ER 图
利用 ACCESS 2003 进行数据库的设计,ER 图如图 2-2 所示,其基本表如下:
用户表(sysuser),见表 2-1:
表 2-1 用户表
中文字段名 英文字段名 字段类型 主键/外键
用户名 Name 文本 P
密码 Passward 文本
性别 Sex 文本
电子邮件 Email 文本
用户组 group 文本
商品表(commodity),见表 2-2:
表 2-2 商品表
中文字段名 英文字段名 字段类型 主键/外键
编号 ID 文本 P
名称 Name 文本 P/F
库存数量 Amount 数字
售价 price 货币
购物车表(cart),见图 2-3:
表 2-3 购物车表
中文字段名 英文字段名 字段类型 主键/外键
商品名称 Name 文本 P
购买数量 amount 数字 P/F
状态图见图 2-3:
图 2-3 状态转换图
2.3 数据流图
数据流图是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程
中所经受的变换。虚拟超市购物系统的系统模型,如图 2-4 所示:
图 2-4 虚拟超市购物系统的系统模型
功能级数据流图,见图 2-5:
图 2-5 功能级数据流图
2.4 数据字典
数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的
定义的集合。
一般说来,数据字典应该由对下列 4 类元素的定义组成:
(1) 数据流
(2) 数据流分量(即数据元素)
(3) 数据存储
(4) 处理
购物单的数据字典如下:
名字:购物单
别名:购物信息
描述:客户已购买的货物列表。
定义:购物单=商品名称+购买数量
位置:购物车
第 3 章 总体设计
此系统分为前台管理和后台管理。前台管理是友好的操作界面,供用户浏览、
查询使用。包括:浏览、添加、删除商品、购物车、用户维护等功能;后台管理
是提供给管理员的,其中包括:货物管理、用户管理等。
设计思想
(1)系统分成几个相对独立的模块,但这些模块都进行集中式管理。
(2)分层的模块化程序设计思想,整个系统采用模块化结构设计。作为应用程
序有较强的可操作性和扩展性。
(3)合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流相互
连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。
设计原则
为了使本系统功能齐全完备,操作简便,最大限度的提高软件的质量,从而
满足用户的实际需要,在设计开发过程中遵循了如下原则:
(1)合法性原则:依据产品核算系统的工作规定以及要求,参照核算实际的工
作情况,进行诸如产品进货、销售等工作。
(2)实用性原则:适合产品信息管理工作的实际需求,并能够处理一些特殊情
况的要求,此外,尽可能预留空间,以便扩充功能。
(3)准确性原则:对输入的相关资料建立检错机制,及时报错,使用户能够及
时准确的输入合法资料(如:类型匹配,长度不超限等)。
(3)易操作原则:要求设计的系统功能齐全,界面友好,操作方便,必要的地
方进行提示。
(5)源程序可读性原则:为了便于其他设计,维护人员读懂代码或以后的代码
修改,软件升级维护,即可能做好代码注释工作。
(6)优化原则:为了达到优化的目的,合理的运用窗口,菜单,对象等的继承,
自定义用户对象,事件,函数,减少不必要的重复性代码,使程序简介明了,也
方便了将来的维护。
(7)安全性原则:可以为该系统的用户设置用户权限。
功能划分
整个虚拟超市购物系统的功能结构如图 3-1 所示:
图 3-1 系统的 HIPO 图
构成模块如下:
登录模块
根据用户名判断用户组,根据用户组设定用户权限。
购物管理模块
购物车,添加到购物车、清空购物车、确认购买(普通用户)。
用户管理模块
用户信息查询、修改,用户列表、添加、删除(管理员)。
货物管理模块
商品列表、添加、删除(管理员)。
数据备份模块
数据备份、数据恢复。
帮助模块
帮助信息。
第 4 章 窗体设计及编码(主界面及购物模块)
4.1 主界面设计
主要用到的控件有 TMainMenu 和 TStatusBar,除了关联到新窗体外基本没有
什么事件,在任务栏的第一部分显示“虚拟超市购物系统”,代码如下:
procedure (Sender: TObject);
begin
[0].Text:='虚拟超市购物系统';
end;
4.2 购物管理模块设计
共设计了两个窗体,一个添加货物窗体和一个购物车窗体。添加货物窗体用
到了一个 TComboBox 控件,使用该控件的代码如下:
procedure (Sender: TObject);
begin
;
;
with do
begin
close;
;
('select * from commodity');
open;
while not eof do
begin
(fieldbyname('name').AsString);
next;
end;
first;
end;
:=0;
end;
图 4-1 添加货物流程图
添加货物窗体的流程图如图 4-1 所示,响应添加事件的代码如下:
procedure (Sender: TObject);
begin
with do
begin
close;
;
('insert into cart(name,amount) values(:a,:b)');
('a').Value:=trim();
('b').Value:=strtoint(trim());
execsql;
end;
showmessage('货物添加成功!');
close;
with do
begin
close;
;
('select name as [货物名称],amount as [购买数量]');
('from cart');
open;
end;
end;
图 4-2 购物车流程图
购物车的流程图如图 4-2 所示,响应购买事件的代码如下:
procedure (Sender: TObject);
begin
with do
begin
close;
;
('select from commodity,cart');
('where =');
('and >=');
open;
if RecordCount<count then
begin
('库存不足!','提示',mb_ok);
exit;
end
else
begin
close;
;
('update commodity,cart');
('set =');
('where =');
execsql;
showmessage('购买成功!');
;
count:=0;
end;
end;
end;
第5章 软件测试
5.1 模块测试
在模块测试时我们主要从以下几个方面考虑:
1. 模块接口;
2. 局部数据结构;
3. 重要执行通道;
4. 出错处理通道;
5. 影响上述方面的边界条件。
测试时进行代码审查,从数据类型,变量声明,数据结构进行审查,然后进
行功能测试,从输入一些简单的数据开始执行一遍,观测运行期间变量的变化,
运行中值的变化范围。改变测试方案来变换另一个角度进行测试,发现错误并记
录,修改代码,测试条件使程序通过多层分支,判别运行结果从而完成模块测试。
部分测试结果如图 5-1、5-2、5-3 所示:
图 5-1 主界面
图 5-2 添加到购物车
图 5-3 确认购买
5.2 整体测试
总体测试是组装软件的系统技术,本系统测试采用渐增集成测试,即测试单
一模块,将测试完的模块加入系统中,进行一次系统测试,依次类推将所有模块
加入系统中,在具体测试时,采用自顶向下的结合方式,从主控模块开始,沿各
控制层向下移动,逐渐把所有模块结合了。
在测试过程中使用到调试技术:
1. 采用 debug 调试语句,跟踪数据;
2. 嵌入打印语句,输出中间结果;
3. 利用 Delphi 中调试工具,从调试窗口观测变量的变化;
4. 设置断点,观察程序在断点附近的状况。
评估运行的可靠性问题:
1. 结果正确;
2. 运行速度;
3. 空间利用率;
4. 算法的可行性。
第 6 章 课程设计总结
在课程设计过程当中,我认识到开发一项好的软件不是某一个人就能完成的
任务。一个小组,一个勤奋的团队非常重要,沟通是解决问题的最好方法。俗话
说的好:“不怕虎一样的敌人,就怕猪一样的队伍”。所以小组中的每个成员的能
力与协作能力也是致关重要的。同时,不仅是团队内部的交流,更多的是要协调好
团队之间的交流。
然后呢,在课程设计中我了解了,要开发一个项目就一定要先做好规划,按
照软件的开发过程,详细地写好每一步所必要的文档。一般的规则是,写文档需
要团队协作,这样就允许开发人员和文档编写者利用彼此的长处,取长补短。例
如,如果预期读者是系统设计师,开发人员需要提供技术细节,然后文档编写者
按照正确语法组织和编辑内容。软件文档的最主要目标是传达一个系统的技术要
素和使用方法。第二个目标是提供软件开发过程中的需求,决策,行为,角色和
责任的书面记录。只有实现了这两个目标,软件文档才真正提供了有意义的信息。
软件的概念就是:程序+文档,程序就是文档,文档集成在程序中。它要求在选
择开发环境时不仅要考虑环境对设计、开发的完美支持,而且要考虑对维护、文
档的支持;要求软件人员在设计、开发过程中要考虑维护问题、文档问题;要求
程序与文档存储在同一位置、同一系统中;要求使用相同工具进行程序与文档的
书写、检索;要求在编写和维护程序的同时形成文档,在书写文档时编写、维护
程序。程序与文档合一的概念不仅存在于系统的设计、开发阶段而且存在于系统
的维护阶段,它贯穿软件的整个生命周期。
参考文献
[1] 萨师煊 王珊;数据库系统概论;北京:高校教育出版;2006
[2] 赛奎春主编;Delphi 工程应用与项目实践;机械工业出版社;2005
[3] 张海藩主编;软件工程导论;北京:清华大学出版社;2006