收藏 分销(赏)

JAVA专业课程设计企业销售标准管理系统.doc

上传人:天**** 文档编号:2658691 上传时间:2024-06-03 格式:DOC 页数:26 大小:733.04KB
下载 相关 举报
JAVA专业课程设计企业销售标准管理系统.doc_第1页
第1页 / 共26页
JAVA专业课程设计企业销售标准管理系统.doc_第2页
第2页 / 共26页
JAVA专业课程设计企业销售标准管理系统.doc_第3页
第3页 / 共26页
JAVA专业课程设计企业销售标准管理系统.doc_第4页
第4页 / 共26页
JAVA专业课程设计企业销售标准管理系统.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

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

2、7. 致谢23 一、任务书(一)、系统功效分析本系统用于对企业销售进行管理,包含职员基础信息表、商品信息表和职员销售信息表,关键功效包含:l 数据表统计添加、删除、修改和浏览。l 对职员基础情况、商品和销售相关信息查询。l 报表打印输出。l 系统退出。(二)、系统组成依据系统功效分析,给出系统参考处理方案。整个系统功效经过菜单实现,包含数据库、表单、菜单、报表和主程序等多个部分,具体为:后台数据库销售管理数据库:1职员基础信息表(职员编号,职员名,年纪,性别,部门,职务)。2. 商品信息表 (商品编号,商品名称,商品单价)。3. 职员销售信息表 (职员编号, 商品编号,商品数目,应付金额,用户

3、付款,找回金额)。二、正文(1) 系统分析:企业销售管理系统关键实现功效为:和数据库连接,实施对职员基础信息表、商品信息表、职员销售信息表查询、修改、添加、删除等功效实现。和对3张表信息进行输出打印,打印保留成XLS格式。功效模块以下:查询功效:模糊查找正确查找查询功效其它模糊查找金额模糊查找数目模糊查找名称模糊查找编号模糊查找名称查找编号查找添加其它添加数目添加编号添加名称添加功效添加功效:修改功效:保留退出修改功效修改其它修改数目修改编号修更名称查询数据删除功效:删除功效查询数据确定删除保留退出程序结构步骤图:企业销售管理系统职员基础信息表商品信息表职员销售信息表查询修改添加删除查询修改添

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

5、(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 */ public Connection getConnect

6、ion() 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;/申明滚动面板变量TableModel myTable = new DefaultTableM

7、odel();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 number = metaData.getColumnCoun

8、t();/得到数据库中表列个数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循环,将结果集中一行数据放到newRow矢量中 */for (int i = 1; i = n

9、umber; 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 JScrollPane(table);jscrollpane.setViewportV

10、iew(table);jscrollpane.revalidate();jPanel3.setLayout(new BorderLayout();jPanel3.add(jscrollpane, BorderLayout.CENTER);jPanel3.setVisible(true);效果以下:三、修改模块:首先对所需修改职员信息进行查询,并显示在修改界面上,关键代码以下:Connection1 db = new Connection1();Connection con = db.getConnection();/连接数据库String sql = select* from sellInfo

11、;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(应付金额(元));price2 = rs.getInt(用户付款(元));price3 = rs.ge

12、tInt(找回金额(元));jTextField2.setText(num1);jTextField3.setText(num2);jTextField4.setText( + num3);jTextField5.setText( + price1);jTextField6.setText( + price2);jTextField7.setText( + price3);/在修改界面上显示该职员销售信息然后在对修改界面上信息进行修改,并返回保留至数据库,关键代码以下:String sql = update sellInfo set 职员编号= + num1 + ,商品编号= + num2+

13、,商品数目= + num3 + ,应付金额(元)= + price1 + ,用户付款(元)=+ price2 + ,找回金额(元)= + price3 + where 职员编号= + num1 + ;try ps = con.createStatement();ps.executeUpdate(sql);/数据更新 catch (SQLException e) e.printStackTrace();效果以下:四、删除模块:首先对用户输入职员编号或职员名称进行查找,当数据库中由此数据时,显示该数据,并请求用户是否确定删除,利用sql语句中delete,以职员基础信息为例,关键代码以下:Stat

14、ement 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(年纪);num3 = rs.getString(性别);num4 = rs.getString(部门

15、);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.getText();String jk1 = jTextField2.getText()

16、;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(jTextField6.getText();String sql = insert into se

18、llInfo values( + num1 + , + num2+ , + ii + , + price1 + , + price2 + , + price3+ );PreparedStatement ps = con.prepareStatement(sql);ps.executeUpdate();/实施并更新语句效果以下: 六、查询模块:查询方法关键有两种:一是正确查找,经过用户所输入编号,名称进行查找;二是模糊查找,经过用户所输入模糊信息进行查找,输出全部符合结果。1.正确查找关键代码以下:String sql = select* from goodsInfo;String num1 =

19、 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(商品编号);name = rs.getString(商品名称);num2 = rs.getInt(商品单价(元))

20、;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(null) | !num2.equals(null)| !num3.equals(null) Statem

21、ent ps;ps = con.createStatement();ResultSet rs;rs = ps.executeQuery(select * from goodsInfo where 商品编号 like + num1+ % and 商品名称 like + num2+ % and 商品单价(元) like + num3 + %);效果以下:正确查找:输入商品编号:04,显示结果以下:模糊查找:输入商品编号:0,显示结果以下:七、打印模块:打印信息表关键将修改好数据输出称excel形式,保留在电脑里,以staffInfo为例,String title = 职员编号, 职员名,年纪,性别

22、,部门,职务;/ 准备设置excel工作表标题String filePath = D:staffInfo.xls;/ 输出excel路径OutputStream os = new FileOutputStream(filePath);/ 创建Excel工作薄WritableWorkbook wwb = Workbook.createWorkbook(os);/ 添加第一个工作表并设置第一个Sheet名字WritableSheet sheet = wwb.createSheet(职员基础信息表, 0);Label label = null;for (int i = 0; i title.leng

23、th; 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 * from staffInfo);/查询表中全部数据int x = 0;while (result.next() / 从数据库中取得数据x+; /

24、 控制行数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 oe1 = new OutPutExl();oe1.OutPutExlstaff();JOptionPane.showMessageDialo

25、g(null, 输出打印职员基础信息表成功!保留在D:staffInfo);八、登陆界面:Login.Java首先连接数据库,并判定用户所输用户名,密码是否正确,假如匹配则让其经过,不然提醒用户名和密码不匹配,请重新输入。判定方法queryUser语句以下:boolean queryUser(String userName,String pass) Connection1 db=new Connection1(); Connection con=db.getConnection(); String sql=select* from password where Username= +userN

26、ame +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 return false;登录以下:(4)系统使用说明:设备支持:推荐配置:Windows7,512内存。数据库:MySQL Server 5.0

27、。软件支持:MyEclipse 编写。(5)日志:课程设计第一天:进行整体布局构思,创建职员信息表、商品信息表、职员销售信息表连接数据库,实现多个方法验证登录。第二天:创建主界面,将数据库里表格信息出现在用户端上。关键是panel利用。第三天:进行简单语句查询,调试编码问题汉字乱码,并设置滚动面板。经过网上查找了解学习输出打印,将表格输出保留为xls文件。第四天:编写删除功效代码,利用sql语句对编号正确查找,然后读取该行数据,实现对数据删除,并设置对应控件。第四天:编写添加、修改功效代码,创建功效面板,调用sql语句进行查找,取得符合要求数据,修改并进行更新数据。第五天:编写模糊查询,实现对

28、数据模糊查找,并显示在数据面板上。第六天:在主界面中调用调试各个功效面板,实现功效。并对各个图形界面进行美化。第七天:编写备注信息,填写课程设计汇报。(6)心得体会依据题目要求,编写一个企业销售管理系统。开始设计时,因为初学java语言,对于系统整体编写有一定难度,所以茫然无措。在翻阅了部分书籍后最终有些想法,并开始付诸实施。连接数据库是碰到第一个难点,过程中总是碰到汉字字符,和java和数据库数据交互时汉字乱码问题。后经过调试,查阅资料,并尝试用网上字符转码语句fliter,将写入数据和从数据库中读取数据进行转码,知道须将数据库注册码和生成表字符码要和java编辑软件myeclipse字符码

29、相一致,才排除了数据库信息在面板中异常显示。当处理到选择查询、模糊查询时,又碰到了sql语句引号问题,在sql语句中加入参数需要引号,假如是字符类型,需要表示为”+data+”,假如单单是整型,就不需要单引号了。相关局部变量、组员变量、全局变量,也有了深入认识,并经过此程序编写得到了强化。包含到数据库修改问题,因为第一次写入update语句中没有写上判定在数据库中哪一行改变(where),结果造成全部数据全部变为同一数据,数据库信息丢失了。相关面板居中问题也能自己经过直接编辑代码实现。唯一遗憾是此系统采取是可视化界面做,全部GUI组件位置不稳定,易受干扰,所形成图形界面在美观上不是很好,有待改善。总而言之,此次课程设计不仅锻炼了自己利用java语言编写能力,也增强了自己在处理部分错误,排错技能,对自己以后学习有很大帮助。 参考文件1 孙浏毅.Java宝典M.电子工业出版社.82 郎波.Java语言程序设计M.2版.清华大学出版社.93张广彬.王小宁.高静Java课程设计案例精编(第二版)M.清华大学出版社.64王鹏.何昀峰.Java Swing 图形界面开发和案例详解M.清华大学出版社.12注: M论著(8)致谢

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服