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

上传人:jian****018 文档编号:8814850 上传时间:2020-04-01 格式:DOC 页数:70 大小:1.23MB
返回 下载 相关 举报
java超市管理系统课程设计报告.doc_第1页
第1页 / 共70页
java超市管理系统课程设计报告.doc_第2页
第2页 / 共70页
java超市管理系统课程设计报告.doc_第3页
第3页 / 共70页
点击查看更多>>
资源描述
湖 南 文 理 学 院 课程设计题目: 超市管理系统 系 别 计算机科学与技术 班 级 计科12102 学生姓名 罗巍 杨欢 杨沁铠 唐振 学 号 201217010223 指导教师 谭文学 课程设计进行地点: 第三实验楼A617 任 务 下 达 时 间: 2014 年 5 月 21 日 起止日期: 2014 年 5 月 21 日起至 2014 年 6月 21 日止 摘 要 随着小型超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长,传统的人工记忆方式也慢慢的无法适应形势的变化。随着信息技术的发展,计算机已被广泛的用于社会的各个领域,成为推动社会发展的技术动力。而在计算机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信息产品的开发和信息技术市场的进一步的开拓。软件产业已成为社会信息化进程中的一个战略性产业。在软件技术的应用中软件的开发技术尤其是应用型软件产品的开发技术成了重中之重。不断开发适应用户需求、市场需要的新型软件产品。随着社会的发展,软件也在不断的更新换代。由于有些超市里对商品的进货、售出及商品的基本信息等的一些繁琐处理都是通过手工进行记载并进行处理的,对商品信息的处理工作量特别大,不仅浪费大量的人力物力,而且还很容易出错,更重要的是为了方便顾客,超市需要时时刻刻对商品对各种信息进行统计分析。 一直以来人们使用传统人工的方式管理超市的各项工作, 这种管理方式存在着许多缺点, 如: 效率低、保密性差, 另外时间一长, 将产生大量的冗余文件和数据, 这给查找、统计、更新和维护工作都带来了很大的困难。然而大型的超市管理系统功能过于强大而造成操作繁琐降低了小超市的工作效率。如果有这样一套完整的小型超市管理系统软件,只需点击几下鼠标就可完成所需操作,那样就会大大的提高超市员工的工作效率和管理水平,并能进一步提高超市的工作效率并使超市实施规范化管理。鉴于小型超市管理中存在的诸多问题, 我们在此次课程设计中以小型超市管理系统为研究课题,对此系统进行了全面的设计。超市管理系统由顾客、采购员、销售员、经理的管理界面四部分组成。 超市管理系统应该能够为用户提供充足的信息和快捷的查询手段。一个完整系统的设计,当然就离不开后台环境的支持,在此次设计中,我们主要以sqlsever数据库作为基础,实行此系统的开发。目 录一、系统需求分析- 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 -3.2数据库表的设计- 4 -3.3物理设计文档- 6 -3.4详细设计- 10 -四、系统总结- 20 -五、系统设计心得体会- 21 -六、参考文献- 21 -一、系统需求分析1.1系统名称:小型超市管理系统1.2系统介绍:界面设计简洁、友好、美观大方操作简单、快捷方便数据存储安全、可靠信息分类清晰、准确强大的查询功能、保证数据查询的灵活性提供销售排行,为管理员提供真实的数据信息提供灵活、方便的权限设置功能,使整个系统的管理分工明确对用户的输入的数据,系统进行严格的数据检验,尽可能排人为错误1.3开发背景随着现代科学技术的迅猛发展,计算机技术已经渗透到各个领域,成为各行业必不可少的工具,特别是Internet技术的推广和信息高速公路的建立,使IT产业在市场竞争中越发显示出其独特的优势,步入信息化时代,有巨大的数据信息等待加工处理和传输,这使得对数据库的进一步开发和利用显得尤为迫切。作为国内市场的一些中小型超市,它们在信息化过程中的步伐要落后于大中型超市,而对于这些企业的资源管理,信息的存储和处理也显得迫切需要,要适应市场竞争,就需要有高效的处理方式和管理方法,因此加快超市的信息化进程是必不可少的。我国的超市在20世纪90年代初期形成,现在已经成为我国零售业的一种重要形态,为国民经济的发展发挥了重要的作用。随着经济的快速发展,超市的经营管理也变得愈加复杂,早期的售货员站柜台的形式早已不能满足现有销售业的发展,这样就迫切地需要引入新的管理技术。1.4.系统面向的用户群体主要是中小型超市使用者,该消费群体具有以下特征:1超市日常管理人工化居多,工作效率较低;2超市日常交易额较小,货物流通较小,不愿花高价购进大型超市管理系统。因此,该消费群体对产品的功能性需求并不高,只需满足前台销售系统、后台货物管理即可。1.5开发环境Eclipse+mysql二、系统总体设计2.1系统功能结构图 小超市管理系统是一个专门针对小型的商店和超市的智能化、自动化的管理系统。其功能总框图如图2-1所示。 顾客注册登陆界面 采购员登陆顾客登陆经理登录销售员登陆分项查询增加订单更改订单查看销售信息查看进货信息购买商品查看销售员信息查看所有订单浏览某种商品浏览所有商品 图2-1 系统功能总框图 三、系统模块功能介绍 3.1 登录功能介绍 登录功能是进入系统必须经过的验证过程,其主要功能是验证使用者的身份,确认使用者的权限,从而在使用软件过程中能安全地控制系统数据,即不同的工作人员有不同的权限,每个使用人员不得跨越其权限操作软件,可以避免不必要的数据丢失事件发生。登录的界面如图2-2所示 登陆成功!3.1.1登陆界面源代码package uml_supermarket;import java.awt.*;import javax.swing.*;import com.borland.jbcl.layout.*;import java.awt.event.*;import com.borland.dx.sql.dataset.*;import java.sql.*;import javax.swing.border.*;/* * Title: * Description: * Copyright: Copyright (c) 2003 * Company: * author unascribed * version 1.0 */public class Logincs extends JDialog implements ActionListener/声明在程序中要用到的方法 private 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 JTextField();/添加一个文本框 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(); private 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() this(null, , false); private void jbInit() throws Exception titledBorder1 = new TitledBorder(); titledBorder2 = new TitledBorder(); panel1.setLayout(borderLayout1); jPanel1.setLayout(xYLayout1); jLabel1.setForeground(Color.blue);/标签控件的字体颜色 jLabel1.setText(用户名); /标签标题 jLabel2.setForeground(Color.blue); jLabel2.setText(密码); jButton1.setForeground(UIManager.getColor(List.selectionBackground);/按钮控件字体颜色 jButton1.setBorder(BorderFactory.createRaisedBevelBorder();/按钮外观 jButton1.setText(登录);/按钮标题 jButton1.addActionListener(this);/加入按钮事件 jButton2.setForeground(UIManager.getColor(Menu.selectionBackground); jButton2.setBorder(BorderFactory.createRaisedBevelBorder(); jButton2.setToolTipText(); jButton2.setText(取消); jButton2.addActionListener(this); jPanel1.setBorder(BorderFactory.createEtchedBorder(); jPanel1.setMinimumSize(new Dimension(600, 600);/设置面板大小 jPanel1.setPreferredSize(new Dimension(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); this.setResizable(false); this.setTitle(登录); jLabel3.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.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 XYConstraints(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 XYConstraints(23, 134, 60, 25); jPanel1.add(jLabel6, new XYConstraints(-2, 65, 396, 191); jPanel1.add(jButton1, new XYConstraints(90, 274, 68, 28); jPanel1.add(jButton2, new XYConstraints(193, 275, 69, 28); public void actionPerformed(ActionEvent e) String driverName=com.microsoft.jdbc.sqlserver.SQLServerDriver; 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) /得到界面单击事件 try String userAuthority = null ; / String userName = null ; String userPassword = null ; String testName = jTextField1.getText().toString() ;/从jTextField1中得到用户名 String testPassword = String.valueOf(jPasswordField1.getPassword() ;/从jPassword中得到用户密码 /Statement sql = database1.createStatement() ; /打开Statement对象 try Class.forName(driverName).newInstance(); catch (InstantiationException 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,userName,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(userPassword) ;/从数据库当中得到密码 userAuthority = rs.getString(userAuthority) ;/从数据库当中得到权限 verifyUser(userName,userPassword,testPassword,userAuthority); /调用verifyUser方法 cancel() ;/退出 catch(SQLException ex)ex.printStackTrace(); /exit the System else if(e.getSource() = jButton2) cancel(); void cancel() dispose(); /验证用户名以及密码 void verifyUser(String userName , String userPassword , String testPassword, String userAuthority) if(userName = null) /判断用户名是否为空 JOptionPane.showMessageDialog(null,用户名不存在,请先注册,verify user,JOptionPane.DEFAULT_OPTION); /抛出对话框 else if(userPassword.equals(testPassword) = false) /判断密码是否相等 JOptionPane.showMessageDialog(null,您输入的密码不正确,请重试,verify password , JOptionPane.DEFAULT_OPTION); /抛出对话框 else JOptionPane.showMessageDialog(null,success,JOptionPane.DEFAULT_OPTION); / verifyUserAuthority(userAuthority) ;/进行权限判断 /验证用户权限 void verifyUserAuthority(String userAuthority) if(userAuthority.equals(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.y); adminWindow.setModal(true); adminWindow.pack(); adminWindow.show();/显示对话框 else if (userAuthority.equals(customer)/如果用户为customer /弹出顾客登录界面 CustomerWindow customerWindow =new CustomerWindow() ; /设置对话框的大小 Dimension dlgSize = customerWindow.getPreferredSize(); Dimension frmSize = getSize(); Point loc = 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 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); buyerWindow.setModal(true); buyerWindow.pack(); buyerWindow.show(); else if (userAuthority.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.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.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y); managementWindow.setModal(true); managementWindow.pack(); managementWindow.show(); 3.2 顾客注册界面注册成功!3.2.2顾客注册源代码package uml_supermarket;import java.awt.*;import javax.swing.*;import com.borland.jbcl.layout.*;import java.awt.event.*;/import com.borland.dx.sql.dataset.*;import java.sql.*;/* * Title: * Description: * Copyright: Copyright (c) 2003 * Company: * author unascribed * version 1.0 */public class Registration extends JDialog implements ActionListener String driverName=com.microsoft.jdbc.sqlserver.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(); private JPanel jPanel1 = new JPanel(); private XYLayout xYLayout1 = new XYLayout(); private JLabel jLabel1 = new JLabel(); private JLabel jLabel2 = new JLabel(); private JLabel jLabel3 = new JLabel(); private JLabel jLabel4 = new JLabel(); private JTextField jTextField1 = new JTextField(); private JTextField 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 JTextField(); 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 jbInit(); pack(); catch(Exception ex) ex.printStackTrace(); 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.setText(请输入密码); 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.ActionListener() public void actionPerformed(ActionEvent e) jButton2_actionPerformed(e); ); 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); jPanel1.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(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 XYConstraints(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(ActionEvent ee) 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() ; String userAddress = String.valueOf(jTextField5.getText() ; String userPassword = String.valueOf(jTextField6.getPassword() ; String testPassword = String.valueOf(jTextField7.getPassword() ; if(userPassword.equals(testPassword) try Class.forName(driverName); dbConn=DriverManager.getConnection(dbURL,userName,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); 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.DEFAULT_OPTION); catch(Exception e1) System.out.println(e1.getMessage(); System.out.println(连接失败!); finally try if(rs != null) rs.close(); rs = null; if(stmt != null) stmt.close(); stmt = null; if(dbConn != null) dbConn.close(); dbConn = null; catch (SQLException e1) e1.printStackTrace(); else JOptionPane.showMessageDialog(null,您输入的密码前后不符,请重新输入,JOptionPane.DEFAULT_OPTION); public void cancel() dispose() ; void jButton2_actionPerformed(ActionEvent e) cancel() ; 3.3.1选择界面3.3.2选择界面源代码package uml_supermarket;import java.awt.*;import javax.swing.*;import com.borland.jbcl.layout.*;import java.awt.event.*;/import com.borland.dx.sql.dataset.*;import java.sql.*;/* * Title: * Description: * Copyright: Copyright (c) 2003 * Company: * author unascribed * version 1.0 */public class Registration extends JDialog implements ActionListener String driverName=com.microsoft.jdbc.sqlserver.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(); private JPanel jPanel1 = new JPanel(); private XYLayout xYLayout1 = new XYLayout(); private JLabel jLabel1 = new JLabel(); private JLabel jLabel2 = new JLabel(); private JLabel
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 大学资料


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

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


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