




免费预览已结束,剩余21页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件工程课程设计报告软件工程课程设计报告 目目 录录 1.设计内容设计内容.1 1.1 问题概述 1 1.2 系统的数据流程图及数据字典 1 1.2.1数据流图1 1.2.2数据字典4 1.3e-r 图 8 2.概要设计概要设计.10 2.1 主要功能 10 2.2 模块定义 10 3.详细设计详细设计.11 3.1 详细设计说明书 11 3.2 数据库设计 12 3.3 程序流程图12 3.4 输入项目 14 4.程序源码程序源码.14 5.程序运行与调试程序运行与调试.21 5.1 模块测试 21 5.2 总体测试 23 6.总结总结.23 7.参考文献参考文献.24 1 1.设计内容设计内容 1.11.1 问题概述问题概述 网上购物是一种具有交互功能的商业信息系统。它向用户提供静态和动态 两类信息资源。所谓静态信息是指那些比经常变动或更新的资源,如公司简介、 管理规范和公司制度等等;动态信息是指随时变化的信息,如商品报价,会议 安排和培训信息等。网上购物系统具有强大的交互功能,可使商家和用户方便 的传递信息,完成电子贸易或 edi 交易。这种全新的交易方式实现了公司间文 档与资金的无纸化交换。 现在流行的网上购物系统不仅要有漂亮的网页,更要有严谨的规划。每一 个细小的环节都和重要。这样才能使得在电子交易时避免不必要错误发生。本 系统使用 html、jsp 等技术来编辑网页,并运用 hibernate 技术把数据库和动 态网页相关联。传统的管理信息系统信息获取方法是由专业文字录入人员将信 息输入到管理系统的数据库中,这种方法在数据量不大时有很多的应用场合。当 数据量比较大,并且有较强的专业性时,录入的费用和出错的可能性都相应上升。 本文在实际应用开发中解决方案是建立网站, 以及自己的数据库,使得所需商 品信息可以及时的保存、更新。可以更好的及时了解商品买卖的情况。为此我 根据当前的网上购物情况编写了网上购物系统的设计与开发 。 1.21.2 系统的数据流程图及数据字典系统的数据流程图及数据字典 1.2.1 数据流图 矩形表示实体,椭圆表示处理,平行线表示存储,箭头表示数据流系统的数据 流图如下所示: 2 商 家 会 员 管理商品商品信息 个 体 商 家 网上购物系 统 图 1-1 系统顶层数据流程图 定单信息列表 f7 类别信息 f6 用户信息 f1 留言信息 f2 订单信息 f3 新闻信息列表 f12 留言信息列表 f10 商品信息列表 f9 f9 定单信息列表 f7 新闻信息 f4 游戏类别信息 f5 商品信息 f5 用 户 管 理 员 顾 客 新闻信息列表 f12 用户信息列表 f11 留言信息列表 f10 商品信息列表 f9 类别信息列表 f12 管 理 员 网上 购物 系统 网上 购物 系 统 图 1-2 系统顶层数据流程图详细说明 3 商 家 会 员 f5 d2 商品信息 个 人 会 员 f1 d1 个人信息 f9 f11 管 理 员 d1 用户信息 p2 商 品信息 p2 商 品管理 p2 会 员管理 p2 用 户管理 图 1-3 一层数据流程图 具体操作 类型对比 累计 p1 商家 管理 p2.1 库 存管理 p2.2 订 单管理 p5 已经 处理 p2.3 已 经处理 2.4 未处 理 图 1-4 二层商家商品管理数据流程图 4 1.2.2 数据字典 1)数据元素 名称:name 别名:用户名 描述:用来标示用户和管理员的用户名 数据类型:vrchar2 长度:15 名称:description 别名:留言内容 描述:用来标示留言的具体内容 类型:text 长度:1000 名称:type 别名:类别 描述:用来标示类别的具体内容 类型:char(1) 长度:15 名称:registered_time 别名:上架时间 描述:用来标示商品的录入时间 类型:timestamp 长度:15 5 名称:number 别名:订单数量 描述:用来标示订单的数量 类型:integer 长度:15 名称:title 别名:标题 描述:用来标示新闻的主题 类型:integer 长度:50 2)数据存储 名字:用户信息 描述:纪录用户的个人信息 编号:d1 组成:用户 id,用户名,密码,用户级别,email,电话,地址,注册时间,备注 名字:商品信息 描述:纪录商品的属性信息 编号:d2 组成:商品 id,商品型号,商品类别,是否新品,查看级别,订货件数,订货次数,入库 时间 名字:留言信息 描述:纪录留言的具体信息 编号:d3 组成:留言 id,留言主题,留言用户,留言时间,留言内容 6 名字:类别信息 描述:纪录类别的设置信息 编号:d4 组成:类别 id,类别名,所属大区域,该类别商品种类 名字:订单信息 描述:纪录订单的具体信息 编号:d5 组成:订单 id,订单号,下订单的客户,订货时间,订货具体内容 名字:新闻信息 描述:纪录新闻具体信息 编号:d6 组成:新闻 id,新闻主题,发布时间,具体内容 3)数据流 名字:用户信息 描述:纪录用户的个人信息 编号:f1 组成:用户 id,用户名,密码,用户级别,email,电话,地址,注册时间,备注 名字:留言信息 描述:纪录留言的具体信息 编号:f2 组成:留言 id,留言主题,留言用户,留言时间,留言内容 名字:订单信息 描述:纪录订单的具体信息 编号:f3 7 组成:订单 id,订单号,下订单的客户,订货时间,订货具体内容 名字:新闻信息 描述:纪录新闻具体信息 编号:f4 组成:新闻 id,新闻主题,发布时间,具体内容 名字:商品信息 描述:纪录商品的属性信息 编号:f5 组成:商品 id,商品型号,商品类别,是否新品,查看级别,订货件数,订货次数,入库 时间 名字:类别信息 描述:纪录类别的设置信息 编号:f6 组成:类别 id,类别名,所属大区域,该类别商品种类 4)数据处理 名字:用户管理 描述:管理员对管理员和用户信息的添加,删改等 编号:p1 输入/输出数据流:用户或管理员基本信息 名字:商品管理 描述:管理员对商品信息的添加,删改等 编号:p2 输入/输出数据流:商品基本信息 8 名字:留言管理 描述:管理员对留言信息的添加,删改等 编号:p3 输入/输出数据流:留言信息 名字:类别管理 描述:管理员对类别信息的添加,删改等 编号:p4 输入/输出数据流:类别基本信息 名字:订单管理 描述:管理员对订单信息的删改等 编号:p5 输入/输出数据流:订单基本信息 名字:新闻管理 描述:管理员对新闻信息的添加,删改等 编号:p6 输入/输出数据流:新闻基本信息 1.3e-r1.3e-r 图图 9 图 1-5 前台用户局部 e-r 图 图 1-6 后台管理员局部 e-r 图 10 2.概要设计概要设计 2.12.1 主要功能主要功能 该系统的目标可以实现用户通过网络选购自己喜欢的商品,而且还可以为 其进行邮寄。保证产品质量,信息安全,提供最好服务1,系统的主要功能如 下: 1 查看产品信息 用户可以根据自己的需求分类查看所有产品信息,选择自己喜欢的产品购 买。 2 查看新闻 用户可以查看网站的所有新闻,新闻内容包括商品厂商的信息,以及新产 品的发布信息等,以方便用户更直观的了解产品动向及信息。 3 填写订单 用户填写要购买商品的信息到订单中去,并可以删除已填写但最终不想购 买的产品。 2.22.2 模块定义模块定义 用户管理自然是每个网站必不可少的,在本系统中,要求这部分管理安全 可靠,权限分明,且其在前台和后台的表现不同,下面将分别进行介绍。 1)前台表现 用户注册,此时要保证系统不受注册机的攻击,要采用验证码技术。要确 保权限为普通用户,要有密码保护措施,保证用户设定之后可以找回遗忘的密 码。 2)后台表现 系统管理员可以添加用户。系统管理员可以动态的给用户赋予权限,保证 系统信息不外泄。系统管理员可以修改和删除用户信息。系统管理员可以给用 户建立备注信息,其仅对具有权限的用户可以进行信息的检查与修改。 11 2.32.3 体系结构设计体系结构设计 网上购物系统 登 录 模 块 新 闻 发 布 模 块 注 册 模 块 购 物 车 模 块 订 单 模 块 商 品 管 理 模 块 用 户 管 理 模 块 留 言 评 价 模 块 3.详细设计详细设计 3.13.1 详细设计说明书详细设计说明书 网上购物系统网上购物系统 客客 户户 注注 册册 系系 统统 客户登陆系统客户登陆系统 选选 购购 物物 品品 查查 询询 选选 购购 记记 录录 会会 员员 注注 销销 管理员登陆系统管理员登陆系统 订订 单单 处处 理理 会会 员员 管管 理理 物物 品品 入入 库库 管管 理理 员员 注注 销销 会会 员员 修修 改改 资资 料料 12 3.23.2 数据库设计数据库设计 物品表(物品编号,物品名,价格) ,主键为物品编号,符合三范式。 客户表(客户编号,姓名,性别,购买记录,购买信誉) ,主键为客户编号, 符合三范式。 表 3-1 物品表 book 表 3-2 客户表 member 3.33.3 程序流程图程序流程图 用户登录流程图 列名列名含义含义长度长度类型类型 nullnulldefaultdefault bno 物品编号 10char()nono bname 物品名称 15char()nono price 价格 8char()nono 列名列名含义含义长度长度类型类型 nullnulldefaultdefault mno 客户编号 15char()nono mname 客户姓名 15char()nono sex 客户性别 5char()nono record 购买记录 15char()nono credit 购买信誉 15char()nono 13 物品搜索流程图 14 3.43.4 输入项目输入项目 输入本系统中的数据如下所示: 1)用户信息需要有用户亲自注册,管理员帐号由系统自动生成。 2)产品信息需要有管理员手动进行添加。 3)留言标题、内容由用户输入,留言者、留言时间由系统自动检验生 成。 4)新闻标题、英文标题、内容、英文内容由管理员添加,发布时间由 系统自动检验生成。 5)订单信息需要由用户填写。 4.程序源码程序源码 import java.util.*; import java.awt.event.*; import java.awt.*; import javax.swing.*; import java.io.*; class 商品 extends panel string 代号,名称;int 库存;float 单价; 商品(string 代号,string 名称,int 库存,float 单价) this.代号=代号;this.名称=名称;this.库存=库存;this.单价=单价; class showwin extends jframe implements actionlistener hashtable hashtable=null; jtextfield 代号文本框=new jtextfield(), 名称文本框=new jtextfield(), 15 库存文本框=new jtextfield(), 单价文本框=new jtextfield(), 查询文本框=new jtextfield(), 查询信息文本框=new jtextfield(), 删除文本框=new jtextfield(); jbutton b_add=new jbutton(“添加商品“), b_del=new jbutton(“删除商品“), b_xun=new jbutton(“查询商品“), b_xiu=new jbutton(“修改商品“), b_show=new jbutton(“显示商品清单“); jtextarea 显示区=new jtextarea(25,10); showwin() super(“仓库管理窗口“); hashtable=new hashtable(); container con=getcontentpane(); jscrollpane pane=new jscrollpane(显示区); 显示区.seteditable(false); jpanel save=new jpanel(); save.setlayout(new gridlayout(8,2); save.add(new label(“输入代号:“); save.add(代号文本框); save.add(new label(“输入名称:“); save.add(名称文本框); save.add(new label(“输入库存:“); save.add(库存文本框); save.add(new label(“输入单价:“); save.add(单价文本框); save.add(new label(“单击添加:“); save.add(b_add); 16 save.add(new label(“单击修改:“); save.add(b_xiu); save.add(new label(“输入查询代号:“); save.add(查询文本框); save.add(new label(“单击查询:“); save.add(b_xun); jpanel del=new jpanel(); del.setlayout(new gridlayout(2,2); del.add(new label(“输入删除的代号:“); del.add(删除文本框); del.add(new label(“单击删除:“); del.add(b_del); jpanel show=new jpanel(); show.setlayout(new borderlayout(); show.add(pane,borderlayout.center); show.add(b_show,borderlayout.south); jsplitpane split_one,split_two; split_one=new jsplitpane(jsplitpane.vertical_split,save,del); split_two=new jsplitpane(jsplitpane.horizontal_split,true,split_one,show); con.add(split_two,borderlayout.center); jpanel xun=new jpanel(); xun.add(new label(“所得信息:“); xun.add(查询信息文本框); xun.setlayout(new gridlayout(2,1); con.add(xun,borderlayout.south); b_add.addactionlistener(this); b_del.addactionlistener(this); b_xun.addactionlistener(this); 17 b_xiu.addactionlistener(this); b_show.addactionlistener(this); public void actionperformed(actionevent e) if(e.getsource()=b_add) string daihao=null,mingcheng=null;int kucun=0;float danjia=0.0f; daihao=代号文本框.gettext();mingcheng=名称文本框.gettext(); kucun=integer.parseint(库存文本框.gettext(); danjia=float.valueof(单价文本框.gettext().floatvalue(); 商品 goods=new 商品(daihao,mingcheng,kucun,danjia); hashtable.put(daihao,goods); tryfileoutputstream file=new fileoutputstream(“goods.txt“); objectoutputstream out=new objectoutputstream(file); out.writeobject(hashtable); out.close(); catch(ioexception event) else if(e.getsource()=b_del) string daihao1=删除文本框.gettext(); tryfileinputstream come_in=new fileinputstream(“goods.txt“); objectinputstream in=new objectinputstream(come_in); hashtable=(hashtable)in.readobject(); / in.close(); catch(classnotfoundexception event) catch(ioexception event) 商品 temp=(商品)hashtable.get(daihao1); hashtable.remove(daihao1); tryfileoutputstream file=new fileoutputstream(“goods.txt“); 18 objectoutputstream out =new objectoutputstream(file); out.writeobject(hashtable);/ out.close(); catch(ioexception event) / else if(e.getsource()=b_xun) string aa; aa=查询文本框.gettext(); 查询信息文本框.settext(null); tryfileinputstream come_in=new fileinputstream(“goods.txt“); objectinputstream in =new objectinputstream(come_in); hashtable=(hashtable)in.readobject(); / in.close(); catch(classnotfoundexception event) catch(ioexception event) 商品 a=(商品)hashtable.get(aa); 查询信息文本框.settext(“ 代号:“+a.代号+“ 名称:“+a.名称+“ 库存: “+a.库存+“ 单价:“+a.单价); / else if(e.getsource()=b_xiu) string bb; bb=代号文本框.gettext(); tryfileinputstream come_in=new fileinputstream(“goods.txt“); objectinputstream in=new objectinputstream(come_in); hashtable=(hashtable)in.readobject(); / 19 in.close(); catch(classnotfoundexception event) catch(ioexception event) 商品 temp=(商品)hashtable.get(bb); hashtable.remove(bb); tryfileoutputstream file=new fileoutputstream(“goods.txt“); objectoutputstream out =new objectoutputstream(file); out.writeobject(hashtable);/ out.close(); catch(ioexception event) string daihao1=null,mingcheng1=null;int kucun1=0;float danjia1=0.0f; daihao1=代号文本框.gettext();mingcheng1=名称文本框.gettext(); kucun1=integer.parseint(库存文本框.gettext(); danjia1=float.valueof(单价文本框.gettext().floatvalue(); 商品 goods1=new 商品(daihao1,mingcheng1,kucun1,danjia1); hashtable.put(daihao1,goods1); tryfileoutputstream file=new fileoutputstream(“goods.txt“); objectoutputstream out=new objectoutputstream(file); out.writeobject(hashtable); out.close(); catch(ioexception event) / else if(e.getsource()=b_show) 显示区.settext(null); 20 tryfileinputstream come_in=new fileinputstream(“goods.txt“); objectinputstream in =new objectinputstream(come_in); hashtable=(hashtable)in.readobject(); / catch(classnotfoundexception event) catch(ioexception event) enumeration enumeration = hashtable.elements(); while(enumeration.hasmoreelements() 商品 te=(商品)enumeration.nextelement(); 显示区.append(“商品代号:“+te.代号+“ “); 显示区.append(“商品名称:“+te.名称+“ “); 显示区.append(“商品库存:“+te.库存+“ “); 显示区.append(“商品单价:“+te.单价+“ “); 显示区.append(“n “); public class linklistfour public static void main(string args) showwin win=new showwin(); win.setsize(400,350); win.setvisible(true); win.addwindowlistener(new windowadapter() public void windowclosing(windowevent e) system.exit(0);); 21 5.程序运行与调试程序运行与调试 5.15.1 模块测试模块测试 在模块测试时我们主要从以下几个方面考虑: 1. 模块接口; 2. 局部数据结构; 3. 重要执行通道; 4. 出错处理通道; 5. 影响上述方面的边界条件。 测试时进行代码审查,从数据类型,变量声明,数据结构进行审查,然后 进行功能测试,从输入一些简单的数据开始执行一遍,观测运行期间变量的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 道路试验检测题库及答案
- 江西建筑企业劳动合同范本2篇
- DB53-T 1220-2023 亚洲象食源地建设技术规程
- DB2102-T 0080-2023 巡检蓝牙信标数据格式
- 采矿专业的试题及答案
- 2025年乡村医生培训考试题库及答案及答案
- 电厂输煤专业试题及答案
- 高技防疫专业试题及答案
- 企业专业测试题及答案
- 农村信用社牡丹江市穆棱市2025秋招笔试热点题型专练及答案
- 2025年浙江省文化产业投资集团有限公司招聘笔试参考题库含答案解析
- 2025毕节辅警考试题库
- 采血后预防淤青的按压方式
- 自备口服药规范化管理
- 《解剖学》课程标准(新)
- 五倍子提取物对临床分离鸡源大肠杆菌的抑制作用研究
- 幼儿园获奖公开课:中班语言活动《哈哈镜》课件
- 2025年中外合资企业合作框架协议模板
- 2025年天马微电子股份有限公司招聘笔试参考题库含答案解析
- 2025年浙江事业单位联考真题解析历年高频重点提升(共500题)附带答案详解
- 防止人身伤亡事故培训课件(共139张)
评论
0/150
提交评论