Java专业课程设计超市标准管理系统的设计和实现.docx
《Java专业课程设计超市标准管理系统的设计和实现.docx》由会员分享,可在线阅读,更多相关《Java专业课程设计超市标准管理系统的设计和实现.docx(15页珍藏版)》请在咨信网上搜索。
课 程 设 计 课程名称 Java语言课程设计 题目名称 超市管理系统设计和实现 学生学院 应用数学学院 专业班级 信息和计算科学1班 学 号 学生姓名 指导老师 10 月24 日 超市管理系统设计和实现 1系统设计内容 伴随小超市规模发展不停扩大,商品数量急剧增加,相关商品多种信息量也成倍增加。超市时时刻刻全部需要对商品多种信息进行统计分析。而大型超市管理系统功效过于强大而造成操作繁琐降低了小超市工作效率。超市管理系统是市场上最流行超市上常见系统之一,它关键包含以下多个模块:系统登陆、商品入库、商品查询、商品更改和删除等。从而,实现对进货、销售及职员信息等实现全方面、动态、立即管理。本文系统分析了软件开发背景以过程;首先介绍了软件开发环境,其次介绍了本软件具体设计过程:数据库设计、各个模块设计和实现,和具体界面设计和功效。 超市库存管理系统是基于Java作为开发工具, Mysql作为后台数据库支持。超市库存管理系统开发关键是界面程序开发、数据库建立、数据库维护。应用程序功效完善,界面人机交互要好,而且操作简单。同时JAVA语言简单,在较短时间内能够开发出使用性强、功效完善,易于操作程序,也能实现和数据库连接。经过以上需求分析,初步确定该系统功效关键包含以下多个模块: 1. 系统登录 2. 商品入库管理(包含商品信息管理) 3. 商品销售管理 4. 用户管理和权限管理 系统步骤图 输入错误重新登 录 系统登录 确定登录 销售员登录页面 管理员登录页面 人员管理删除 用户注册 密码修改 个人信息修改 个人信息修改 密码修改 销售管理 进货管理 删除库存商品 添加库存商品 查询库存商品 结账按钮 删除销售商品 添加销售商品 用户信息数据库 商品信息数据库 2系统设计方案 2.1 Java Swing概述 经过图形用户界面(Graphical User Interface,GUI),用户和程序之间能够方便进行交互。Javajava.awt (Abstract Window Toolkit) 包中包含了多个类和接口,用于在Java Application中进行GUI编程。Java Swing是Java Foundation Classes(JFC)一部分,是一个用于开发Java应用程序用户界面开发工具包。在Swing中,Sun开发了一个经过仔细设计、灵活而强大 GUI 工具包。 它以抽象窗口工具包(AWT)为基础使跨平台应用程序能够使用任何可插拔外观风格。Swing开发人员只用极少代码就能够利用Swing丰富、灵活功效和模块化组件来创建优雅用户界面。 Swing增强了AWT中组件功效,这引发增强组件命名通常是在AWT组件名前增加了一个“J”字母;同时也提供了更多组件库,如:按钮(JButton )、单选按钮(JRadioButton )、复选框(JCheckBox )、文本区(JTextArea)、文本字段(JTextField)、列表(JList )、组合框(JComboBox )、树(JTree)、表格(JTable)。一个Java GUI通常由顶层容器、中间容器和多个原子组件组成。每个原子组件或容器全部可能触发对应事件产生。容器是一类能够在其中容纳其它组件特殊组件。SwingGUI组件类是根据类属层次以树状结构进行组织。在这个树最顶层,即树根部,使一个最基础容器类,被称为顶层容器。Swing 提供了三个通用顶层容器类JFrame,JDialog和JApplet。JFrame提供了基于窗体应用程序,JDialog提供对话框形式界面,JApplet提供Java小应用程序界面形式。在顶层容器下是中间容器,用于容纳其它组件。通常窗格本身在显示界面中是看不到。面板类Panel是一个中间容器,它唯一作用是使组件更轻易定位。顶层容器经过getContentPane()方法获取内部一个内容窗格。 2.2使用JDBC-ODBC和MySQL数据库建立连接 1、在开发环境中加载指定数据库驱动程序。 2、在Java程序中加载驱动程序。在Java程序中,能够经过 “Class.forName(“指定数据库驱动程序”)” 方法来加载添加到开发环境中驱动程序,比如加载MySQL数据驱动程序代码 为: Class.forName("org.gjt .mm.mysql.Driver"); 3、创建数据连接对象:经过DriverManager类创建数据库连接对象Connection。DriverManager类作用于Java程序和JDBC驱动程序之间,用于检验所加载驱动程序是否能够建立连接,然后经过它getConnection方法,依据数据库URL、用户名和密码,创建一个JDBC Connection 对象。如:Connection connection = DriverManager.geiConnection(“连接数据库URL", "用户名", "密码”)。本程序创建MySQL数据库连接代码以下: String url = "jdbc:mysql://localhost:3306/market"; String username = "root"; String password = "root"; connect = DriverManager.getConnection(url, username, password); 4、创建Statement对象:Statement 类关键是用于实施静态 SQL 语句并返回它所生成结果对象。经过Connection 对象 createStatement()方法能够创建一个Statement对象。比如:Statement statament = connection.createStatement(); 本程序创建Statement对象代码以下: Statement stat = connect.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); 5、调用Statement对象相关方法实施相对应 SQL 语句:经过execuUpdate()方法用来数据更新,包含插入和删除等操作,经过调用Statement对象executeQuery()方法进行数据查询,而查询结果会得到 ResulSet对象,ResulSet表示实施查询数据库后返回数据集合,ResulSet对象含有能够指向目前数据行指针。经过该对象next()方法,使得指针指向下一行,然后将数据以列号或字段名取出。假如当next()方法返回null,则表示下一行中没有数据存在。使用示例代码以下: ResultSet resultSel = statement.executeQuery( ""select * from commodity";" ); 6、关闭数据库连接:使用完数据库或不需要访问数据库时,经过Connectionclose() 方法立即关闭数据连接。 商品数据项描述: 数据项名 数据类型 长度 说明 number vachar 50 商品编号 CName vachar 50 商品名称 supplier vachar 50 商品供给商 PArea vachar 50 商品生产地 unit vachar 50 商品单位 shelfFife vachar 50 商品规格 price float 50 商品价格 pack vachar 50 商品包装 fullNumber float 50 商品数量 管理人员和销售人员数据想描述:(其中1、2分别表示管理员、销售员权限) user vachar 50 用户名 password vachar 50 密码 power vachar 50 权限 3功效模块具体设计及实现 3.1 系统登录页面 统登录模块需要管理员和销售员提供用户名、初始密码和权限进行登录验证,假如成功则进入系统,不然提醒无法登录并返回登录一面。运行图 3.2管理员登录页面 管理员身份登录成功进入管理员登陆界面。其中包含模块进货管理、查看全部些人员、用户注册、密码修改、个人信息修改。管理员登陆页面运行截图 进货管理功效是经过系统中public void allRecord() {}方法查询数据库commodity显示超市仓库中全部商品。不过在这里包含一个类型转化问题、因为在数据库设计中商品数量和价格全部是float类型。在全部商品价格方面直接利用数据库中第七列和第九列数据相乘。即sum += rSet.getFloat(7) * rSet.getFloat(9);不过在页面中累计金额需要显示是一个string类型,而这里sum是一个float类型变量,则就需要用一个类型准换语句,并将该值传入文本框。语句分别为 String cString = new Float(sum).toString(); minventoryJFrame.getTotalJTextField().setText(cString); 运行截图 删除按钮设计是经过查找商品编号进行删除。假如没有对应商品则经过JOptionPane.showMessageDialog(null, "库存中没有对应商品", "删除统计", 1)语句提醒库存中没有对应商品、不然经过查询数据库并实施下列语句删除对应库存品。 String sql = "delete from commodity where number='" + minventoryJFrame.getJTable().getValueAt(row, 0) + "'"; stat.executeUpdate(sql); allRecord(); JOptionPane.showMessageDialog(null, "成功删除统计", "删除统计", 1); 添加页面设计需要对数据类型和对输入文本框是否有空值进行检测,假如不正当则经过JOptionPane.showMessageDialog(this, "请确定数据类型和是否有空值!")给出提醒。不然经过实施下列语句并提醒添加商品成功信息。 String sql="INSERT INTO commodity(number,CName,supplier,PArea,unit,shelfFife,price,pack,fullNumber)"+"VALUES('"+Number.getText()+"','"+CName.getText()+"','"+Supplier.getText()+"','"+PArea.getText()+"','"+unit.getText()+"','"+ShelfFife.getText()+"','"+Float.parseFloat(Price.getText())+"','"+Pack.getText()+"','"+Float.parseFloat(FullNumber.getText())+"')"; stmt.executeUpdate(sql); JOptionPane.showMessageDialog(this, "商品添加成功!"); 运行截图 人员管理模块能够查看全部些人员直接经过下列语句String sql = "select * from userinfo";获取数据库中全部些人员。运行截图 删除人员则是经过选中人员所对应行进行删除。实现语句为: String sql="DELETE FROM userinfo WHERE user='"+cellValue+"'"; 用户注册需要先查询数据库中用户名和密码,假如全部存在则提醒该用户已经存在。不存在则能够经过下列语句注册新职员 String str="INSERT INTO userinfo VALUES('"+User+"','"+Password+"','"+power+"','"+personneID+"','"+SEX+"','"+Birthday+"','"+Job+"','"+Id+"')"; 密码修改则即更新数据库。经过下列语句能够实现 String sql="UPDATE userinfo SET password='"+String.valueOf(newPassword.getPassword())+"' WHERE user='"+cook.user+"'"; 用户信息修改也是一个更新数据库操作,经过下列代码能够实现: String str="UPDATE userinfo SET sex='"+SEX+"',birthday='"+Birthday+"',job='"+Job+"',ID='"+Id+"' WHERE user='"+cook.user+"'"; stmt.executeUpdate(str); 3.3 管理员登录页面 销售人员身份登录成功进入销售人员登陆页面。其中包含商品销售、结账页面、其中个人信息修改和密码修改和管理员相同。销售页面经过输入商品编号和数量、在经过查询数据库中对应商品名称和数量,假如没有对用商品则经过语句 JOptionPane.showMessageDialog(this, "对不起,临时没有这件商品,请联络管理员添加!");提醒没有商品,假如商品数量不够则经过语句 JOptionPane.showMessageDialog(this, "对不起,此商品库存仅剩"+rs.getFloat("fullNumber"));给出销售人员销售数量超出库存量提醒信息。不过在添加商品时本系统是利用数据库查询,再经过一个数组利用编号和数量进行保留。因为假如直接利用从库存数据库中查询再添加到一个销售数据库中是直接将库存数据库中全部商品全部添加到了销售数据库表中。实现语句为 for(int i=0;i<rows;i++){ Name[i]=String.valueOf(tableModel.getValueAt(i, 0)); Q[i]=Float.parseFloat(String.valueOf(tableModel.getValueAt(i, 8))); } while(rs.next()){ for(int i=0;i<rows;i++){ String name=rs.getString("number"); if(name.equals(Name[i])){ Q[i]=rs.getFloat("fullNumber")-Q[i]; String sql="UPDATE commodity SET fullNumber='"+Q[i]+"' WHERE number='"+name+"'"; stmt1.executeUpdate(sql); } } 经过上述语句能够添加销售商品,在经过点击确定销售按钮时经过语句 int n=JOptionPane.showConfirmDialog(null, "确定出售列表中货物(累计:"+acount+"元)?");销售商品删除按钮是经过鼠标选中需要删除行进行删除。实施语句为: if(myTable.getSelectedRow()!= -1){ int row1= myTable.getSelectedRow(); tableModel.removeRow(row1); } else{ JOptionPane.showMessageDialog(this, "请选中要删除信息再点击删除!"); } } 运行截图 4 结论 经过此次论文,我学到了很多知识,,在论文写作过程中,经过查资料和搜集相关文件,培养了自学能力和编程能力。而且由原先被动接收知识转换为主动寻求知识,这能够说是学习方法上一个很大突破。我们可能会记住很多书本知识,不过经过课程设计,我们学会了怎样将学到知识转化为自己东西,学会了怎么愈加好处理知识和实践相结合问题。 次超市库存管理系统课程设计,让我充足利用自己所学知识,让我明白只有单纯理论知识是远远不够,只有经过实际锻炼才能愈加好利用所掌握基础知识,才能在原有基础上提升自己能力,提升自己处理问题能力。在这短短一个星期内,查阅相关java学习资料和数据库,设计规则,代码编写及到最终调试。在设计过程中,经过对控件事件处理,界面布局,代码调试,充足锻炼了自己思维,取得了充足实际经验,提升了处理问题能力,同时也提升了对问题思索应急能力和抗压力能力。 经过一个星期努力,即使设计已经完成,但仍然有很多模块和功效要完善,存在很多美中不足之处。不过基础上还能满足小型超市管理。在论文写作过程中也学到了做任何事情所要有态度和心态,对于出现任何问题和偏差全部不要轻视,要经过正确路径去处理,在做事情过程中要有耐心和毅力,只要坚持下去就能够找到思绪去处理问题。 五、问题和讨论 问题一 页面跳转能够经过一个鼠标监听器实现,当鼠标点击按钮时事件被出发,经过隐藏目前页面显示需要目标页面。本程序则是经过三个抽象方法实现该功效。 鼠标监听函数: public abstract void initActionListener(); 页面显示函数 public abstract void show(); 目前页面隐藏函数 public abstract void hide(); 问题二 在销售页面中添加销售商品,我们刚开始实现从酷讯数据库中去查询对应编号商品,然后将对用商品添加到一个临时销售商品数据库保留表,不过早实现过程中,假如查到该商品存在,经过编号主键将商品插入语句(insert into )插入到销售表,但发觉此操作操作结果是只要一个条件符合查询条件就是将库存表中全部统计全部插入到销售表中。对于该问题处理措施是我们想到了JSP中Cookies(Cookies是一个能够让网站服务器把少许数据储存到用户端硬盘或内存,或是从用户端硬盘读取数据一个技术)实现了能够将需要销售商品临时保留,当点击确定销售以后要,再经过循环表中每一行将对应数据清除。实现函数为: for(int i=0;i<rows;i++){ tableModel.removeRow(i); }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 专业课程 设计 超市 标准 管理 系统 实现
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文