《java超市管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《java超市管理系统课程设计报告.docx(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上湖 南 文 理 学 院 课程设计题目: 超市管理系统 系 别 计算机科学与技术 班 级 计科12102 学生姓名 罗巍 杨欢 杨沁铠 唐振 学 号 3 指导教师 谭文学 课程设计进行地点: 第三实验楼A617 任 务 下 达 时 间: 2014 年 5 月 21 日 起止日期: 2014 年 5 月 21 日起至 2014 年 6月 21 日止 专心-专注-专业摘 要 随着小型超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长,传统的人工记忆方式也慢慢的无法适应形势的变化。随着信息技术的发展,计算机已被广泛的用于社会的各个领域,成为推动社会发展的
2、技术动力。而在计算机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信息产品的开发和信息技术市场的进一步的开拓。软件产业已成为社会信息化进程中的一个战略性产业。在软件技术的应用中软件的开发技术尤其是应用型软件产品的开发技术成了重中之重。不断开发适应用户需求、市场需要的新型软件产品。随着社会的发展,软件也在不断的更新换代。由于有些超市里对商品的进货、售出及商品的基本信息等的一些繁琐处理都是通过手工进行记载并进行处理的,对商品信息的处理工作量特别大,不仅浪费大量的人力物力,而且还很容易出错,更重要的是为了方便顾客,超市需要时时刻刻对商品对各种信息进行统计分析。 一直以来人们使用传
3、统人工的方式管理超市的各项工作, 这种管理方式存在着许多缺点, 如: 效率低、保密性差, 另外时间一长, 将产生大量的冗余文件和数据, 这给查找、统计、更新和维护工作都带来了很大的困难。然而大型的超市管理系统功能过于强大而造成操作繁琐降低了小超市的工作效率。如果有这样一套完整的小型超市管理系统软件,只需点击几下鼠标就可完成所需操作,那样就会大大的提高超市员工的工作效率和管理水平,并能进一步提高超市的工作效率并使超市实施规范化管理。鉴于小型超市管理中存在的诸多问题, 我们在此次课程设计中以小型超市管理系统为研究课题,对此系统进行了全面的设计。超市管理系统由顾客、采购员、销售员、经理的管理界面四部
4、分组成。 超市管理系统应该能够为用户提供充足的信息和快捷的查询手段。一个完整系统的设计,当然就离不开后台环境的支持,在此次设计中,我们主要以sqlsever数据库作为基础,实行此系统的开发。目 录一、系统需求分析1.1系统名称:小型超市管理系统1.2系统介绍:界面设计简洁、友好、美观大方操作简单、快捷方便数据存储安全、可靠信息分类清晰、准确强大的查询功能、保证数据查询的灵活性提供销售排行,为管理员提供真实的数据信息提供灵活、方便的权限设置功能,使整个系统的管理分工明确对用户的输入的数据,系统进行严格的数据检验,尽可能排人为错误1.3开发背景随着现代科学技术的迅猛发展,计算机技术已经渗透到各个领
5、域,成为各行业必不可少的工具,特别是Internet技术的推广和信息高速公路的建立,使IT产业在市场竞争中越发显示出其独特的优势,步入信息化时代,有巨大的数据信息等待加工处理和传输,这使得对数据库的进一步开发和利用显得尤为迫切。作为国内市场的一些中小型超市,它们在信息化过程中的步伐要落后于大中型超市,而对于这些企业的资源管理,信息的存储和处理也显得迫切需要,要适应市场竞争,就需要有高效的处理方式和管理方法,因此加快超市的信息化进程是必不可少的。我国的超市在20世纪90年代初期形成,现在已经成为我国零售业的一种重要形态,为国民经济的发展发挥了重要的作用。随着经济的快速发展,超市的经营管理也变得愈
6、加复杂,早期的售货员站柜台的形式早已不能满足现有销售业的发展,这样就迫切地需要引入新的管理技术。1.4.系统面向的用户群体主要是中小型超市使用者,该消费群体具有以下特征:1超市日常管理人工化居多,工作效率较低;2超市日常交易额较小,货物流通较小,不愿花高价购进大型超市管理系统。因此,该消费群体对产品的功能性需求并不高,只需满足前台销售系统、后台货物管理即可。1.5开发环境Eclipse+mysql二、系统总体设计2.1系统功能结构图 小超市管理系统是一个专门针对小型的商店和超市的智能化、自动化的管理系统。其功能总框图如图2-1所示。 顾客注册登陆界面 采购员登陆顾客登陆经理登录销售员登陆分项查
7、询增加订单更改订单查看销售信息查看进货信息购买商品查看销售员信息查看所有订单浏览某种商品浏览所有商品 图2-1 系统功能总框图 三 数据库代码和界面3.1数据库表的设计(1) 顾客信息表(Buye)字段名类型长度约束中文名BuyerIDint顾客编号BuyerGoodsNamevarchar50Not null购买商品名称BuyerGoodsNumbevarchar50Not null购买商品数量BuyerManufacturervarchar50Not null商品生产厂家BuyerDatevarchar50Not null购买日期BuyerStatusvarchar45Not null购买
8、状态BuyerNamevarchar45Not null顾客姓名CREATE TABLE Buyer_TABLE (BuyerID int IDENTITY (1, 1) NOT NULL ,BuyerGoodsName varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,BuyerGoodsNumber varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,BuyerManufacturer varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,BuyerDate varchar (
9、50) COLLATE Chinese_PRC_CI_AS NULL ,BuyerStatus varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,BuyerName varchar (50) COLLATE Chinese_PRC_CI_AS NULL ) ON PRIMARY(2) 商品信息表(goodsInfo )字段名类型长度字段约束中文名GoodsIDint商品编号GoodsNamevarchar50Not null商品名称GoodsNumberint商品数量GoodsProductvarchar 50Not null生产厂家GoodsPrice
10、float6商品价格GoodsSizevarchar 50Not null商品规格CREATE TABLE goodsInfo (GoodsID int NOT NULL ,GoodsName varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,GoodsNumber int NULL ,GoodsProduct varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,GoodsPrice float NULL ,GoodsSize varchar (50) COLLATE Chinese_PRC_CI_AS NULL )
11、 ON PRIMARYGO(3)用户信息表( T_user)字段名类型长度约束中文名userIDint用户编号userNamevarchar50Not null用户名字userPasswordvarchar50Not null用户密码userAddress varchar50Not null用户住址userAuthorityvarchar50Not null用户权限userGendervarchar10Not null用户性别userAgeintNot null用户年龄CREATE TABLE T_user (userID int IDENTITY (1, 1) NOT NULL ,userN
12、ame varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,userPassword varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,userAddress varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,userAuthority varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,userGender varchar (10) COLLATE Chinese_PRC_CI_AS NULL ,userAge int NULL ) ON
13、 PRIMARYCREATE TABLE user (userID int IDENTITY (1, 1) NOT NULL ,userName varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,userPassword varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,userAddress varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,userAuthority varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,userGend
14、er varchar (10) COLLATE Chinese_PRC_CI_AS NULL ,userAge int NULL ) ON PRIMARYGO(4)销售信息表(vendition)字段名类型长度约束中文名VenditionIDint销售员编号GoodsNamevarchar50Not null商品名称GoodsCustomNumbervarchar50Not null销售数量CustomerNamevarchar50Not null消费者名字VenditionDatevarchar50Not null销售数量GoodsSize varchar45Not null商品规格 Goo
15、dsPricefloatNot null商品价格CREATE TABLE vendition_TABLE (VenditionID int IDENTITY (1, 1) NOT NULL ,GoodsName varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,GoodsCustomNumber varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,CustomerName varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,VenditionDate varchar (50) C
16、OLLATE Chinese_PRC_CI_AS NULL ,GoodsSize varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,GoodsPrice float NULL ) ON PRIMARY 3.2连接数据库String driverName=com.microsoft.jdbc.sqlserver.SQLServerDriver; String dbURL=jdbc:sqlserver:/localhost:1433;DatabaseName=supermarket; String userName=sa; /默认用户名 String use
17、rPwd=123; /密码 四、系统模块功能介绍 3.1 登录功能介绍 登录功能是进入系统必须经过的验证过程,其主要功能是验证使用者的身份,确认使用者的权限,从而在使用软件过程中能安全地控制系统数据,即不同的工作人员有不同的权限,每个使用人员不得跨越其权限操作软件,可以避免不必要的数据丢失事件发生。 登录的界面如图2-2所示登陆成功!4.1.1登陆界面源代码public class Logincs extends JDialog implements ActionListener/声明在程序中要用到的方法 private JPanel panel1 = new JPanel(); privat
18、e 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 jBu
19、tton1 = 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(); p
20、rivate 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); pri
21、vate 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(密码);
22、jButton1.setForeground(UIManager.getColor(List.selectionBackground);/按钮控件字体颜色 jButton1.setBorder(BorderFactory.createRaisedBevelBorder();/按钮外观 jButton1.setText(登录);/按钮标题 jButton1.addActionListener(this);/加入按钮事件 jButton2.setForeground(UIManager.getColor(Menu.selectionBackground); jButton2.setBorder(B
23、orderFactory.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.se
24、tBorder(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
25、.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(版本号: 201
26、4.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(jLa
27、bel4, 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(j
28、Label6, 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:/lo
29、calhost: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
30、= 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-gene
31、rated 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.createSta
32、tement(); 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
33、(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 , Stri
34、ng 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,您输入的密码不正确,请重试,ver
35、ify password , JOptionPane.DEFAULT_OPTION); /抛出对话框 else JOptionPane.showMessageDialog(null,success,JOptionPane.DEFAULT_OPTION); / verifyUserAuthority(userAuthority) ;/进行权限判断 /验证用户权限 void verifyUserAuthority(String userAuthority) if(userAuthority.equals(admin)/如果用户为admin,则弹出管理员界面 AdminWindow adminWin
36、dow = 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.p
37、ack(); adminWindow.show();/显示对话框 else if (userAuthority.equals(customer)/如果用户为customer /弹出顾客登录界面 CustomerWindow customerWindow =new CustomerWindow() ; /设置对话框的大小 Dimension dlgSize = customerWindow.getPreferredSize(); Dimension frmSize = getSize(); Point loc = getLocation(); customerWindow.setLocation
38、(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
39、(); 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 sales
40、Window =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)