Java期末课程设计-超市进销存管理系统.doc
《Java期末课程设计-超市进销存管理系统.doc》由会员分享,可在线阅读,更多相关《Java期末课程设计-超市进销存管理系统.doc(282页珍藏版)》请在咨信网上搜索。
(1) 下列有关构造函数描述正确的是( C )。 Java程序设计 期末课程设计报告 题 目 超市进销存管理系统 班 级: 13级信息安全班 学 号: 姓 名: 成 绩: 完成时间: 2014 年 12 月 目 录 No table of contents entries found. 一.需求分析 企业进销存管理系统的主要工作,是对企业的进货、销售和库存以信息化的方式进行管理,最大限度的减少各个环境中可能出现的错误,有效减少盲目采购,降低采购成本、合理控制库存、减少资金占用并提高市场灵敏度,使企业能够合理安排进、销、存的每个关键步骤,替身企业市场竞争力。针对经营管理中存在的问题,兰州华联超市对产品的进销存合理化提出了更高的要求。 通过实际调查,要求企业进销存管理系统具有以下功能。 ◆界面设计美观大方,方便、快捷、操作灵活。 ◆实现强大的进销存管理,包括基本信息、进货、销售和库存管理。 ◆能够在不同的操作系统下运行,不局限于特定的平台。 ◆提供数据库备份与恢复功能。 ◆提供库存盘点功能。 ◆提供技术支持的联系方式,可以使用邮件进行沟通,或者直接连接到技术网站。 二.分析与设计: (1)功能模块划分: 本进销存管理系统划分为六个模块,分别为系统登陆模块,系统主窗体设计模块,进货单模块,销售单模块,库存盘点模块和数据库备份与恢复模块, (2)数据库结构描述: 企业进销存管理系统需要使用数据库存储和管理进销存过程中的所有信息,本企业进销存管理系统使用Access数据库系统作为后台数据库,数据库名称为db_database28。其中包含了14张数据表﹑两个视图。以下是系统主要涉及的六个数据库表: 1. 供应商信息表:主要用于存储供应商详细信息,其结构如下表所示: User表: Handle表: Product表: Stuff表: Yield表: 空表等待插入数据。 三.系统详细设计文档: 1.系统流程图: (1)系统功能结构图: (2)系统业务流程图: (3)系统中的主要类及功能: 1.Item公共类: Item公共类是对数据表最常用的ID和name属性的封装,属于swing列表,表格,下拉列表框等组件的赋值。该类重写了toString()方法,在该方法中只输出name属性。但是在获取组件的内容时,获取的是Item类的对象,从该对象中可以获取ID的属性,然后通过该属性到数据库中获取唯一的数据。 2.数据模型公共类: 数据模型公共类对应着数据库中不同的数据表,这些模型将被访问数据库的Dao类和程序中各个模块甚至各个组件使用,数据模型是对数据表所有字段的封装,它是纯粹的模型类,他也要重写toString()方法,另外还要重写hashCode()方法和equal()方法。它主要用于存贮数据,并通过相应的getXXX()方法和setXXX()实现不同属性的访问原则。 3.Dao公共类: Dao类实现了数据库的驱动,连接,关闭和多个操作数据库的方法,Dao类不需要创建对象,可以直接调用类中的所有数据库操作方法。Dao类自定义的主要方法有getKhlnfo(Item item)方法,主要是获取客户信息,方法的返回值是tKhlnfo的对象,及客户信息的数据模型。getGyslnfo(Item item)方法,主要是获取供应商信息,返回值是Gyslnfo类的对象,及供应商数据表的模型对象。getSplnfo(Item item)方法,主要用于获取商品信息,返回值是Splnfo类的对象,及商品数据表的数据模型。getLogin(String name,String password)方法《主要适用于判断登录用户的用户名与密码是否正确,返回值是boolean类型。insertSelllnfo(TbSellMain sellMain)方法,主要是添加销售信息到数据库中。restoreOrBackup(String sql)方法,此方法是设置数据库的模式为单用户连接模式,这样可以避免数据库恢复或备份时失败。checkLogin(String userStr,String passStr)方法,用于判断登录用户与密码是否正确。 (2)各个模块实现方法描述: 1.系统登录模块 实现该模块的主要代码如下 package src; import java.awt.AlphaComposite; import java.awt.GradientPaint; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.Image; import java.awt.RenderingHints; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.UIManager; public class AddUser { private static final String logoon = "添加用户"; private static final String helpt = "添加"; private static final String logooff ="退出"; private static final String user = "用 户:"; private static final String password = "密 码:"; private static final String enterpwd ="再次输入密码:"; private javax.swing.JTextField userText=null; private javax.swing.JPasswordField userpwd=null; private javax.swing.JPasswordField enterpassword=null; private javax.swing.JPanel jp = new javax.swing.JPanel(){ final static long serialVersionUID = 2309585L; public void paintComponent(Graphics g){ super.paintComponent(g); if(!isOpaque()){return;} Graphics2D g2d = (Graphics2D) g; //int rule = AlphaComposite.SRC_OVER; AlphaComposite opaque = AlphaComposite.SrcOver; //AlphaComposite blend = AlphaComposite.getInstance(rule, 0.6f); //AlphaComposite set = AlphaComposite.Src; int width = getWidth(); int height = getHeight(); GradientPaint gradientPaint = new GradientPaint(0,0,java.awt.Color.green,width/2,height/2,java.awt.Color.yellow,false); g2d.setComposite(opaque); g2d.setPaint(gradientPaint); g2d.fillRect(0, 0, width,height); g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF); } }; private javax.swing.JButton add = new javax.swing.JButton(helpt); private javax.swing.JButton cancle = new javax.swing.JButton(logooff); private JFrame logo_Frame = new JFrame(logoon); public AddUser() { // TODO 自动生成构造函数存根 try{ UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); }catch(Exception exe){System.err.print(exe.getMessage());} JFrame.setDefaultLookAndFeelDecorated(true); Toolkit tools = logo_Frame.getToolkit(); Image logo = tools.getImage("res/logo.jpg"); logo_Frame = new JFrame(logoon); logo_Frame.setIconImage(logo); jp.setLayout(new GridBagLayout()); javax.swing.ImageIcon pic = new javax.swing.ImageIcon("res/logo1.jpg"); javax.swing.JLabel picture = new javax.swing.JLabel(pic); setupComponent(picture,0,0,GridBagConstraints.ABOVE_BASELINE_LEADING,1,true); javax.swing.JLabel users = new javax.swing.JLabel(user); setupComponent(users,0,1,1,1,false); javax.swing.JLabel pas = new javax.swing.JLabel(password); setupComponent(pas,0,2,1,1,false); javax.swing.JLabel enpas = new javax.swing.JLabel(enterpwd); setupComponent(enpas,0,3,1,1,false); userText = new javax.swing.JTextField(12); userText.requestFocus(); userText.addKeyListener(new KeyListener(){ public void keyTyped(KeyEvent e){} public void keyReleased(KeyEvent e){} public void keyPressed(KeyEvent e){ if((e.getKeyChar() == KeyEvent.VK_ENTER )&&(userText.getText().trim() != "")){ userpwd.requestFocus(); } } }); setupComponent(userText,1,1,1,1,false); userpwd = new javax.swing.JPasswordField(12); userpwd.addKeyListener(new KeyListener(){ public void keyTyped(KeyEvent e){} public void keyPressed(KeyEvent e){ if((e.getKeyChar() == KeyEvent.VK_ENTER) && (! userpwd.getPassword().toString().trim().isEmpty())){ enterpassword.requestFocus(); } else{ userpwd.requestFocus(); } } public void keyReleased(KeyEvent e){ } }); setupComponent(userpwd,1,2,1,1,false); enterpassword = new javax.swing.JPasswordField(12); enterpassword.addKeyListener(new KeyListener(){ public void keyTyped(KeyEvent e){} public void keyReleased(KeyEvent e){} public void keyPressed(KeyEvent e){ //String pwd = userpwd.getPassword().toString().trim(); //String epwd = enterpassword.getPassword().toString().trim(); if((e.getKeyChar()==KeyEvent.VK_ENTER) && ((userpwd.getPassword().toString().trim())==(enterpassword.getPassword().toString().trim()))){ add.requestFocus(); } else if((e.getKeyChar()==(KeyEvent.VK_ENTER)) && ((userpwd.getPassword().toString().trim())!=(enterpassword.getPassword().toString().trim()))){ userpwd.setText(""); enterpassword.setText(""); userpwd.requestFocus(); } } }); setupComponent(enterpassword,1,3,1,1,false); //logoin = new javax.swing.JButton(logoon); add.addKeyListener(new KeyListener(){ public void keyTyped(KeyEvent e){} public void keyReleased(KeyEvent e){} public void keyPressed(KeyEvent e){ if((e.getKeyChar()==KeyEvent.VK_ENTER )){ String users =userText.getText().trim(); String pwd =userpwd.getPassword().toString().trim(); String epwd =enterpassword.getPassword().toString().trim(); if(users.isEmpty()){ javax.swing.JOptionPane.showMessageDialog(logo_Frame, "必须输入用户名!","输入用户名",JOptionPane.ERROR_MESSAGE); userText.requestFocus();} if(pwd.isEmpty()){ javax.swing.JOptionPane.showMessageDialog(logo_Frame, "必须输入密码!","输入密码",JOptionPane.ERROR_MESSAGE); userpwd.requestFocus(); } if(epwd.isEmpty()){ javax.swing.JOptionPane.showMessageDialog(logo_Frame, "第二个输入密码必须与第一个密码相同!","密码不一致",JOptionPane.ERROR_MESSAGE); enterpassword.requestFocus(); } boolean b = DBUtil.isExist("select user_name from user where user_name="+"'"+users+"'"); if(b){ javax.swing.JOptionPane.showMessageDialog(logo_Frame, "用户已经存在,请另外输入!","不能添加",JOptionPane.ERROR_MESSAGE); userText.setText(""); userpwd.setText(""); enterpassword.setText(""); userText.requestFocus(); } int vale = DBUtil.getValue("select user_name from user where user_name='"+users+"'")+1; if(vale>0){ String sql = "insert into user values('"+vale+",'"+users+"','"+pwd+"')"; boolean bo = USeDB.Update(sql); if(bo)JOptionPane.showConfirmDialog(logo_Frame, "用户名添加成功!"); } } } }); add.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ String users =userText.getText().trim(); String pwd =userpwd.getPassword().toString().trim(); String epwd =enterpassword.getPassword().toString().trim(); if(users.isEmpty()){ javax.swing.JOptionPane.showMessageDialog(null, "必须输入用户名!","输入用户名",JOptionPane.ERROR_MESSAGE); userText.requestFocus();} if(pwd.isEmpty()){ javax.swing.JOptionPane.showMessageDialog(null, "必须输入密码!","输入密码",JOptionPane.ERROR_MESSAGE); userpwd.requestFocus(); } if(epwd.isEmpty()){ javax.swing.JOptionPane.showMessageDialog(null, "第二个输入密码必须与第一个密码相同!","密码不一致",JOptionPane.ERROR_MESSAGE); enterpassword.requestFocus(); } boolean b = DBUtil.isExist("select user_name from user where user_name='"+users+"'"); if(b){ javax.swing.JOptionPane.showMessageDialog(logo_Frame, "用户已经存在,请另外输入!","不能添加",JOptionPane.ERROR_MESSAGE); userText.setText(""); userpwd.setText(""); enterpassword.setText(""); userText.requestFocus(); } int vale = DBUtil.getValue("select user_name from user where user_name='"+users+"'")+1; if(vale>0){ String sql = "insert into user values('"+vale+",'"+users+"','"+pwd+"')"; USeDB.UpdateDB(sql); boolean bo = DBUtil.isExist("select user_name from user where id=vale"); if(bo){ JOptionPane.showConfirmDialog(null, "用户名添加成功!"); } JOptionPane.showConfirmDialog(null, "用户名已经存在!"); } userText.setText(""); userpwd.setText(""); enterpassword.setText(""); userText.requestFocus(); } }); setupComponent(add,0,4,1,1,true); //javax.swing.JButton exit = new javax.swing.JButton(logooff); cancle.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e2){ logo_Frame.dispose(); //System.exit(0); } }); setupComponent(cancle,1,4,1,1,true); java.awt.Dimension d = tools.getScreenSize(); int width = (int)(d.getWidth()-350) /2; int height = (int)(d.getHeight()-240)/2; logo_Frame.add(jp); logo_Frame.setAlwaysOnTop(true); logo_Frame.setLocation(width, height); logo_Frame.setSize(350, 240); logo_Frame.pack(); logo_Frame.validate(); logo_Frame.setVisible(true); } private void setupComponent(JComponent component,int gridx,int gridy,int gridwidth,int ipadx,boolean fill){ final GridBagConstraints gridBagConstrains = new GridBagConstraints(); gridBagConstrains.gridx = gridx; gridBagConstrains.gridy = gridy; gridBagConstrains.insets = new java.awt.Insets(5,3,3,3); if(gridwidth>1) gridBagConstrains.gridwidth = gridwidth; if(ipadx > 0) gridBagConstrains.ipadx = ipadx; if(fill) gridBagConstrains.fill = GridBagConstraints.HORIZONTAL; jp.add(component,gridBagConstrains); } } package src; import java.awt.AlphaComposite; import java.awt.GradientPaint; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.RenderingHints; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.swing.JPanel; import javax.swing.JComponent; public class createStuffQuitInterFace extends JPanel{ private final static long serialVersionUID = 230000123423L; private javax.swing.JTextField stuff_id = null; private javax.swing.JTextField stuff_name = null; private javax.swing.JTextField stuff_company = null; private javax.swing.JTextField stuff_people = null; private javax.swing.JTextField check_people = null; private javax.swing.JTextField stuff_unit = null; private javax.swing.JTextField stuff_value = null; private javax.swing.JTextField stuff_spec = null; private javax.swing.JTextField stuff_color = null; private javax.swing.JTextField stuff_place = null; private javax.swing.JTextField stock_date = null; private javax.swing.JTextField stuff_text = null; private javax.swing.JButton enter = null; private javax.swing.JButton clean = null; private javax.swing.JButton cancle = null; private String sql = null; public createStuffQuitInterFace() { // TODO 自动生成构造函数存根 this.setLayout(new GridBagLayout()); this.setBackground(java.awt.Color.PINK); javax.swing.JLabel stuff_id_label = new javax.swing.JLabel("编 号:"); setupComponent(stuff_id_label,0,0,1,1,true); stuff_id = new javax.swing.JTextField(10); stuff_id.requestFocus(); stuff_id.addKeyListener(new KeyListener(){ public void keyReleased(KeyEvent e){ if((e.getKeyChar() == KeyEvent.VK_ENTER) && ((stuff_id.getText().trim()) != "")){ stuff_name.requestFocus(); } } public void keyTyped(KeyEvent e){} public void keyPressed(KeyEvent e){} }); setupComponent(stuff_id,1,0,1,1,true); javax.swing.JLabel stuff_name_label = new javax.swing.JLabel("原料名:"); setupComponent(stuff_name_label,2,0,1,1,true); stuff_name = new javax.swing.JTextField(10); stuff_name.addKeyListener(new KeyListener(){ public void keyTyped(KeyEvent e){} public void keyPressed(KeyEvent e){} public void keyReleased(KeyEvent e){ if((e.getKeyChar()==KeyEvent.VK_ENTER) && (stuff_name.getText().trim() != "")){ stuff_company.requestFocus(); } } }); setupComponent(stuff_name,3,0,1,1,true); javax.swing.JLabel stuff_company_label = new javax.swing.JLabel("生产商:"); setupComponent(stuff_company_label,4,0,1,1,true); stuff_company = new javax.swing.JTextField(10); stuff_company.addKeyListener(new KeyListener(){ public void keyTyped(KeyEvent e){} public void keyPressed(KeyEvent e){} public void keyReleased(KeyEvent e){ if((e.getKeyChar()==KeyEvent.VK_ENTER) && (stuff_company.getText().trim() != "")){ stuff_people.requestFocus(); } } }); setupComponent(stuff_company,5,0,1,1,true); javax.swing.JLabel stuff_people_label = new javax.swing.JLabel("收货员:"); setupComponent(stuff_people_label,6,0,1,1,true); stuff_people = new javax.swing.JTextField(10); stuff_people.addKeyListener(new KeyListener(){ public void keyTyped(KeyEvent e){} public void keyPressed(KeyEvent e){} public void keyReleased(KeyEvent e){ if((e.getKeyChar()==KeyEvent.VK_ENTER) && (stuff_people.getText().trim() != "")){ check_people.requestFocus- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 期末 课程设计 超市 进销存 管理 系统
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文