JAVA课程设计企业销售管理系统_第1页
JAVA课程设计企业销售管理系统_第2页
JAVA课程设计企业销售管理系统_第3页
JAVA课程设计企业销售管理系统_第4页
JAVA课程设计企业销售管理系统_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、序号: 10 学号: 11416230 常 州 大 学 课程设计课 程 名 称: 面向对象程序设计(JAVA) 题 目: 企业销售管理系统 姓 名: 学 院: 信息科学与工程学院 专业班级: 指 导 教 师: 设计时间: 2012 年 12 月 24 日 2013 年 1 月 11 日目录1. 任务书a) 系统功能分析03b) 系统组成032. 正文a) 系统分析i. 功能模块04ii. 功能流程图06b) 数据库设计07c) 系统详细设计i. 连接数据库08ii. 主界面08iii. 修改、添加、删除模块10iv. 查询、打印、登录模块143. 系统使用说明214. 日记225. 心得体会2

2、26. 参考文献237. 致谢23 一、任务书(一)、系统功能分析本系统用于对企业销售进行管理,涉及员工基本信息表、商品信息表和员工销售信息表,主要功能包括:l 数据表记录的添加、删除、修改和浏览。l 对员工基本情况、商品和销售相关信息的查询。l 报表打印输出。l 系统退出。(二)、系统组成根据系统的功能分析,给出系统的参考解决方案。整个系统功能通过菜单实现,包括数据库、表单、菜单、报表和主程序等几个部分,具体为:后台数据库销售管理数据库:1员工基本信息表(员工编号,员工名,年龄,性别,部门,职务)。2. 商品信息表 (商品编号,商品名称,商品单价)。3. 员工销售信息表 (员工编号, 商品编

3、号,商品数目,应付金额,顾客付款,找回金额)。二、正文(1) 系统分析:企业销售管理系统主要实现的功能为:与数据库连接,实行对员工基本信息表、商品信息表、员工销售信息表的查询、修改、添加、删除等功能的实现。以及对3张表的信息进行输出打印,打印保存成XLS格式。功能模块如下:查询功能:模糊查找精确查找查询功能其他模糊查找金额模糊查找数目模糊查找名称模糊查找编号模糊查找名称查找编号查找添加其他添加数目添加编号添加名称添加功能添加功能:修改功能:保存退出修改功能修改其他修改数目修改编号修改名称查询数据删除功能:删除功能查询数据确定删除保存退出程序结构流程图:企业销售管理系统员工基本信息表商品信息表员

4、工销售信息表查询修改添加删除查询修改添加添加修改删除输出打印系统退出(2)数据库设计: 按照规范设计的方法,考虑数据库及其管理系统开发的全过程,将数据库设计分为以下六个阶段: 需求分析 概念结构设计 逻辑结构设计 物理结构设计 数据库实施 数据库运行和维护 基本要求在mysql软件基础上,利用应用系统开发为企业销售管理设计数据库和建立相应的数据库。创建4个表格,分别为sellInfo,staffInfo,goodsInfo,以及登录所需的password表格。信息要求,处理要求,安全性和 完整性要求,数据流图,数据字典,数据项之间应有的联系必须表示出来,用数据依赖表示即可逻辑结构设计必须:说明

5、各个关系模式所属的范式,如果不是BC或3NF范式, (3)系统的详细设计:一、 连接数据库:import java.sql.*;public class Connection1 Connection connect; private String dbDriver = com.mysql.jdbc.Driver; /加载数据库驱动 private String url = jdbc:mysql:/localhost:3306/sell?true&characterEncoding=utf-8; / 地址 /* Creates a new instance of connectJdbc */ p

6、ublic Connection getConnection() try Class.forName(dbDriver).newInstance(); connect=DriverManager.getConnection(url, root, 123456); catch (Exception ex) System.out.println(数据库加载失败); return connect;二、 主界面:View.java首先在主界面的panel里显示数据库中的数据,以商品信息表为例。JTable table;JScrollPane jscrollpane;/申明滚动面板变量TableMode

7、l myTable = new DefaultTableModel();Connection1 db = new Connection1();Connection con = db.getConnection();/连接到数据库Statement ps;try ps = con.createStatement();ResultSet rs;rs = ps.executeQuery(select * from goodsInfo);/在sell表格中执行查询ResultSetMetaData metaData;metaData = rs.getMetaData();/得到数据库元数据int nu

8、mber = metaData.getColumnCount();/得到数据库中表的列的个数Vector columnNames = new Vector();/调用Vector类,生成可自动增长的数组对象列Vector rows = new Vector();/对象行for (int num = 0; num number; num+) columnNames.addElement(metaData.getColumnLabel(num + 1);/循环生成while (rs.next() Vector newRow = new Vector(); /* for循环,将结果集中一行数据放到n

9、ewRow矢量中 */for (int i = 1; i = number; i+) newRow.addElement(rs.getObject(i);/* 将上面的矢量newRow作为矢量rows中的一个元素,这样rows中的一个元素就代表结果集中的一行数据 */rows.addElement(newRow);/增长行myTable = new DefaultTableModel(rows, columnNames);/在表格中加载数据 catch (SQLException ex) table = new JTable(myTable);jscrollpane = new JScroll

10、Pane(table);jscrollpane.setViewportView(table);jscrollpane.revalidate();jPanel3.setLayout(new BorderLayout();jPanel3.add(jscrollpane, BorderLayout.CENTER);jPanel3.setVisible(true);效果如下:三、修改模块:首先对所需修改的员工信息进行查询,并显示在修改界面上,关键代码如下:Connection1 db = new Connection1();Connection con = db.getConnection();/连接

11、数据库String sql = select* from sellInfo;Statement ps = con.createStatement();ResultSet rs = ps.executeQuery(sql);/查询while (rs.next() if (rs.getString(员工编号).equals(jTextField1.getText() /匹配该员工的信息;num1 = rs.getString(员工编号);num2 = rs.getString(商品编号);num3 = rs.getInt(商品数目);price1 = rs.getInt(应付金额(元));pric

12、e2 = rs.getInt(顾客付款(元));price3 = rs.getInt(找回金额(元));jTextField2.setText(num1);jTextField3.setText(num2);jTextField4.setText( + num3);jTextField5.setText( + price1);jTextField6.setText( + price2);jTextField7.setText( + price3);/在修改界面上显示该员工销售的信息然后在对修改界面上的信息进行修改,并返回保存至数据库,关键代码如下:String sql = update sel

13、lInfo set 员工编号= + num1 + ,商品编号= + num2+ ,商品数目= + num3 + ,应付金额(元)= + price1 + ,顾客付款(元)=+ price2 + ,找回金额(元)= + price3 + where 员工编号= + num1 + ;try ps = con.createStatement();ps.executeUpdate(sql);/数据更新 catch (SQLException e) e.printStackTrace();效果如下:四、删除模块:首先对用户输入的员工编号或者员工名称进行查找,当数据库中由此数据时,显示该数据,并请求用户是

14、否确定删除,运用sql语句中的delete,以员工基本信息为例,关键代码如下:Statement ps = con.createStatement();ResultSet rs = ps.executeQuery(sql);while (rs.next() if (rs.getString(员工编号).equals(jTextField1.getText()| rs.getString(员工名).equals(jTextField2.getText()num1 = rs.getString(员工编号);num2 = rs.getString(员工名);i = rs.getInt(年龄);num

15、3 = rs.getString(性别);num4 = rs.getString(部门);num5 = rs.getString(职务);int s = JOptionPane.showConfirmDialog(null, 确定要删除此数据吗?tn员工编号: + jTextField1.getText() + tn + 员工名: + num2 + tn+ 年龄: + i + (岁) + tn + 性别: + num3 + tn+ 部门: + num4 + tn + 职务: + num5 + t);/显示对话框是否确定删除if (s = 0) String jk = jTextField1.g

16、etText();String jk1 = jTextField2.getText();String sql1 = delete from staffInfo where 员工编号= + jk+ or 员工名= + jk1 + ;Statement ps1;try ps1 = con.createStatement();ps1.execute(sql1);/执行删除 catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();效果如下:五、添加模块:添加数据到数据库主要用的是sql中的insert语句,

17、在数据中增加所需数据,这期间要特别注意语句中的变量与引号的问题,以员工销售表为例,关键代码如下:String num1 = jTextField1.getText();String num2 = jTextField2.getText();int ii = Integer.valueOf(jTextField3.getText();int price1 = Integer.valueOf(jTextField4.getText();int price2 = Integer.valueOf(jTextField5.getText();int price3 = Integer.valueOf(jT

18、extField6.getText();String sql = insert into sellInfo values( + num1 + , + num2+ , + ii + , + price1 + , + price2 + , + price3+ );PreparedStatement ps = con.prepareStatement(sql);ps.executeUpdate();/执行并更新语句效果如下: 六、查询模块:查询方式主要有两种:一是精确查找,通过用户所输入的编号,名称进行查找;二是模糊查找,通过用户所输入的模糊信息进行查找,输出所有符合的结果。1.精确查找关键代码如下

19、:String sql = select* from goodsInfo;String num1 = null, name = null;int num2 = 0;Statement ps = con.createStatement();ResultSet rs = ps.executeQuery(sql);while (rs.next() if (rs.getString(商品编号).equals(jTextField1.getText()| rs.getString(商品名称).equals(jTextField2.getText() num1 = rs.getString(商品编号);n

20、ame = rs.getString(商品名称);num2 = rs.getInt(商品单价(元));2.模糊查询关键代码如下:String num1 = jTextField3.getText(), num2 = jTextField4.getText(), num3 = jTextField5.getText();if (num1.equals() & num2.equals() & num3.equals() GoodsInfo gi = new GoodsInfo();gi.getGoodsInfo();/如果全部为空,则显示所有数据 else if (!num1.equals(nul

21、l) | !num2.equals(null)| !num3.equals(null) Statement ps;ps = con.createStatement();ResultSet rs;rs = ps.executeQuery(select * from goodsInfo where 商品编号 like + num1+ % and 商品名称 like + num2+ % and 商品单价(元) like + num3 + %);效果如下:精确查找:输入商品编号:201204,显示结果如下:模糊查找:输入商品编号:20120,显示结果如下:七、打印模块:打印信息表主要将修改好的数据输出

22、称excel的形式,保存在电脑里,以staffInfo为例,String title = 员工编号, 员工名,年龄,性别,部门,职务;/ 准备设置excel工作表的标题String filePath = D:staffInfo.xls;/ 输出的excel的路径OutputStream os = new FileOutputStream(filePath);/ 创建Excel工作薄WritableWorkbook wwb = Workbook.createWorkbook(os);/ 添加第一个工作表并设置第一个Sheet的名字WritableSheet sheet = wwb.createS

23、heet(员工基本信息表, 0);Label label = null;for (int i = 0; i title.length; i+) / Label(x,y,z)其中x代表单元格的第x+1列,第y+1行, 单元格的内容是y/ 在Label对象的子对象中指明单元格的位置和内容label = new Label(i, 0, titlei);/ 将定义好的单元格添加到工作表中sheet.addCell(label);Statement stmt = con.createStatement();ResultSet result = stmt.executeQuery(select * fro

24、m staffInfo);/查询表中的所有数据int x = 0;while (result.next() / 从数据库中取得数据x+; / 控制行数for (int y = 0; y title.length; y+) / 获得列数label = new Label(y, x, result.getString(y + 1);/ x代表行, y代表列,通过rst.getString()设置单元格内容sheet.addCell(label);/ 将内容加到execl中去wwb.write(); / 写入数据wwb.close(); / 关闭文件保存效果如下:关键代码如下:OutPutExl o

25、e1 = new OutPutExl();oe1.OutPutExlstaff();JOptionPane.showMessageDialog(null, 输出打印员工基本信息表成功!保存在D:staffInfo);八、登陆界面:Login.Java首先连接数据库,并判断用户所输的用户名,密码是否正确,如果匹配则让其通过,否则提示用户名与密码不匹配,请重新输入。判断方法queryUser语句如下:boolean queryUser(String userName,String pass) Connection1 db=new Connection1(); Connection con=db.g

26、etConnection(); String sql=select* from password where Username= +userName +and Password= +pass+; try Statement ps=con.createStatement();ResultSet rs=ps.executeQuery(sql);if(rs.next()if(rs.getString(Username).equals(userName)&rs.getString(Password).equals(pass) return true;else return false; else re

27、turn false;登录如下:(4)系统的使用说明:设备支持:推荐配置:Windows7,512内存。数据库:MySQL Server 5.0。软件支持:MyEclipse 编写。(5)日志:课程设计第一天:进行整体的布局构思,创建员工信息表、商品信息表、员工销售信息表连接数据库,实现多种方式验证登录。第二天:创建主界面,将数据库里的表格信息出现在客户端上。主要是panel的运用。第三天:进行简单的语句查询,调试编码问题中文乱码,并设置滚动面板。通过网上查找了解学习输出打印,将表格输出保存为xls文件。第四天:编写删除功能代码,运用sql语句对编号的精确查找,然后读取该行数据,实现对数据的删除,并设立相应的控件。第四天:编写添加、修改功能代码,创建功能面板,调

温馨提示

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

评论

0/150

提交评论