版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《软件工程课程设计》报告项目题目:设备管理系统班级:组长:组员姓名:说明一、设计项目:设备管理系统二、小组成员姓名学号班级三、任务分配情况姓名需求分析报告设计说明书测试说明书目录1.项目开发目的和意义 设备管理系统基本信息购置申请设备管理系统基本信息购置申请启用和封存管理报废表日常维修表申请部门申请理由型号规格设备数量设备名称技术要求交接记录3.3详细设计及实现共分六个模块,各模块内容如下:设备的基本信息管理:设备名称、规格/型号、产地、价格、原台账数、购入时间、是否在建、整机、使用时间、折价年限、设备存放车间、现台账数、车间号、新开发、性能、凭证号数、设备原号、备注。设备购置申请管理:设备名称、型号规格、数量、要求进货时间、申请理由、申请部门、申请时间、主要技术要求。设备启用和封存管理:设备名称、设备编号、型号/规格、封存地点、封存日期、启封日期、技术状况随机附件、备注,申请设备封存理由(启封)原因、使用部门意见、设备科意见、制造部意见、副总经理批准、申请单位负责人。设备报废管理:设备名称、设备编号、型号/规格、安装地点、申请设备报废原因、备注,报废设备处置方案、使用部门负责人、设备科、制造部、副总经理审批。日常维修管理:日期、机床编号、责任人、检查人。输入完成后,自动生成上月21日到本月20日的监督内容子表,并逐条输入每日监督内容,分成包洁区卫生(生产区域卫生)类:地面、墙壁、玻璃、工具箱;设备类:机床外表、导轨丝杆清洁无拉伤加油、其他;定置摆放类:工装刀量具摆放、余料摆放、其他;及其他规章制度遵守情况、处置措施、检查人、监督人。设备交接记录管理:输入设备编号,自动根据设备检查项目表中得到所有项目及分数生成多条记录,自动记录日期、设备编号、检查项目及状况、标准、分数,选择班次(两班制的,1表示白班,2表示夜班;三班制的,1表示白班1,2表示白班2,3表示夜班),输入各项目的班组自查结果,自动生成每日评分,记录交班人、接班人,如果每日评分低于合格分数的,需要输入车间处理结果和监督抽查结果。3.3.1系统数据流图设备管理系统数据流图图3-1设备管理系统第0层数据流图图3-2设备管理系统第1层数据流图图3-3设备管理系统第2层数据流图设备维修数据流图图3-4设备维修数据流图设备报废数据流图图3-5设备报废数据流图3.3.2系统数据实体图以及E-R图实体图图3-6设备实体图图3-7设备配件实体系统E-R图图3-8系统E-R图3.3.3数据库表结表表3-1设备基本信息表字段名是否主键字段类型字段长度/B是否允许为空备注EquipId是char8否设备编号EquipName否varchar20否设备名称Type否varchar20是型号EquiKindId否char5是设备类型编号ManuFacturer否varchar50是制造厂商ManuDate否char8是制造日期BuyDate否char8是购买日期FixDate否char8是安装完成日期FixPlace否varchar50是安装地点PreUseYear否int4是预定使用年限PreSerCyc否varchar10是预定维修周期Code否int4是复杂系数Apperance否varchar10是外观尺寸Specs否varchar10是规格Weight否varchar10是重量Parameter否varchar100是技术参数Condition否varchar100是使用环境说明表3-2设备购置申请表字段名是否主键字段类型字段长度/B是否允许为空备注EquipId是char8否设备编码EquipName否varchar20否设备名称PriceOld否int4是购入价格PriceNow否int4是折价价格UserDep否varchar20是使用单位RecordTime是char8是记录时间RecordMan否varchar20是记录人表3-3设备启用和封存表字段名是否主键字段类型字段长度/B是否允许为空备注EquipId是char8否设备编号EquipName否varchar20否设备名称EquipKindId否char5是设备类型编号StopPropeerty否varchar20是停运性质StopKind否varchar20是停运类型StopTime是char8是停机日期时间IntogetherDate否char8是并网日期时间StopReason否varchar100是停运原因StopMinutes否int4是停运分钟数Hitch否int4是故障次数HitchMinutes否int4是故障分钟StandbuTimes否int4是备用次数StandbyMinutes否int4是备用分钟FixTimes否int4是大中小修次数FixMinutes否int4是大中小修分钟Linjian否int4是临检次数LinjianMinutes否int4是临检分钟表3-4设备报废表字段名是否主键字段类型字段长度/B是否允许为空备注EquipId是char8否设备编号EquipName否varchar20否设备名称RejectTime否int4是报废时间RejectReason否varchar50是报废原因Type否varchar20是型号Manufacturer否varchar20是制造厂商BuyDate否char8是购买日期FixDate否char8是安装完成日期PreUseYear否int4是预定使用年限Apperance否varchar10是外观尺寸Specs否varchar10是规格Weight否varchar10是重量Parameter否varchar100是技术参数PriceOld否int4是购入价格PriceReject否int4是报废前折价价格表3-5设备维修记录表字段名是否主键字段类型字段长度/B是否允许为空备注EquipId是char8否设备编码EquipName否varchar20否设备名称NowTime是char8否当前时间ExamineKind否varchar8是检修类别,取值为:检修、故障维修ExamineId否char8是检修报告编号ExamineTime否char8是检修日期时间ServiceTime否char8是维修日期时间ServiceDeal否varchar100是维修处理描述DealMan否varchar10是负责人Fee否int4否费用表3-6设备交接记录表字段名是否主键字段类型字段长度/B是否允许为空备注EquipId是char8否设备编号EquipName是varchar20否设备名称CheckDate是char8是检测日期CheckMan否varchar30是记录人CheckContent否varchar100是运行状况表3.3.4系统界面图3-9用户信息管理界面图3-10设备基本信息录入界面图3-11设备维修记录界面图3-12报废管理界面3.3.5系统测试白盒测试:程序代码:(管理员注册模块)this.yonghuming.getTextthis.yonghuming.getText();//用户名Stringmima=newString(jPasswordField1.getPassword());//密码Stringqudmima=newString(jPasswordField2.getPassword());//确定密码Stringselecturl="select*fromguanliwhere用户名='"+name+"'";regetime=newSimpleDateFormat("yyyy-MM-dd-HH:mm:ss",Locale.SIMPLIFIED_CHINESE);Stringstrtime=regetime.format(newDate());StringregeStr="insertintoguanlivalues('"+name+"','"+mima+"','"+strtime+"')";if(name.equals("")){JOptionPane.showMessageDialog(this,"用户名不能为空","对不起!",JOptionPane.INFORMATION_MESSAGE);}else{try{rs=stmt.executeQuery(selecturl);if(rs.next())JOptionPane.showMessageDialog(this,"此用户已注册","对不起!",JOptionPane.INFORMATION_MESSAGE);elseif(mima.equals(qudmima)){stmt.executeUpdate(regeStr);this.dispose();JOptionPane.showMessageDialog(this,"注册成功","你好!",JOptionPane.INFORMATION_MESSAGE);stmt.close();con.close();}else{JOptionPane.showMessageDialog(this,"两次密码不一致","对不起!",JOptionPane.INFORMATION_MESSAGE);}}catch(SQLExceptionse){se.printStackTrace();}}流程图1.语句覆盖1)主要特点:语句覆盖是最起码的结构覆盖要求,语句覆盖要求设计足够多的测试用例,使得程序中每条语句至少被执行一次。2)测试用例:空(任意)路径1Aaa路径2Aab路径4Baa路径3b用户已存在3)优点:可以很直观地从源代码得到测试用例,无须细分每条判定表达式。4)缺点:由于这种测试方法仅仅针对程序逻辑中显式存在的语句,但对于隐藏的条件和可能到达的隐式逻辑分支,是无法测试的。在本例中去掉了语句1—〉T去掉,那么就少了一条测试路径。在if结构中若源代码没有给出else后面的执行分支,那么语句覆盖测试就不会考虑这种情况。但是我们不能排除这种以外的分支不会被执行,而往往这种错误会经常出现。再如,在Do-While结构中,语句覆盖执行其中某一个条件分支。那么显然,语句覆盖对于多分支的逻辑运算是无法全面反映的,它只在乎运行一次,而不考虑其他情况。2、判定覆盖1)主要特点:判定覆盖又称为分支覆盖,它要求设计足够多的测试用例,使得程序中每个判定至少有一次为真值,有一次为假值,即:程序中的每个分支至少执行一次。每个判断的取真、取假至少执行一次。2)用例设计:空aa(一次假一次真)路径23)优点:判定覆盖比语句覆盖要多几乎一倍的测试路径,当然也就具有比语句覆盖更强的测试能力。同样判定覆盖也具有和语句覆盖一样的简单性,无须细分每个判定就可以得到测试用例。4)缺点:往往大部分的判定语句是由多个逻辑条件组合而成(如,判定语句中包含AND、OR、CASE),若仅仅判断其整个最终结果,而忽略每个条件的取值情况,必然会遗漏部分测试路径。3、条件覆盖1)主要特点:条件覆盖要求设计足够多的测试用例,使得判定中的每个条件获得各种可能的结果,即每个条件至少有一次为真值,有一次为假值。2)用例设计:空bb(一次假一次真)路径23)优点:显然条件覆盖比判定覆盖,增加了对符合判定情况的测试,增加了测试路径。4)缺点:要达到条件覆盖,需要足够多的测试用例,但条件覆盖并不能保证判定覆盖。条件覆盖只能保证每个条件至少有一次为真,而不考虑所有的判定结果4、判定/条件覆盖1)主要特点:设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身所有可能结果也至少出现一次。2)用例设计:Aaa路径2Aab路径43)优点:判定/条件覆盖满足判定覆盖准则和条件覆盖准则,弥补了二者的不足。4)缺点:判定/条件覆盖准则的缺点是未考虑条件的组合情况。5、组合覆盖1)主要特点:要求设计足够多的测试用例,使得每个判定中条件结果的所有可能组合至少出现一次。2)用例设计:空(任意)路径1Aaa路径2Aab路径4Baa路径3b用户已存在3)优点:多重条件覆盖准则满足判定覆盖、条件覆盖和判定/条件覆盖准则。更改的判定/条件覆盖要求设计足够多的测试用例,使得判定中每个条件的所有可能结果至少出现一次,每个判定本身的所有可能结果也至少出现一次。并且每个条件都显示能单独影响判定结果。4)缺点:线性地增加了测试用例的数量。6、路径覆盖1)主要特点:设计足够的测试用例,覆盖程序中所有可能的路径。2)用例设计::空(任意)路径1Aaa路径2Aab路径4Baa路径3b用户已存在3)优点:这种测试方法可以对程序进行彻底的测试,比前面五种的覆盖面都广。4)缺点:由于路径覆盖需要对所有可能的路径进行测试(包括循环、条件组合、分支选择等),那么需要设计大量、复杂的测试用例,使得工作量呈指数级增长。而在有些情况下,一些执行路径是不可能被执行的,如:这两个语句实际只包括了2条执行路径,即A为真或假时候对B和D的处理,真或假不可能都存在,而路径覆盖测试则认为是包含了真与假的4条执行路径。这样不仅降低了测试效率,而且大量的测试结果的累积,也为排错带来麻烦。总结白盒测试是一种被广泛使用的逻辑测试方法,是由程序内部逻辑驱动的一种单元测试方法。只有对程序内部十分了解才能进行适度有效的白盒测试。但是贯穿在程序内部的逻辑存在着不确定性和无穷性,尤其对于大规模复杂软件。因此我们不能穷举所有的逻辑路径,即使穷举也未必会带来好运(穷举不能查出程序逻辑规则错误,不能查出数据相关错误,不能查出程序遗漏的路径)。那么正确使用白盒测试,就要先从代码分析入手,根据不同的代码逻辑规则、语句执行情况,选用适合的覆盖方法。任何一个高效的测试用例,都是针对具体测试场景的。逻辑测试不是片面的测试正确的结果或是测试错误的结果,而是尽可能全面地覆盖每一个逻辑路径。4.实践总结4.1项目小结系统优缺点1.优点1、本系统根据派企业设备的实际需求和需要进行设计和开发,切合实际。2、通用性能好,实用性强,易于推广,可扩展性好,此系统可以运行在多种操作系统平台上(Windows9x/WindowsNT/Windows2000/WindowsXP)。3、功能强大,综合性强。4、有机结合计算机自动处理与人工处理。5、用户界面友好,模块清晰,操作简单,使用方便,一看就懂,一学就会,设有帮助功能。6、扩充性好,发展潜力大。7、查询方便接近智能化。8、引入了身份验证模块保密工作做到了实处。2.缺点本系统基本满足了设备管理的需求,但由于各个企业性质和使用设备不尽相同,因此具体问题还要具体分析,需要在现有的系统上对某些字段进行适当的修改。此外,本系统提供的报表有限,下一步可以在此基础上增加更多的报表,扩充系统的功能。4.2实践感想这次的课设,是我们大学以来作得第一次大一点的程序是做的最认真的一次。因为JAVA对我们来说,有着非比寻常的意义。JAVA是一种简单的,面向对象的,分布式的,解释的,键壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。它有着平台无关性、安全性、面向对象、分布式、键壮性。它虽然与C和C++语言十分相似,但它又去除这两门语言中了指针运算,释放内存等一系列复杂的操作,这讲减少平常出错的50%。正因为拥有了这些优势,JAVA也成为了现在使用最多的程序语言。对我们来说,JAVA有着更特殊的意义。前段时间的JAVA学习,让我们感觉到它的优越性,随着对JAVA学习和研究的深入,让我们更加热爱这么语言。虽然学习JAVA有一段时间了,但实际上并没有进行过比较正式的程序开发,当我们自己动手时,却发现困难重重。首先面对的是需求分析,虽然只有短短的几段话,但却是字字珠玑,理解错一个字,就会导致程序极其严重的错误到了具体编程,我们进行了分配,每个人都在自己的任务中遇到了各式各样的困难。到了最后,连接各个模块的时候,因为平时沟通的不多,大家都是各干各的,导致模块连接不上,不得不从头开始分析其中的原因,费了一番周折,才把程序最后完成。在这门课程的学习和课设中,让我们收获了许多东西,让我们了解了有关java数据库编程的一些知识,也得到了在团队开发中的经验,这些东西将对我们将来的职业生涯产生极大的影响。衷心感谢安老师给我们的教导!参考文献[1]张海藩.软件工程导论.清华大学出版社,2003:136-258[2]刘建元,李卫青,陈伟光.计算机专业英语——CoputingEssentials.高等教育出版社,2003:123-253[3]苗雪兰,刘瑞新,梁永霖.数据库系统实验指导和习题解答.机械工业出版社,2004:23-68[4]夏邦贵,郭胜.SQLServer数据库开发入门与范例解析,2004:63-256[5]萨师煊,王珊.数据库系统概论.第三版.高等教育出版社,2000:125-526[6]赛奎春,高春艳,李俊民等.VisualBasic工程应用与项目实践.机械工业出版社,2005:98-157[7]龚沛曾,陆慰民,杨志强.VisualBasic程序设计教程.高等教育出版社,2000:145-245[8]刘舫.VisualBasic编程篇.VisualBasic编程篇.电子工业出版社,2004:254-321[9]刘韬,骆娟,何旭洪.VisualBasic数据库系统开发实例导航.第二版.人民邮电出版社,2003:152-368[10]郑阿奇.VisualBasic实用教程.第二版.电子工业出版社,2004:152-321[11]郑阿奇.SQLServer实用教程.电子工业出版社,2006:201-303[12]高守传.精通SQL结构化查询语言详解.北京人民邮电出版社,2005:201-306[13]肖慎勇.SQLSerVer数据库管理与开发.清华大学出版社,2006:147-520[14]高守传.精通SQL——结构化查询语言详解.北京人民邮电出版2005:14-263[15]萨师煊,王珊.数据库系统概论.第三版高等教育出版社,2004:321-620附录:详细设计.(一)界面设计:1.登入界面2.主界面:2.购置登记界面(其余添加记录界面相似)3.修改删除记录界面(其余修改删除界面类似)4.用户管理界面(员工管理界面类似)5.修改密码(管理员与员工同一个窗口)6.注册(管理员与员工类似)(二)程序设计全部类:(共20个类)1.AccessConnection类:方法:getcon()负责加载jdbc驱动,与access数据库建立连接,publicConnectiongetcon()throwsSQLException{ Stringurl="jdbc:odbc:java"; returnDriverManager.getConnection(url,"",""); }2.AddBaofeiRecord类:用于添加报废记录AddGoumaiRecord类:用于添加购买记录AddWeixiuRecord类:用于添加维修记录AddZhuanjieRecord类:用于添加转借记录此四个类设计相同:主要成员:privateConnectioncon;privateStatementstmt;privateResultSetrs;有关设备的信息局部变量(设备号,所属部门,设备编号,经手人员等):Stringid,Stringname,Stringpattern,Stringkind,Stringleader,StringemployeeStringpart,Stringindate,Stringdiedate,Stringreason,Stringgetway对表操作的语句Stringbaofeiurl=null;Stringupdateurl=null;等=null;closeall():在窗口关闭的时候,断开与数据库连接initComponets():初始化生成窗口initCon():通过AccessConnectio.java类建立与数据库的连接jButton1ActionPerformed():确定按钮对数据库进行操作jButton2ActionPerformed():取消按钮关闭窗口,断开数据库连接AddBaofeiRecord类:确定按钮的事件处理:AddGoumaiFrame类:AddWeixiuFrame类:AddZhuanjieFram类:privatevoidjButton1ActionPerformed(java.awt.event.ActionEventevt){//TODO将在此处添加您的处理代码:Stringid=this.shebeihao.getText();Stringname=(String)this.shebeming.getSelectedItem();Stringpattern=this.xinnghao.getText();Stringkind=(String)this.zhonglei.getSelectedItem();Stringleader=this.pizhuanrenyuan.getText();Stringemployee=this.jingshourenyuan.getText();Stringpart=(String)this.suoshubumen.getSelectedItem();Stringindate=this.gouririqi.getText();Stringdiedate=this.baofeiriqi.getText();Stringreason=this.baofeiyuanying.getText();Stringgetway=this.chulifangshi.getText();Stringgetcount="select*frombaofei";Stringbaofeiurl=null;intj=1;if(id.equals("")||name.equals("")||pattern.equals("")||kind.equals("")||leader.equals("")||employee.equals("")||part.equals("")||indate.equals("")||diedate.equals("")||reason.equals("")||getway.equals("")){JOptionPane.showMessageDialog(this,"所有信息都必须填写","警告!!",JOptionPane.INFORMATION_MESSAGE);}else{try{try{rs=stmt.executeQuery(getcount);while(rs.next())j++;}catch(SQLExceptionex){ex.printStackTrace();}baofeiurl="insertintobaofeivalues("+j+",'"+id+"','"+name+"','"+pattern+"','"+kind+"','"+leader+"','"+employee+"','"+part+"','"+indate+"','"+diedate+"','"+reason+"','"+getway+"')";stmt.executeUpdate(baofeiurl);//对报废表格进行操所Stringselecturl="select*fromshiyongwhere设备名='"+name+"'and所属部门='"+part+"'";rs=stmt.executeQuery(selecturl);if(rs.next()){Stringnumber1=rs.getString(3);intsum1=newInteger(number1).intValue();intsum=sum1-1;if(sum<0){JOptionPane.showMessageDialog(this,"您可能输错了,该部门在此之前已无此设备","警告!!",JOptionPane.INFORMATION_MESSAGE);}else{number=newInteger(sum).toString();Stringupdateurl="updateshiyongset数目='"+number+"'where设备名='"+name+"'and所属部门='"+part+"'";inti=stmt.executeUpdate(updateurl);//对库存表进行更新操作if(i>0){JOptionPane.showMessageDialog(this,"添加成功","",JOptionPane.INFORMATION_MESSAGE);dispose();closeall();}}}}catch(Exceptionse){//se.printStackTrace();JOptionPane.showMessageDialog(this,"您的输有误,请重试","警告!!",JOptionPane.INFORMATION_MESSAGE);}}}//建立数据库连接publicvoidinitCon(){try{con=newAccessConnection().getcon();stmt=con.createStatement();}catch(SQLExceptione){e.printStackTrace();}}//断开数据库连接privatevoidcloseall(){try{con.close();stmt.close();}catch(SQLExceptionex){ex.printStackTrace();}}3.ChangPasswordFrame类:修改管理员密码类方法:其中确定按钮就进行修改密码的事件处理方法:privatevoidjButton1ActionPerformed(java.awt.event.ActionEventevt){//TODO将在此处添加您的处理代码: Stringjiumima=newString(this.jiumima.getPassword());Stringxinmima=newString(this.xinmima.getPassword());Stringqueding=newString(quedingmima.getPassword());Stringupdateurl=null;Stringselecturl=null;//判断是那个用户类型的用户在修改密码LoadFrame.flag是标志哪个用户类型登陆系统//true为管理员false为工作人员if(LoadFrame.flag){System.out.println("guanliyuang");updateurl="updateguanliset密码='"+xinmima+"'where用户名='"+name+"'";selecturl="select*fromguanliwhere用户名='"+name+"'";}else{System.out.println("yuangong");updateurl="updateyuangongset密码='"+xinmima+"'where用户名='"+name+"'";selecturl="select*fromyuangongwhere用户名='"+name+"'";}try{rs=stmt.executeQuery(selecturl);if(rs.next()){mima=rs.getString(2);}}catch(Exceptionex){ex.printStackTrace();}if(!mima.equals(jiumima)){JOptionPane.showMessageDialog(this,"旧密码错误","对不起!",JOptionPane.INFORMATION_MESSAGE);}else{if(xinmima.equals("")){JOptionPane.showMessageDialog(this,"请输入新密码","对不起!",JOptionPane.INFORMATION_MESSAGE);}else{try{if(xinmima.equals(queding)){if(stmt==null){System.out.println("stmtweikong");}stmt.executeUpdate(updateurl);JOptionPane.showMessageDialog(this,"修改密码成功","恭喜!",JOptionPane.INFORMATION_MESSAGE);this.dispose();closeall();}else{JOptionPane.showMessageDialog(this,"两次密码不一致","对不起!",JOptionPane.INFORMATION_MESSAGE);}}catch(SQLExceptionse){se.printStackTrace();}}}}4.CheckPanel类:具有库存记录,购买记录,维修记录,报废记录,转借记录表格的面板组件,添加到mainFrame和WorkerFrame中可以进行查询构造函数:通过主窗口MainFrame传参给CheckPanel类生成查询结果publicCheckPanel(Stringquerykc,Stringqueryby,Stringqueryzj,Stringquerywx,Stringquerybf){this.querykc=querykc;this.queryby=queryby;this.queryzj=queryzj;this.querywx=querywx;this.querybf=querybf;initCon();initComponents();}生成表格的模型(库存)其余相似:privateDefaultTableModelinitialTableModel1(){Vectortitle=newVector();Vector rows=newVector();if(con==null||stmt==null){System.err.println("Thereisnodatabasetoexecutethequery.");}try{rs=stmt.executeQuery(querykc);title.add("ID");title.add("设备名");title.add("数量");title.add("种类");title.add("所属部门");rows=newVector();//查询结果填入表格while(rs.next()){VectornewRow=newVector();for(inti=1;i<=5;i++){newRow.addElement(rs.getObject(i));}rows.addElement(newRow);}}catch(SQLExceptionex){System.err.println(ex);}returnnewDefaultTableModel(rows,title);//rows为行,title为列名}5.InfoPanel类:查看员工信息,及每次用户登录记录信息的面板组件查询的信息一样生成在表格里用表格模型(与CheckPanel类相似)privateDefaultTableModelinitialTableModel1(){Vectortitle=newVector();Vector rows=newVector();。。。。。。。returnnewDefaultTableModel(rows,title);//rows为行,title为列名}6.ManagerRegedit类:新管理员注册类主要注册按钮进行注册事件处理方法:privatevoidjButton1ActionPerformed(java.awt.event.ActionEventevt){//TODO将在此处添加您的处理代码:Stringname=this.yonghuming.getText();Stringmima=newString(jPasswordField1.getPassword());Stringqudmima=newString(jPasswordField2.getPassword());Stringselecturl="select*fromguanliwhere用户名='"+name+"'";regetime=newSimpleDateFormat("yyyy-MM-dd-HH:mm:ss",Locale.SIMPLIFIED_CHINESE);Stringstrtime=regetime.format(newDate());StringregeStr="insertintoguanlivalues('"+name+"','"+mima+"','"+strtime+"')";if(name.equals("")){JOptionPane.showMessageDialog(this,"用户名不能为空","对不起!",JOptionPane.INFORMATION_MESSAGE);}else{try{rs=stmt.executeQuery(selecturl);if(rs.next())JOptionPane.showMessageDialog(this,"此用户已注册","对不起!",JOptionPane.INFORMATION_MESSAGE);elseif(mima.equals(qudmima)){stmt.executeUpdate(regeStr);this.dispose();JOptionPane.showMessageDialog(this,"注册成功","你好!",JOptionPane.INFORMATION_MESSAGE);stmt.close();con.close();}else{JOptionPane.showMessageDialog(this,"两次密码不一致","对不起!",JOptionPane.INFORMATION_MESSAGE);}}catch(SQLExceptionse){se.printStackTrace();}}}7.WorkerRegeditFrame类:员工注册类与管理员注册一样8.RedoBaofeiRecord类RedoWeixiuRecord类RedoGoumaiRecord类RedoZhuanjieRecord相似下面是RedoBaofeiRecord类中的方法具有jButton1修改,jButton2删除,jButton3取消三个按钮进行对数据库记录的修改修改按钮事件处理方法:privatevoidjButton1ActionPerformed(java.awt.event.ActionEventevt){//TODO将在此处添加您的处理代码:Stringid=this.jiluhao.getText();booleanflag=true;Stringname=null;Stringpart=null;//删除原先记录try{number=Integer.parseInt(id);if(number<1||number>this.count()){JOptionPane.showMessageDialog(this,"没有你想要修改的记录号,请重试","提示!!",JOptionPane.INFORMATION_MESSAGE);}}catch(Exceptione){JOptionPane.showMessageDialog(this,"你输入的是非法记录号,请重试","警告!!",JOptionPane.INFORMATION_MESSAGE);}Stringselecturl="select*frombaofei";Stringselecbaofei="select*frombaofeiwhereID="+number+"";Stringdelurl="deletefrombaofeiwhereID="+number+"";try{rs=stmt.executeQuery(selecbaofei);if(rs.next()){name=rs.getString(3);part=rs.getString(8);}stmt.executeUpdate(delurl);//删除记录rs=stmt.executeQuery(selecturl);//更改行号intj=0;while(rs.next())j++;//删除以后一共还有有多少行记录j=j+1;rs.beforeFirst();//rs指向第一条记录以前//判断删除的是第几行做出相应的处理if(number<j){if(rs.next()){rs.absolute(number);do{rs.updateInt(1,number);rs.updateRow();number++;}while(rs.next());}}//更新库存记录selecturl="select*fromshiyongwhere设备名='"+name+"'and所属部门='"+part+"'";rs=stmt.executeQuery(selecturl);if(rs.next()){Stringnumber1=rs.getString(3);intsum1=newInteger(number1).intValue();intsum=sum1+1;Stringnumberupdate=newInteger(sum).toString();Stringupdateurl="updateshiyongset数目='"+numberupdate+"'where设备名='"+name+"'and所属部门='"+part+"'";stmt.executeUpdate(updateurl);}}catch(SQLExceptionex){ex.printStackTrace();}//添加修改记录Stringbaofeiid=this.jiluhao.getText();id=this.shebeihao.getText();name=(String)this.shebeiming.getSelectedItem();Stringxinghao=this.xinghao.getText();Stringkind=(String)this.zhonglei.getSelectedItem();Stringleader=this.pizhunrenyuan.getText();Stringemployee=this.jishour.getText();part=(String)this.suoshubumen.getSelectedItem();Stringintime=this.goururiqi.getText();Stringbaofeitime=this.baofeiriqi.getText();Stringreason=this.baofeiyuanyin.getText();Stringgetway=this.chulifangshi.getText();Stringbaofeiurl=null;Stringgetcount="select*frombaofei";baofeiurl="updatebaofeiset设备号='"+id+"',设备名='"+name+"',型号='"+xinghao+"',种类='"+kind+"',"+"批准人员='"+leader+"',经手人员='"+employee+"',所属部门='"+part+"',购入日期='"+intime+"',报废日期='"+baofeitime+"',报废原因='"+reason+"',处理方式='"+getway+"'whereID="+number+"";if(id.equals("")||name.equals("")||xinghao.equals("")||part.equals("")||reason.equals("")||getway.equals("")||kind.equals("")||leader.equals("")||employee.equals("")){JOptionPane.showMessageDialog(this,"所有信息都必须填写","警告!!",JOptionPane.INFORMATION_MESSAGE);}else{intj=1;try{try{rs=stmt.executeQuery(getcount);while(rs.next())j++;}catch(SQLExceptionex){ex.printStackTrace();}baofeiurl="insertintobaofeivalues("+j+",'"+id+"','"+name+"','"+xinghao+"','"+kind+"','"+leader+"','"+employee+"','"+part+"','"+intime+"','"+baofeitime+"','"+reason+"','"+getway+"')";stmt.executeUpdate(baofeiurl);selecturl="select*fromshiyongwhere设备名='"+name+"'and所属部门='"+part+"'";rs=stmt.executeQuery(selecturl);if(rs.next()){Stringnumber1=rs.getString(3);intsum1=newInteger(number1).intValue();intsum=sum1-1;if(sum<0){JOptionPane.showMessageDialog(this,"您可能输错了,该部门在此之前已无此设备","警告!!",JOptionPane.INFORMATION_MESSAGE);}else{Stringxiugainumber=newInteger(sum).toString();Stringupdateurl="updateshiyongset数目='"+xiugainumber+"'where设备名='"+name+"'and所属部门='"+part+"'";inti=stmt.executeUpdate(updateurl);if(i>0){JOptionPane.showMessageDialog(this,"修改成功","提示",JOptionPane.INFORMATION_MESSAGE);dispose();closeall();}}}}catch(Exceptionse){//se.printStackTrace();JOptionPane.showMessageDialog(this,"您的输有误,请重试","警告!!",JOptionPane.INFORMATION_MESSAGE);}}}删除修改记录事件处理方法:privatevoidjButton2ActionPerformed(java.awt.event.ActionEventevt){//TODO将在此处添加您的处理代码:Stringid=this.jiluhao.getText();booleanflag=true;Stringname=null;Stringpart=null;if(id.equals("")){JOptionPane.showMessageDialog(this,"您还没有选要删除的记录","提示!!",JOptionPane.INFORMATION_MESSAGE);}else{try{number=Integer.parseInt(id);}catch(Exceptione){JOptionPane.showMessageDialog(this,"你输入的是非法记录号,请重试","警告!!",JOptionPane.INFORMATION_MESSAGE);flag=false;}if(flag){JOptionPanejp=newJOptionPane();inti=JOptionPane.showConfirmDialog(this,"确认要删除此记录","提示",JOptionPane.YES_NO_OPTION);if(i==JOptionPane.OK_OPTION){Stringselecturl="select*frombaofei";Stringselecbaofei="select*frombaofeiwhereID="+number+"";Stringdelurl="deletefrombaofeiwhereID="+number+"";try{rs=stmt.executeQuery(selecbaofei);if(rs.next()){name=rs.getString(3);part=rs.getString(8);}if(number<1||number>this.count()){JOptionPane.showMessageDialog(this,"没有你想要删除的记录","提示!!",JOptionPane.INFORMATION_MESSAGE);}else{stmt.executeUpdate(delurl);//删除记录rs=stmt.executeQuery(selecturl);//更改行号intj=0;while(rs.next())j++;//删除以后一共还有有多少行记录j=j+1;rs.beforeFirst();//rs指向第一条记录以前//判断删除的是第几行做出相应的处理if(number<j){if(rs.next()){rs.absolute(number);do{rs.updateInt(1,number);rs.updateRow();number++;}while(rs.next());}}}//更新库存记录selecturl="select*fromshiyongwhere设备名='"+name+"'and所属部门='"+part+"'";rs=stmt.executeQuery(selecturl);if(rs.next()){Stringnumber1=rs.getString(3);intsum1=newInteger(number1).intValue();intsum=sum1+1;Stringnumberupdate=newInteger(sum).toString();Stringupdate
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年心理统计考研模拟试题及答案详解
- 2026年财务专业考试题库(含答案)
- 中国丁腈橡胶(NBR)O形密封圈行业市场前景预测及投资价值评估分析
- 课题二溶解度中学课件
- 2026年山西省苏教版初中体育健康标准测试卷
- 《GBT 17625.9-2016电磁兼容 限值 低压电气设施上的信号传输 发射电平、频段和电磁骚扰电平》从合规成本到利润增长全案:避坑防控+降本增效+商业壁垒构建
- 2026年饮食营养与营养健康测试题
- 2025-2026学年采菱音乐教案
- 2026年北师大版数学四年级下册第四单元知识梳理模拟试卷及答案
- 2026合成生物学发展现状及产业化前景预测研究报告
- GEELY汽车服务顾问课件
- 实验动物饲养培训课件
- (2025)十八项医疗核心制度考试试题库及参考答案
- 质量诚信培训资料
- 新一代数据中心建设投资协议
- 宁夏林利煤炭有限公司煤矿三号井“9·27”重大瓦斯爆炸事故调查报告
- HGT21581-2012 自控安装图册
- 临床用血质量控制指标(2019版)
- 初等数学研究程晓亮刘影课后习题答案
- AQ 1095-2014 煤矿建设项目安全预评价实施细则(正式版)
- 《水电站闸门和启闭机运行维护技术规程》
评论
0/150
提交评论