版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、榆林学院II超市库存管理系统专 业:计算机科学与技术 1 班 级:13级计本1班1 学生姓名:李治生1学 号:1312210142需求分析3二、概要设计3三、详细设计41、数据库设计4 用户登录界面:6进入主界面:9四、软件测试39五、总结40六、附录:41需求分析本系统主要是用来帮助小型超市进行库存管理系统,能够有效的帮助小型超市进行库存管 理!其中包括增删改查等基本的应用。 极大的提高了超市的库存管理效率, 节省了大量的时 间。*二、概要设计1、本系统的每一个功能模块都包含了多个功能。整个系统主要完成对超市商品的日常 管理, 包括进货管理, 库存管理和供应商管理等方面。 在功能上系统可以完
2、成对相关信息的 浏览、查询、添加、删除、修改等功能。本课题的核心之一是销售管理、库存管理和进货管 理三者之 间的联 系,同时 系统有 完整的 用户管 理功能。 本系 统采用 java 语言 和 SQL Server 2008作为开发工具。 这种系统优势在于系统比较简单, 但功能强大,扩展性能也 比较好,完全能够处理一般超市的日常任务2、整体分为 3 个模块(货物,供应商,记录)每个模块之间相互关联,都有自己的增 删改查!3、程序流程图如下:三、详细设计1、数据库设计Goods 表:Lzs(用户登录名,密码)201J-201S1114WFLZS.LZS dboJzs 2013'Z0151
3、114Wf 数捐类型允许findiar(L03£miman±ar(100Recond 表 ():记录表2013-20151114WFLZ£. LZS - dbo.retord 2011-20i51114WFL2£.L2列宕数据类型允许Null值narchar5CilarigDinmingnvarctiarfsagongyngshangnordnarfSO)caozuonvarchar(50)shuliangnvarchar(SO)Supplier (供应商表)2013-201S1114WFL.-Z£ - dbo.supplier 2013-20
4、151114125.L2S - Jbc列容觀捐类型 允许Mill值 -= 卜 shijan1 flvardiar(50)lll.BI,l IIM Jill U1 UIIHIUBIIIB-liailUII IMMJ III L Mil IIM lllgongyingshangrivarchar50)lianxidirihugrivardiar(50)di2hinuafthar(SD)youxiangnvardwr(5Q)bei2hunvarchar50)用户登录界面:设计代码如下:package source;import javax.swi ng.*;SuppressWar nin gs(&q
5、uot;serial")public class logi nframe exte nds JFrame impleme nts Acti on Liste ner JTextField 用户名;JPasswordField 密码;JButton登录,重置;Box baseBox,box1,box2,box3; 盒式布局ImagePanel p;用于插入图片的面板JSplitPa ne split;/ 拆分窗格Font f;设置字体JLabel userName,psw;Fun cti on wMa in;Connection con;Stateme nt sql;ResultSet
6、 rs;Stri ng dburl = "jdbc:sqlserver:/localhost:1433;DatabaseName=LZS"Stri ng user = "sa"Stri ng pass = "123"public loginframe()setLayout(new FlowLayout();init();setBounds(130,80,960,600);setVisible(true);setResizable(false);tryClass.forName(dbdriver);catch(ClassNotFound
7、Exception 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);重置 = n
8、ew 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.crea
9、teVerticalStrut(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);bo
10、x3.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);a
11、dd(split,BorderLayout.PAGE_START);public void actionPerformed(ActionEvent e)if(e.getSource() = 登录 )String Uname = 用户名 .getText().trim();charpsw = 密码 .getPassword();String passWord = new String(psw);trycon =DriverManager.getConnection("jdbc:sqlserver:/localhost:1433;DatabaseName=LZS","
12、sa","123");数据库连接成功 !"); 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(" 超市库存管理系统 &q
13、uot;);wMain.setVisible(true);this.dispose();/ wMain.pack();elseJOptionPane.showMessageDialog(this, " 您输入的用密码不正确 ","警告对话 框"JOptio nPa ne.WARNING_MESSAGE);密码 .setText(null);密码 .requestFocus();con. close();catch(SQLExceptio n ee)ee.pri ntStackTrace();else if(e.getSource()= 重置) 用户名.s
14、etText(”); 密码.setText(”);进入主界面:第一菜单(货物)第二菜单(供应商)第三菜单(记录)设计代码如下:package source;import javax.swi ng.*;SuppressWar nin gs("serial")public class Function exte nds JFrame impleme nts Actio nListe nerFont f;/菜单栏JMenuBar menubar;/ 菜单条JMenu货物,供应商,记录;/菜单JMenultem货物管理,退出,供应商管理,查询记录,进货计划;/菜单项/Box box
15、;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
16、.BOLD,50);Font f2 = new Font("宋体",0,12);p = new ImagePa nel( new Imagelc on ("EJava 文件 /SuperMarket/picture/ 2.jpg").getImage();/ 库房货物管理菜单货物 =new JMenu(” 货物"); 货物 .setFont(f2);货物管理 = new JMenuItem(" 货物管理 "); 货物管理 .setFont(f2);货物管理 .addActionListener(this); 退出 = new
17、 JMenuItem(" 退出 "); 退出 .setFont(f2);退出 .addActionListener(this); 货物.add(货物管理);货物.add(退出);menubar.add(货物);/ 货物供应商菜单供应商 = new JMenu(" 供应商 "); 供应商 .setFont(f2); 供应商管理 = new JMenuItem(" 供应商管理 "); 供应商管理 .setFont(f2);供应商管理 .addActionListener(this); 供应商.add(供应商管理);menubar.add(
18、供应商);/ 货物进货、入库和出库记录查询菜单 记录 =new JMenu(” 记录");记录 .setFont(f2); 查询记录 = new JMenuItem(" 查询记录 ");查询记录 .setFont(f2);查询记录 .addActionListener(this);进货计划 = new JMenuItem(" 进货计划 "); 进货计划 .setFont(f2);进货计划 .addActionListener(this); 记录 .add( 查询记录 ); 记录 .add( 进货计划 ); menubar.add( 记录 );l
19、abel = 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
20、.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(
21、);else if(e.getSource()=退出)this.dispose();进入第一菜单(货物管理)在此菜单下,可进行货物的增删改查操作,设计代码如下: package source;SuppressWarnings("serial") public class goods extends JFrame implements ActionListenerJTable table;JLabel label;JTextField inputText;String name = "货物号","货物名 ","进货价 &quo
22、t;,"售价","折扣价 ","余量","余量预警值 ","供应 商"String strings = new String8;JButton 添加,修改 ,删除,退出,确认修改 ;JPanel p;JLabel labels = new JLabel8;JTextField fields = new JTextField8;Box baseBox,box1,box2;ImagePanel pp;/ 用于插入图片的面板JSplitPane split;/ 拆分窗格DefaultTableMode
23、l deModel = null;Connection con;Statement sql;ResultSet rs;String dbdriver = String dburl = "jdbc:sqlserver:/localhost:1433;DatabaseName=LZS"String user = "sa"String pass = "123"goods()setLayout(new BorderLayout();init();/Toolkit tk = Toolkit.getDefaultToolkit();/Image
24、img = tk.getImage("E:Java 文件 /SuperMarket/picture/2.jpg");/setIconImage(img);setTitle(" 货物管理 "); setBounds(130,80,960,600); /setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setResizable(false);tryClass.forName(dbdriver); catch(ClassNotFoundException classnotfound) classnotfound.p
25、rintStackTrace();void init()pp = new ImagePanel(new ImageIcon("E:/Java 文件/SuperMarket/picture/ 2.jpg").getImage();添加 = new JButton(" 添加 ");修改 = new JButton(" 修改 ");删除 = new JButton(" 删除 ");退出 = new JButton(" 退出 ");确认修改 = new JButton(" 确认修改 "
26、;);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.a
27、dd(退出);p.add(确认修改);add(p,BorderLayout.SOUTH);labelsO = new JLabel("货物号");labels1 = new JLabel("货物名");labels2 = new JLabel("进货价");labels3 = new JLabel("售价");labels4 = new JLabel("折扣价");labels5 = new JLabel("余量");labels6 = new JLabel("余量
28、预警值");labels7 = new JLabel("供应商");for(int i = 0;i<8;i+)fieldsi = new JTextField(20);/ 用盒式容器装要录入的数据和标签 box1 = Box.createVerticalBox();box1.add(Box.createVerticalStrut(15);for(int i = 0;i<8;i+)box1.add(labelsi);box1.add(Box.createVerticalStrut(35);box2 = Box.createVerticalBox(); b
29、ox2.add(Box.createVerticalStrut(10);for(int i = 0;i<8;i+) box2.add(fieldsi); 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 DefaultTableMod
30、el(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),
31、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, " 数据库连接成功! "," 消息对话框 ",JOption
32、Pane.INFORMATION_MESSAGE);rs = sql.executeQuery(sqlString); while(rs.next() for(int i = 0;i<8;i+) stringsi=rs.getString(i+1);/ 把查询的结果填入表格中 deModel.addRow(strings); deModel.fireTableStructureChanged();/ 更新中的数据catch(SQLException ee) ee.printStackTrace();public void actionPerformed(ActionEvent e) if
33、(e.getSource() = 添加 )String sqlString = "INSERT INTO goods VALUES('"+fields0.getText()+"','"+fields1.getText()+"','"+fields2.getText()+"','"+fields3.getText()+"','" +fields4.getText()+"','"+fields
34、5.getText()+"','"+fields6.getText()+"','"+fields7.getText()+"')"trysql.execute(sqlString);JOptionPane.showMessageDialog(this, " 操作成功! ","消息对话框 ",JOptionPane.INFORMATION_MESSAGE);/ 更新表格中的数据for(int i = deModel.getRowCount()-1;i>=
35、0;i-) deModel.removeRow(i);deModel.fireTableStructureChanged();rs = sql.executeQuery("select * from goods"); while(rs.next()for(int j = 0;j<8;j+) stringsj=rs.getString(j+1); deModel.addRow(strings); deModel.fireTableStructureChanged();/ 更新中的数据 catch(SQLException ee) ee.printStackTrace()
36、;for(int i = 0;i<8;i+) fieldsi.setText("");fields0.requestFocus();/ 设置光标的位置 ,在第一个文本框上面 else if(e.getSource() = 修改 )tryrs = sql.executeQuery("select * from goods"); while(rs.next()for(int i = 0;i<8;i+) stringsi=rs.getString(i+1); if(strings1.trim().compareTo(inputText.getTex
37、t().trim()=0) for(int i = 0;i<8;i+)fieldsi.setText(stringsi);fields0.setEditable(false);fields1.setEditable(false);catch(SQLException ee)ee.printStackTrace();else if(e.getSource() = 确认修改 )String sqlString = "UPDATE goods SET shangpinhao ='"+fields0.getText()+"',shangpinming
38、='"+fields1.getText()+"',jinhuojia='"+fields2.getText()+"',s houji='"+fields3.getText()+"',zhekoujia='"+fields4.getText()+"',yuliang='"+fields5.getText()+"',y uliangyujingzhi='"+fields6.getText()+"
39、;',gongyingshang='"+fields7.getText()+"'where shangpinming ='"+inputText.getText()+"'"trysql.execute(sqlString);JOptionPane.showMessageDialog(this, " 操作成功! ","消息对话框",JOptionPane.INFORMATION_MESSAGE);/ 更新表格中的数据for(int i = deModel.getRow
40、Count()-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+)stringsj=rs.getString(j+1);deModel.addRow(strings);deModel.fireTableStructureChanged();/ 更新中的数据catch(SQLException ee)ee.printSta
41、ckTrace();for(int i = 0;i<8;i+)fieldsi.setText("");fields0.setEditable(true);fields1.setEditable(true);inputText.setText("");fields0.requestFocus();/ 设置光标的位置 ,在第一个文本框上面else if(e.getSource() = 删除 )String sqlString = "DELETE FROM goods WHERE shangpinming = '"+input
42、Text.getText().trim()+"'"trysql.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+) stringsi=rs.getString(i+
43、1);/ 把查询的结果填入表格中deModel.addRow(strings); deModel.fireTableStructureChanged();/ 更新中的数据JOptionPane.showMessageDialog(this, " 操作成功! ","消息对话框 ",JOptionPane.INFORMATION_MESSAGE);inputText.setText("");catch(SQLException ee)ee.printStackTrace();else if(e.getSource()=退出)this.di
44、spose();进入第二菜单(供应商管理界面) :在此界面下可进行供应商的增删改查操作:设计代码如下:package source;import javax.swi ng.*;SuppressWar nin gs("serial")public class SupplierMa nage exte nds JFrame impleme nts Actio nListe nerJTable table;JLabel label;JTextField in putText;String name = "添加时间",”供应商",”联系电话"
45、,"地址",”邮箱",”备注"String stri ngs = new Strin g6;JButton修改,删除,添加,退出,确认修改;JPa nel p;JLabel labels = new JLabel5;JTextField fields = new JTextField5;Box baseBox,box1,box2;JSplitPa ne split;/ 拆分窗格DefaultTableModel deModel = null;Connection con;Statement sql;ResultSet rs;Date date;Strin
46、g dbdriver = String dburl = "jdbc:sqlserver:/localhost:1433;DatabaseName=LZS"String user = "sa"String pass = "123"SupplierManage()setLayout(new BorderLayout();init();Toolkit tk = Toolkit.getDefaultToolkit();招聘Image img = tk.getImage("C:/Documents and Settings/Admin
47、istrator/workspace/ 求职管理系统 /picture/ 003.jpg");setIconImage(img);setTitle(" 供应商管理 ");setBounds(130,80,960,600); setResizable(false);try Class.forName(dbdriver); catch(ClassNotFoundException classnotfound) classnotfound.printStackTrace();void init()f修改= new JButton(" 修改 ");删除
48、= new JButton(" 删除 ");添加= new JButton(" 添加 ");退出= new JButton(" 退出 ");确认修改 = new JButton(" 确认修改 ");label =new JLabel(" 请输入想要删除或修改的供应商inputText = new JTextField(6); 修改 .addActionListener(this); 删除 .addActionListener(this); 添加 .addActionListener(this); 退出 .
49、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);/labels0 = new JLabel(" 添加时间 "); labels0 = new JLabel(" 供应商 "); labels1 = new JLabel(" 联系电话 &
50、quot;);labels2 = new JLabel("地址");labels3 = new JLabel("邮箱");labels4 = new JLabel("备注");for(int i = 0;i<5;i+)fieldsi = new JTextField(20);/ 用盒式容器装要录入的数据和标签box1 = Box.createVerticalBox(); box1.add(Box.createVerticalStrut(15); for(int i = 0;i<5;i+)box1.add(labelsi);
51、 box1.add(Box.createVerticalStrut(70);box2 = Box.createVerticalBox(); box2.add(Box.createVerticalStrut(10); for(int i = 0;i<5;i+)box2.add(fieldsi); box2.add(Box.createVerticalStrut(60);baseBox = Box.createHorizontalBox();baseBox.add(box1);baseBox.add(Box.createHorizontalStrut(15);baseBox.add(box2
52、);/ 添加表格 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 J
53、SplitPane(JSplitPane.HORIZONTAL_SPLIT,false,new JScrollPane(table),baseBox);split.setDividerLocation(0.5);add(split,BorderLayout.CENTER);String sqlString = "select * from supplier"try/ 连接数据库con = DriverManager.getConnection(dburl,user,pass);数据库连接成功 !");sql=con.createStatement();rs = s
54、ql.executeQuery(sqlString);while(rs.next()for(int i = 0;i<6;i+)stringsi=rs.getString(i+1);/ 把查询的结果填入表格中deModel.addRow(strings);deModel.fireTableStructureChanged();/ 更新中的数据catch(SQLException ee)ee.printStackTrace();public void actionPerformed(ActionEvent e)if(e.getSource()= 修改 )tryrs = sql.execute
55、Query("select * from supplier");while(rs.next()for(int i = 0;i<6;i+)stringsi=rs.getString(i+1); if(strings1.trim().compareTo(inputText.getText().trim()=0) for(int i = 0;i<5;i+)fieldsi.setText(stringsi+1);fields0.setEditable(false);catch(SQLException ee)ee.printStackTrace();else if(e.
56、getSource() = 确认修改 ) String sqlString = "UPDATE supplier SET gongyingshang = '"+fields0.getText()+"',lianxidianhua='"+fields1.getText()+"',dizhi='"+fields2.getText()+"',youxi ang='"+fields3.getText()+"',beizhu='"+f
57、ields4.getText()+"'where gongyingshang ='"+inputText.getText()+"'"try sql.execute(sqlString); JOptionPane.showMessageDialog(this, " 操作成功! ","消息对话框 ",JOptionPane.INFORMATION_MESSAGE);/ 更新表格中的数据for(int i = deModel.getRowCount()-1;i>=0;i-) deModel.
58、removeRow(i);deModel.fireTableStructureChanged();rs = sql.executeQuery("select * from supplier"); while(rs.next()for(int j = 0;j<6;j+) stringsj=rs.getString(j+1); deModel.addRow(strings); deModel.fireTableStructureChanged();/ 更新中的数据 fields0.setEditable(true); catch(SQLException ee) ee.p
59、rintStackTrace(); for(int i = 0;i<5;i+) fieldsi.setText(""); inputText.setText(""); fields0.requestFocus();/ 设置光标的位置 ,在第一个文本框上面else if(e.getSource() = 删除 )String sqlString = "DELETE FROM supplier WHERE gongyingshang = '"+inputText.getText()+"'"try sql.execute(sqlString); / 将表格中的内容清空 for(int i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生物公司技术责任制度
- 学校安全责任制度制度
- 建材公司安全责任制度
- 生产经理岗位责任制度
- 园林岗位安全责任制度
- 消防施工终生责任制度
- 金融行业岗位责任制度
- 惨重防溺水伤员责任制度
- 水利工程度汛责任制度
- 楼栋包保责任制度汇编
- 2026年春人音版(简谱)(新教材)小学音乐二年级下册教学计划及进度表
- 【四年级】【数学】【春季下】开学家长会:与数同行共话梦想【课件】
- 2026年陕西航空职业技术学院单招职业技能测试模拟测试卷学生专用
- 2026年春统编版(新教材)小学道德与法治二年级下册(全册)教学设计(附目录P122)
- JBT 1472-2023 泵用机械密封 (正式版)
- Zippo-2023(中国)产品年册
- 《幼儿园课程概论》课件-第一章 幼儿园课程概述
- 日本概况-日本历史及中日关系
- 6人小品《没有学习的人不伤心》台词完整版
- 内蒙古自治区锡林郭勒盟对口单招考试2023年医学综合测试题及答案二
- 北京中医药大学23春“中药学”《分析化学B》平时作业试题库附答案
评论
0/150
提交评论