软件工程课程设计网上购物

上传人:1666****666 文档编号:36995531 上传时间:2021-11-01 格式:DOC 页数:26 大小:261.52KB
收藏 版权申诉 举报 下载
软件工程课程设计网上购物_第1页
第1页 / 共26页
软件工程课程设计网上购物_第2页
第2页 / 共26页
软件工程课程设计网上购物_第3页
第3页 / 共26页
资源描述:

《软件工程课程设计网上购物》由会员分享,可在线阅读,更多相关《软件工程课程设计网上购物(26页珍藏版)》请在装配图网上搜索。

1、 软件工程课程设计报告软件工程课程设计报告 目目录录1.设计内容设计内容.11.1 问题概述 .11.2 系统的数据流程图及数据字典 .11.2.1数据流图.11.2.2数据字典.41.3E-R 图 .82.概要设计概要设计.102.1 主要功能 .102.2 模块定义 .103.详细设计详细设计.113.1 详细设计说明书 .113.2 数据库设计 .123.3 程序流程图.123.4 输入项目 .144.程序源码程序源码.145.程序运行与调试程序运行与调试.215.1 模块测试 .215.2 总体测试 .236.总结总结.237.参考文献参考文献.24 11.设计内容设计内容1.11.1

2、 问题概述问题概述网上购物是一种具有交互功能的商业信息系统。它向用户提供静态和动态两类信息资源。所谓静态信息是指那些比经常变动或更新的资源,如公司简介、管理规范和公司制度等等;动态信息是指随时变化的信息,如商品报价,会议安排和培训信息等。网上购物系统具有强大的交互功能,可使商家和用户方便的传递信息,完成电子贸易或 EDI 交易。这种全新的交易方式实现了公司间文档与资金的无纸化交换。现在流行的网上购物系统不仅要有漂亮的网页,更要有严谨的规划。每一个细小的环节都和重要。这样才能使得在电子交易时避免不必要错误发生。本系统使用 HTML、JSP 等技术来编辑网页,并运用 Hibernate 技术把数据

3、库和动态网页相关联。传统的管理信息系统信息获取方法是由专业文字录入人员将信息输入到管理系统的数据库中,这种方法在数据量不大时有很多的应用场合。当数据量比较大,并且有较强的专业性时,录入的费用和出错的可能性都相应上升。本文在实际应用开发中解决方案是建立网站, 以及自己的数据库,使得所需商品信息可以及时的保存、更新。可以更好的及时了解商品买卖的情况。为此我根据当前的网上购物情况编写了网上购物系统的设计与开发 。1.21.2 系统的数据流程图及数据字典系统的数据流程图及数据字典1.2.1 数据流图矩形表示实体,椭圆表示处理,平行线表示存储,箭头表示数据流系统的数据流图如下所示: 2商家会员管理商品商

4、品信息个体商家网上购物系统图 1-1 系统顶层数据流程图定单信息列表 F7类别信息 F6用户信息 F1留言信息 F2订单信息 F3新闻信息列表 F12留言信息列表 F10商品信息列表 F9F9定单信息列表 F7新闻信息 F4游戏类别信息 F5商品信息 F5用户管理员顾客新闻信息列表 F12用户信息列表 F11留言信息列表 F10商品信息列表 F9类别信息列表 F12管理员网上购物系统网上购物系 统图 1-2 系统顶层数据流程图详细说明 3商家会员F5D2 商品信息个人会员F1D1 个人信息F9F11管理员D1 用户信息P2 商品信息P2 商品管理P2 会员管理P2 用户管理图 1-3 一层数据

5、流程图具体操作类型对比累计P1 商家管理P2.1 库存管理P2.2 订单管理P5已经处理P2.3 已经处理2.4 未处理图 1-4 二层商家商品管理数据流程图 41.2.2 数据字典1)数据元素名称:NAME 别名:用户名 描述:用来标示用户和管理员的用户名数据类型:VRCHAR2 长度:15 名称:DESCRIPTION别名:留言内容 描述:用来标示留言的具体内容类型:TEXT 长度:1000名称:TYPE别名:类别 描述:用来标示类别的具体内容 类型:CHAR(1) 长度:15 名称:REGISTERED_TIME 别名:上架时间 描述:用来标示商品的录入时间 类型:TIMESTAMP 长

6、度:15 5名称:NUMBER 别名:订单数量 描述:用来标示订单的数量类型:INTEGER 长度:15名称:TITLE 别名:标题 描述:用来标示新闻的主题类型:INTEGER 长度:502)数据存储名字:用户信息描述:纪录用户的个人信息编号:D1组成:用户 ID,用户名,密码,用户级别,EMAIL,电话,地址,注册时间,备注名字:商品信息描述:纪录商品的属性信息编号:D2组成:商品 ID,商品型号,商品类别,是否新品,查看级别,订货件数,订货次数,入库时间名字:留言信息描述:纪录留言的具体信息编号:D3组成:留言 ID,留言主题,留言用户,留言时间,留言内容 6名字:类别信息描述:纪录类别

7、的设置信息编号:D4组成:类别 ID,类别名,所属大区域,该类别商品种类名字:订单信息描述:纪录订单的具体信息编号:D5组成:订单 ID,订单号,下订单的客户,订货时间,订货具体内容名字:新闻信息描述:纪录新闻具体信息编号:D6组成:新闻 ID,新闻主题,发布时间,具体内容3)数据流名字:用户信息描述:纪录用户的个人信息编号:F1组成:用户 ID,用户名,密码,用户级别,EMAIL,电话,地址,注册时间,备注名字:留言信息描述:纪录留言的具体信息编号:F2组成:留言 ID,留言主题,留言用户,留言时间,留言内容名字:订单信息描述:纪录订单的具体信息编号:F3 7组成:订单 ID,订单号,下订单

8、的客户,订货时间,订货具体内容名字:新闻信息描述:纪录新闻具体信息编号:F4组成:新闻 ID,新闻主题,发布时间,具体内容名字:商品信息描述:纪录商品的属性信息编号:F5组成:商品 ID,商品型号,商品类别,是否新品,查看级别,订货件数,订货次数,入库时间名字:类别信息描述:纪录类别的设置信息编号:F6组成:类别 ID,类别名,所属大区域,该类别商品种类4)数据处理名字:用户管理描述:管理员对管理员和用户信息的添加,删改等编号:P1输入/输出数据流:用户或管理员基本信息 名字:商品管理描述:管理员对商品信息的添加,删改等编号:P2输入/输出数据流:商品基本信息 8名字:留言管理描述:管理员对留

9、言信息的添加,删改等编号:P3输入/输出数据流:留言信息 名字:类别管理描述:管理员对类别信息的添加,删改等编号:P4输入/输出数据流:类别基本信息 名字:订单管理描述:管理员对订单信息的删改等编号:P5输入/输出数据流:订单基本信息 名字:新闻管理描述:管理员对新闻信息的添加,删改等编号:P6输入/输出数据流:新闻基本信息 1.3E-R1.3E-R 图图 9图 1-5 前台用户局部 E-R 图 图 1-6 后台管理员局部 E-R 图 102.概要设计概要设计2.12.1 主要功能主要功能该系统的目标可以实现用户通过网络选购自己喜欢的商品,而且还可以为其进行邮寄。保证产品质量,信息安全,提供最

10、好服务1,系统的主要功能如下:1 查看产品信息用户可以根据自己的需求分类查看所有产品信息,选择自己喜欢的产品购买。2 查看新闻用户可以查看网站的所有新闻,新闻内容包括商品厂商的信息,以及新产品的发布信息等,以方便用户更直观的了解产品动向及信息。3 填写订单用户填写要购买商品的信息到订单中去,并可以删除已填写但最终不想购买的产品。2.22.2 模块定义模块定义用户管理自然是每个网站必不可少的,在本系统中,要求这部分管理安全可靠,权限分明,且其在前台和后台的表现不同,下面将分别进行介绍。1)前台表现用户注册,此时要保证系统不受注册机的攻击,要采用验证码技术。要确保权限为普通用户,要有密码保护措施,

11、保证用户设定之后可以找回遗忘的密码。2)后台表现系统管理员可以添加用户。系统管理员可以动态的给用户赋予权限,保证系统信息不外泄。系统管理员可以修改和删除用户信息。系统管理员可以给用户建立备注信息,其仅对具有权限的用户可以进行信息的检查与修改。 112.32.3 体系结构设计体系结构设计网上购物系统登录模块新闻发布模块注册模块购物车模块订单模块商品管理模块用户管理模块留言评价模块3.详细设计详细设计3.13.1 详细设计说明书详细设计说明书 网上购物系统网上购物系统客客户户注注册册系系统统客户登陆系统客户登陆系统选选购购物物品品查查询询选选购购记记录录会会员员注注销销管理员登陆系统管理员登陆系统

12、订订单单处处理理会会员员管管理理物物品品入入库库管管理理员员注注销销会会员员修修改改资资料料 123.23.2 数据库设计数据库设计 物品表(物品编号,物品名,价格) ,主键为物品编号,符合三范式。客户表(客户编号,姓名,性别,购买记录,购买信誉) ,主键为客户编号,符合三范式。表 3-1 物品表 book表 3-2 客户表 Member3.33.3 程序流程图程序流程图 用户登录流程图列名列名含义含义长度长度类型类型NULLNULLDEFAULTDEFAULTBno物品编号10Char()nonobname物品名称15Char()nonoprice价格8Char()nono列名列名含义含义长

13、度长度类型类型NULLNULLDEFAULTDEFAULTMno客户编号15Char()nonoMname客户姓名15Char()nonosex客户性别5Char()nonorecord购买记录15Char()nonoCredit购买信誉15Char()nono 13 物品搜索流程图 143.43.4 输入项目输入项目输入本系统中的数据如下所示:1)用户信息需要有用户亲自注册,管理员帐号由系统自动生成。2)产品信息需要有管理员手动进行添加。3)留言标题、内容由用户输入,留言者、留言时间由系统自动检验生成。4)新闻标题、英文标题、内容、英文内容由管理员添加,发布时间由系统自动检验生成。 5)订单

14、信息需要由用户填写。4.程序源码程序源码import java.util.*;import java.awt.event.*;import java.awt.*;import javax.swing.*;import java.io.*;class 商品 extends PanelString 代号,名称;int 库存;float 单价;商品(String 代号,String 名称,int 库存,float 单价)this.代号=代号;this.名称=名称;this.库存=库存;this.单价=单价;class ShowWin extends JFrame implements ActionL

15、istener 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

16、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(输入代号

17、:);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); 16save.add(new Label(单击修改:);save.add(b_xiu);save.add(new Label(输入查询代号:);save.add(查询文本框);save.add(new Label(单击查询:

18、);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

19、split_one,split_two;split_one=new JSplitPane(JSplitPane.VERTICAL_SPLIT,save,del);split_two=newJSplitPane(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

20、(xun,BorderLayout.SOUTH);b_add.addActionListener(this);b_del.addActionListener(this);b_xun.addActionListener(this); 17b_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 danj

21、ia=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

22、=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();

23、 /in.close();catch(ClassNotFoundException event)catch(IOException event)商品 temp=(商品)hashtable.get(daihao1);hashtable.remove(daihao1);tryFileOutputStream file=new FileOutputStream(goods.txt); 18ObjectOutputStream out =new ObjectOutputStream(file);out.writeObject(hashtable);/out.close();catch(IOExcept

24、ion 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(IOExcep

25、tion 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()

26、; / 19in.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

27、)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);tryFile

28、OutputStream 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); 20tryFileInputStream come_in=new FileInputStream(goods.txt);ObjectInputStream in =ne

29、w 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.名称+ );显示

30、区.append(商品库存:+te.库存+ );显示区.append(商品单价:+te.单价+ );显示区.append(n );public class LinkListFourpublic 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);); 215.程

31、序运行与调试程序运行与调试5.15.1 模块测试模块测试在模块测试时我们主要从以下几个方面考虑:1. 模块接口;2. 局部数据结构;3. 重要执行通道;4. 出错处理通道;5. 影响上述方面的边界条件。测试时进行代码审查,从数据类型,变量声明,数据结构进行审查,然后进行功能测试,从输入一些简单的数据开始执行一遍,观测运行期间变量的变化,运行中值的变化范围。改变测试方案来变换另一个角度进行测试,发现错误并记录,修改代码,测试条件使程序通过多层分支,判别运行结果从而完成模块测试。部分测试结果如图部分测试结果如图主界面主界面 22添加商品添加商品查询商品查询商品 235.25.2 总体测试总体测试总

32、体测试是组装软件的系统技术,本系统测试采用渐增集成测试,即测试单一模块,将测试完的模块加入系统中,进行一次系统测试,依次类推将所有模块加入系统中,在具体测试时,采用自顶向下的结合方式,从主控模块开始,沿各控制层向下移动,逐渐把所有模块结合了。在测试过程中使用到调试技术:1. 采用 debug 调试语句,跟踪数据;2. 嵌入打印语句,输出中间结果;3. 利用 Delphi 7.0 中调试工具,从调试窗口观测变量的变化;4. 设置断点,观察程序在断点附近的状况。6.总结总结这次课程设计让我认识到软件工程方法对项目开发的重要性和必要性,知 24道可以使得软件开发少走弯路,更容易开发出高质量的项目开发

33、。按照软件工程的方法、软件的开发需要严格遵守其开发流程,作好软件设计的每一个流程。 由于以前没有系统的学习过软件工程的相关知识,只学过 C/C+语言、数据结构等课程,因此在我的头脑里,做软件就是写代码,水平高的人写大型的、复杂的代码,水平低的人编的简单一些,所以总觉得软件工程没有什么太多实际的价值。然而,在逐步的学习过程中,特别是在结合本门课程和同学一起开发一个较为大型的软件中,我深深感受到了软件工程在开发过程中的指导作用。软件工程,重点在工程两字上,也就是把软件的开发当作一个工程项目运用工程的方法来实施,从可行性分析、需求分析直到最后的测试、交付以及以后的维护,每一个过程都有自己的一套方法。

34、工程经常是和实践联系在一起的,软件工程只有在实际的软件开发中才能更深的体会到它的作用。 由于时间仓促,此系统仍存在一些不足,文档不够详尽,导致标准不统一。设计仍有不太合理处,需要进行完善性维护。衷心感谢老师给予我们这次机会,让我们对软件的开发过程还是对程序的编写步骤都有了更加深刻的认识。7.参考文献参考文献1 郑人杰、殷人昆、陶永雷 , 实用软件工程 ,清华大学出版社 ,2005 年5 月 2 张海藩 , 软件工程导论 ,清华大学出版社,2000 年 1 月3计算机软件工程规范国家标准汇编 2003中国标准出版社4项目管理计划、进度和控制的系统方法 (第 7 版)Harold Kerzner(电子工业出版社,杨爱华等译)

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!