软件工程课程设计小case_第1页
软件工程课程设计小case_第2页
软件工程课程设计小case_第3页
软件工程课程设计小case_第4页
软件工程课程设计小case_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、沈阳理工大学课程设计专用纸 no 18摘要【摘要】随着小超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长。超市时时刻刻都需要对商品各种信息进行统计分析。而大型的超市系统功能过于强大而造成操作繁琐降低了小超市的工作效率。虚拟超市购物系统由delphiaccess实现,主要包含以下几个模块:登录模块、购物管理模块、用户管理模块、货物管理模块、数据备份模块等。从而,实现对购物及客户信息等实现动态、及时的管理。全文共分六部分:第一部分主要是可行性研究;第二部分主要是系统需求分析;第三部分主要是总体设计;第四部分是主界面及购物管理模块的设计及编码;第五部分主要是软件测试;第六部分

2、是对课程设计的总结。【关键词】虚拟超市购物系统,购物车,delphi,access目录摘要 1第1章可行性研究 3第2章系统需求分析 421系统功能结构 422系统数据库设计和状态图 523数据流图 624数据字典 7第3章总体设计 831设计思想 832设计原则 833功能划分 9第4章窗体设计及编码(主界面及购物模块) 1041主界面设计 1042购物管理模块设计 10第5章软件测试 1451模块测试 1452整体测试 17第6章课程设计总结 17参考文献 18第1章 可行性研究可行性研究是为了弄清楚系统开发的项目是不是可以实现和值得进行研究的过程,实际上是一次大大简化系统分析和系统设计的

3、过程,所以,进行可执行性的分析是非常必要的,也是很重要的。经济可行性:超市有能力承担系统开发费用。开发新系统的工作是一项间距复杂的工作,它的投资主要是人力和物力的投资。对于本系统的开发者来说,其主要投资还是在人力和物力两个方面。如果是企业自己安排人手开发系统的话,其主要的投资还是在人力资源上,从系统的业务需求调查到系统的分析编码制作都是需要巨大的人力投入的。软件企业作为一个简短的高科技产业,其员工要求都比一般企业的要求要高,而且对系统开发及软件产业了解比较多,所以在自我开发管理系统的过程中,企业自己比较容易安排人手,这样就可以为企业借阅大部分的额外开支。同时软件就其它产品来说,属于高端行业,无

4、论是产品的价格还是质量都比较高,而经营产品的经销商或者是商家都要求有雄厚的资金支持。所以,在系统的开发过程中,企业完全有能力承担开发费用。 技术可行性:在it行业中从业的工作人员一般都要求掌握计算机技术,具有一定的软硬件基础,会使用各种管理软件,熟悉it产品。因为,有的超市对员工的素质要求比较高,从管理层到下面的销售人员,都要求具有一定的计算机基础,所以在新系统投入使用时,只要对员工进行少量的培训,系统的功能和使用方法就基本上能够掌握。 运行可行性:本系统采用基于windows的图形用户界面,而该系统是大家熟悉的操作系统,对于那些有一般的计算机知识的人员就可以轻松上手。而整个虚拟超市购物系统采

5、用友好的交互界面,简介明了,不需要对数据库进行深入的了解。由此,该系统的操作是可行的,有必要开发该系统。综合以上三方面,该系统具有很高的开发可行性,无论是从技术上或者经济上还是操作上。因此,可以设计该系统的数据流图,建立数据字典。第2章系统需求分析21系统功能结构虚拟超市购物系统,实现两个方面的需求,分别是商品购买者和购物系统管理人员。商品购买者的需求是查询购物系统所存的商品、个人购买情况及个人信息的修改;购物系统管理人员的功能较为复杂,包括对购买者、商品信息进行管理和维护等。商品购买者可直接查看商品情况,如果商品购买者根据本人用户名和密码登录系统,还可以进行本人购物情况的查询和维护部分个人信

6、息。一般情况下,商品购买者只应该查询和维护本人的购物情况和个人信息。购物系统管理人员功能的信息量大,数据安全性和保密性要求很高。本功能实现对商品信息、购买者信息管理和查看及维护。购物系统管理员可以浏览、添加、删除商品的基本信息;浏览、添加、删除、修改用户信息,但不能添加、删除和修改购买信息。整个虚拟超市购物系统的功能结构如图21所示:图21系统的功能结构图22系统数据库设计图22虚拟超市购物系统er图利用access 2003进行数据库的设计,er图如图22所示,其基本表如下:用户表(sysuser),见表21:表21用户表中文字段名英文字段名字段类型主键/外键用户名name文本p密码pass

7、ward文本性别sex文本电子邮件email文本用户组group文本商品表(commodity),见表22:表22商品表中文字段名英文字段名字段类型主键/外键编号id文本p名称name文本p/f库存数量amount数字售价price货币购物车表(cart),见图23:表23购物车表中文字段名英文字段名字段类型主键/外键商品名称name文本p购买数量amount数字p/f状态图见图23:图23状态转换图23数据流图数据流图是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。虚拟超市购物系统的系统模型,如图24所示:图24虚拟超市购物系统的系统模型功能级数据流图,见图25:图

8、25功能级数据流图24数据字典数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。一般说来,数据字典应该由对下列4类元素的定义组成:(1) 数据流(2) 数据流分量(即数据元素)(3) 数据存储(4) 处理购物单的数据字典如下:名字:购物单别名:购物信息描述:客户已购买的货物列表。定义:购物单商品名称购买数量位置:购物车第3章总体设计此系统分为前台管理和后台管理。前台管理是友好的操作界面,供用户浏览、查询使用。包括:浏览、添加、删除商品、购物车、用户维护等功能;后台管理是提供给管理员的,其中包括:货物管理、用户管理等。3.1 设计思想(1)系统分成几个相对独立的模块,

9、但这些模块都进行集中式管理。(2)分层的模块化程序设计思想,整个系统采用模块化结构设计。作为应用程序有较强的可操作性和扩展性。(3)合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。3.2 设计原则为了使本系统功能齐全完备,操作简便,最大限度的提高软件的质量,从而满足用户的实际需要,在设计开发过程中遵循了如下原则:(1)合法性原则:依据产品核算系统的工作规定以及要求,参照核算实际的工作情况,进行诸如产品进货、销售等工作。(2)实用性原则:适合产品信息管理工作的实际需求,并能够处理一些特殊情况的要求,此外,尽可能预留空间,

10、以便扩充功能。(3)准确性原则:对输入的相关资料建立检错机制,及时报错,使用户能够及时准确的输入合法资料(如:类型匹配,长度不超限等)。(3)易操作原则:要求设计的系统功能齐全,界面友好,操作方便,必要的地方进行提示。(5)源程序可读性原则:为了便于其他设计,维护人员读懂代码或以后的代码修改,软件升级维护,即可能做好代码注释工作。(6)优化原则:为了达到优化的目的,合理的运用窗口,菜单,对象等的继承,自定义用户对象,事件,函数,减少不必要的重复性代码,使程序简介明了,也方便了将来的维护。(7)安全性原则:可以为该系统的用户设置用户权限。3.3 功能划分整个虚拟超市购物系统的功能结构如图31所示

11、:图31系统的hipo图构成模块如下: 登录模块 根据用户名判断用户组,根据用户组设定用户权限。 购物管理模块购物车,添加到购物车、清空购物车、确认购买(普通用户)。 用户管理模块用户信息查询、修改,用户列表、添加、删除(管理员)。 货物管理模块商品列表、添加、删除(管理员)。 数据备份模块数据备份、数据恢复。 帮助模块帮助信息。第4章窗体设计及编码(主界面及购物模块)41主界面设计主要用到的控件有tmainmenu和tstatusbar,除了关联到新窗体外基本没有什么事件,在任务栏的第一部分显示“虚拟超市购物系统”,代码如下:procedure tmain.formcreate(sender

12、: tobject);begin statusbar1.panels0.text:=虚拟超市购物系统;end;42购物管理模块设计共设计了两个窗体,一个添加货物窗体和一个购物车窗体。添加货物窗体用到了一个tcombobox控件,使用该控件的代码如下:procedure tform8.formshow(sender: tobject);begin combobox1.clear; edit1.clear; with dm.adoquery1 do begin close; sql.clear; sql.add(select * from commodity); open; while not e

13、of do begin combobox1.items.add(fieldbyname(name).asstring); next; end; first; end; combobox1.itemindex:=0;end;图41添加货物流程图添加货物窗体的流程图如图41所示,响应添加事件的代码如下:procedure tform8.button1click(sender: tobject);begin with dm.adoquery1 do begin close; sql.clear; sql.add(insert into cart(name,amount) values(:a,:b);

14、 parameters.parambyname(a).value:=trim(combobox1.text); parameters.parambyname(b).value:=strtoint(trim(edit1.text); execsql; end; showmessage(货物添加成功!); close; with dm.adoquery2 do begin close; sql.clear; sql.add(select name as 货物名称,amount as 购买数量); sql.add(from cart); open; end;end;图42购物车流程图购物车的流程图如

15、图42所示,响应购买事件的代码如下:procedure tform7.button3click(sender: tobject);begin with dm.adoquery1 do begin close; sql.clear; sql.add(select cart.amount from commodity,cart); sql.add(where =); sql.add(and commodity.amount=cart.amount); open; if recordcountcount then begin application.me

16、ssagebox(库存不足!,提示,mb_ok); exit; end else begin close; sql.clear; sql.add(update commodity,cart); sql.add(setcommodity.amount=commodity.amount-cart.amount); sql.add(where =); execsql; showmessage(购买成功!); form7.close; count:=0; end; end;end;第5章 软件测试51模块测试在模块测试时我们主要从以下几个方面考虑:1. 模

17、块接口;2. 局部数据结构;3. 重要执行通道;4. 出错处理通道;5. 影响上述方面的边界条件。测试时进行代码审查,从数据类型,变量声明,数据结构进行审查,然后进行功能测试,从输入一些简单的数据开始执行一遍,观测运行期间变量的变化,运行中值的变化范围。改变测试方案来变换另一个角度进行测试,发现错误并记录,修改代码,测试条件使程序通过多层分支,判别运行结果从而完成模块测试。部分测试结果如图51、52、53所示:图51主界面图52添加到购物车图53确认购买52整体测试总体测试是组装软件的系统技术,本系统测试采用渐增集成测试,即测试单一模块,将测试完的模块加入系统中,进行一次系统测试,依次类推将所

18、有模块加入系统中,在具体测试时,采用自顶向下的结合方式,从主控模块开始,沿各控制层向下移动,逐渐把所有模块结合了。在测试过程中使用到调试技术:1. 采用debug调试语句,跟踪数据;2. 嵌入打印语句,输出中间结果;3. 利用delphi 7.0中调试工具,从调试窗口观测变量的变化;4. 设置断点,观察程序在断点附近的状况。评估运行的可靠性问题:1. 结果正确;2. 运行速度;3. 空间利用率;4. 算法的可行性。第6章课程设计总结在课程设计过程当中,我认识到开发一项好的软件不是某一个人就能完成的任务。一个小组,一个勤奋的团队非常重要,沟通是解决问题的最好方法。俗话说的好:“不怕虎一样的敌人,就怕猪一样的队伍”。所以小组中的每个成员的能力与协作能力也是致关重要的。同时,不仅

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论