数据库课程设计-电子商铺系统.docx_第1页
数据库课程设计-电子商铺系统.docx_第2页
数据库课程设计-电子商铺系统.docx_第3页
数据库课程设计-电子商铺系统.docx_第4页
数据库课程设计-电子商铺系统.docx_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

数据库应用技术课程设计报告题目:电子商铺系统专 业/ 班 级: 14软件工程( 2 )班2015 年 6 月 19日组 别:组长姓名(学号):成 绩:指 导 老 师:第1章 问题描述(需求说明)1.1系统功能介绍电子商务和物流是信息技术飞速发展的结果,特别是近几年,电子商务好像雨后春笋般地快速发展。一方面,电子商务的普及在一定程度上推动了网络和信息技术的普及和应用,方便了人们的生活;另一方面,电子商务的普及也对现代物流配送提出了更高的要求。在此背景下,电子商务配送信息系统应运而生此系统主要包括以下几个功能系统:1.1.1 订单订单服务系统当用户通过网络下订单后,订单服务系统迅速查询库存清单、查看缺货状况,这些信息必须实时地反馈给客户(前述案例中的网站正是缺少这方面的考虑,给客户带来不便)。同时调用客户管理系统查询该客户的相关信息。确认订单后,订单服务系统将客户订单发送到离客户最近的仓储中心。在整个过程中,订单服务系统需要同客户管理系统、仓储管理系统密切地协同工作。1.1.2配送配送系统当客户订单中的物品都备齐后,进行统一包装,进入配送系统。配送系统包括处理运输需求,设计运输路线、调度运力资源、运输的实施等。这个过程还包括通过网络系统对物品运输状态进行跟踪的服务,应急调整和安排运输任务等。1.1.3退货退货管理系统退货管理即对客户退货进行处理。客户因某种原因退货,企业应制订相应的退货处理政策。退货可集中由配送企业送回原仓储地点,由专人清理、登记、查明原因,如系产品质量问题应及时通知订货系统停止订货,并通知网站管理部门将网页上有关货物的信息及时删除。如退货还可继续使用,可进入库存。1.1.4 售后客户满意度调查和投诉反馈系统客户服务质量是销售企业保留老客户、吸引新客户的重要因素。客户满意度调查一般包括客户请求的响应速度、客户请求的满足时间和客户请求的满足质量等。1.1.5 物流物流数据管理与分析系统物流数据管理与分析是对物流配送整个过程中所产生的数据进行分析和挖掘,产生一些深度报告,作为电子商务企业选择专业物流配送企业的依据,也可以帮助电子商务企业及时调整市场推广策略和对客户的承诺,同时还可以帮助电子商务企业做出市场销售预测。良好的物流配送系统在降低电子商务成本、优化库存、提高电子商务企业经济和社会效益方面具有重要意义。1.2系统设计分工3个人分成三块:第一个开发数据库模块,(创建表格,视图,存储,触发器;添加,删除,修改数据,);第二个开发界面(登入,注册,查询,购物,提交订单,等等);第三个实现JDBC,开发java和数据库连接(各个界面的响应)。第2章 数据库结构设计2.1 概念结构设计根据数据项和数据结构,设计出满足需求的各种实体及实体间的相互关系。并用E_R图进行描述。2.2 逻辑结构设计这里我们选用MYSQL数据库进行了各个基本表的设置。 2.2.1创建商品表 goods 字段信息: 商品编号 gid商品名称 gname 商品价格 gjg 商品数量 gslCREATE TABLE goods ( gid int(10) NOT NULL, gname varchar(45) NOT NULL, gjg float(6,2) NOT NULL, gsl int(5) NOT NULL, PRIMARY KEY (gid);2.2.2创建管理员表字段信息:管理员编号 aid管理员姓名aname管理员性别asex管理员身份identityCREATE TABLE administrator ( aid int(10) unsigned zerofill NOT NULL, aname varchar(45) NOT NULL, asex enum(男,女) default 男 NOT NULL, identity varchar(45) NOT NULL, PRIMARY KEY (aid);2.2.3创建会员表字段信息:会员编号mid会员姓名mname会员地址mdz会员积分mzf会员密码password会员性别msexCREATE TABLE members ( mid int(10) unsigned zerofill NOT NULL, mname varchar(45) NOT NULL, mdz varchar(45) DEFAULT NULL, mjf int(5) NOT NULL DEFAULT 0, password varchar(18) NOT NULL, msex enum(男,女) NOT NULL DEFAULT 男, PRIMARY KEY (mid);2.2.4创建订单表字段信息:订单编号ofid商品编号mid日期dateCREATE TABLE orderform ( ofid int(10) unsigned zerofill NOT NULL, mid int(10) unsigned zerofill NOT NULL, date varchar(45) NOT NULL, PRIMARY KEY (ofid);2.2.5创建用户表字段信息:用户编号useid用户密码upassword用户性别usex用户手机uphoneCREATE TABLE user (useid int(10) not null unique,upassword varchar(10) not null,usex enum(男,女) NOT NULL DEFAULT 男,uphone int(10) unique);2.2.6创建商品详细分类表字段信息:商品编号gid商品数量gsl商品名称gnameCREATE TABLE goodsclassify ( gid int(10) NOT NULL, gsl int(5) NOT NULL, gname varchar(45) NOT NULL, PRIMARY KEY (gid), CONSTRAINT fk_goodsclassify_gid FOREIGN KEY (gid) REFERENCES goods (gid) ON UPDATE CASCADE);2.2.7创建订单详细表字段信息:订单编号ofid商品编号gid商品数量gsl消费金额xfjeCREATE TABLE orderquantity ( ofid int(10) unsigned zerofill NOT NULL, gid int(10) unsigned zerofill NOT NULL, gsl int(5) NOT NULL, sfje int(5) NOT NULL, PRIMARY KEY (ofid)KEY fk_orderform_mid_idx (mid), CONSTRAINT fk_orderform_ofid FOREIGN KEY (ofid) REFERENCES orderform (ofid) ON UPDATE CASCADE);这里我们保证了实体完整性,参照完整性和用户自定义完整性。在各个基本表的定义中,我们使主码值均不为空,表goods中gid取值为表goodsclassify中的外码值,表orderform中ofid取值为表orderquantity中的外码值,而且我们还进行了用户自定义的完整性约束,使表中某些值取值不为空。第3章 GUI设计报告3.1总体思路3.1.1各GUI形式以window窗口为主3.1.2各GUI转变以window窗口的可视与非可视形式展现3.1.3各GUI以响应式组件布局,进行与数据库的交互3.2具体代码实现3.2.1、登陆界面(代码见附录1)外部类为登陆界面的具体实现,内部类为响应使组件的响应事件3.2.2、登陆错误界面(代码见附录2)外部类为登陆界面的具体实现,内部类为响应使组件的响应事件3.2.3、注册界面(代码见附录3)外部类为注册界面的具体实现,内部类为响应使组件的响应事件3.2.4、手机号检测防重复(代码见附录4)外部类为注册界面的具体实现,内部类为响应使组件的响应事件3.2.5、找回密码界面(代码见附录5)外部类为注册界面的具体实现,内部类为响应使组件的响应事件3.2.6、注册成功与失败界面(代码见附录6)外部类为注册界面的具体实现,内部类为响应使组件的响应事件3.2.6、找回密码成功与失败界面(代码见附录7)外部类为注册界面的具体实现,内部类为响应使组件的响应事件3.2.7、登陆时的身份检查(代码见附录8) 构造了一个登陆类,其中有属性用户名和密码,还有一个方法来对比登陆请求的账号密码是否在数据库中存在,若存在则返回一个true,若不存在则返回一个false.3.2.8、购物界面(代码见附录9)外部类为注册界面的具体实现,内部类为响应使组件的响应事件3.2.9、其他与数据库连接的API及其具体实现(见附录10)第4章 测试4.1界面显示4.2注册过程显示4.2.1注册之前 4.2.2注册之后 4.3登入后界面4.4购物界面第5章 总结具体论述了网上购物系统的主要功能及体系结构,重点讨论了系统数据准备、数据库的逻辑结构分析、各模块系统流程 各功能模块的关联和响应 ,JSP与后台数据库链接等关键技术。这些技术的实现,满足了系统的需要,优化了系统的性能。目前基于该模型的系统处于实验室阶段,还存在许多问题与不足,如安全性能还不完善,缺少必要的数据加密系统,管理员还没有实现,购物车没有完全实现,在java不会插入图片,界面粗超,等,,这些功能与技术还需要加以提高和实现。附录1public class loginWindow extends JFrameJFrame f=new JFrame();Button but1=new Button(登入);Button but3=new Button(注册);Button but2=new Button(找回密码);JLabel lab1=new JLabel(账号:);JLabel lab2=new JLabel(密码:);JLabel lab3=new JLabel(欢迎使用);JTextField t1=new JTextField(10);JPasswordField t2=new JPasswordField(10);public loginWindow()f.setTitle(电子商铺系统);f.setLayout(null);/f.setVisible(true);/f.setBackground(Color.CYAN);lab1.setBounds(60, 150, 55, 32);lab2.setBounds(60, 190, 60, 32);lab3.setBounds(120, 30, 300, 120);lab3.setFont(new java.awt.Font(欢迎使用,1,33);lab3.setForeground(Color.red);but1.setBounds(110, 230, 165, 30);but1.setForeground(Color.BLUE);but2.setBounds(300, 186, 60, 32);but3.setBounds(300, 146, 60, 32);t1.setBounds(100, 150, 180, 30);t2.setBounds(100, 190, 180, 30);f.add(lab1);f.add(lab2);f.add(lab3);f.add(but1);f.add(but2);f.add(but3);f.add(t1);f.add(t2);but1.addActionListener(new loginListenerAction();but2.addActionListener(new loginListenerAction();but3.addActionListener(new loginListenerAction();Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width;/*取得显示器窗口的宽度*/int y=screen.height;/*取得显示器窗口的高度*/setSize(x,y); /*让系统窗口平铺整个显示器窗口*/ f.setSize(430,350);/ int xcenter=(x-300)/2;/ int ycenter=(y-300)/2;/ f.setLocation(xcenter,ycenter);/*显示在窗口中央*/ f.setLocationRelativeTo(null); /显示在屏幕中央 f.setVisible(true); f.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););class loginListenerAction implements ActionListenerpublic void actionPerformed(ActionEvent e)String cmd=e.getActionCommand();if(cmd.equals(登入)UserLogin login=new UserLogin(Integer.parseInt(t1.getText(),String.copyValueOf(t2.getPassword();if(login.login() f.setVisible(false); new loginAfterSSWindow();elsef.setVisible(false);new loginErrorWindow(); else if(cmd.equals(注册)f.setVisible(false);new enrollWindow();else if(cmd.equals(找回密码)f.setVisible(false);new passwordReturnWindow(); 附录2public class loginErrorWindow extends JFrameJFrame f=new JFrame();Button but1=new Button(确认);JLabel lab1=new JLabel(密码错误请重新输入); public loginErrorWindow()f.setTitle(电子商铺系统);f.setLayout(null);f.setVisible(true);lab1.setBounds(50, 40, 130, 32);but1.setBounds(70, 80, 65, 30);f.add(lab1);f.add(but1);but1.addActionListener(new loginErrorListener();Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width;/*取得显示器窗口的宽度*/int y=screen.height;/*取得显示器窗口的高度*/setSize(x,y); /*让系统窗口平铺整个显示器窗口*/ f.setSize(200,150);/ int xcenter=(x-300)/2;/ int ycenter=(y-300)/2;/ f.setLocation(xcenter,ycenter);/*显示在窗口中央*/ f.setLocationRelativeTo(null); f.setVisible(true); f.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););class loginErrorListener implements ActionListenerOverridepublic void actionPerformed(ActionEvent e) / TODO Auto-generated method stubf.setVisible(false);new loginWindow();附录3public class enrollWindow extends Frameprivate int i=159;Frame f=new Frame();Button but1=new Button(确定);/按,开始注册Button but2=new Button(取消);/退出界面JLabel lab1=new JLabel(密码:);/显示密码JLabel lab2=new JLabel(确认密码:);/第二次输入密码以第一次比较JLabel lab3=new JLabel(性别:);/选择男或女,默认为男JLabel lab4=new JLabel(地址:);/家庭地址,可以为空JLabel lab5=new JLabel(注册账号);JLabel lab6=new JLabel(电话:);JRadioButton jr1=new JRadioButton(男);/现在男按钮JRadioButton jr2=new JRadioButton(女);/现在女按钮JTextField t1=new JTextField(10); /地址JPasswordField t2=new JPasswordField(10);/第一次输入密码JPasswordField t3=new JPasswordField(10);/第二次输入密码JTextField t4=new JTextField(10); /电话String biao=null;public enrollWindow()f.setTitle(电子商铺系统);f.setLayout(null);f.setVisible(true);/f.setBackground(Color.CYAN);00clab1.setBounds(40, 100, 55, 32);lab2.setBounds(40, 140, 55, 32);lab3.setBounds(40, 180, 55, 32);lab4.setBounds(40, 220, 55, 32);lab5.setFont(new java.awt.Font(注册账号 : ,1,25);lab5.setForeground(Color.BLUE);lab6.setBounds(40, 260, 55, 32);lab5.setBounds(10, 10, 300, 80);but1.setBounds(110, 300, 60, 30);but2.setBounds(220, 300, 60, 30);t2.setBounds(130, 100, 180, 30);t3.setBounds(130, 140, 180, 30);t4.setBounds(130, 260, 180, 30);t1.setBounds(130, 220, 180, 30);jr1.setBounds(130, 180, 60, 30);jr2.setBounds(200, 180, 60, 30);f.add(lab1);f.add(lab2);f.add(lab3);f.add(lab4);f.add(lab5);f.add(lab6);f.add(but1);f.add(but2);f.add(t2);f.add(t3);f.add(t4);f.add(t1);ButtonGroup group=new ButtonGroup(); /建立一个按钮组group.add(jr1);group.add(jr2);f.add(jr1);f.add(jr2);but1.addActionListener(new enrollListenerAction();/监听确认but2.addActionListener(new enrollListenerAction();/监听取消jr1.addActionListener(new enrollListenerAction1();/生成男监听器jr2.addActionListener(new enrollListenerAction1();/生成女监听器Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width;/*取得显示器窗口的宽度*/int y=screen.height;/*取得显示器窗口的高度*/setSize(x,y); /*让系统窗口平铺整个显示器窗口*/ f.setSize(430,400);/ int xcenter=(x-300)/2;/ int ycenter=(y-300)/2;/ f.setLocation(xcenter,ycenter);/*显示在窗口中央*/ f.setLocationRelativeTo(null); f.setVisible(true); f.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););class enrollListenerAction1 implements ActionListenerOverridepublic void actionPerformed(ActionEvent e) if(jr1.getText().equals(男)biao=男;if(jr2.getText().equals(女)biao=女;class enrollListenerAction implements ActionListenerpublic void actionPerformed(ActionEvent e) String cmd=e.getActionCommand();if(cmd.equals(确定)if(t1.getText().equals() | String.valueOf(t2.getPassword().equals() |String.valueOf(t3.getPassword().equals()System.out.println(请将注册信息添加完整);elseuserDaoImpl user=new userDaoImpl();if(user.getPhone(Integer.parseInt(t4.getText()if(String.valueOf(t2.getPassword().equals(String.valueOf(t3.getPassword()user.addUser(i+Integer.parseInt(t4.getText(),String.valueOf(t3.getPassword(),biao,Integer.parseInt(t4.getText();f.setVisible(false);new enrollSuccessWindow(i+Integer.parseInt(t4.getText();elsef.setVisible(false);new enrollPasErrorWindow();elsef.setVisible(false);new PhoneCheck();else if(cmd.equals(取消)f.setVisible(false);new loginWindow();附录4public class PhoneCheck extends JFrameFrame f=new Frame();Button but1=new Button(确认);JLabel lab1=new JLabel(注册失败); public PhoneCheck()f.setTitle(电子商铺系统);f.setLayout(null);f.setVisible(true);lab1.setBounds(70, 40, 130, 32);but1.setBounds(70, 80, 65, 30);f.add(lab1);f.add(but1);but1.addActionListener(new loginErrorListener();Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width;/*取得显示器窗口的宽度*/int y=screen.height;/*取得显示器窗口的高度*/setSize(x,y); /*让系统窗口平铺整个显示器窗口*/ f.setSize(200,150);/ int xcenter=(x-300)/2;/ int ycenter=(y-300)/2;/ f.setLocation(xcenter,ycenter);/*显示在窗口中央*/ f.setLocationRelativeTo(null); f.setVisible(true); f.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););class loginErrorListener implements ActionListenerOverridepublic void actionPerformed(ActionEvent e) f.setVisible(false);new enrollWindow();附录5public class passwordReturnWindow extends JFrameJFrame f=new JFrame();Button but1=new Button(确认);Button but2=new Button(取消);JLabel lab1=new JLabel(找回密码); JLabel lab2=new JLabel(请输入你的电话); JTextField t1=new JTextField(11); /电话public passwordReturnWindow()f.setTitle(电子商铺系统);f.setLayout(null);f.setVisible(true);lab1.setFont(new java.awt.Font(找回密码,1,24);lab1.setForeground(Color.PINK);lab1.setBounds(100, 40, 130, 32);lab2.setBounds(50, 100, 110, 32);but1.setBounds(100, 180, 65, 30);but2.setBounds(220, 180, 65, 30);t1.setBounds(150, 100, 180, 32);f.add(lab1);f.add(lab2);f.add(but1);f.add(but2);f.add(t1);but1.addActionListener(new pReturnAction();but2.addActionListener(new pReturnAction();Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width;/*取得显示器窗口的宽度*/int y=screen.height;/*取得显示器窗口的高度*/setSize(x,y); /*让系统窗口平铺整个显示器窗口*/ f.setSize(380,350);/ int xcenter=(x-300)/2;/ int ycenter=(y-300)/2;/ f.setLocation(xcenter,ycenter);/*显示在窗口中央*/ f.setVisible(true); f.setLocationRelativeTo(null); f.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););class pReturnAction implements ActionListenerOverridepublic void actionPerformed(ActionEvent e) String cmd=e.getActionCommand();int useid;String upassword;if(cmd.equals(确认) /前面没问题int phone=Integer.parseInt(t1.getText(); /将t1文本框内的转为整形userDao user=new userDaoImpl();useid=user.getUseid(phone);upassword=user.getPassword(phone);if(useid!=0&!upassword.equals()f.setVisible(false);new passwordRSuccessWindow(useid, upassword);elsef.setVisible(false);new passwordRErrorWindow();if(cmd.equals(取消)f.setVisible(false);new loginWindow();附录6(注册成功)public class enrollSuccessWindow extends JFrameFrame f=new Frame();Button but1=new Button(确认);/跳到登入界面JLabel lab1=new JLabel(你的账号为:);/不可修改JLabel lab2=new JLabel(恭喜你注册成功);JTextField t1=new JTextField();public enrollSuccessWindow(int i)f.setTitle(电子商铺系统);f.setLayout(null);f.setVisible(true);lab1.setBounds(40, 130, 70, 32);lab2.setBounds(80, 60, 190, 32);lab2.setFont(new java.awt.Font(恭喜你注册成功 ,1,25);lab2.setForeground(Color.BLUE);but1.setBounds(140, 200, 60, 30);t1.setText(i+);t1.setBounds(120, 130, 180, 30);f.add(lab1);f.add(but1);f.add(t1);f.add(lab2);but1.addActionListener(new successAction();/生成确认监听器Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width;/*取得显示器窗口的宽度*/int y=screen.height;/*取得显示器窗口的高度*/setSize(x,y); /*让系统窗口平铺整个显示器窗口*/ f.setSize(330,270);/ int xcenter=(x-300)/2;/ int ycenter=(y-300)/2;/ f.setLocation(xcenter,ycenter);/*显示在窗口中央*/ f.setLocationRelativeTo(null); f.setVisible(true); f.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););class successAction implements ActionListenerpublic void actionPerformed(ActionEvent e) f.setVisible(false);new loginWindow();(注册失败)public class enrollPasErrorWindow extends JFrameFrame f=new Frame();Button but1=new Button(确认);JLabel lab1=new JLabel(二次密码不符); public enrollPasErrorWindow()f.setTitle(电子商铺系统);f.setLayout(null);f.setVisible(true);lab1.setBounds(70, 40, 130, 32);but1.setBounds(70, 80, 65, 30);f.add(lab1);f.add(but1);but1.addActionListener(new enrollPasErrorLis();Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width;/*取得显示器窗口的宽度*/int y=screen.height;/*取得显示器窗口的高度*/setSize(x,y); /*让系统窗口平铺整个显示器窗口*/ f.setSize(200,150);/ int xcenter=(x-300)/2;/ int ycenter=(y-300)/2;/ f.setLocation(xcenter,ycenter);/*显示在窗口中央*/ f.setLocationRelativeTo(null); f.setVisible(true); f.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););class enrollPasErrorLis implements ActionListenerOverridepublic void actionPerformed(ActionEvent e) f.setVisible(false);new enrollWindow();附录7(找回成功)public class passwordRSuccessWindow extends JFrameFrame f=new Frame();Button but1=new Button(确认);/按下确认跳到登入界面JLabel lab1=new JLabel(账号:);/不可以修改JLabe

温馨提示

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

评论

0/150

提交评论