超市管理系统结课设计论文.doc_第1页
超市管理系统结课设计论文.doc_第2页
超市管理系统结课设计论文.doc_第3页
超市管理系统结课设计论文.doc_第4页
超市管理系统结课设计论文.doc_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SQL Server课程设计 学 院 电子信息工程学院 专 业 物联网应用技术 班 级 一班 姓 名 胡淑芳 安明利 项 目 超市管理系统 指 导 教 师 曹洪新 年 月 日摘要随着小型超市快速的发展,商品数量急速增加,有关商品的各种信息也成倍增长。小型超市管理系统是市场上最流行的、超市上常用的系统之一,它主要包含以下几个模块:进货和退货管理模块、销售模块、库存模块、人事管理模块、系统模块。它可以使进货、库存、销售、员工信息接受全面、动态、及时的管理。经过分析,使用JAVA语言为开发工具,使用Microsoft SQL Server 2000作为数据库,利用它们在开发数据库应用程序方面的众多优越性,尤其是JAVA在应用程序应用开发方面提供了大量的用于数据库应用开发的各种组件,大大提高开发的效率。关键词:JAVA ,Microsoft SQL Server 2008 ,数据库目录1绪论32系统需求分析32.1 技术可行性分析32.2经济可行性分析42.2.1 小型超市系统开发成本低42.2.2 新系统带来新效益42.3系统设计的模块4 3系统结构框架54.系统功能设计65. 超市管理系统数据库E-R模型66数据库表设计76.1 供货商信息表76.2 用户登录表76.3 进货信息表76.4 销售信息表86.5 库存信息表87创建数据库88 系统的实现88.1 系统登录模块88.2 基本档案管理模块148.3 采购订货管理模块188.4 人员管理模块208.5 仓库管理模块238.6 部门管理模块269结论30 1绪论目前,无论是公司还是企业对于货物都实行了信息化管理,以提高管理水平和工作效率,同时也可以最大限度地减少手工操作带来的错误。于是,进销存管理信息系统便应运而生。特别是随着现代科学技术的迅猛发展,计算机技术已渗透到各个领域,成为各行业必不可少的工具,特别是Internet技术的推广和信息高速公路的建立,使IT产业在市场竞争中越发显示出其独特的优势,步入数字化时代,有巨大的数据信息等待着加工处理和传输,这使得对数据库的进一步开发和利用显得尤为迫切。作为国内市场的一些中小超市,他们在信息化过程中的步伐要落后大中型超市,而对于这些超市的资源管理,信息的存储和处理也显的迫切需要,要适应市场竞争,就需要有高效的处理方式和管理方法,因此加快超市的电算化进程是必不可少的。2 系统需求分析需求分析阶段的任务是:(1) 了解组织机构情况,调查这个组织由哪些部门组成。各部的职责是什么,为分析信息流程准备。(2) 了解各部门的业务活动情况。调查各部门输入和使用什么数据,如何加工处理这些数据,输出什么信息,输出到什么部门,输出结果的格式是什么。(3) 确定新系统的边界。确定哪些功能由计算机完成或将来准备让计算机完成,哪些活动由人工完成,由计算机完成的功能就是系统应该实现的功能。2.1 技术可行性分析系统的可行性分析是对课题的通盘考虑,是系统开发者进行进一步工作的前提,是系统设计与开发的前提与基础。系统的可行性分析可以使系统开发者尽可能早的估计到课题开发过程中的困难,并在定义阶段认识到系统方案的缺陷,这样就能花费较少的时间和精力,也可以避免许多专业方面的困难。所以,系统的可行性分析在整个开发过程中是非常重要的。从数据库设计的角度考虑,技术分析阶段的目标是:对现实世界要处理的对象(组织、部门、企业等)进行详细调查,在了解原系统的概况,确定新系统功的过程中,收集支持系统目标的基础数据及其处理,最重要的就是建立用户数据模型。无论是采取哪种开发策略,都需要访问用户、记录需求,并根据这些需求建立数据模型的原型,这样的模型标识需要在数据库中存储其内容和它们的结构及相互关系。进行数据建模要求既要有一定的行业知识,又要精通建模的方法和技巧。2.2经济可行性分析因为通过网络传递销售信息可以不受距离的限制,因此可以借阅许多的人力和物力,方便管理,由此可以减少不必要的开支,同时该系统可以提高超市的销售效率,即提高了超市的经济效益,所以从经济上完全是可行的。2.2.1 小型超市系统开发成本低小型超市管理系统开发需要的工具都是开源、免费的,开发工具几乎不需要什么成本。唯一的成本就是系统开发的技术人员,二三个人甚至一个人在高效率状态下在短时间内就可以开发出满足小型超市管理系统需求的软件。2.2.2 新系统带来新效益管理系统是一个信息化、智能化和先进管理理念的集合体。而管理是一个动态过程,在其运行过程中要采取多项措施。所以在管理中获得经济效益是一个综合效益,要对它进行直接定量的分析是比较困难的。一般新系统带来的经济效益是简洁的,其最主要的表现就是减少了超市管理费用和人力开支。而其它一些繁琐的商品都通过新系统来加以分析解决,不仅节省了大量的时间,还为小型超市的各项决策提供了宝贵的资料,可以带来巨大的经济效益。2.3 系统设计的模块系统主要包括六大模块,分别是基本档案管理模块,采购订货管理模块,仓库入库管理模块,仓库出库管理模块,人员管理模块,部门管理。每个模块的功能如下:1. 基本档案管理模块功能:(1) 实现供货商管理的增删改查功能;(2) 实现销售商管理增删改查的功能;(3) 实现货品档案增删改查管理;(4) 实现仓库管理。2. 采购订货管理模块功能:(1) 查询订货客户的相关信息;(2) 客户信息的增删改。3. 仓库入库管理模块功能:(1) 实现仓库入库信息的查询;(2) 实现入库信息的更新,包括增加、删除、修改功能。4. 仓库出库管理模块功能:(1) 实现商品出库信息的查询;5. 人员管理模块功能:(1)员工信息的增删改查6.部门管理(1)公司部门信息的查询与修改3. 系统结构框架一般的超市商品管理系统,主要由五大模块组成,即基本档案管理模块,采购订货管理模块,仓库管理模块,人员管理模块,部门管理模块,此系统也不例外,主要有此五大模块组成。图3系统功能结构图。供货销售商管理货品档案维护订单信息管理客户信息管理仓库入库管理仓库出库管理员工信息查询员工信息维护部门信息查询超市商品管理系统基本档案管理模块采购订货管理仓库管理模块人员管理模块部门管理模块 图3系统功能结构4. 系统功能设计本系统主要包括五大模块,分别是人员管理模块,部门管理模块,仓库管理模块,订货管理模块,基本档案管理模块。每个模块的功能如下:1. 订货管理模块功能:实现客户订单信息的查询;包括增加、删除、修改功能;2. 人员管理模块功能:实现职工信息的查询,息的更新,包括增加、删除、修改功能;3. 部门管理模块功能:(1) 实现公司部门的查询;4. 基本档案管理模块功能:(1) 实现供货商信息的查询;(2) 实现销售商信息的更新,包括增加、删除、修改功能;(3) 实现货品档案的管理(4) 实现仓库管理信息5. 仓库管理模块功能:(1) 实现库存信息的查询;5. 超市管理系统数据库E-R模型通过对超市管理系统分析,得出系统的E-R图。图4.2数据库E-R模型图。名称职工/用户职工编号供货日期进货日期电话地址供货商编号供货商进货进货单号商品编号名称价格商品姓名性别mnmn工资身份证号供货销售单号销售日期数量mn销售图5.1 数据库E-R模型6.数据库表设计6.1 供货商信息表 供货商信息表(Sup_Info)用于存储供货商的信息。表中各字段功能定义如表6.1所示。表6.1 供货商信息表(Sup_Info)中文字段名英文字段名字段类型长度主键/外键字段值约束供货商号SupplierIDchar6PNOT NULL名称Namenvarchar50-NOT NULL联系人contactPersonnvarchar8-NOT NULL联系电话phonevarchar12-NOT NULL联系地址addressnvarchar50-NOT NULL备注othersntext50-NULL6.2 用户登录表用户登录表(Users_Info)用于存储用户的基本登录信息。表中各字段功能定义如表6.2所示。表6.2 用户信息表中文字段名英文字段名字段类型长度主键/外键字段值约束帐号loginIDchar6P/FNOT NULL密码passWordchar6-NOT NULL6.3 进货信息表进货信息表(Buy)存储进货信息。表中各字段功能定义如表4.6所示。表6.3 进货信息表中文字段名英文字段名字段类型长度主键/外键字段值约束进货单号BuyIDchar6PNOT NULL商品编号GoodsIDchar6P/FNOT NULL供货商号SupplierIDchar6FNOT NULL进货价Pricemoney4-NOT NULL数量Amountint4-NOT NULL金额Summoney4-NOT NULL进货日期Datedatetime8-NOT NULL备注Remarkntext50-NULL6.4 销售信息表 信息表(Sell)用于存储销售信息。表中各字段功能定义如表6.4所示。表6.4销售信息表中文字段名英文字段名字段类型长度主键/外键字段值约束销售单号SeelIDchar6PNOT NULL商品编号GoodsIDchar6P/FNOT NULL销售数量Amountint4-NOT NULL销售日期Datedatetime8-NOT NULL6.5 库存信息表库存信息表(Stock)存储库存信息。表中各字段定义如表6.5所示。表6.5库存信息表中文字段名英文字段名字段类型长度主键/外键字段值约束商品编号GoodsIDchar6P/FNOT NULL库存数量Amountint4-NOT NULL7. 创建数据库(1) 使用TSQL语句创建超市商品管理系统数据库。(2) 使用TSQL语句创建库存表。(3) 使用TSQL语句创建库存视图。8 系统的实现8.1 系统登录模块用户登录模块在本系统的首页。实现方便用户输入用户名和密码后,系统进行验证,验证通过进入程序的主界面。为用户提供账号密码管理工具,能设置用户权限,不同权限的用户付给不同的操作权利。界面如图5.1所示。图8.1 用户登录界面要实现代码如下:package com.mingrisoft.main;import java.awt.Graphics;import java.awt.Image;import javax.swing.JPanel;/* * 背景面板 * * author */public class BackgroundPanel extends JPanel private Image image;/ 背景图片 public BackgroundPanel() setOpaque(false); setLayout(null);/ 使用绝对定位布局控件 /* * 设置背景图片对象的方法 * * param image */ public void setImage(Image image) this.image = image; /* * 画出背景 */ protected void paintComponent(Graphics g) if (image != null) / 如果图片已经初始化 / 画出图片 g.drawImage(image, 0, 0, this); super.paintComponent(g); public class Enter extends JFrame private BackgroundPanel contentPane;private JTextField userNameTextField;private JPasswordField passwordField;private Point spoint;/* * Launch the application. */public static void main(String args) EventQueue.invokeLater(new Runnable() public void run() try UIManager.setLookAndFeel(new NimbusLookAndFeel();SwingUtilities.invokeLater(new Runnable() public void run() Enter mostly = new Enter();mostly.setVisible(true);); catch (Exception e) e.printStackTrace(););/* * Create the frame. */public Enter() setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setResizable(false);setLocationRelativeTo(null);/ 窗体居中setTitle(登录窗体);setBounds(100, 100, 559, 285);contentPane = getLoginPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5);setContentPane(contentPane);contentPane.setLayout(null);/* * 初始化登录面板 * * return */private BackgroundPanel getLoginPanel() if (contentPane = null) contentPane = new BackgroundPanel();/ 创建登录面板对象contentPane.setOpaque(false);/ 面板透明contentPane.setImage(getToolkit().getImage( getClass().getResource(login.png);/ 设置面板背景图片contentPane.setLayout(null);JPanel panel = new ClockPanel();panel.setBounds(377, 54, 151, 142);contentPane.add(panel);JLabel userNameLabel = new JLabel(用户名:);userNameLabel.setBounds(40, 116, 54, 15);contentPane.add(userNameLabel);userNameTextField = new JTextField();userNameTextField.setBounds(92, 113, 139, 25);contentPane.add(userNameTextField);userNameTextField.setColumns(10);JLabel passWordLabel = new JLabel(密 码:);passWordLabel.setBounds(40, 158, 54, 15);contentPane.add(passWordLabel);passwordField = new JPasswordField();passwordField.setBounds(92, 155, 139, 25);contentPane.add(passwordField);JButton enterButton = new JButton();URL url = getClass().getResource(enter.png);ImageIcon imageIcon = new ImageIcon(url);enterButton.setBounds(0, 40,imageIcon.getIconWidth(), imageIcon.getIconHeight();enterButton.setIcon(imageIcon);enterButton.setContentAreaFilled(false);/ 取消填充区域enterButton.setBorder(null);/ 取消边框enterButton.addActionListener(new ActionListener() /按钮的单击事件public void actionPerformed(ActionEvent e) UserDao userDao = new UserDao();/创建保存有操作数据库类对象User user = userDao.getUser(userNameTextField.getText(),passwordField.getText();/以用户添加的用户名与密码为参数调用查询用户方法if(user.getId()0)/判断用户编号是否大于0Session.setUser(user);/设置Session对象的User属性值RemoveButtomFrame frame = new RemoveButtomFrame();/创建主窗体对象frame.setVisible(true);/显示主窗体 Enter.this.dispose();/销毁登录窗体else/如果用户输入的用户名与密码错误JOptionPane.showMessageDialog(getContentPane(), 用户名或密码错误);/给出提示信息userNameTextField.setText();/用户名文本框设置为空passwordField.setText();/密码文本框设置为空);enterButton.setBounds(253, 116, 93, 64);contentPane.add(enterButton);URL urlclose = getClass().getResource(close.png);ImageIcon imageIconclose = new ImageIcon(urlclose);/ 添加鼠标事件监听器contentPane.addMouseListener(new TitleMouseAdapter();/ 添加鼠标动作监听器return contentPane;private final class TitleMouseAdapter extends MouseAdapter implementsSerializable public void mousePressed(java.awt.event.MouseEvent e) spoint = e.getPoint();8.2 基本档案管理模块此模块进行对供应商管理、销售管理、货品档案管理、仓库管理等的结合,能够对供应商、销售商、货品档案进行合理的增删改查,对仓库进行录入、修改、查询和统计。如图5.2所示。图8.2 基本档案管理模块主要实现代码如下: private BGPanel getContentPanel() if (backPanel = null) backPanel = new BGPanel();backPanel.setBackground(new Color(71,201,223);backPanel.setSize(629, 416); / 内容显示区主面板backPanel.setLocation(279, 149);backPanel.setLayout(null);label_1.setHorizontalAlignment(SwingConstants.RIGHT);label_1.setVerticalAlignment(SwingConstants.BOTTOM);label_1.setBounds(38, 38, 96, 15);backPanel.setBorder(createTitledBorder(null, 基本档案管理,TitledBorder.DEFAULT_JUSTIFICATION,TitledBorder.TOP, new Font(sansserif, Font.BOLD,12), new Color(59, 59, 59);backPanel.add(label_1);fristLabel.setBounds(133, 38, 123, 15);backPanel.add(fristLabel);panel_1.setBounds(10, 63, 611, 343);panel_1.setLayout(null);backPanel.add(panel_1);JScrollPane scrollPane = new JScrollPane();panel_1.add(scrollPane);JScrollPane scrollPane_1 = new JScrollPane();scrollPane_1.setBackground(new Color(71,201,223);scrollPane_1.setBounds(0, 0, 138, 334);panel_1.add(scrollPane_1);DefaultMutableTreeNode rootNode = new DefaultMutableTreeNode(基本档案管理);DefaultMutableTreeNode childNode1 = new DefaultMutableTreeNode(供货商管理);DefaultMutableTreeNode childNode2 = new DefaultMutableTreeNode(销售商管理);DefaultMutableTreeNode childNode3 = new DefaultMutableTreeNode(货品档案管理);DefaultMutableTreeNode childNode4 = new DefaultMutableTreeNode(仓库管理);rootNode.add(childNode1);rootNode.add(childNode2);rootNode.add(childNode3);rootNode.add(childNode4);tree = new JTree(rootNode);scrollPane_1.setColumnHeaderView(tree);final JPanel sellPanel = new JPanel();sellPanel.setBackground(new Color(71,201,223);sellPanel.setBounds(138, 0, 473, 343);sellPanel.setLayout(null);panel_1.add(sellPanel);tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);TreeSelectionModel treeSelectionModel = tree.getSelectionModel();treeSelectionModel.setSelectionMode(TreeSelectionModel.CONTIGUOUS_TREE_SELECTION);tree.addTreeSelectionListener(new TreeSelectionListener() Overridepublic void valueChanged(TreeSelectionEvent e) if (!tree.isSelectionEmpty() TreePath selectionPaths = tree.getSelectionPath();Object path = selectionPaths.getLastPathComponent();DefaultMutableTreeNode node = (DefaultMutableTreeNode) path;String userObject = (String) node.getUserObject();repaint();if (userObject.equals(供货商管理) fristLabel.setText(供货商管理);sellPanel.removeAll();sellPanel.add(panelFeel.getMessage(); else if (userObject.equals(销售商管理) fristLabel.setText(销售商管理);sellPanel.removeAll();SellPanel sell = new SellPanel();sellPanel.add(sell.getMessage();repaint(); else if (userObject.equals(货品档案管理) fristLabel.setText(货品档案管理);sellPanel.removeAll();WarePanel warePanel = new WarePanel();sellPanel.add(warePanel.getMessage();repaint(); else if (userObject.equals(仓库管理) fristLabel.setText(仓库管理);sellPanel.removeAll();DepotPanel depotPanel = new DepotPanel();sellPanel.add(depotPanel.getMessage();repaint(););return backPanel;8.3 采购订货模块有对订单信息的添加,修改,删除等功能,能够对客户信息进行合理的管理,实现客户信息的查询。界面如图5.3示。图8.3 采购订货界面主要实现代码如下: public JButtonTablePanel() setLayout(null);this.setBorder(createTitledBorder(null, 采购订货, TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.TOP, new Font( sansserif, Font.BOLD, 12), new Color(59, 59, 59);JScrollPane scrollPane = new JScrollPane();scrollPane.setBounds(43, 116, 520, 211);add(scrollPane);dm.setDataVector(new Object, new Object是否入库,编号,客户,订单号,交货日期,商品名,金额,数量); dm.removeRow(0);table = new JTable(dm);scrollPane.setViewportView(table); List list = dao.selectStock(); for(int i = 0;ilist.size();i+) Stock stock = (Stock)list.get(i); String oid = stock.getOrderId(); int id = dao.selectJoinStockByOid(oid); if(id =0) dm.addRow(new Object入库,stock.getId(),stock.getsName(),stock.getOrderId(),stock.getConsignmentDate(),stock.getBaleName(), stock.getMoney(),stock.getCount(); File file = new File(files.txt); try FileOutputStream out = new FileOutputStream(file); out.write(stock.getId(); out.close(); repaint(); catch (Exception ee) ee.printStackTrace(); else dm.addRow(new Object已经入库,stock.getId(),stock.getsName(),stock.getOrderId(),stock.getConsignmentDate(),stock.getBaleName(), stock.getMoney(),stock.getCount(); table.getColumn(是否入库).setCellRenderer(new ButtonRenderer();/设置指定列的渲染器 table.getColumn(是否入库).setCellEditor(new ButtonEditor(new JCheckBox();JButton insertButton = new JButton(添加);insertButton.addActionListener(new ActionListener() public void actionPerformed(ActionEvent e) InserStockFrame frame = new InserStockFrame();frame.setVisible(true););8.4人员管理人员管理模块可以有效的对员工信息进行管理,对人员的奖惩决定也有一定的依据可循。界面如图5.4示。图8.4 人员管理界面主要实现代码如下:public PersonnelPanel() this.setBorder(createTitledBorder(null, 人员管理,TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.TOP, new Font(sansserif, Font.BOLD, 12), new Color(59, 59, 59);setSize(631, 427);setLayout(null);this.setBackground(new Color(71,201,223);panel_1.setBackground(new Color(71,201,223);JPanel panel = new JPanel();panel.setBackground(new Color(71,201,223);panel.setBorder(BorderFactory.createTitledBorder(null, 员工信息,TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.ABOVE_TOP,new Font(sansserif, Font.BOLD, 12), new Color(59, 59, 59);panel.setBounds(29, 25, 572, 71);add(panel);panel.setLayout(null);JLabel dNameLabel = new JLabel(部 门:);dNameLabel.setBounds(70, 35, 54, 15);panel.add(dNameLabel);final DeptDao dao = new DeptDao();List list = dao.selectDept();/调用查询所有部门信息方法String dName = new Stringlist.size() + 1;/根据查询结果创建字符串数组对象dName0 = ;for (int i = 0; i list.size(); i+) /循环遍历查询结果集Dept dept = (Dept) list.get(i);dNamei + 1 = dept.getdName();/获取查询结果中部门名称final JComboBox dNamecomboBox = new JComboBox(dName);/实例化下拉列表对象dNamecomboBox.addActionListener(new ActionListener() /添加下拉列表监听事件Overridepublic void actionPerformed(ActionEvent e) pNameComboBox.removeAllItems();String dName = dNamecomboBox.getSelectedItem().toString();/获取用户选择的部门名称DeptDao deptDao = new DeptDao();/定义保存有操作数据库类对象int id = deptDao.selectDeptIdByName(dName);/调用获取部门编号方法List listName = perdao.selectBasicMessageByDept(id);/调用按部门编号查询所有员工信息方法for (int i = 0; i listName.size(); i+) /循环遍历查询结果集pNameComboBox.addItem(listName.get(i);/像姓名下拉列表中添加元素repaint(););8.5 仓库管理模块仓库管理能够使用户更为了解商品的库存情况,从而有利于商品的进货和销售的管理。 设计软件将能对库存情况进行修改操作和查询操作,能设置库存商品单价,能对库存商品总值进行统计,并能打印相关信息。界面如图5.5所示。图8.5 仓库管理模块界面主要实现代码如下:public JoinDepotPanel() this.setBorder(createTitledBorder(null, 仓库入库, TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.TOP, new Font( sansserif, Font.BOLD, 12), new Color(59, 59, 59);setSize(631, 413);setLayout(null);this.setBackground(new Color(71,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论