




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计说明书 NO.34网上商城系统1 课程设计的目的设计一个网上购物管理系统。它向用户提供静态和动态两类信息资源。所谓静态信息是指那些比经常变动或更新的资源,如公司简介、管理规范和公司制度等等;动态信息是指随时变化的信息,如商品报价,会议安排和培训信息等。网上购物系统具有强大的交互功能,可使商家和用户方便的传递信息,完成电子贸易或EDI交易。这种全新的交易方式实现了公司间文档与资金的无纸化交换。在我国,网上购物从无到有也不过短短几年时间。但是就在这几年时间,网络购物已经深入千家万户,普通的购物已经不能满足人们的消费。网上购物以其诸多优势,获得人们的青睐。它以其方便,快捷,高效,高选择性等优点,迅速得到了广大网友的喜爱与青睐,现在的网上购物已经非常普及。本系统设计就是为了满足广大网友的这些需求,改变传统的交易模式,通过互联网完成查看商品,购买商品等完成网上交易。方便消费者,同时对商家的商品信息进行管理,便于商家的商品数据分析。截止2015年1月中国有网上购物的用户将近2亿人,这足以证明网上购物具有良好的群众基础,网上购物方式日趋被大家所接受。因此我们小组致力于做一个基于B/S架构的网上购物管理系统,使广大用户可以享受网上购物的种种优势。2 需求分析2.1系统需求分析 网上购物系统分为前台管理和后台管理。前台管理包括浏览商品、查询商品、订购商品、购物车、用户信息维护等功能。后台管理包括公告管理、商品管理、订单管理、投诉管理和用户管理等模块。2.2 可行性分析对于用户来说,在商场系统里面所购的物品,希望及时收到商品,在商场系统里的投诉,希望及时得到解决,用户的要求能及时得到满足的情况下,商场的信用度才能得到提高,才能更好的发展,所以对用户进行需求分析是很有必要的。对于管理员来说,既要考虑用户的要求,又要更好的管理整个系统,所以他肩负着双重任务。满足用户要求方面,应该及时处理用户的订单,及时发货,尽快的解决客户的投诉等等,才能有更好的经济效益。管理系统的责任也不能忽视,如对市场做调查,及时更新产品,还有就是对系统进行维护等等3 总体设计 3.1系统的数据流程图及数据字典3.1.1数据流图 矩形表示实体,椭圆表示处理,平行线表示存储,箭头表示数据流系统的数据流图如下所示:商家会员管理商品商品信息个体商家网上购物系统 图1系统顶层数据流程图定单信息列表F7类别信息F6用户信息F1留言信息F2订单信息F3新闻信息列表F12留言信息列表F10商品信息列表F9F9定单信息列表F7新闻信息F4游戏类别信息F5商品信息F5用户管理员顾客新闻信息列表F12用户信息列表F11留言信息列表F10商品信息列表F9类别信息列表F12管理员网上购物系统网上购物系 统 图2系统顶层数据流程图详细说明商家会员F5D2 商品信息个人会员F1D1 个人信息F9F11管理员D1 用户信息P2商品信息P2商品管理P2会员管理P2用户管理图3 一层数据流程图具体操作类型对比累计P1商家管理P2.1库存管理P2.2订单管理P5已经处理P2.3已经处理2.4未处理图4 二层商家商品管理数据流程图3.1.2数据字典(1)数据元素名称:REGISTERED_TIME 别名:上架时间 描述:用来标示商品的录入时间 类型:TIMESTAMP 长度:15 名称:NAME 别名:用户名 描述:用来标示用户和管理员的用户名数据类型:VRCHAR2 长度:15 名称:TYPE别名:类别 描述:用来标示类别的具体内容 类型:CHAR(1) 长度:15 名称:NUMBER 别名:订单数量 描述:用来标示订单的数量类型:INTEGER 长度:15(2)数据存储名字:用户信息描述:纪录用户的个人信息编号:D1组成:用户ID,用户名,密码,用户级别,EMAIL,电话,地址,注册时间,备注名字:商品信息描述:纪录商品的属性信息编号:D2组成:商品ID,商品型号,商品类别,是否新品,查看级别,订货件数,订货次数,入库时间名字:类别信息描述:纪录类别的设置信息编号:D4组成:类别ID,类别名,所属大区域,该类别商品种类名字:订单信息描述:纪录订单的具体信息编号:D5组成:订单ID,订单号,下订单的客户,订货时间,订货具体内容(3)数据流名字:用户信息描述:纪录用户的个人信息编号:F1组成:用户ID,用户名,密码,用户级别,EMAIL,电话,地址,注册时间,备注名字:订单信息描述:纪录订单的具体信息编号:F3组成:订单ID,订单号,下订单的客户,订货时间,订货具体内容名字:商品信息描述:纪录商品的属性信息编号:F5组成:商品ID,商品型号,商品类别,是否新品,查看级别,订货件数,订货次数,入库时间名字:类别信息描述:纪录类别的设置信息编号:F6组成:类别ID,类别名,所属大区域,该类别商品种类(4)数据处理名字:用户管理描述:管理员对管理员和用户信息的添加,删改等编号:P1输入/输出数据流:用户或管理员基本信息 名字:商品管理描述:管理员对商品信息的添加,删改等编号:P2输入/输出数据流:商品基本信息 名字:类别管理描述:管理员对类别信息的添加,删改等编号:P4输入/输出数据流:类别基本信息 名字:订单管理描述:管理员对订单信息的删改等编号:P5输入/输出数据流:订单基本信息 商品3.1.3 E-R图留言 查看发布用户填写查看订单商品活动图5 前台用户局部E-R图用户信息留言管理管理管理员管理管理商品信息订单 图6 后台管理员局部E-R图3.2.主要功能设计该系统的目标可以实现用户通过网络选购自己喜欢的商品,而且还可以为其进行邮寄。保证产品质量,信息安全,提供最好服务1,系统的主要功能如下: ( 1)查看产品信息用户可以根据自己的需求分类查看所有产品信息,选择自己喜欢的产品购买。 (2)查看新闻用户可以查看网站的所有新闻,新闻内容包括商品厂商的信息,以及新产品的发布信息等,以方便用户更直观的了解产品动向及信息。 (3)填写订单用户填写要购买商品的信息到订单中去,并可以删除已填写但最终不想购买的产品。4详细设计4.1详细设计说明书网上购物系统 管理员登陆系统客户注册系统客户登陆系统会员注销查询选购记录选购物品会员修改资料管理员注销订单处理会员管理物品入库 图7 系统总体功能图4.2模块定义设计用户管理自然是每个网站必不可少的,在本系统中,要求这部分管理安全可靠,权限分明,且其在前台和后台的表现不同,下面将分别进行介绍。 (1)前台表现用户注册,此时要保证系统不受注册机的攻击,要采用验证码技术。要确保权限为普通用户,要有密码保护措施,对于用户的密码维修,保证用户密码的安全性。保证用户设定之后可以找回遗忘的密码。 (2)后台表现系统管理员可以添加用户。系统管理员可以动态的给用户赋予权限,保证系统信息不外泄。系统管理员可以修改和删除用户信息。系统管理员可以进行维护赛选信息,对客服进行动态服务。系统管理员可以给用户建立备注信息,其仅对具有权限的用户可以进行信息的检查与修改。4.3数据库设计 (1) 商品信息表(Goods)分类编号,分类名称。表1商品信息表列名数据类型长度允许空Idint4noTypeidint4yesNamevarchar50yesSn_Numbervarchar50yesProducervarchar50yesPackagevarchar50yesSalePricefloat8yesStorePricefloat8yesContentvarchar1000yesPostTimedatetime8yesReadCountint4yesBuyCountint4yesImageFilevarchar50yes(2)商品类别表(GoodsType):分类编号,分类名称表2 商品类别表列名数据类型长度允许空Idint4noTypevarchar50yes(3)订单信息表(Basket):编号,用户名,商品编号,订购时间,订购数量,销售价格,用户确认,订单号,提交时间,管理员确认。 表3 Basket的结构列 名数据类型长 度允许空Idint4noUserIdvarchar20yesGoodsIdInt4yesOrderTimeDatetime8yesOrderCountInt4yesSalePriceFloat8yesUserCheckedChar10yesOrderNumberVarchar50yesPostTimeDatetime8yesAdminCheckedChar10yes(4)客户表(客户编号,姓名,性别,购买记录,购买信誉),主键为客户编号,符合三范式。 表4 客户表Member列名含义长度类型NULLDEFAULT 备注Mno客户编号15Char()nonoMname客户姓名15Char()nonosex客户性别5Char()nonorecord购买记录15Char()nonoCredit购买信誉15Char()nono(5)管理员表(Admin):用户名,密码,用户姓名。表5管理员表列名数据类型长度允许空AdminIdvarchar20noPassWdvarchar20yesNamevarchar50yes4.4 数据库连接 (1)按照要求建好数据库后,需要建立网站页面和后台服务器的链接,页面名称为ConnDB.asp,以后当需要对数据库进行访问时,只需要用命令就可以直接调用该程序,连接数据库,提高程序的可读性,同时也提高程序的便捷性. (2)后台管理功能只有管理用户才有权限使用,所以在进入这些页面之前,需要判断用户是否是管理用户。IsAdmin.asp的功能是判断当前用户是否是管理用户,如果不是,则跳转到Login.asp,要求用户登陆;如果是,则不执行任何操作,直接进入包含它的网页中。在只有管理用户可以进入的网页,开始都应包含IsAdmin.asp.4.5程序流程图 用户登录流程图登录入口 否查询用户是否存在 是否核对密码是否正确是取得用户名和密码 将UserID存在session中登录成功 图8 登录流程 物品搜索流程图开始搜索输入条件搜索结果购物车查看商品否是下订单继续搜 图9搜索流程4.6输入项目输入本系统中的数据如下所示:(1)用户信息需要有用户亲自注册,管理员帐号由系统自动生成。(2)产品信息需要有管理员手动进行添加。(3)留言标题、内容由用户输入,留言者、留言时间由系统自动检验生成。(4)新闻标题、英文标题、内容、英文内容由管理员添加,发布时间由系统自动检验生成。(5)订单信息需要由用户填写。5程序运行与调试5.1模块测试在模块测试时我们主要从以下几个方面考虑: 模块接口;局部数据结构;重要执行通道;出错处理通道;影响上述方面的边界条件。测试时进行代码审查,从数据类型,变量声明,数据结构进行审查,然后进行功能测试,从输入一些简单的数据开始执行一遍,观测运行期间变量的变化,运行中值的变化范围。改变测试方案来变换另一个角度进行测试,发现错误并记录,修改代码,测试条件使程序通过多层分支,判别运行结果从而完成模块测试。5.2部分测试结果如图(1)商品展示模块这是网站的主页面,用户不登陆也可以进入该页面,登陆成功后,页面会显示用户的信息。此页面主要是显示一些主要商品的图片、名称、价格等信息,用户可以输入商品名称,种类等进行搜索,也可以直接点击商品查看商品细节信息。图10商品展示模块在主界面中可以根据价格的高低排序图11商品价格排序 (2)商品详情模块当你点击一个商品的链接,可以进入商品的详情页面,这里会相识一个商品的所有具体信息,可以看到书名,作者,价格,出版日期图12商品详情模块 (3)购物车模块用户喜欢的商品可以选择放进购物车里,可以在购物车里产看用户选择的商品的名称价格以及购物车商品的总价,用户可以对购物车中的商品进行操作,修改购买数量,删除商品,清空购物车,结账等。图13购物车前台模块图14购物车展示界面清空购物车图15清空购物车界面删除购物车中的某教材图16删除购物车某教材(4)回顾商品模块当您想看曾经浏览过的商品时,可以点击查看浏览的历史记录,根据最近浏览的显示记录排序图17回顾商品模块5.3总体测试总体测试是组装软件的系统技术,本系统测试采用渐增集成测试,即测试单一模块,将测试完的模块加入系统中,进行一次系统测试,依次类推将所有模块加入系统中,在具体测试时,采用自顶向下的结合方式,从主控模块开始,沿各控制层向下移动,逐渐把所有模块结合了。在测试过程中使用到调试技术:(1) 采用debug调试语句,跟踪数据;(2) 嵌入打印语句,输出中间结果;(3) 利用Delphi 7.0中调试工具,从调试窗口观测变量的变化;(4)设置断点,观察程序在断点附近的状况。 6总结 这次课程设计让我认识到软件工程方法对项目开发的重要性和必要性,知道可以使得软件开发少走弯路,更容易开发出高质量的项目开发。按照软件工程的方法、软件的开发需要严格遵守其开发流程,作好软件设计的每一个流程。 由于以前没有系统的学习过软件工程的相关知识,只学过C/C+语言、数据结构等课程,因此在我的头脑里,做软件就是写代码,水平高的人写大型的、复杂的代码,水平低的人编的简单一些,所以总觉得软件工程没有什么太多实际的价值。然而,在逐步的学习过程中,特别是在结合本门课程和同学一起开发一个较为大型的软件中,我深深感受到了软件工程在开发过程中的指导作用。软件工程,重点在工程两字上,也就是把软件的开发当作一个工程项目运用工程的方法来实施,从可行性分析、需求分析直到最后的测试、交付以及以后的维护,每一个过程都有自己的一套方法。工程经常是和实践联系在一起的,软件工程只有在实际的软件开发中才能更深的体会到它的作用。7参考文献1 文杰书院.JAVA程序设计完全自学手册M.北京:机械工业出版社,20122 张永常.JAVA2 程序设计实用教程M.北京:电子工业出版社,20133 朱仲杰.JAVA2 全方位学习M.北京:机械工业出版社,2011 4 张永常等.JAVA程序设计实践教程M.北京:清华大学出版社,20155 全波, 姚素丹. 移动互联网时代电信运营商流量经营探索J. 电信科学, 2012, 28(7): 18-22.6 诸瑾文, 王艺. 从电信运营商角度看物联网的总体架构和发展J. 电信科学, 2010 (4): 1-5.7 孙少陵. 云计算变革下电信运营商的机遇及中国移动云计算探索J. 移动通信, 2010, 34(11): 44-46.附录:源代码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 ActionListener Hashtable hashtable=null;JTextField 代号文本框=new JTextField(),名称文本框=new JTextField(),库存文本框=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);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=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(xun,BorderLayout.SOUTH);b_add.addActionListener(this);b_del.addActionListener(this);b_xun.addActionListener(this);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);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(); /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)public class BaseDao implements DAO privateQueryRunnerqueryRunner=new QueryRunner();private Classclazz;publicBaseDao() clazz = ReflectionUtils.getSuperGenericType(getClass();System.out.println(clazz);Overridepublic long insert(String sql, Object. args) long id=0; Connection conn=ConnectionContext.getInstance().get();try PreparedStatement prepareStatement=conn.prepareStatement(sql,java.sql.Statement.RETURN_GENERATED_KEYS );for(inti=0;iargs.length;i+)prepareStatement.setObject(i+1, argsi);prepareStatement.executeUpdate();ResultSetresultSet=prepareStatement.getGeneratedKeys();if(resultSet.next()id=resultSet.getLong(1); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return id;Overridepublic void update(String sql, Object. args) Connection conn=ConnectionContext.getInstance().get();try queryRunner.update(conn, sql, args); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();Overridepublic T query(String sql, Object. args) Connection conn=ConnectionContext.getInstance().get();try return (T)queryRunner.query(conn, sql, new BeanHandler(clazz), args); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return null;SuppressWarnings(unchecked)Overridepublic V getSingleValue(String sql, Object. args) Connection conn=ConnectionContext.getInstance().get();try return (V) queryRunner.query(conn, sql, new ScalarHandler(), args); catch
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能配送调度算法-洞察及研究
- 锦纶纳米复合功能化-洞察及研究
- 包皮包茎疫苗研发与免疫治疗应用-洞察及研究
- 手持刀具使用安全培训课件
- 量子网络协议互操作性-洞察及研究
- 体育赛事直播版权管理-洞察及研究
- 执法主体管理制度
- 第四章 基本平面图形 单元试卷(含答案)2025-2026学年北师大版七年级数学上册
- 2025-2026学年统编版语文八年级上册第二单元检测卷(含答案)
- 手影变形记课件
- 第一二单元月考综合测试(试题)人教版数学六年级上册
- 2025年中小学心理健康教育试卷及答案
- 2025年年少先队知识竞赛考试真题题库及答案
- 高中语文-“病句辨析”模块“语序不当”知识点
- 2025年厦大《诚信复试承诺书》
- 外泌体课件教学课件
- 粮食培训考试题及答案
- 老年人护理冷热应用课件
- 政府法律顾问聘用合同
- 2025年共青团入团考试测试题库及答案
- 低空经济产业园产学研融合方案
评论
0/150
提交评论