收藏 分享(赏)

java超市管理系统课程设计报告.doc

上传人:精品资料 文档编号:8542601 上传时间:2019-07-02 格式:DOC 页数:103 大小:961.88KB
下载 相关 举报
java超市管理系统课程设计报告.doc_第1页
第1页 / 共103页
java超市管理系统课程设计报告.doc_第2页
第2页 / 共103页
java超市管理系统课程设计报告.doc_第3页
第3页 / 共103页
java超市管理系统课程设计报告.doc_第4页
第4页 / 共103页
java超市管理系统课程设计报告.doc_第5页
第5页 / 共103页
点击查看更多>>
资源描述

1、湖 南 文 理 学 院课程设计题目: 超市管理系统 系 别 计算机科学与技术 班 级 计科 12102 学生姓名 罗巍 杨欢 杨沁铠 唐振 学 号 201217010223 指导教师 谭文学 课程设计进行地点: 第三实验楼 A617 任 务 下 达 时 间: 2014 年 5 月 21 日起止日期: 2014 年 5 月 21 日起至 2014 年 6月 21 日止- 2 -摘 要随着小型超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长,传统的人工记忆方式也慢慢的无法适应形势的变化。随着信息技术的发展,计算机已被广泛的用于社会的各个领域,成为推动社会发展的技术动力。而在

2、计算机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信息产品的开发和信息技术市场的进一步的开拓。软件产业已成为社会信息化进程中的一个战略性产业。在软件技术的应用中软件的开发技术尤其是应用型软件产品的开发技术成了重中之重。不断开发适应用户需求、市场需要的新型软件产品。随着社会的发展,软件也在不断的更新换代。由于有些超市里对商品的进货、售出及商品的基本信息等的一些繁琐处理都是通过手工进行记载并进行处理的,对商品信息的处理工作量特别大,不仅浪费大量的人力物力,而且还很容易出错,更重要的是为了方便顾客,超市需要时时刻刻对商品对各种信息进行统计分析。 一直以来人们使用传统人工的方式管

3、理超市的各项工作, 这种管理方式存在着许多缺点 , 如: 效率低、保密性差, 另外时间一长, 将产生大量的冗余文件和数据, 这给查找、统计、更新和维护工作都带来了很大的困难。然而大型的超市管理系统功能过于强大而造成操作繁琐降低了小超市的工作效率。如果有这样一套完整的小型超市管理系统软件,只需点击几下鼠标就可完成所需操作,那样就会大大的提高超市员工的工作效率和管理水平,并能进一步提高超市的工作效率并使超市实施规范化管理。鉴于小型超市管理中存在的诸多问题, 我们在此次课程设计中以小型超市管理系统为研究课题,对此系统进行了全面的设计。超市管理系统由顾客、采购员、销售员、经理的管理界面四部分组成。 超

4、市管理系统应该能够为用户提供充足的信息和快捷的查询手段。一个完整系统的设计,当然就离不开后台环境的支持,在此次设计中,我们主要以 sqlsever数据库作为基础,实行此系统的开发。- 3 -目 录一、系统需求分析 - 1 -1.1 系统名称: - 1 -1.2 系统介绍: - 1 -1.3 开发背景 - 1 -1.4.系统面向的用户群体 - 1 -1.5 开发环境 - 1 -二、系统总体设计 - 2 -2.1 系统功能结构图 - 2 -三、系统详细设计 - 2 -3.1 数据库实体 E-R 图设计 .- 2 - 4 -3.2 数据库表的设计 - 4 -3.3 物理设计文档 - 6 -3.4 详

5、细设计 - 10 -四、系统总结 - 20 -五、系统设计心得体会 - 21 -六、参考文献 - 21 -一、系统需求分析1.1系统名称:小型超市管理系统- 5 -1.2系统介绍:界面设计简洁、友好、美观大方操作简单、快捷方便数据存储安全、可靠信息分类清晰、准确强大的查询功能、保证数据查询的灵活性提供销售排行,为管理员提供真实的数据信息提供灵活、方便的权限设置功能,使整个系统的管理分工明确对用户的输入的数据,系统进行严格的数据检验,尽可能排人为错误1.3开发背景随着现代科学技术的迅猛发展,计算机技术已经渗透到各个领域,成为各行业必不可少的工具,特别是 Internet技术的推广和信息高速公路的

6、建立,使IT产业在市场竞争中越发显示出其独特的优势,步入信息化时代,有巨大的数据信息等待加工处理和传输,这使得对数据库的进一步开发和利用显得尤为迫切。作为国内市场的一些中小型超市,它们在信息化过程中的步伐要落后于大中型超市,而对于这些企业的资源管理,信息的存储和处理也显得迫切需要,要适应市场竞争,就需要有高效的处理方式和管理方法,因此加快超市的信息化进程是必不可少的。我国的超市在 20世纪 90年代初期形成,现在已经成为我国零售业的一种重要形态,为国民经济的发展发挥了重要的作用。随着经济的快速发展,超市的经营管理也变得愈加复杂,早期的售货员站柜台的形式早已不能满足现有销售业的发展,这样就迫切地

7、需要引入新的管理技术。1.4.系统面向的用户群体主要是中小型超市使用者,该消费群体具有以下特征:1 超市日常管理人工化居多,工作效率较低;2 超市日常交易额较小,货物流通较小,不愿花高价购进大型超市管理系统。因此,该消费群体对产品的功能性需求并不高,只- 6 -需满足前台销售系统、后台货物管理即可。1.5开发环境Eclipse+mysql二、系统总体设计2.1系统功能结构图小超市管理系统是一个专门针对小型的商店和超市的智能化、自动化的管理系统。其功能总框图如图 2-1 所示。登陆界面浏览某种商品顾客登陆 采购员登陆顾客注册经理登录销售员登陆查看所有订单增加订单更改订单查看销售员信息购买商品分项

8、查询查看进货信息查看销售信息浏览所有商品- 7 -图 2-1 系统功能总框图三、系统模块功能介绍3.1 登录功能介绍- 8 -登录功能是进入系统必须经过的验证过程,其主要功能是验证使用者的身份,确认使用者的权限,从而在使用软件过程中能安全地控制系统数据,即不同的工作人员有不同的权限,每个使用人员不得跨越其权限操作软件,可以避免不必要的数据丢失事件发生。登录的界面如图 2-2 所示- 9 -登陆成功!3.1.1 登陆界面源代码package uml_supermarket;import java.awt.*;import javax.swing.*;import com.borland.jbcl

9、.layout.*;import java.awt.event.*;import com.borland.dx.sql.dataset.*;import java.sql.*;import javax.swing.border.*;- 10 -/* Title: * Description: * Copyright: Copyright (c) 2003* Company: * author unascribed* version 1.0*/public class Logincs extends JDialog implements ActionListener/声明在程序中要用到的方法pr

10、ivate JPanel panel1 = new JPanel();private BorderLayout borderLayout1 = new BorderLayout();private JPanel jPanel1 = new JPanel();private XYLayout xYLayout1 = new XYLayout();private JLabel jLabel1 = new JLabel();/添加一个标签控件private JLabel jLabel2 = new JLabel();private JTextField jTextField1 = new JText

11、Field();/添加一个文本框private JButton jButton1 = new JButton();/添加一个按钮控件private JButton jButton2 = new JButton();private JPasswordField jPasswordField1 = new JPasswordField();private Database database1 = new Database();private JLabel jLabel3 = new JLabel();private JLabel jLabel4 = new JLabel();- 11 -priva

12、te JLabel jLabel5 = new JLabel();private TitledBorder titledBorder1;private TitledBorder titledBorder2;private JLabel jLabel6 = new JLabel();public Logincs(Frame frame, String title, boolean modal) super(frame, title, modal);try jbInit();pack();catch(Exception ex) ex.printStackTrace();public Logincs

13、() this(null, “, false);private void jbInit() throws Exception titledBorder1 = new TitledBorder(“);titledBorder2 = new TitledBorder(“);panel1.setLayout(borderLayout1);- 12 -jPanel1.setLayout(xYLayout1);jLabel1.setForeground(Color.blue);/标签控件的字体颜色jLabel1.setText(“用户名 “); /标签标题jLabel2.setForeground(Co

14、lor.blue);jLabel2.setText(“密码 “);jButton1.setForeground(UIManager.getColor(“List.selectionBackground“);/按钮控件字体颜色jButton1.setBorder(BorderFactory.createRaisedBevelBorder();/按钮外观jButton1.setText(“登录 “);/按钮标题jButton1.addActionListener(this);/加入按钮事件jButton2.setForeground(UIManager.getColor(“Menu.selecti

15、onBackground“);jButton2.setBorder(BorderFactory.createRaisedBevelBorder();jButton2.setToolTipText(“);jButton2.setText(“取消 “);jButton2.addActionListener(this);jPanel1.setBorder(BorderFactory.createEtchedBorder();jPanel1.setMinimumSize(new Dimension(600, 600);/设置面板大小jPanel1.setPreferredSize(new Dimens

16、ion(400, 325);jPasswordField1.setBorder(titledBorder1);jPasswordField1.setToolTipText(“);database1.setConnection(new com.borland.dx.sql.dataset.ConnectionDescriptor(“jdbc:odbc:supermarket“, “sa“, “123“, false, “sun.jdbc.odbc.JdbcOdbcDriver“);- 13 -this.setResizable(false);this.setTitle(“登录“);jLabel3

17、.setBackground(Color.yellow);/标签背景颜色jLabel3.setForeground(Color.black);jLabel3.setBorder(BorderFactory.createEtchedBorder();jLabel3.setText(“ 小型超市管理系统 “);jLabel4.setBorder(BorderFactory.createEtchedBorder();jLabel4.setText(“ 制作人:L,T,Y,Y“);jLabel5.setBorder(BorderFactory.createEtchedBorder();jLabel5.

18、setToolTipText(“);jLabel5.setText(“版本号: 2014.5.30“);jTextField1.setBorder(titledBorder2);jLabel6.setBorder(BorderFactory.createEtchedBorder();getContentPane().add(panel1); panel1.add(jPanel1, BorderLayout.WEST);jPanel1.add(jLabel3, new XYConstraints(-1, 0, 395, 30);jPanel1.add(jLabel5, new XYConstra

19、ints(274, 30, 121, 32);jPanel1.add(jLabel4, new XYConstraints(127, 32, 143, 30);jPanel1.add(jPasswordField1, new XYConstraints(143, 196, 132, 24);jPanel1.add(jTextField1, new XYConstraints(143, 136, 132, 24);jPanel1.add(jLabel2, new XYConstraints(23, 195, 60, 25);jPanel1.add(jLabel1, new XYConstrain

20、ts(23, 134, 60, 25);jPanel1.add(jLabel6, new XYConstraints(-2, 65, 396, 191);jPanel1.add(jButton1, new XYConstraints(90, 274, 68, 28);- 14 -jPanel1.add(jButton2, new XYConstraints(193, 275, 69, 28);public void actionPerformed(ActionEvent e)String driverName=“com.microsoft.jdbc.sqlserver.SQLServerDri

21、ver“;String dbURL=“jdbc:sqlserver:/localhost:1433;DatabaseName=supermarket“;String userName=“sa“; /默认用户名 String userPwd=“123“; /密码 Statement stmt=null;ResultSet rs =null;Connection dbConn=null;if(e.getSource() = jButton1) /得到界面单击事件tryString userAuthority = null ;/ String userName = null ;String user

22、Password = null ;String testName = jTextField1.getText().toString() ;/从 jTextField1 中得到用户名String testPassword = String.valueOf(jPasswordField1.getPassword() ;/从jPassword 中得到用户密码/Statement sql = database1.createStatement() ; /打开 Statement 对象try - 15 -Class.forName(driverName).newInstance(); catch (In

23、stantiationException e1) / TODO Auto-generated catch blocke1.printStackTrace(); catch (IllegalAccessException e1) / TODO Auto-generated catch blocke1.printStackTrace(); catch (ClassNotFoundException e1) / TODO Auto-generated catch blocke1.printStackTrace(); dbConn=DriverManager.getConnection(dbURL,u

24、serName,userPwd); stmt = dbConn.createStatement(); rs = stmt.executeQuery(“SELECT userName,userPassword , userAuthority FROM T_user WHERE userName = “+testName+“) ;/执行 SQL 语句,从数据库当中选择用户名,密码,和权限。while(rs.next() /userName = rs.getString(“userName“) ; /从数据库当中得到用户名userPassword = rs.getString(“userPasswo

25、rd“) ;/从数据库当中得到密码userAuthority = rs.getString(“userAuthority“) ;/从数据库当中得到权限verifyUser(userName,userPassword,testPassword,userAuthority); /调用verifyUser 方法- 16 -cancel() ;/退出catch(SQLException ex)ex.printStackTrace();/exit the Systemelse if(e.getSource() = jButton2)cancel();void cancel()dispose();/验证用

26、户名以及密码void verifyUser(String userName , String userPassword , String testPassword, String userAuthority)if(userName = null) /判断用户名是否为空JOptionPane.showMessageDialog(null,“用户名不存在,请先注册“,“verify user“,JOptionPane.DEFAULT_OPTION);/抛出对话框else- 17 -if(userPassword.equals(testPassword) = false) /判断密码是否相等JOpt

27、ionPane.showMessageDialog(null,“您输入的密码不正确,请重试“,“verify password“ , JOptionPane.DEFAULT_OPTION);/抛出对话框elseJOptionPane.showMessageDialog(null,“success“,“,JOptionPane.DEFAULT_OPTION);/verifyUserAuthority(userAuthority) ;/进行权限判断/验证用户权限void verifyUserAuthority(String userAuthority)if(userAuthority.equals

28、(“admin“)/如果用户为 admin,则弹出管理员界面AdminWindow adminWindow = new AdminWindow() ;/设置对话框Dimension dlgSize = adminWindow.getPreferredSize();Dimension frmSize = getSize();Point loc = getLocation();adminWindow.setLocation(frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.

29、y);adminWindow.setModal(true);- 18 -adminWindow.pack();adminWindow.show();/显示对话框else if (userAuthority.equals(“customer“)/如果用户为 customer/弹出顾客登录界面CustomerWindow customerWindow =new CustomerWindow() ;/设置对话框的大小Dimension dlgSize = customerWindow.getPreferredSize();Dimension frmSize = getSize();Point loc

30、 = getLocation();customerWindow.setLocation(frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);customerWindow.setModal(true);customerWindow.pack();customerWindow.show();else if (userAuthority.equals(“buyer“)BuyerWindow buyerWindow =new BuyerWindow() ;Dimension

31、 dlgSize = buyerWindow.getPreferredSize();Dimension frmSize = getSize();Point loc = getLocation();buyerWindow.setLocation(frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);- 19 -buyerWindow.setModal(true);buyerWindow.pack();buyerWindow.show();else if (userAut

32、hority.equals(“saler“)SalesWindow salesWindow =new SalesWindow() ;Dimension dlgSize = salesWindow.getPreferredSize();Dimension frmSize = getSize();Point loc = getLocation();salesWindow.setLocation(frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);salesWindow.

33、setModal(true);salesWindow.pack();salesWindow.show();else if (userAuthority.equals(“manager“)ManagementWindow managementWindow =new ManagementWindow() ;Dimension dlgSize = managementWindow.getPreferredSize();Dimension frmSize = getSize();Point loc = getLocation();managementWindow.setLocation(frmSize

34、.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);managementWindow.setModal(true);managementWindow.pack();managementWindow.show();- 20 -3.2 顾客注册界面- 21 -注册成功!3.2.2 顾客注册源代码package uml_supermarket;import java.awt.*;import javax.swing.*;import com.borland.jbcl.layout.*;

35、import java.awt.event.*;/import com.borland.dx.sql.dataset.*;import java.sql.*;- 22 -/* Title: * Description: * Copyright: Copyright (c) 2003* Company: * author unascribed* version 1.0*/public class Registration extends JDialog implements ActionListener String driverName=“com.microsoft.jdbc.sqlserve

36、r.SQLServerDriver“;String dbURL=“jdbc:sqlserver:/localhost:1433;DatabaseName=supermarket“;String userName=“sa“; /默认用户名 String userPwd=“123“; /密码 Statement stmt=null;ResultSet rs =null;Connection dbConn=null;private JPanel panel1 = new JPanel();private BorderLayout borderLayout1 = new BorderLayout();

37、private JPanel jPanel1 = new JPanel();private XYLayout xYLayout1 = new XYLayout();private JLabel jLabel1 = new JLabel();private JLabel jLabel2 = new JLabel();- 23 -private JLabel jLabel3 = new JLabel();private JLabel jLabel4 = new JLabel();private JTextField jTextField1 = new JTextField();private JT

38、extField jTextField2 = new JTextField();private JTextField jTextField3 = new JTextField();private JTextField jTextField4 = new JTextField();private JLabel jLabel5 = new JLabel();private JLabel jLabel6 = new JLabel();private JLabel jLabel7 = new JLabel();private JTextField jTextField5 = new JTextFiel

39、d();private JPasswordField jTextField6 = new JPasswordField();private JPasswordField jTextField7 = new JPasswordField();private JButton jButton1 = new JButton();private JButton jButton2 = new JButton();public Registration(Frame frame, String title, boolean modal) super(frame, title, modal);try jbIni

40、t();pack();catch(Exception ex) ex.printStackTrace();- 24 -public Registration() this(null, “, false);private void jbInit() throws Exception panel1.setLayout(borderLayout1);jPanel1.setLayout(xYLayout1);jLabel1.setText(“姓名“);jLabel2.setText(“年龄“);jLabel3.setText(“性别“);jLabel4.setText(“类别“);jLabel5.set

41、Text(“请输入密码“);jLabel6.setText(“请再输一遍“);jLabel7.setText(“家庭住址“);jButton1.setText(“确定“);jButton1.addActionListener(new java.awt.event.ActionListener() public void actionPerformed(ActionEvent e) jButton1_actionPerformed(e););jButton2.setText(“取消“);jButton2.addActionListener(new java.awt.event.ActionLis

42、tener() public void actionPerformed(ActionEvent e) jButton2_actionPerformed(e);- 25 -);jPanel1.setPreferredSize(new Dimension(400, 300);jTextField4.setText(“customer“);getContentPane().add(panel1);panel1.add(jPanel1, BorderLayout.CENTER);jPanel1.add(jTextField1, new XYConstraints(80, 31, 76, 25);jPa

43、nel1.add(jTextField2, new XYConstraints(79, 76, 78, 23);jPanel1.add(jTextField3, new XYConstraints(79, 119, 77, 25);jPanel1.add(jTextField4, new XYConstraints(78, 159, 77, 26);jPanel1.add(jLabel4, new XYConstraints(26, 158, 42, 28);jPanel1.add(jLabel3, new XYConstraints(28, 118, 39, 28);jPanel1.add(

44、jLabel2, new XYConstraints(28, 76, 48, 26);jPanel1.add(jLabel1, new XYConstraints(31, 35, 41, 27);jPanel1.add(jLabel7, new XYConstraints(185, 30, 49, 25);jPanel1.add(jTextField5, new XYConstraints(258, 35, 120, -1);jPanel1.add(jLabel5, new XYConstraints(185, 78, 78, 23);jPanel1.add(jLabel6, new XYCo

45、nstraints(185, 116, 73, 23);jPanel1.add(jTextField7, new XYConstraints(258, 119, 121, 23);jPanel1.add(jTextField6, new XYConstraints(258, 79, 119, 24);jPanel1.add(jButton1, new XYConstraints(197, 194, 80, 26);jPanel1.add(jButton2, new XYConstraints(296, 194, 82, 26);public void actionPerformed(Actio

46、nEvent ee)- 26 -void jButton1_actionPerformed(ActionEvent e) String userGender = String.valueOf(jTextField1.getText() ;int userAge = Integer.parseInt(String.valueOf(jTextField2.getText() ;String username= String.valueOf(jTextField3.getText() ;String userAuthority = String.valueOf(jTextField4.getText

47、() ;String userAddress = String.valueOf(jTextField5.getText() ;String userPassword = String.valueOf(jTextField6.getPassword() ;String testPassword = String.valueOf(jTextField7.getPassword() ;if(userPassword.equals(testPassword)tryClass.forName(driverName); dbConn=DriverManager.getConnection(dbURL,us

48、erName,userPwd); Statement stmt = dbConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);String sql = “INSERT INTO T_user values(?,?,?,?,?,?,?)“;PreparedStatement ps=dbConn.prepareStatement(sql);try/ps.setString(1,);ps.setString(1, username);ps.setInt(2, userAge);ps.setString(3, userGender);ps.setString(4, userAuthority);- 27 -ps.setString(5, userAddress);ps.setString(6, userPassword);ps.setString(7, testPassword);ps.executeUpdate();catch(SQLException e1)e1.printStackTrace();stmt.close(); JOptionPane.showMessageDialog(null,“注册成功,请重新登陆“,“,JOptionPane.DEF

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报