收藏 分销(赏)

Java课程设计超市库存管理系统附源代码可以直接运行.doc

上传人:w****g 文档编号:2314314 上传时间:2024-05-27 格式:DOC 页数:43 大小:999KB 下载积分:12 金币
下载 相关 举报
Java课程设计超市库存管理系统附源代码可以直接运行.doc_第1页
第1页 / 共43页
Java课程设计超市库存管理系统附源代码可以直接运行.doc_第2页
第2页 / 共43页


点击查看更多>>
资源描述
______________________________________________________________________________________________________________ 榆林学院 [超市库存管理系统] 专业:[计算机科学与技术] 班级:[ 13级计本1班 ] 学生姓名:[ 李 治 生 ] 学 号:[1312210142] 精品资料 一、 需求分析 3 二、 概要设计 3 三、 详细设计 4 1、 数据库设计 4 用户登录界面: 6 进入主界面: 9 四、 软件测试 39 五、 总结 40 六、 附录: 41 一、 需求分析 本系统主要是用来帮助小型超市进行库存管理系统,能够有效的帮助小型超市进行库存管理!其中包括增删改查等基本的应用。极大的提高了超市的库存管理效率,节省了大量的时间。 *********************************************************** *********************************************************** 二、 概要设计 1、 本系统的每一个功能模块都包含了多个功能。整个系统主要完成对超市商品的日常管理,包括进货管理,库存管理和供应商管理等方面。在功能上系统可以完成对相关信息的浏览、查询、添加、删除、修改等功能。本课题的核心之一是销售管理、库存管理和进货管理三者之间的联系,同时系统有完整的用户管理功能。 本系统采用java语言和SQL Server 2008作为开发工具。这种系统优势在于系统比较简单,但功能强大,扩展性能也比较好,完全能够处理一般超市的日常任务 2、 整体分为3个模块(货物,供应商,记录)每个模块之间相互关联,都有自己的增删改查! 3、 程序流程图如下: 三、 详细设计 1、 数据库设计 Goods表: Lzs(用户登录名,密码): Recond表():记录表 Supplier(供应商表): 用户登录界面: 设计代码如下: package source; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; @SuppressWarnings("serial") public class loginframe extends JFrame implements ActionListener { JTextField 用户名; JPasswordField 密码; JButton 登录,重置; Box baseBox,box1,box2,box3;//盒式布局 ImagePanel p;//用于插入图片的面板 JSplitPane split;//拆分窗格 Font f;//设置字体 JLabel userName,psw; Function wMain; Connection con; Statement sql; ResultSet rs; String dbdriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; String dburl = "jdbc:sqlserver://localhost:1433;DatabaseName=LZS"; String user = "sa"; String pass = "123"; public loginframe() { setLayout(new FlowLayout()); init(); setBounds(130,80,960,600); setVisible(true); setResizable(false); try{ Class.forName(dbdriver); } catch(ClassNotFoundException classnotfound){ System.out.println("未能找到SQLServerDriver,请检查是否已加载SQLServer驱动"); } } void init() { f = new Font("幼圆",Font.BOLD,18); p = new ImagePanel(new ImageIcon("E:/Java文件/SuperMarket/picture/1.jpg").getImage()); 登录 = new JButton("登录"); 登录.addActionListener(this); 重置 = new JButton("重置"); 重置.addActionListener(this); 用户名 = new JTextField(16); 用户名.setFont(f); 密码 = new JPasswordField(16); userName = new JLabel("用户名:"); userName.setFont(f); psw = new JLabel("密码:"); psw.setFont(f); box1 = Box.createVerticalBox(); box1.add(userName); box1.add(Box.createVerticalStrut(20)); box1.add(psw); box2 = Box.createVerticalBox(); box2.add(Box.createVerticalStrut(240)); box2.add(用户名); box2.add(Box.createVerticalStrut(20)); box2.add(密码); box2.add(Box.createVerticalStrut(20)); box3 = Box.createHorizontalBox(); box3.add(登录); box3.add(Box.createHorizontalStrut(20)); box3.add(重置); box2.add(box3); box2.add(Box.createVerticalStrut(200)); baseBox = Box.createHorizontalBox(); baseBox.add(box1); baseBox.add(Box.createHorizontalStrut(15)); baseBox.add(box2); //baseBox.add(登录); split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,false,p,baseBox); split.setDividerLocation(0.5); add(split,BorderLayout.PAGE_START); } public void actionPerformed(ActionEvent e) { if(e.getSource() == 登录){ String Uname = 用户名.getText().trim(); char[]psw = 密码.getPassword(); String passWord = new String(psw); try{ con = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=LZS","sa","123"); System.out.println("数据库连接成功!"); sql=con.createStatement(); String string = "SELECT * FROM lzs WHERE Uname= '"+Uname+"' AND mima = '"+passWord+"'"; rs = sql.executeQuery(string); if(rs.next()){ wMain = new Function(); wMain.setTitle("超市库存管理系统"); wMain.setVisible(true); this.dispose(); // wMain.pack(); } else{ JOptionPane.showMessageDialog(this, "您输入的用密码不正确","警告对话框",JOptionPane.WARNING_MESSAGE); 密码.setText(null); 密码.requestFocus(); } con.close(); } catch(SQLException ee){ ee.printStackTrace(); } }else if(e.getSource() == 重置){ 用户名.setText(""); 密码.setText(""); } } } 进入主界面: 第一菜单(货物): 第二菜单(供应商): 第三菜单(记录): 设计代码如下: package source; import java.awt.*; import java.awt.event.*; import javax.swing.*; @SuppressWarnings("serial") public class Function extends JFrame implements ActionListener{ Font f; //菜单栏 JMenuBar menubar;//菜单条 JMenu 货物,供应商,记录; //菜单 JMenuItem 货物管理,退出,供应商管理,查询记录,进货计划;//菜单项 //Box box; JLabel label; ImagePanel p;//用于插入图片的面板 //构造函数 Function() { setLayout(new FlowLayout()); init(); setTitle("超市库存管理系统"); setLocation(20,30); setSize(1200,800); setBounds(130,80,960,600); setVisible(true); setResizable(false); } void init() { menubar = new JMenuBar(); f = new Font("华文行楷",Font.BOLD,50); Font f2 = new Font("宋体",0,12); p = new ImagePanel(new ImageIcon("E:Java文件/SuperMarket/picture/2.jpg").getImage()); //库房货物管理菜单 货物 = new JMenu("货物"); 货物.setFont(f2); 货物管理 = new JMenuItem("货物管理"); 货物管理.setFont(f2); 货物管理.addActionListener(this); 退出 = new JMenuItem("退出"); 退出.setFont(f2); 退出.addActionListener(this); 货物.add(货物管理); 货物.add(退出); menubar.add(货物); //货物供应商菜单 供应商 = new JMenu("供应商"); 供应商.setFont(f2); 供应商管理 = new JMenuItem("供应商管理"); 供应商管理.setFont(f2); 供应商管理.addActionListener(this); 供应商.add(供应商管理); menubar.add(供应商); //货物进货、入库和出库记录查询菜单 记录 = new JMenu("记录"); 记录.setFont(f2); 查询记录 = new JMenuItem("查询记录"); 查询记录.setFont(f2); 查询记录.addActionListener(this); 进货计划 = new JMenuItem("进货计划"); 进货计划.setFont(f2); 进货计划.addActionListener(this); 记录.add(查询记录); 记录.add(进货计划); menubar.add(记录); label = new JLabel("欢迎进入超市库存管理系统"); label.setFont(f); p.add(label); label.setBounds(300,400,800,200); add(p,BorderLayout.CENTER); setJMenuBar(menubar); } public void actionPerformed(ActionEvent e) { if(e.getSource()==供应商管理) { SupplierManage smTable = new SupplierManage(); smTable.setVisible(true); smTable.pack(); } else if(e.getSource()==货物管理) { goods goTable = new goods(); goTable.setVisible(true); goTable.pack(); } else if(e.getSource()==查询记录) { record reTable = new record(); reTable.setVisible(true); reTable.pack(); } else if(e.getSource() ==进货计划){ plan plTable = new plan(); plTable.setVisible(true); plTable.pack(); } else if(e.getSource()==退出) { this.dispose(); } } } 进入第一菜单(货物管理): 在此菜单下,可进行货物的增删改查操作,设计代码如下: package source; import java.awt.*; import java.awt.event.*; import java.sql.*; import javax.swing.*; import javax.swing.table.DefaultTableModel; @SuppressWarnings("serial") public class goods extends JFrame implements ActionListener{ JTable table; JLabel label; JTextField inputText; String []name = {"货物号","货物名","进货价","售价","折扣价","余量","余量预警值","供应商"}; String []strings = new String[8]; JButton 添加,修改,删除,退出,确认修改; JPanel p; JLabel []labels = new JLabel[8]; JTextField []fields = new JTextField[8]; Box baseBox,box1,box2; ImagePanel pp;//用于插入图片的面板 JSplitPane split;//拆分窗格 DefaultTableModel deModel = null; Connection con; Statement sql; ResultSet rs; String dbdriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; String dburl = "jdbc:sqlserver://localhost:1433;DatabaseName=LZS"; String user = "sa"; String pass = "123"; goods() { setLayout(new BorderLayout()); init(); // Toolkit tk = Toolkit.getDefaultToolkit(); // Image img = tk.getImage("E:Java文件/SuperMarket/picture/2.jpg"); // setIconImage(img); setTitle("货物管理"); setBounds(130,80,960,600);; //setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setResizable(false); try{ Class.forName(dbdriver); } catch(ClassNotFoundException classnotfound){ classnotfound.printStackTrace(); } } void init() { pp = new ImagePanel(new ImageIcon("E:/Java文件/SuperMarket/picture/2.jpg").getImage()); 添加= new JButton("添加"); 修改= new JButton("修改"); 删除 = new JButton("删除"); 退出 = new JButton("退出"); 确认修改 = new JButton("确认修改"); label = new JLabel("请输入想要删除或修改的货物名:"); inputText = new JTextField(8); 添加.addActionListener(this); 修改.addActionListener(this); 删除.addActionListener(this); 退出.addActionListener(this); 确认修改.addActionListener(this); p = new JPanel(); p.add(label); p.add(inputText); p.add(添加); p.add(修改); p.add(删除); p.add(退出); p.add(确认修改); add(p,BorderLayout.SOUTH); labels[0] = new JLabel("货物号"); labels[1] = new JLabel("货物名"); labels[2] = new JLabel("进货价"); labels[3] = new JLabel("售价"); labels[4] = new JLabel("折扣价"); labels[5] = new JLabel("余量"); labels[6] = new JLabel("余量预警值"); labels[7] = new JLabel("供应商"); for(int i = 0;i<8;i++){ fields[i] = new JTextField(20); } //用盒式容器装要录入的数据和标签 box1 = Box.createVerticalBox(); box1.add(Box.createVerticalStrut(15)); for(int i = 0;i<8;i++){ box1.add(labels[i]); box1.add(Box.createVerticalStrut(35)); } box2 = Box.createVerticalBox(); box2.add(Box.createVerticalStrut(10)); for(int i = 0;i<8;i++){ box2.add(fields[i]); box2.add(Box.createVerticalStrut(14)); } baseBox = Box.createHorizontalBox(); baseBox.add(box1); baseBox.add(Box.createHorizontalStrut(15)); baseBox.add(box2); //添加表格 add(baseBox,BorderLayout.EAST); deModel = new DefaultTableModel(name,0); table = new JTable(deModel); table.setCellSelectionEnabled(false); table.setEnabled(false); table.setShowHorizontalLines(true); table.setShowVerticalLines(true); //add(new JScrollPane(table),BorderLayout.CENTER); split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,false,new JScrollPane(table),baseBox); split.setDividerLocation(0.5); add(split,BorderLayout.CENTER); String sqlString = "select * from goods"; try{ //连接数据库 con = DriverManager.getConnection(dburl, user, pass); sql = con.createStatement(); JOptionPane.showMessageDialog(this, "数据库连接成功!","消息对话框",JOptionPane.INFORMATION_MESSAGE); rs = sql.executeQuery(sqlString); while(rs.next()){ for(int i = 0;i<8;i++){ strings[i]=rs.getString(i+1);//把查询的结果填入表格中 } deModel.addRow(strings); deModel.fireTableStructureChanged();//更新中的数据 } } catch(SQLException ee){ ee.printStackTrace(); } } public void actionPerformed(ActionEvent e) { if(e.getSource() == 添加){ String sqlString = "INSERT INTO goods VALUES ('"+fields[0].getText()+"','"+fields[1].getText()+"','"+fields[2].getText()+"','"+fields[3].getText()+"','"+fields[4].getText()+"','"+fields[5].getText()+"','"+fields[6].getText()+"','"+fields[7].getText()+"')"; try{ sql.execute(sqlString); JOptionPane.showMessageDialog(this, "操作成功!","消息对话框",JOptionPane.INFORMATION_MESSAGE); //更新表格中的数据 for(int i = deModel.getRowCount()-1;i>=0;i--){ deModel.removeRow(i); deModel.fireTableStructureChanged(); } rs = sql.executeQuery("select * from goods"); while(rs.next()){ for(int j = 0;j<8;j++){ strings[j]=rs.getString(j+1); } deModel.addRow(strings); deModel.fireTableStructureChanged();//更新中的数据 } } catch(SQLException ee){ ee.printStackTrace(); } for(int i = 0;i<8;i++){ fields[i].setText(""); } fields[0].requestFocus();//设置光标的位置,在第一个文本框上面 } else if(e.getSource() == 修改){ try{ rs = sql.executeQuery("select * from goods"); while(rs.next()){ for(int i = 0;i<8;i++){ strings[i]=rs.getString(i+1); } if(strings[1].trim().compareTo(inputText.getText().trim())==0){ for(int i = 0;i<8;i++){ fields[i].setText(strings[i]); } } } fields[0].setEditable(false); fields[1].setEditable(false); } catch(SQLException ee){ ee.printStackTrace(); } }else if(e.getSource() == 确认修改){ String sqlString = "UPDATE goods SET shangpinhao = '"+fields[0].getText()+"',shangpinming='"+fields[1].getText()+"',jinhuojia='"+fields[2].getText()+"',shouji='"+fields[3].getText()+"',zhekoujia='"+fields[4].getText()+"',yuliang='"+fields[5].getText()+"',yuliangyujingzhi='"+fields[6].getText()+"',gongyingshang='"+fields[7].getText()+"'where shangpinming ='"+inputText.getText()+"'"; try{ sql.execute(sqlString); JOptionPane.showMessageDialog(this, "操作成功!","消息对话框",JOptionPane.INFORMATION_MESSAGE); //更新表格中的数据 for(int i = deModel.getRowCount()-1;i>=0;i--){ deModel.removeRow(i); deModel.fireTableStructureChanged(); } rs = sql.executeQuery("select * from goods"); while(rs.next()){ for(int j = 0;j<8;j++){ strings[j]=rs.getString(j+1); } deModel.addRow(strings); deModel.fireTableStructureChanged();//更新中的数据 } } catch(SQLException ee){ ee.printStackTrace(); } for(int i = 0;i<8;i++){ fields[i].setText(""); } fields[0].setEditable(true); fields[1].setEditable(true); inputText.setText(""); fields[0].requestFocus();//设置光标的位置,在第一个文本框上面 } else if(e.getSource() == 删除){ String sqlString = "DELETE FROM goods WHERE shangpinming = '"+inputText.getText().trim()+"'"; try{ sql.execute(sqlString); //将表格中的内容清空 for(int i = deModel.getRowCount()-1;i>=0;i--){ deModel.removeRow(i); deModel.fireTableStructureChanged(); } rs = sql.executeQuery("select * from goods"); while(rs.next()){ for(int i = 0;i<8;i++){ strings[i]=rs.getString(i+1);//把查询的结果填入表格中 } deModel.addRow(strings); deModel.fireTableStructureChanged();//更新中的数据 } JOptionPane.showMessageDialog(this, "操作成功!","消息对话框",JOptionPane.INFORMATION_MESSAGE); inputText.setText(""); } catch(SQLException ee){ ee.printStackTrace(); } } else if(e.getSource()==退出) { this.dispose(); } } } 进入第二菜单(供应商管理界面): 在此界面下可进行供应商的增删改查操作: 设计代码如下: package source; import java.awt.*; import java.awt.event.*; import java.sql.*; import javax.swing.*; import javax.swing.table.DefaultTableModel; import java.util.Date; @SuppressWarnings("serial") public class SupplierManage extends JFrame implements ActionListener{ JTable table; JLabel label; JTextField inputText; String []name = {"添加时间","供应商","联系电话","地址","邮箱","备注"}; String []strings = new String[6]; JButton 修改,删除,添加,退出,确认修改; JPanel p; JLabel []labels = new JLabel[5]; JTextField []fields = new JTextField[5]; Box baseBox,box1,box2; JSplitPane split;//拆分窗格 DefaultTableModel deMod
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服