已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象程序设计(双语)设计报告一、超市管理系统总体设计1、系统概述随着人们生活水平的不断提高,购物已成为一种时尚。每天都有大量的消费者在各大商场中留下消费信息,所以作为商场的管理人员就需要有一个自动化、智能化的管理系统来完成这些信息的处理。由此我们设计开发小超市管理系统。目前市场上的超市管理系统,大部分为基于分布式数据库的网络管理系统,对于规模较小的超市没有必要花巨资来购买这样功能全面的管理系统,此外,对于那样功能齐全的管理系统也需要花大精力来维护。基于这种情况,我们用所学的java知识,可以开发一种既能节约资金,又能完成小超市日常的管理任务。本系统所包括的功能主要有:限于不同身份的人登录的登录界面;权限管理功能;商品销售功能;商品管理功能;销售管理功能。在系统的设计中,用户管理功能可以管理登录本系统的人员,如:管理员、用户和超级用户等。在最初的系统使用中只有技术管理员一种身份。商品销售功能;可以完成商品信息的查询。如:输入一种商品的编号在商品信息栏就显示该商品的所有信息,名称、价格、生产日期、生产地。然后选择购买功能,就可以将商品添加到购物信息栏,最后选择提交,所购买的商品信息同时也添加到数据库中。在商品管理功能中,可以把一种新引进的商品信息添加到小超市管理系统中。在销售管理功能中,可以查看超市的销售情况,所有商品的购买信息都存储在数据库中。在系统的安全性方面,我们规定了不同权限的登录用户,管理员(主要负责用户管理)可以登录到任何一个管理模块,以及后台的数据库,能够改变任一个登录者的用户名和密码。用户只能进入到销售界面。老板超级主要查看商品的销售情况和商品管理,他可以进入到商品销售管理查看商品的销售情况。通过这样的权限限制就可以方便的控制系统的安全性。总之,小超市管理系统是一个经济、实惠的应用软件,适合小规模的商店和超市。操作难度小,易学易用。2、实现功能对商品进行录入与记录,员工的信息登记,顾客消费的信息记录,有关会员的积分情况、等各种的统计报表,另外还提供各类统计查询。3、功能模块图二、数据库设计2、 数据库连接程序package db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import javax.swing.JOptionPane;public class MySqlConnnection /私有空构造方法,保证本类不能够被实例化。 private MySqlConnnection() /获得数据库连接public static Connection getConnection() Connection conn=null;try /加载MySQL JDBC 驱动程序名称Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);/数据库连接参数。String serverName = localhost:1433; / 数据库主机名称String mydatabase = 学生信息管理; / 数据库名称String url = jdbc:sqlserver:/+serverName + ;DatabaseName= + mydatabase;String username = sa; /MySql用户名String password = 123456; /MySql密码conn = DriverManager.getConnection(url, username, password);/建立连接 catch (ClassNotFoundException e) e.printStackTrace();/找不到MySql驱动程序类时,打印异常 catch (SQLException e) e.printStackTrace();/获得数据库连接发生异常return conn;/关闭数据库连接public static void closeConnection(Connection conn) if (conn != null) /连接是否有效try if (!conn.isClosed() /连接是否已关闭conn.close(); /关闭连接 catch (SQLException ex1) ex1.printStackTrace();/测试连接类public static void main(String args) throws ExceptionConnection conn = MySqlConnnection.getConnection();String result=;if (conn = null) result=获得数据库连接错误.;else result=正常获得数据库连接. + conn;JOptionPane.showMessageDialog(null, result);3、数据库表的添删改查(包括程序)-创建管理员表/*create table Admin ( adminId int identity(1,1), -自增1单位 adminName char(20) not null, adminPassword char(20) not null, primary key (adminId)*/*-插入数据INSERT INTO Admin (adminName,adminPassword) VALUES(赵一,1)INSERT INTO Admin (adminName,adminPassword) VALUES(钱二,2)INSERT INTO Admin (adminName,adminPassword) VALUES(孙四,3)select * from Admin*/-删除数据/*DELETE FROM Admin WHERE adminId=2;SELECT * FROM Admin*/-修改数据/*UPDATE Admin SET adminName=孙三 WHERE adminPassWord=3SELECT * FROM Admin*/3、 图形界面设计与实现登陆界面表的操作界面1)admin表admin表添加 admin表修改admin表删除 2)student表student表添加student表修改student表删除 3)course表course表添加course表修改course表删除4) selecourse表 selecourse表添加Selecourse表修改Selecourse表删除整个程序框架4、 程序测试1.dbstudentpackage db;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import mybean.student;public class dbstudent private dbstudent() public static void addstudent(student a) Connection conn = null;try conn = MySqlConnnection.getConnection(); / 获得数据连接PreparedStatement ps = DBUtil.getPreStatment(conn,INSERT INTO student (学号,姓名,性别,系别,专业,年级,班级号,家庭住址) VALUES (?,?,?,?,?,?,?,?);ps.setString(1, a.getXuehao();/ 入库前进行编码转换ps.setString(2, a.getXingming();/ 设置第2个占位符的内容ps.setString(3, a.getXingbie();ps.setString(4, a.getXibie();ps.setString(5, a.getZhuanye();ps.setString(6, a.getNianji();ps.setString(7, a.getBanjihao();ps.setString(8, a.getJiatingzhuzhi();ps.executeUpdate(); / 执行更新操作ps.close(); catch (Exception ex) ex.printStackTrace(); finally MySqlConnnection.closeConnection(conn);/ 删除管理员public static void deletestudent(String xuehao) Connection conn = null;try conn = MySqlConnnection.getConnection(); / 获得数据连接PreparedStatement ps = DBUtil.getPreStatment(conn,DELETE FROM student WHERE 学号=?);ps.setString(1, xuehao); / 设置第1个占位符的内容ps.executeUpdate();/ 执行更新操作ps.close(); catch (Exception ex) ex.printStackTrace(); finally MySqlConnnection.closeConnection(conn);/ 修改管理员public static void updatestudent(student a) Connection conn = null;try conn = MySqlConnnection.getConnection();String Sql = UPDATE student SET 姓名=?,性别=?,系别=?,专业=?,年级=?,班级号=?,家庭住址 =? WHERE 学号 =?;PreparedStatement ps = conn.prepareStatement(Sql);ps.setString(1, a.getXingming();/ 入库前进行编码转换ps.setString(2, a.getXingbie();ps.setString(3, a.getXibie();/ 设置第3个占位符的内容ps.setString(4, a.getZhuanye();ps.setString(5, a.getNianji();ps.setString(6, a.getBanjihao();ps.setString(7, a.getJiatingzhuzhi();ps.setString(8,a.getXuehao();ps.executeUpdate(); / 执行更新操作ps.close(); catch (Exception ex) ex.printStackTrace(); finally MySqlConnnection.closeConnection(conn);/* * public static void main(String args) student s = new student(); * s.setZhuanye(jisuanji); s.setJiatingzhuzhi(bb); * s.setXuehao(2013020332001); dbstudent.updatestudent(s); * * * * */ 根据管理员id号查询public static student getstudent(String xuehao) student a = null;Connection conn = null;try conn = MySqlConnnection.getConnection();/ 获得数据连接/ 建立PreparedStatement用于执行SQL操作PreparedStatement ps = DBUtil.getPreStatment(conn,SELECT * FROM student WHERE 学号=?);ps.setString(1, xuehao); / 设置第一个占位符的内容ResultSet rs = ps.executeQuery(); / 执行查询,返回结果集if (rs.next() / 因为管理员id是惟一的,所以只返回一个结果既可a = new student(rs.getString(1), rs.getString(2),rs.getString(3), rs.getString(4), rs.getString(5),rs.getString(6), rs.getString(7), rs.getString(8);ps.close(); catch (Exception ex) ex.printStackTrace(); finally MySqlConnnection.closeConnection(conn);return a;public static void main(String args) student a = getstudent(2013020332001);System.out.println(a.getXingming();2.studentpackage mybean;public class student private String xuehao; private String Xingming; private String Xingbie; private String Xibie;private String Zhuanye;private String Nianji;private String Banjihao;private String Jiatingzhuzhi;public student(String xuehao, String xingming, String xingbie,String xibie, String zhuanye, String nianji, String banjihao,String jiatingzhuzhi) super();this.xuehao = xuehao;Xingming = xingming;Xingbie = xingbie;Xibie = xibie;Zhuanye = zhuanye;Nianji = nianji;Banjihao = banjihao;Jiatingzhuzhi = jiatingzhuzhi;public student() super();public String getXuehao() return xuehao;public void setXuehao(String xuehao) this.xuehao = xuehao;public String getXingming() return Xingming;public void setXingming(String xingming) Xingming = xingming;public String getXingbie() return Xingbie;public void setXingbie(String xingbie) Xingbie = xingbie;public String getXibie() return Xibie;public void setXibie(String xibie) Xibie = xibie;public String getZhuanye() return Zhuanye;public void setZhuanye(String zhuanye) Zhuanye = zhuanye;public String getNianji() return Nianji;public void setNianji(String nianji) Nianji = nianji;public String getBanjihao() return Banjihao;public void setBanjihao(String banjihao) Banjihao = banjihao;public String getJiatingzhuzhi() return Jiatingzhuzhi;public void setJiatingzhuzhi(String jiatingzhuzhi) Jiatingzhuzhi = jiatingzhuzhi;3.Panelstudent package gui;import javax.swing.JFrame;import javax.swing.JOptionPane;import db.dbstudent;import mybean.student;SuppressWarnings(serial)public class Panelstudent extends MyPanelpublic Panelstudent(String database, String tableName)super(database,tableName);Overrideprotected void dealAddbtn() student a1 = new student(); /改成你自己的beana1.setXuehao(fields0.getText().trim();a1.setXingming(fields1.getText().trim();a1.setXingbie(fields2.getText().trim();a1.setXibie(fields3.getText().trim();a1.setZhuanye(fields4.getText().trim();a1.setNianji(fields5.getText().trim();a1.setBanjihao(fields6.getText().trim();a1.setJiatingzhuzhi(fields7.getText().trim();dbstudent.addstudent(a1);System.out.println(a1.getXuehao();tableModel.setQuery(student);/ 查询数据库表Admin中的记录,显示在表格中 ,参数填入表名super.dealAddbtn();protected void dealDelbtn() String xuehao=fields0.getText().trim();student a1=dbstudent.getstudent(xuehao);if(a1!=null)int k=JOptionPane.showConfirmDialog(null, 确认删除?);if(k=JOptionPane.YES_OPTION)dbstudent.deletestudent(xuehao);/删除数据库表Admin中记录JOptionPane.showMessageDialog(null, 删除成功!);elseJOptionPane.showMessageDialog(null, 没有删除!);elseJOptionPane.showMessageDialog(null, 没有该记录);tableModel.setQuery(student);/查询数据库表Admin中的记录,显示在表格中/修改记录protected void dealUpdatebtn() String xuehao=fields0.getText().trim(); /从库中查询指定id的记录,若不存在,则返回nullstudent a1=dbstudent.getstudent(xuehao);if(a1!=null)a1.setXuehao(fields0.getText().trim();a1.setXingming(fields1.getText().trim();a1.setXingbie(fields2.getText().trim();a1.setXibie(fields3.getText().trim();a1.setZhuanye(fields4.getText().trim();a1.setNianji(fields5.getText().trim();a1.setBanjihao(fields6.getText().trim();a1.setJiatingzhuzhi(fields7.getText().trim();dbstudent.updatestudent(a1);/修改记录tableModel.setQuery(student);this.highlightRow(xuehao);/表格定位到操作行elseJOptionPane.showMessageDialog(null, 没有该记录);/查询记录protected void dealQuerybtn() student a1=null;String xuehao=fields0.getText().trim();try /从库中查询指定id的记录,若不存在,则返回nulla1=dbstudent.getstudent(xuehao); catch (Exception e) JOptionPane.showMessageDialog(null, 请输入整数类型的id号!);if(a1=null)JOptionPane.showMessageDialog(null, 没有该记录);elsea1.setXingming(fields0.getText().trim();a1.setXingbie(fields1.getText().trim();a1.setXibie(fields2.getText().trim();a1.setZhuanye(fields3.getText().trim();a1.setNianji(fields4.getText().trim();a1.setBanjihao(fields5.getText().trim();a1.setJiatingzhuzhi(fields6.getText().trim();this.highlightRow(xuehao);/表格定位到操作行public static void main(String args) JFrame frame = new JFrame(student表);frame.getContentPane().add(new Panelstudent(selecourse,student);frame.setSize(600, 600);frame.setVisible(true);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/测试MyPanel类/*public static void main(String args) JFrame frame = new JFrame(学院实验);/窗口名,可以不改,最好改frame.getContentPane().add(new PanelAdminTest(studentsystem, Admin);/第一个参数 是 数据库 ,第二个参数 是表名frame.setSize(600, 260);frame.setVisible(true);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);*/4.TestFrame import gui.MyPanel;import gui.PanelAdminTest;import gui.Panelcourse;import gui.Panelselecourse;import gui.Panelstudent;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import db.dbAdmin;public class TestFrame extends JFrame private static JDesktopPane theDesktop;JMenuItem loginItem,exitItem,helpItem;/登录、退出和帮助内容菜单项final String itemString = Admin, student, course,selecourse ;final JPanel itemPanel = new PanelAdminTest(学生信息管理, Admin),new Panelcourse(学生信息管理, Course),new Panelstudent(学生信息管理, student) ,new Panelselecourse(学生信息管理,selecourse);JMenuItem item = new JMenuItemitemString.length;/ 题库管理菜单的4个菜单项:3个表和生成试卷public TestFrame() super(学生信息管理);/1.登录菜单:有两个菜单项-登录和退出JMenu loginMenu = new JMenu(登录);JMenuItem loginItem = new JMenuItem(登录);loginMenu.add(loginItem);loginItem.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) String name=JOptionPane.showInputDialog(null, 请输入登陆名字:);String password=JOptionPane.showInputDialog(null, 请输入登陆密码:);if(dbAdmin.isAdmin(name, password)JOptionPane.showMessageDialog(null, 登录成功!);for(int i=0;iitem.length;i+) itemi.setEnabled(true);elseJOptionPane.showMessageDialog(null, 密码不对,登录失败!););JMenuItem exitItem = new JMenuItem(退出);loginMenu.add(exitItem);exitItem.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) System.exit(0););/2.题库管理菜单:库中的每个表对应一个菜单项,实现添、删、改、查;导出试卷菜单项JMenu adminMenu = new JMenu(学生信息管理);for(int i=0;iitem.length;i+) itemi=builedAdminMenuItem(adminMenu,itemStringi,itemPaneli);/3.帮助菜单JMenu helpMenu = new JMenu(帮助);JMenuItem helpItem = new JMenuItem(帮助内容);helpMenu.add(helpItem);helpItem.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e) JOptionPane.showMessageDialog(TestFrame.this, 运行程序后,看相应的代码););/4.创建菜单条,添加菜单JMenuBar bar = new JMenuBar();setJMenuBar(bar);bar.add(loginMenu);bar.add(adminMenu);bar.add(helpMenu);/5.窗口中间放置桌面面板,用来显示内部窗口theDesktop = new JDesktopPane();getContentPane().add(theDesktop,BorderLayout.CENTER);setSize(800, 600);setVisible(true);/创建菜单项的通用方法:参数menu是菜单项所添加在其上的菜单;/参数itemName是菜单项的名字,因其在匿名内部类对象中引用,必须声明为final;/参数panel是点击菜单项后所生成的内部窗口中的面板对象,必须声明为final。private JMenuItem builedAdminMenuItem(JMenu menu,final String ite
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年温州大客车从业资格证考试试题
- 2024年迪庆客运资格证考试题库下载
- 人教部编版二年级语文上册第22课《狐假虎威》精美课件
- 吉首大学《建筑设计Ⅴ》2021-2022学年第一学期期末试卷
- 吉首大学《场景设计》2021-2022学年第一学期期末试卷
- 《机床夹具设计》试卷17
- 吉林艺术学院《艺术批评写作》2021-2022学年第一学期期末试卷
- 吉林艺术学院《全媒体文案创意写作》2021-2022学年第一学期期末试卷
- 签订宴会厅协议书范本范本
- 吉林艺术学院《CG模型设计》2021-2022学年第一学期期末试卷
- 科比简介PPT幻灯片
- 2022-2023小学六年级上册道德与法治期中试卷+答案
- Unit 5 Lesson 1 Enlightening a Mind 课件-高中英语北师大版(2019)选择性必修第二册
- 留守儿童的家庭教育-课件
- 12-14mm带压开孔器操作说明书
- 提高预制楼梯安装一次性合格率-QC成果报告
- 电线装配制程cableassemblyprocessinstruction
- 幼儿园中班语言《谁偷吃了》课件1
- 普通高中数学课程标准
- 重度残疾儿童小学送教上门工作计划
- 科创板问题测试题库300题试题及答案
评论
0/150
提交评论