实验室设备管理系统实验25449.docx
实验项项目:实实验室设设备管理理系统一、 项目管理理:阶段时间及实实验任务参与人员员产生文档档项目管理理20099.100.277 实验一确定课题题,组织织组员,合合理分工工。分工明细细及项目目进程表表需求分析析20099.100.277 实验一确定软件件的功能能和需求求、性能能需求和和运行环环境约束束,编制制软件需需求规格格说明、软软件系统统的确认认测试准准则需求规格格说明书书确认测试试准则概要设计计20099.100.277 验一建立软件件系统的的总体结结构和模模块间的的关系,定定义各功功能模块块的接口口,涉及及全局数数据库,规规定涉及及约束,制制定组装装测试计计划。概要设计计说明书书组装测试试计划数据库设设计20099.100.288实验二二根据概要要设计对对本软件件所必须须的数据据库进行行分析及及设计数据库设设计说明明书详细设计计20099.100.288实验二二对概要设设计产生生的功能能模块逐逐步细化化,形成成若干个个可编程程的程序序模块模块测试试方案编码20099.100.28820099.100.299实验三根据详细细设计文文档将详详细设计计转化为为所要求求的编程程语言或或数据库库语言的的程序,并并对这些些程序进进行调试试和程序序单元测测试,验验证程序序模块与与详细设设计文档档的一致致性源程序清清单测试单元测试试20099.100.28820099.100.299实验三采用白盒盒测试技技术进行行如下测测试:1. 模块接口口测试;2. 模块局部部数据结结构测试试;3. 模块边界界条件测测试;4. 模块中所所有独立立执行通通路测试试;5. 模块的各各条错误误处理通通路测试试。单元测试试报告综合测试试20099.100.299实验三发现与接接口有关关的各种种错误综合测试试报告确认测试试20099.100.299实验三三检查软件件是否满满足软件件需求说说明书中中的确认认标准确认测试试报告项目实施施20099.100.29920099.100.300实验四完善程序序流图书写软件件使用说说明书和和用户手手册项目开发发总结报报告最终用户户手册二、软件件需求分分析1 软件件系统需需求描述述:实验室设设备管理理系统是是利用EEcliipsee作为开开发工具具、sqqlseetveer作为为数据库库的系统统。要求求实现如如下功能能:所有工工作由专专门人员员负责完完成,其其他人不不得任意意使用;对于已已彻底损损坏的作作报废处处理,同同时详细细记录有有关信息息;对于有有严重问问题(故故障)的的要即使使修理,并并记录修修理日期期、设备备名、修修理厂家家、修理理费、责责任人等等;对于急急需但又又缺少的的设备需需以“申请表表”的形式式送交上上级领导导请求批批准购买买。新设设备购入入后要立立即进行行设备登登记(包包括类别别、设备备名、型型号、规规格、单单价、数数量、购购置日期期、生产产厂家、购购买人等等),同同时更新新申请表表的内容容;随时对对现有设设备及其其修理、报报废情况况进行统统计、查查询,要要求能够够按类别别和时间间段(某某日期之之前)查查询。本管理系系统通过过计算机机对实验验设备进进行自动动管理,设设备管理理员可以以直接在在计算机机实现实实验设备备的信息息管理,并并在一定定程度上上实现自自动化,改改善了工工作运行行效率和和效果。2 软件件系统数数据流图图1) 顶层数据据流图2) 0层数据据流图3) 一层数据据流图4)总数数据流图图3软件系系统数据据字典:1、 数据流条条目 登陆信息息输入:设设备管理理员输出:身身份验证证1描述:登登陆信息息=用户户名+密密码+登登陆权限限 查询信息息输入:合合法人员员对设备备的查询询操作输出:设设备信息息表描述:查查询信息息=设备备名/型型号/类类别/购购置日期期 维修信息息输入:所所需维修修设备的的信息输出:确确定维修修设备的的记录描述:维维修信息息=设备备名+修修理日期期+修理理厂家+修理费费+负责责人 新设备输入:购购买设备备的信息息输出:确确定购买买的新设设备的记记录描述:新新设备=类别+设备名名+型号号+规格格+单价价+数量量等 报废设备备输入:所所需报废废的设备备的信息息输出:报报废的设设备记录录描述:报报废设备备=类别别+设备备名+型型号等 审核信息息输入:审审核3输出:上上级领导导描述:审审核信息息=报废废设备信信息/新新设备购购买记录录2、 加工条目目身份验证证1,统统计查询询2.11,维修修2.22,购买买2.33,报废废2.44,生产产报表33.1,审审核3.23、 文件条目目 登陆表输入:身身份验证证1输出:身身份验证证1数据结构构:用户户名+密密码+登登陆权限限 设备基本本信息表表输入:统统计查询询2.11数据结构构:类别别+设备备名+型型号+规规格等 维修记录录表输入:统统计查询询2.11,维修修2.22输出:统统计查询询2.11数据结构构:设备备名+修修理日期期+修理理厂家+修理费费+责任任人等 新设备表表输入:统统计查询询2.11,购买买2.22输出:统统计查询询2.11数据结构构:类别别+设备备名+型型号+规规格+单单价+数数量+生生产厂家家+购买买人等 报废记录录表输入:报报废2.4,统统计查询询2.11,生产产报表33.1输出:统统计查询询2.11,生产产报表33.1数据结构构:类别别+设备备名+型型号等 申请表输入:统统计查询询2.11,生产产报表33.1输出:统统计查询询2.11,生产产报表33.1,购购买2.3数据结构构:设备备名+型型号+规规格+数数量+负负责人三:软件件设计1实验室室设备管管理系统统模块结结构图实验室设备管理系统上级领导操作设备管理员操作系统功能操作审核管理设备报废管理设备购买管理设备维修管理设备查询管理系统维护管理用户登陆管理2界面设设计3实验室室设备管管理系统统数据设设计4管理系系统其中中的3个个模块的的详细设设计 上级领导导操作模模块设备管管理员操操作模块块 统功能操操作模块块5数据库库设计 登陆表列名数据类型型长度允许空用户名varccharr50not nulll密码varccharr50not nulll登陆权限限charr10not nulll 设备基本本信息表表列名数据类型型长度允许空设备型号号varccharr10not nulll设备名varccharr20not nulll规格varccharr10not nulll单价floaat8nulll购买日期期dateetimme8nulll生产厂家家varccharr20nulll购买人varccharr10nulll数量Int4nulll 维修记录录表列名数据类型型长度允许空列列名设备型号号varccharr10not nulll设备名varccharr20not nulll维修日期期dateetimme8nulll维修厂家家varccharr30nulll维修费用用floaat8nulll责任人varccharr10nulll 报废记录录表列名数据类型型长度允许空设备型号号varccharr10not nulll设备名varccharr20not nulll报废日期期dateetimme8nulll责任人varccharr10nulll 申请表列名数据类型型长度允许空设备名varccharr10not nulll日期Dataatimme8not nulll规格varccharr10not nulll数量int4nulll申请人Varccharr10Nulll四、编码码与单元元测试1、各模模块示意意图2、用户户登录界界面:packkagee shhebeeiguuanlli;impoort javva.aappllet.*;impoort javva.ssql.*;impoort javva.aawt.*;impoort javva.aawt.eveent.*;impoort javvax.swiing.*;impoort comm.boorlaand.jbccl.llayoout.*;/*<p>>Tittle:实验室室设备管管理系统统登录界界面</p>*auuthoorgeengddexiin*veersiion11.0*/publliccclasss LLog exttendds JJFraame /* * 构构建显示示对象 */ JPPaneel cconttenttPanne; XYYLayyoutt xYYLayyoutt1 = neew XXYLaayouut(); JPPasssworrdFiieldd paasswwordd = neww JPPasssworrdFiieldd(); JLLabeel jjLabbel11 = neww JLLabeel(); JLLabeel jjLabbel22 = neww JLLabeel(); JLLabeel jjLabbel44 = neww JLLabeel(); JTTexttFieeld jTeextFFielld1 = nnew JTeextFFielld(); JLLabeel jjLabbel33 = neww JLLabeel(); JLLabeel jjLabbel55 = neww JLLabeel(); JLLabeel jjLabbel66 = neww JLLabeel();publlic Logg() enaableeEveentss(AWWTEvventt.WIINDOOW_EEVENNT_MMASKK);try jjbInnit(); catcch(EExceeptiion e) ee.prrinttStaackTTracce(); privvateevoiid jjbInnit() tthroows Exccepttionn conttenttPanne = (JJPannel) thhis.gettConntenntPaane();passsworrd.aaddAActiionLListteneer(nnew Logg_paasswwordd_acctioonAddaptter(thiis);conttenttPanne.ssetLLayoout(xYLLayoout11);thiss.seetSiize(neww Diimennsioon(5500, 4000);thiss.seetTiitlee("实实验室设设备管理理系统"");jLabbel11.seetFoont(neww jaava.awtt.Foont("SaansSSeriif", 0, 255);jLabbel11.seetFooreggrouund(Collor.redd);jLabbel11.seetTeext("欢迎迎进入实实验室设设备管理理系统"");jLabbel22.seetFoont(neww jaava.awtt.Foont("SaansSSeriif", 0, 200);jLabbel22.seetTeext("姓名名");jTexxtFiieldd1.ssetTTextt(""");jLabbel33.seetFoont(neww jaava.awtt.Foont("SaansSSeriif", 0, 200);jLabbel33.seetTeext("密码码");jLabbel44.seetFoont(neww jaava.awtt.Foont("SaansSSeriif", 0, 200);jLabbel44.seetTeext("开发发人员:耿德新新 蔺明明亮 毛毛冬冬"");jLabbel55.seetFoont(neww jaava.awtt.Foont("SaansSSeriif", 0, 200);jLabbel55.seetTeext("李章章华 吕吕文强 顾海驹驹");jLabbel66.seetFoont(neww jaava.awtt.Foont("SaansSSeriif", 0, 155);jLabbel66.seetFooreggrouund(Collor.redd);jLabbel66.seetTeext("交流流:geengddxinn1663.ccom"");conttenttPanne.aadd(jLaabell1, neewXYYConnstrrainnts(80, 100, 3350, 344);conttenttPanne.aadd(jLaabell2, nnewXXYCoonsttraiintss(922, 1142, -11, -1);conttenttPanne.aadd(jTeextFFielld1, nnewXXYCoonsttraiintss(1330, 1455, 991, 26);conttenttPanne.aadd(jLaabell3, nnewXXYCoonsttraiintss(2222, 1444, -1, -1);conttenttPanne.aadd(passswoord, neewXYYConnstrrainnts(2633, 1144, 1005, 28);conttenttPanne.aadd(jLaabell4, nnewXXYCoonsttraiintss(500, 2250, -11, -1);conttenttPanne.aadd(jLaabell5, nnewXXYCoonsttraiintss(1550, 2800, -1, -1);conttenttPanne.aadd(jLaabell6, nnewXXYCoonsttraiintss(1000, 3400, -1, -1); prottecttedvvoidd prroceessWWinddowEEvennt(WWinddowEEvennt ee) supeer.pproccesssWinndowwEveent(e);if (e.ggetIID() = WiindoowEvventt.WIINDOOW_CCLOSSINGG) SSysttem.exiit(00); voidd paasswwordd_acctioonPeerfoormeed(AActiionEEvennt ee) try Fraame11 Fraame= neew FFramme1(); FFramme.sshoww(); vaaliddID(); catcch (Exccepttionn eww) SSysttem.outt.prrinttln(ew.gettMesssagge(); thiss.seetViisibble(fallse); /连接接sqllvoidd vaaliddID() try SStriing strr1, strr2; sstr11 = jTeextFFielld1.gettTexxt(); sstr22 = passswoord.gettTexxt(); CConnnecttionn coon = nuull;Striing urll = "jddbc:odbbc:sshebbeigguannli""Striing useer = """Striing passswoord = """Classs.fforNNamee("suun.jjdbcc.oddbc.JdbbcOddbcDDrivver"");con = DDrivverMManaagerr.geetCoonneectiion(urll,usser,passswoord);Stattemeent stmmt =conn.crreatteSttateemennt();/执行行动态的的sqll语句 PPreppareedSttateemennt ppstmmt = coon.ppreppareeStaatemmentt(/依据据读者的的名字查查询读者者的信息息的sqql语句句"usee shhebeeiguuanlli sseleect * ffromm 登录录 whheree ussernnamee=?"");/将读读者的名名字添加加到具体体的sqql语句句中 ppstmmt.ssetSStriing(1, strr1);/使用用RessulttSett中的方方法exxecuuteQQuerry()来完成成sqll语句的的执行 RResuultSSet ress = psttmt.exeecutteQuueryy();/使用用gettStrringg()来来获取ssql查查询的结结果if (!rres.nexxt() | rres.gettStrringg("ppasssworrd") = nuull) JOOptiionPPanee.shhowMMesssageeDiaalogg(thiis, "查无无此人"", "错错误", JOOptiionPPanee.ERRRORR_MEESSAAGE); elsse / iif ( !rres.gettStrringg(2).eqqualls(sstr22) if ( !rres.gettStrringg(2).eqqualls(sstr22) JOpptioonPaane.shoowMeessaageDDiallog(thiis, "密码码错误"", "错错误", JOOptiionPPanee.ERRRORR_MEESSAAGE); eelsee Sysstemm.ouut.pprinntlnn("正正确");do SSysttem.outt.prrinttln(ress.geetSttrinng(11)+"":" + rres.gettStrringg(2); whhilee (rres.nexxt(); lloadder(); ppstmmt.cclosse(); ccon.cloose(); catcch (ClaassNNotFFounndExxcepptioon ee) SSysttem.outt.prrinttln(e.ggetMMesssagee(); caatchh (SSQLEExceeptiion eddd) eedd.priintSStacckTrracee() ; SSysttem.outt.prrinttln(eddd.geetMeessaage(); voidd looadeer() try Frramee9 Frramee= nnew Fraame99(); Frramee.shhow(); catcch (Exccepttionn eww) SSysttem.outt.prrinttln(ew.gettMesssagge(); classs LLog_passswoord_acttionnAdaapteer iimpllemeentss jaava.awtt.evventt.AcctioonLiisteenerr Loog aadappteee; Loog_ppasssworrd_aactiionAAdappterr(Loog aadappteee) thiss.adaapteee = addapttee; publlicvvoidd acctioonPeerfoormeed(AActiionEEvennt ee) adappteee.paasswwordd_acctioonPeerfoormeed(ee); 3、主界界面:packkagee shhebeeiguuanlli;impoort javva.aawt.*;impoort javva.aawt.eveent.*;impoort javvax.swiing.*;impoort comm.boorlaand.jbccl.llayoout.*;/系统统主界面面publliccclasss FFramme9 exttendds JJFraame JPPaneel cconttenttPanne; JMMenuuBarr jMMenuuBarr1 = neew JJMennuBaar(); JMMenuu 设备备查询 = nnew JMeenu(); JMMenuuIteem 设设备信息息 = neww JMMenuuIteem(); JMMenuu 设备备申请 = nnew JMeenu(); JMMenuuIteem 申申请登记记 = neww JMMenuuIteem(); XYYLayyoutt xYYLayyoutt1 = neew XXYLaayouut(); JLLabeel jjLabbel11 = neww JLLabeel(); JMMenuu jMMenuu2 = neew JJMennu(); JMMenuuIteem jjMennuIttem77 = neww JMMenuuIteem(); JMMenuu jMMenuu3 = neew JJMennu(); JMMenuuIteem jjMennuIttem88 = neww JMMenuuIteem(); JMMenuuIteem jjMennuIttem11 = neww JMMenuuIteem(); JMMenuuIteem jjMennuIttem33 = neww JMMenuuIteem(); JLLabeel jjLabbel22 = neww JLLabeel(); JLLabeel jjLabbel33 = neww JLLabeel(); JLLabeel jjLabbel44 = neww JLLabeel(); JMMenuu jMMenuu5 = neew JJMennu(); JMMenuuIteem jjMennuIttem22 = neww JMMenuuIteem();publlic Fraame99() enaableeEveentss(AWWTEvventt.WIINDOOW_EEVENNT_MMASKK);try jjbInnit(); catcch(EExceeptiion e) ee.prrinttStaackTTracce(); privvateevoiid jjbInnit() tthroows Exccepttionn conttenttPanne = (JJPannel) thhis.gettConntenntPaane();conttenttPanne.ssetLLayoout(xYLLayoout11);thiss.seetSiize(neww Diimennsioon(6600, 5000);thiss.seetTiitlee("实实验室管管理系统统");设备查询询.seetFoont(neww jaava.awtt.Foont("SaansSSeriif", 0, 200);设备查询询.seetTeext("设备备查询"");设备信息息.seetFoont(neww jaava.awtt.Foont("SaansSSeriif", 0, 200);设备信息息.seetTeext("设备备信息查查询");设备信息息.adddAcctioonLiisteenerr(neew FFramme9_设备信信息_AActiionAAdappterr(thhis);设备申请请.seetFoont(neww jaava.awtt.Foont("SaansSSeriif", 0, 200);设备申请请.seetTeext("设备备申请"");设备申请请.adddAcctioonLiisteenerr(neew FFramme9_设备申申请_aactiionAAdappterr(thhis);申请登记记.seetFoont(neww jaava.awtt.Foont("SaansSSeriif", 0, 200);申请登记记.seetTeext("申请请登记"");申请登记记.adddAcctioonLiisteenerr(neew FFramme9_申请登登记_AActiionAAdappterr(thhis);jLabbel11.seetFoont(neww jaava.awtt.Foont("SaansSSeriif", 0, 400);jLabbel11.seetFooreggrouund(neww Coolorr(2110, 0, 0);jLabbel11.seetHoorizzonttalAAliggnmeent(SwiingCConsstannts.LEAADINNG);jLabbel11.seetTeext("实验验室管理理系统"");conttenttPanne.ssetFFontt(neew jjavaa.awwt.FFontt("DDiallog"", 00, 111);conttenttPanne.ssetFForeegrooundd(Coolorr.daarkGGrayy);jMennu2.settFonnt(nnew javva.aawt.Fonnt(""SannsSeeriff", 0, 20);jMennu2.settFoccusPPainntedd(faalsee);jMennu2.settTexxt(""维修记记录");jMennuIttem77.seetFoont(neww jaava.awtt.Foont("SaansSSeriif", 0, 200);jMennuIttem77.seetTeext("维修修记录登登记");jMennuIttem77.adddAcctioonLiisteenerr(neew FFramme9_jMeenuIItemm7_aactiionAAdappterr(thhis);jMennu3.settFonnt(nnew javva.aawt.Fonnt(""SannsSeeriff", 0, 20);jMennu3.settTexxt(""报废记记录");jMennuIttem88.seetFoont(neww jaava.awtt.Foont("SaansSSeriif", 0, 200);jMennuIttem88.seetTeext("设备备报废登登记");jMennuIttem88.adddAcctioonLiisteenerr(neew FFramme9_jMeenuIItemm8_aactiionAAdappterr(thhis);设备查询询.adddSeeparratoor();jMennuIttem11.seetFoont(neww jaava.awtt.Foont("SaansSSeriif", 0, 200);jMennuIttem11.seetTeext("维修修记录查查询");jMennuIttem11.adddAcctioonLiisteenerr(neew FFramme9_jMeenuIItemm1_aactiionAAdappterr(thhis);jMennuIttem33.seetFoont(neww jaava.awtt.Foont("SaansSSeriif", 0, 200);jMennuIttem33.seetTeext("设备备报废查查询");jMennuIttem33.adddAcctioonLiisteenerr(neew FFramme9_jMeenuIItemm3_aactiionAAdappterr(thhis);jLabbel22.seetFoont(neww jaava.awtt.Foont("SaansSSeriif", 0, 400);jLabbel22.seetFooreggrouund(Collor.redd);jLabbel22.seetTeext("欢迎迎进入"");jLabbel33.seetFoont(neww jaava.awtt.Foont("SaansSSeriif", 0, 400);jLabbel33.seetFooreggrouund(Collor.redd);jLabbel33.seetTeext("实验验室设备备管理系系统");jLabbel44.seetFoont(neww jaava.awtt.Foont("SaansSSeriif", 0, 155);jLabbel44.seetFooreggrouund(Collor.redd);jLabbel44.seetTeext("交流流:geengddxinn1663.ccom"");jMennu5.settFonnt(nnew javva.aawt.Fonnt(""SannsSeeriff", 0, 20);jMennu5.settTexxt(""退出系系统");jMennuIttem22.seetFoont(neww jaava.awtt.Foont("SaansSSeriif", 0, 200);jMennuIttem22.seetTeext("退出出");jMennuIttem22.adddAcctioonLiisteenerr(neew FFramme9_jMeenuIItemm2_aactiionAAdappterr(thhis);jMennuIttem22.adddIttemLListteneer(nnew Fraame99_jMMenuuIteem2_iteemAddaptter(thiis);设备查询询.addd(设设备信息息);设备查询询.adddSeeparratoor();设备申请请.adddSeeparratoor();设备申请请.addd(申申请登记记);设备申请请.adddSeeparratoor();jMennuBaar1.addd(设备备查询);jMennuBaar1.addd(设备备申请);jMennuBaar1.addd(jMMenuu2);jMennuBaar1.addd(jMMenuu3);jMennuBaar1.addd(jMMenuu5);jMennu2.adddSepparaatorr();jMennu2.addd(jMMenuuIteem7);jMennu2.adddSepparaatorr();jMennu2.addd(jMMenuuIteem1);jMennu