汽车租赁管理系统129307.docx
数据库课程实训(2017)数据库课程程实训报告告题目: 汽汽车租赁管管理系统 1目 录目 录21 课题内内容和要求求11.1课题题描述11.2 课课题要求12 需求分分析12.1 功功能需求分分析12.2 数数据需求分分析13 系统设设计33.1 功功能模块设设计33.2 数数据库概念念设计33.3 数数据库逻辑辑设计43.4 数数据库物理理设计43.5 数据库表表间联系44系统实现现54.1 管管理员模块块实现54.2 车车辆信息模模块实现64.3客户户信息模块块实现74.4司机机信息模块块实现85 代码调调试与功能能测试95.1 测测试方案95.2 测测试结果96 收获与与体会12参考文献献13附录14附录1源程程序部分清清单14附录1.11登陆14附录1.22 车辆信信息16附录1.33 客户信信息24附录1.44 司机信信息33附录1.55 车辆租租赁413汽车租赁管管理系统设设计1 课题内内容和要求求 1.1课题题描述汽车租赁管管理系统是是可以通过过对汽车基基本信息进进行增加、删删除、修改改,对租赁赁客户信息息进行增加加、删除、修修改,实现现汽车的租租借、归还还、续借的的管理系统统。1.2 课课题要求1)可以以对汽车基基本信息进进行增加、删删除、修改改2)可以以对租赁客客户信息进进行增加、删删除、修改改3)可以以实现汽车车的租借、归归还、续借借4)可以以按重要字字段查询汽汽车、客户户等基本信信息5)可以以实现租赁赁金额的计计算6)可以以查询汽车车、客户租租赁历史记记录2 需求分分析2.1 功功能需求分分析程序首先需需要登录模模块来实现现管理员或或者客户的的登陆,在在车辆信息息模块中来来实现对汽汽车基本信信息的增加加、删除、修修改,在客客户信息模模块中实现现对客户信信息的增加加、删除、修修改,租赁赁模块来实实现对客户户对汽车的的租赁功能能实现,车车辆查询模模块来实现现对车辆信信息的查询询,系统统统计模块实实习对租金金收入、租租用时间的的统计。2.2 数数据需求分分析 登陆模模块:车辆信息模块客户信息模块管理员车辆租赁系统登陆客户租车模块客户司机信息模块管理员信息表系统统计模块租金信息模块添加汽车信息车辆信息模模块:车辆信息模块车辆信息表查询信息添加客户信息客户信息模模块:客户信息模块客户信息表查询信息客户租车信息客户租车模模块:客户租车模块租车信息表查询信息司机信息司机信息模模块:司机信息模块司机信息表查询信息系统统计信息系统统计模模块:系统统计模块系统统计表查询信息租金信息租金信息模模块:租金信息模块租金信息表查询信息数据字典:编号:p1名字:车辆信息描述:管理员或用户对车辆的基本信息进行查询、删除或修改。编号:p2名字:客户信息描述:管理员或用户对客户的基本信息进行查询、删除或修改。编号:p3名字:租车信息描述:管理员或用户对客户租车时的信息进行录入。编号:p4名字:司机信息描述:管理员或用户对司机的基本信息进行录入。编号:p5名字:系统统计描述:管理员或用户对租金收入、租用时间的统计结果进行查询。编号:p6名字:租金信息描述:管理员或用户对租金收入、租用时间的统计结果进行查询。3 系统设设计3.1 功功能模块设设计车辆信息模模块车辆信息模模块可以实实现对"车车辆名称""、"车辆辆类型"、""购买时间间"、"车车辆状况""、"租金金标准(日日)"、""租期起始始时间"、""租期"的的添加、删删除和修改改,同时也也可以查询询这些信息息。客户信息模模块客户信息模模块可以实实现对客户户"身份证证号"、""姓名"、""年龄"、""地址"、""电话"、""登录密码码"的添加加、删除和和修改,可可以利用身身份证号来来删除指定定客户的信信息。客户租车模模块客户租车模模块可以实实现对车辆辆的租赁管管理,内包包含有对于于租赁车辆辆的"车辆辆名称"、""车辆类型型"、"购购买时间""、"车辆辆状况"、""租金标准准(日)""、"租期期起始时间间"、"租租期",还还有客户的的"身份证证号"、""姓名"、""年龄"、""地址"、""电话"、""驾驶证书书"。司机信息模模块司机信息模模块可以实实现对司机机"身份证证号"、""姓名"、""年龄"、""地址"、""电话"、""驾驶证书书"的添加加、删除和和修改,同同时也可以以查询有关关信息。系统统计模模块系统统计模模块中可以以对已录入入的信息进进行统计汇汇总,包括括"租金最最高的车""、"租用用时间最长长的车、""今日收入入"、"累累计收入""。租金信息模模块租金信息模模块可以""车辆名称称"、"车车辆类型""、"租金金标准"、""车辆起始始时间"、""租期"进进行查询。3.2 数数据库概念念设计车辆信息模模块E-RR图:车辆状况购买时间车辆类型车辆名称车辆租期租期起始时间租金标准客户信息模模块E-RR图:年龄姓名身份证号客户电话地址登录密码司机信息模模块E-RR图:年龄姓名身份证号司机电话电话驾驶证书3.3 数数据库逻辑辑设计(1)车辆辆(车辆名名称;车辆辆类型;购购买时间;车辆状况况;租金标标准;租期期起始时间间;租期)(2)客户户(身份证证号;姓名名;年龄;地址;电电话;登录录密码)(3)司机机(身份证证号;姓名名;年龄;地址;电电话;驾驶驶证书)3.4 数数据库物理理设计管理员信息息:客户信息:司机信息:3.5 数数据库表间间联系 4系统实现现4.1 管管理员模块块实现jLLabell_IL11 = nnew JJLabeel("身身份证号"");p.add(jLabbel_IIL1);jLLabell_IL11.settFontt(neww javva.awwt.Foont(""微软雅黑黑",0,14);p.aadd(ttf1);jLLabell_IL22 = nnew JJLabeel("姓姓名");p.add(jLabbel_IIL2);jLLabell_IL22.settFontt(neww javva.awwt.Foont(""微软雅黑黑",0,14);p.aadd(ttf2);jLLabell_IL33 = nnew JJLabeel("年年龄");p.add(jLabbel_IIL3);jLLabell_IL33.settFontt(neww javva.awwt.Foont(""微软雅黑黑",0,14);p.aadd(ttf3);jLLabell_IL44 = nnew JJLabeel("地地址");p.add(jLabbel_IIL4);jLLabell_IL44.settFontt(neww javva.awwt.Foont(""微软雅黑黑",0,14);p.aadd(ttf4);jLLabell_IL55 = nnew JJLabeel("电电话");p.add(jLabbel_IIL5);jLLabell_IL55.settFontt(neww javva.awwt.Foont(""微软雅黑黑",0,14);p.aadd(ttf5);jLLabell_IL66 = nnew JJLabeel("登登录密码"");p.add(jLabbel_IIL6);jLLabell_IL66.settFontt(neww javva.awwt.Foont(""微软雅黑黑",0,14);可以实现对对客户"身身份证号""、"姓名名"、"年年龄"、""地址"、""电话"、""登录密码码"的添加加、删除和和修改4.2 车车辆信息模模块实现jLLabell_IL22 = nnew JJLabeel("车车辆类型"");p.add(jLabbel_IIL2);jLLabell_IL22.settFontt(neww javva.awwt.Foont(""华文彩云云",0,14);p.aadd(ttf2);jLLabell_IL33 = nnew JJLabeel("购购买时间"");p.add(jLabbel_IIL3);jLLabell_IL33.settFontt(neww javva.awwt.Foont(""华文彩云云",0,14);p.aadd(ttf3);jLLabell_IL44 = nnew JJLabeel("车车辆状况"");p.add(jLabbel_IIL4);jLLabell_IL44.settFontt(neww javva.awwt.Foont(""华文彩云云",0,14);p.aadd(ttf4);jLLabell_IL55 = nnew JJLabeel("租租金标准"");p.add(jLabbel_IIL5);jLLabell_IL55.settFontt(neww javva.awwt.Foont(""华文彩云云",0,14);可以实现对对"车辆名名称"、""车辆类型型"、"购购买时间""、"车辆辆状况"、""租金标准准(日)""、"租期期起始时间间"、"租租期"的添添加、删除除和修改,同同时也可以以查询这些些信息。4.3客户户信息模块块实现p.aadd(nnew JJLabeel(""");jLLabell_IL11 = nnew JJLabeel("身身份证号"");p.add(jLabbel_IIL1);jLLabell_IL11.settFontt(neww javva.awwt.Foont(""微软雅黑黑",0,14);p.aadd(ttf1);jLLabell_IL22 = nnew JJLabeel("姓姓名");p.add(jLabbel_IIL2);jLLabell_IL22.settFontt(neww javva.awwt.Foont(""微软雅黑黑",0,14);p.aadd(ttf2);jLLabell_IL33 = nnew JJLabeel("年年龄");p.add(jLabbel_IIL3);jLLabell_IL33.settFontt(neww javva.awwt.Foont(""微软雅黑黑",0,14);p.aadd(ttf3);jLLabell_IL44 = nnew JJLabeel("地地址");p.add(jLabbel_IIL4);jLLabell_IL44.settFontt(neww javva.awwt.Foont(""微软雅黑黑",0,14);p.aadd(ttf4);jLLabell_IL55 = nnew JJLabeel("电电话");p.add(jLabbel_IIL5);jLLabell_IL55.settFontt(neww javva.awwt.Foont(""微软雅黑黑",0,14);p.aadd(ttf5);jLLabell_IL66 = nnew JJLabeel("登登录密码"");p.add(jLabbel_IIL6);jLLabell_IL66.settFontt(neww javva.awwt.Foont(""微软雅黑黑",0,14);p.aadd(ttf6);jLLabell_IL77 = nnew JJLabeel(" 在在此输入身身份证号点点击查询删删除");p.add(jLabbel_IIL7);jLLabell_IL77.settFontt(neww javva.awwt.Foont(""微软雅黑黑",0,14);可以实现对对客户"身身份证号""、"姓名名"、"年年龄"、""地址"、""电话"、""登录密码码"的添加加、删除和和修改4.4司机机信息模块实实现p.aadd(nnew JJLabeel(""");jLLabell_IL11 = nnew JJLabeel("身身份证号"");p.add(jLabbel_IIL1);jLLabell_IL11.settFontt(neww javva.awwt.Foont(""微软雅黑黑",0,14);p.aadd(ttf1);jLLabell_IL22 = nnew JJLabeel("姓姓名");p.add(jLabbel_IIL2);jLLabell_IL22.settFontt(neww javva.awwt.Foont(""微软雅黑黑",0,14);p.aadd(ttf2);jLLabell_IL33 = nnew JJLabeel("年年龄");p.add(jLabbel_IIL3);jLLabell_IL33.settFontt(neww javva.awwt.Foont(""微软雅黑黑",0,14);p.aadd(ttf3);jLLabell_IL44 = nnew JJLabeel("地地址");p.add(jLabbel_IIL4);jLLabell_IL44.settFontt(neww javva.awwt.Foont(""微软雅黑黑",0,14);p.aadd(ttf4);jLLabell_IL55 = nnew JJLabeel("电电话");p.add(jLabbel_IIL5);jLLabell_IL55.settFontt(neww javva.awwt.Foont(""微软雅黑黑",0,14);p.aadd(ttf5);jLLabell_IL66 = nnew JJLabeel("驾驾驶证书"");p.add(jLabbel_IIL6);jLLabell_IL66.settFontt(neww javva.awwt.Foont(""微软雅黑黑",0,14);p.aadd(ttf6);jLLabell_IL77 = nnew JJLabeel(" 在在此输入身身份证号点点击查询删删除");p.add(jLabbel_IIL7);jLLabell_IL77.settFontt(neww javva.awwt.Foont(""微软雅黑黑",0,14);可以实现对对司机"身身份证号""、"姓名名"、"年年龄"、""地址"、""电话"、""驾驶证书书"的添加加、删除和和修改,同同时也可以以查询有关关信息。5 代码调调试与功能能测试5.1 测测试方案登陆测试:输入用户名名qh密码码123,点点击管理员员登陆。车辆信息添添加测试:添加车辆名名称1车辆辆类型1购购买时间11905-07-110车辆状状况1租金金标准1000,点击击添加。客户信息添添加测试:输入身份证证号643352355322姓姓名科比年年龄0地址址苏州电话话452552登录密密码4344,点击添添加。司机信息添添加测试:输入身份证证号478832922姓名哒哒哒哒年龄443地址常常州电话445625542驾驶驶证书A,点点击添加。5.2 测测试结果车辆租赁系系统:车辆信息:客户信息:司机信息:租金信息:信息统计:登陆界面:6 收获与与体会这次课程设设计我设计计的是一个个汽车租赁赁管理系统统,通过这这次课程设设计,我了了解了一个个完整的数数据库系统统设计的步步骤,掌握握了租车公公司汽车租租赁系统的的业务流程程及管理,巩巩固了我在在课堂上所所学的理论论知识,开开拓了自己己的知识面面,同时也也让我看到到了自己的的不足,很很多东西单单独用可以以做出来,可可是连贯起起来就出现现了很多错错,还有很很多不足,需需要努力。当然在我同同学的帮助助下,见证证了一个系系统的诞生生,虽然不不复杂,但但它可以实实现一些基基本的功能能,很有成成就感,是是理论与实实践的一次次完美的结结合,而且且也学到很很多课本上上没有涉及及到的知识识,对编程程经验也起起到了累积积作用,也也是第一次次了解了一一个系统诞诞生所要经经过的流程程,前期、设设计、完成成、后期一一个也不能能少,不像像平时只用用编一个程程序,至于于需求和维维护没有涉涉及,这次次课程设计计就像一次次工作的体体验,从头头到尾不遗遗余力的把把它完成。体体会就是自自己在这次次设计当中中遇到了很很多问题,一一开始的时时候根本无无从下手、什什么都不会会,但是通通过和同学学成的讨论论,查阅资资料、网上上查询等有有了基本了了解,使得得问题得以以一一解决决。总之,在在这次程序序设计中,学学会到了很很多以前没没有了解到到的知识,当当然系统还还有很多不不足,比如如主界面的的缩放功能能没有很好好的实现等等,这还需需要在以后后的学习中中慢慢改进进。回想我在这这段时间的的课程设计计,感到非非常的充实实。因为有有了同学的的帮助,我我才能完满满完成了这这个课程设设计。在以以后的学习习中我还会会更努力的的学习,把把自己学到到的知识运运用到的以以后的学习习和工作中中去。67参考文献1 钱钱雪忠,王燕玲,林林挺.数据库原理理及技术M.北北京:清华华大学出版版社,20011.2 钱钱雪忠,罗海驰,陈国俊.数据库原原理及技术术课程设计计M.北京:清清华大学出出版社,22014. 附录附录1源程程序部分清清单附录1.11登陆imporrt jaava.aawt.eeventt.ActtionLListeener;imporrt jaava.aawt.CColorr;imporrt jaava.aawt.DDimennsionn;imporrt jaava.aawt.FFlowLLayouut;imporrt jaava.aawt.TToolkkit;imporrt jaava.aawt.eeventt.ActtionEEventt;imporrt jaava.iio.IOOExceeptioon;imporrt jaava.ssql.CConneectioon;imporrt jaava.ssql.DDriveerMannagerr;imporrt jaava.ssql.RResulltSett;imporrt jaava.ssql.SSQLExxcepttion;imporrt jaava.ssql.SStateementt;imporrt jaava.uutil.Vecttor;imporrt jaavax.swinng.*;publiic cllass dl iimpleementts AcctionnListtenerr JFraame fframee=neww JFrrame("客户/管理员登登陆");JLabbel llabell1=neew JLLabell("用户户名");JLabbel llabell2=neew JLLabell("密码码");ImaggeIcoon jbbi1=nnew IImageeIconn("immage/admiin.pnng");ImaggeIcoon jbbi2=nnew IImageeIconn("immage/admiin2.ppng");ImaggeIcoon jbbi3=nnew IImageeIconn("immage/quitt.pngg");JButtton logiinButtton11=neww JBuuttonn("管理理员登陆"",jbii1);JButtton logiinButtton22=neww JBuuttonn("客户户登陆",jbi22);JButtton canccelBuuttonn=neww JBuuttonn("退出出",jbbi3);JTexxtFieeld tt1=neew JTTextFFieldd(0);JTexxtFieeld tt2=neew JTTextFFieldd(0);ImaggeIcoon imm=neww ImaageIccon(""imagge/5.jpg"");JLabbel aa2=neew JLLabell(im);JTexxtFieeld uusernname=new JTexxtFieeld(99);JPasssworrdFieeld ppasswword=new JPasssworrdFieeld(99);void creaate()JPannel pp=(JPPanell)fraame.ggetCoontenntPanne();JPannel pp1=neew JPPanell();p.seetLayyout(new FlowwLayoout();p.addd(laabel11);labeel1.ssetFoont(nnew jjava.awt.Fontt("华文文彩云",0,166);p.seetSizze(5,5);p.seetLoccatioon(4,8);p.addd(ussernaame);userrnamee.settFontt(neww javva.awwt.Foont(""华文彩云云",0,14);p.seetSizze(1000,2000);p.seetLoccatioon(8000,8000);p.addd(laabel22);labeel2.ssetFoont(nnew jjava.awt.Fontt("华文文彩云",0,166);p.seetSizze(500,20);p.seetLoccatioon(400, 800);p.addd(paasswoord);p.seetSizze(1000,200);p.seetLoccatioon(800, 1220);logiinButtton11.settFontt(neww javva.awwt.Foont(""华文彩云云",0,14);p.addd(neew JLLabell(" "");p.addd(neew JLLabell(" "");p.addd(looginBButtoon1);logiinButtton22.settFontt(neww javva.awwt.Foont(""华文彩云云",0,14);p.addd(looginBButtoon2);p.addd(caancellButtton);canccelBuuttonn.settFontt(neww javva.awwt.Foont(""华文彩云云",0,14);/p.add(t1);/p.add(t2);p.seetBacckgroound(new javaa.awtt.Collor(2255,2255,2255);p.addd(a22);p.aadd(nnew JJLabeel(" ");/p.setBBackggrounnd(Coolor.red);p.seetVissiblee(truue);logiinButtton11.adddActiionLiistenner(tthis);logiinButtton22.adddActiionLiistenner(tthis);canccelBuuttonn.adddActiionLiistenner(tthis);framme.seetDeffaulttClosseOpeeratiion(JJFramme.EXXIT_OON_CLLOSE);framme.paack();Toollkit toollkit=Toollkit.getDDefauultTooolkiit();Dimeensioon d=toollkit.getSScreeenSizze();framme.seetBouunds(d.wiidth/2-3775, dd.heiight/2-2225, 7750, 450);/frrame.setBBoundds(2000,1000,7550,5550);framme.seetVissiblee(truue);publiic sttaticc voiid maain(SStrinng argss) dll domme=neew dll(); doome.ccreatte(); publiic vooid aactioonPerrformmed(AActioonEveent ee)if(ccanceelButtton.equaals(ee.gettSourrce()Sysstem.exitt(0);if(lloginnButtton1.equaals(ee.gettSourrce()if(useernamme.geetTexxt().equaals(""qh")=trrue)&&&(paasswoord.ggetTeext().equuals("1233")=truee)ZJJM gzz=neww ZJMM();gzz.creeate();frrame.setVVisibble(ffalsee);elsseJJOptiionPaane.sshowMMessaageDiialogg(nulll,"登登录失败!");if(lloginnButtton2.equaals(ee.gettSourrce()Sysstem.out.prinnt("11231223");if(useernamme.geetTexxt().equaals(""121"")=ttrue)&&(ppasswword.getTText().eqqualss("1223")=truue)KHHZC ggz=neew KHHZC();gzz.creeate();frrame.setVVisibble(ffalsee);elsseJJOptiionPaane.sshowMMessaageDiialogg(nulll,"登登录失败!");附录1.22 车辆信息息imporrt javaa.awtt.Collor;imporrt jaava.aawt.DDimennsionn;imporrt jaava.aawt.FFlowLLayouut;imporrt jaava.aawt.TToolkkit;imporrt javaa.awtt.eveent.AActioonEveent;imporrt jaava.aawt.eeventt.ActtionLListeener;imporrt jaava.ssql.CConneectioon;imporrt jaava.ssql.DDriveerMannagerr;imporrt jaava.ssql.RResulltSett;imporrt jaava.ssql.SSQLExxcepttion;imporrt jaava.ssql.SStateementt;imporrt jaava.uutil.Vecttor;imporrt jaavax.swinng.ImmageIIcon;imporrt jaavax.swinng.JBButtoon;imporrt jaavax.swinng.JFFramee;imporrt jaavax.swinng.JLLabell;imporrt jaavax.swinng.JOOptioonPanne;imporrt jaavax.swinng.JPPanell;imporrt jaavax.swinng.JSScrolllPanne;imporrt jaavax.swinng.JSSplittPanee;imporrt jaavax.swinng.JTTablee;imporrt jaavax.swinng.JTTextFFieldd;publiic classs CLLXX iimpleementts AcctionnListtenerrJFraame ff=neww JFrrame("车辆信信息");ImaggeIcoon jbbi1=nnew IImageeIconn("immage/ad.ppng");ImaggeIcoon jbbi2=nnew IImageeIconn("immage/del.png"");ImaggeIcoon jbbi3=nnew IImageeIconn("immage/ser.png"");ImaggeIcoon jbbi4=nnew IImageeIconn("immage/up.ppng");privvate JLabbel jjLabeel_ILL5;privvate JLabbel jjLabeel_ILL4;privvate JLabbel jjLabeel_ILL3;privvate JLabbel jjLabeel_ILL2;privvate JLabbel jjLabeel_ILL1;JButtton b1=nnew JJButtton(""添加",jbi11);JButtton b2=nnew JJButtton(""修改",jbi44);JButtton b3=nnew JJButtton(""删除",jbi22);JButtton b4=nnew JJButtton(""查询所有有",jbbi3);JButtton b5=nnew JJButtton(""查询个人人信息",jbi33);JButtton b6=nnew JJButtton(""返回");JTexxtFieeld ttf1=nnew JJTexttFielld(4);JTexxtFieeld ttf2=nnew JJTexttFielld(4);JTexxtFieeld ttf3=nnew JJTexttFielld(4);JTexxtFieeld ttf4=nnew JJTexttFielld(4);JTexxtFieeld ttf5=nnew JJTexttFielld(4);JTexxtFieeld ttf6=nnew JJTexttFielld(4);Striing clooum="车辆名名称",""车辆类型型","购购买时间"","车辆辆状况","租金标标准(日)","租租期起始时时间",""租期"Objeect rrow=nnew OObjecct5007;JTabble ttablee=neww JTaable(row,clouum);JScrrollPPane scroollpaane=nnew JJScroollPaane(ttablee);JSpllitPaane ssplittpanee=neww JSpplitPPane(JSpllitPaane.VVERTIICAL_SPLIIT);privvate JLabbel jjLabeel_ILL6;voidd creeate()JPaanel p=(JJPaneel)f.getCConteentPaane();p.ssetLaayoutt(neww FloowLayyout();/pp.addd(scrrollppane);