C++课程设计汽车管理系统1.doc

上传人:laozhun 文档编号:2978910 上传时间:2023-03-07 格式:DOC 页数:66 大小:584.50KB
返回 下载 相关 举报
C++课程设计汽车管理系统1.doc_第1页
第1页 / 共66页
C++课程设计汽车管理系统1.doc_第2页
第2页 / 共66页
C++课程设计汽车管理系统1.doc_第3页
第3页 / 共66页
C++课程设计汽车管理系统1.doc_第4页
第4页 / 共66页
C++课程设计汽车管理系统1.doc_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《C++课程设计汽车管理系统1.doc》由会员分享,可在线阅读,更多相关《C++课程设计汽车管理系统1.doc(66页珍藏版)》请在三一办公上搜索。

1、武汉工程大学 计算机科学与工程学院综合设计报告设计名称: 程序设计综合设计 设计题目: 汽车租赁管理系统 学生学号: 1005080214 专业班级: 计算机工程2班 学生姓名: 刘子龙 学生成绩: 指导教师(职称): 刘黎志(讲师) 课题工作时间: 2011-12-26 至 2012-1-6 说明:1、报告中的第一、二、三项由指导教师在综合设计开始前填写并发给每个学生;四、五两项(中英文摘要)由学生在完成综合设计后填写。2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。3、指导教师评语一栏由指导教师就学生在整个设计期间的平时表现、设计完成情况、报告的质量及答辩情况,给出客观、全

2、面的评价。4、所有学生必须参加综合设计的答辩环节,凡不参加答辩者,其成绩一律按不及格处理。答辩小组成员应由2人及以上教师组成。5、报告正文字数一般应不少于5000字,也可由指导教师根据本门综合设计的情况另行规定。6、平时表现成绩低于6分的学生,其综合设计成绩按不及格处理。7、此表格式为武汉工程大学计算机科学与工程学院提供的基本格式(适用于学院各类综合设计),各教研室可根据本门综合设计的特点及内容做适当的调整,并上报学院批准。成绩评定表学生姓名: 刘子龙 学号: 1005080214 班级: 计算机工程2班 类别合计分值各项分值评分标准实际得分合计得分备注平时表现1010按时参加综合设计,无旷课

3、、迟到、早退、违反实验室纪律等情况。完成情况3020按设计任务书的要求完成了全部任务,能完整演示其设计内容,符合要求。10能对其设计内容进行详细、完整的介绍,并能就指导教师提出的问题进行正确的回答。报告质量3510报告文字通顺,内容翔实,论述充分、完整,立论正确,结构严谨合理;报告字数符合相关要求,工整规范,整齐划一。5课题背景介绍清楚,综述分析充分。5设计方案合理、可行,论证严谨,逻辑性强,具有说服力。5符号统一;图表完备、符合规范要求。5能对整个设计过程进行全面的总结,得出有价值的结论或结果。5参考文献数量在3篇以上,格式符合要求,在正文中正确引用。答辩情况2510在规定时间内能就所设计的

4、内容进行阐述,言简意明,重点突出,论点正确,条理清晰。15在规定时间内能准确、完整、流利地回答教师所提出的问题。总评成绩: 分 补充说明: 指导教师: (签字)日 期: 年 月 日答辩记录表学生姓名: 学号: 班级: 答辩地点: 答辩内容记录:答辩成绩合计分值各项分值评分标准实际得分合计得分备注2510在规定时间内能就所设计的内容进行阐述,言简意明,重点突出,论点正确,条理清晰。15在规定时间内能准确、完整、流利地回答教师所提出的问题。答辩小组成员(签字): 年 月 日指导教师评语指导教师: (签字)日 期: 年 月 日一、综合设计目的、条件、任务和内容要求:某汽车租赁公司提供租车服务,需要系

5、统提供以下功能。1.可出租的车有两种,小轿车和货车。小轿车按天计算租赁费用,货车可按小时(也可按天)计算租赁费用。小轿车每天租赁费用为100元,货车每小时租赁费用为30元,若按天租则每天300元。小轿车和货车租赁的天数若超过3天,则按8折计算租车费用。2.系统需提供车辆的基本管理功能,如:添加车辆,修改车辆信息、删除车辆。3.系统提供车辆租赁的基本服务功能,如:租车,还车,费用计算等。4.系统需提供车辆的基本查询功能,如:车辆的租赁情况。车辆每月租赁情况按以下格式显示: 车辆租赁情况一览表车号 车辆类型 租赁情况C0001 car XXX-XXXX-XXXXXX-O-T0001 truck H

6、XX-HHHX-HHHXXXHHH-HHHXXX.说明:对于小轿车X表示租出状态、-表示空闲状态,对于货车X表示按天租出状态、H表示按小时租出状态、O表示车辆已出租,还没有还、-表示空闲状态。通过本设计可以使学生在掌握C 语言及C+语言的的基础上,进行实际应用,设计一个小型的软件。可以巩固已经学过的基础课及专业课知识,开阔学生的视野,锻炼学生的自学能力及独立动手能力。 指导教师签字: 刘黎志 2011 年 12 月 20 日二、进度安排:2011-12-26:明确所选课题的具体要求,按要求阅读相关的参考文献及资料2011-12-27至2012-1-5:课题代码实现、课程设计报告书写2012-1

7、-6:课程设计答辩三、应收集资料及主要参考文献:1. 程序设计基础 2. 面向对象的程序设计3. 数据结构五、综合设计(课程设计)Abstract(英文):AbstractData in the era of information explosion, the society will due to the memory of various information is somewhat annoyed. To solve this problem, the computer management system has great advantages and feasibility. E

8、very formal institutions, have their own information management system, which bears a different task.Vehicle lease management system is a social business management system is a typical management company, mainly the car rental business. Its development mainly includes the backstage database developm

9、ent and maintenance, and the front-end application program development and programming. The former is a very important part of the system, a complete database system it lacks. But now the learning level and course have not reached this level, so this part of the vehicle lease management system not s

10、tated. In this focus on the completion of the program, use C, c+, c#, Java, VB and other languages can be realized, after the basic idea of the integration and analysis of UML, whereas the C + + efficiency, I choose the C + + programming language as a linked list, document flow, combining reading an

11、d writing knowledge and access related literature, the school instructs under teachers help, basically completed the design requirements of the task.Basic functions: management function, service function, query function. For users, can use queries vehicle and the basic situation of lease conditions.

12、 The administrator can this management system, whereby the vehicle to add, delete, modify information, car rental, car, on all vehicle information query.Key words: management system; c+; list; the file stream目 录目 录1摘 要2ABSTRACT3第一章 绪论41.1课题来源41.2课题意义41.3课题目的41.4应解决的主要问题及应达到的技术要求41.5本设计的理论依据5第二章 设计简介

13、及设计方案论述62.1设计内容与目标62.2设计的重点、难点和关键62.3整体设计方案6第三章 详细设计93.1重点,难点技术设计与相关解决93.2整体、详细的设计方案9第四章 设计结果及分析214.1进入系统分析214.2系统操作管理分析234.3系统工作流程分析254.4系统整体性能分析31总 结32致 谢33参考文献34附录 主要程序代码35摘 要在数据信息爆炸的时代,这个社会的人必然会因为要记忆各类繁多的信息多少有些烦恼。在这个问题的解决上,计算机上的管理系统占有很大的优势和可行性。每一个正规机构,都有自己的信息管理系统,它们分别承担着不同的任务。车辆租凭管理系统是社会商用管理系统的一

14、个典型,它主要管理汽车公司整个的租车业务。其完整的开发主要包括后台数据库的开发和维护,以及前端基本应用程序的开发和编写。前者是这个系统的很重要的部分,完整的数据库系统都不能缺少。但由于现在的学习水平和课程还没有达到这个高度,所以这一部分在此车辆租凭管理系统中暂不作说明。在这重点完成前台程序的开发,使用c,c+,c#,Java,VB等语言都可实现,经过基本思路的整合和UML的分析,鉴于C+的高效性,我选择了C+作为编程语言,结合链表、文件流读写的知识和查阅相关文献,在学校指导老师的帮助下,基本完成了设计任务的要求。基本功能:管理功能、服务功能、查询功能。对于用户来说,可以使用查询功能查询车辆的基

15、本情况和租凭情况。管理员则可以对此系统进行管理,即对车辆进行添加、删除、修改信息、租车、还车、对所有车辆信息的查询。关键词:管理系统;c+;链表;文件流AbstractData in the era of information explosion, the society will due to the memory of various information is somewhat annoyed. To solve this problem, the computer management system has great advantages and feasibility. Eve

16、ry formal institutions, have their own information management system, which bears a different task.Vehicle lease management system is a social business management system is a typical management company, mainly the car rental business. Its development mainly includes the backstage database developmen

17、t and maintenance, and the front-end application program development and programming. The former is a very important part of the system, a complete database system it lacks. But now the learning level and course have not reached this level, so this part of the vehicle lease management system not sta

18、ted. In this focus on the completion of the program, use C, c+, c#, Java, VB and other languages can be realized, after the basic idea of the integration and analysis of UML, whereas the C + + efficiency, I choose the C + + programming language as a linked list, document flow, combining reading and

19、writing knowledge and access related literature, the school instructs under teachers help, basically completed the design requirements of the task.Basic functions: management function, service function, query function. For users, can use queries vehicle and the basic situation of lease conditions. T

20、he administrator can this management system, whereby the vehicle to add, delete, modify information, car rental, car, on all vehicle information query.Key words: management system; c+; list; the file stream第一章 绪论1.1课题来源现代社会,人的大脑开始出现一定的记忆压力,因为太多的事情需要然人来处理并且记住大量的数据.计算机的出现,让人们找到了减轻压力的途径,这也是社会发展的必然,人类科技

21、的进步的一个重要标志就是生产力的高效性。计算机与人类相比的优点就是有着极快的计算速度和准确性,性能稳定,具有很高的可靠性,根据此特点,计算机管理系统和数据库诞生了,随着社会的发展,它们的地位更是显得尤其重要,每一个正规的机构都有自己的管理系统,数据库管理系统也是计算机领域的一个重要研究方向,有着不可估量的发张前景。1.2课题意义计算机管理系统在当今的商业社会有着很强大的功能,这也是这几年来计算机飞速发展的一个重要原因,计算机没有思考能力,不能像人一样,它的一切活动都是建立在存储大量数据以及对这些数据进行简单的操作之上的,“人工智能”也不列外,其中计算机管理系统就是一个很好的运用。一个好的管理系

22、统,能承当一个很庞大的任务,在公司,在学校,在政府部门,它都有着自己的职能。汽车租凭管理系统,是汽车公司的重要系统之一,它能管理日常的租凭车辆任务,可靠性高,高效,便捷,节省劳动力,一次投入多次使用,高质量的租凭管理系统和这家汽车公司的业绩是直接挂钩的。1.3课题目的通过此课题的学习和设计,让我们懂得如何开发一个管理系统、需要具备的知识、准备工作和需要考虑的各种问题。当然开发一个汽车租凭管理系统,最直接的目的就是完成汽车公司的租凭任务,主要负责租凭这一块,其中主要的操作包括借车、登记、还车、计费、查询和基本车库的管理。1.4应解决的主要问题及应达到的技术要求1.4.1应解决的主要问题在此系统的

23、开发计划中(暂不考虑后台数据库的开发),我们应该解决的主要问题包括:a. 在计算机中写一个函数,能完成无限添加车辆和存储租车、还车相关信息的任务;b. 怎样将每次操作的记录进行保存,做到每次输入的信息永久有效;c. 怎样做一个人性化的操作界面,既具备视觉美感,操作起来又简便。1.4.2应达到的技术要求1.能在车库中无限添加车辆,删除车辆;2.能修改车辆信息;3.能输出车库中所有车的基本信息;4.租车;5.还车;6.按车号和年月查询车辆出租信息;7.按年月查询车辆出租信息;8.按车号和年月查询车辆出租费用情况;9.按年月查询车辆的出租费用情况;10.保存操作信息;11导入操作信息;12.操作简单

24、,界面具有美感;13.整体性能完整;具体要达到的功能要求如下图中所示:图111.5本设计的理论依据计算机有较强的运算能力和存储数据的功能,具有较强的稳定性和可靠性。链表可以实现无限条记录的保存和查找,可以解决无限添加车辆的问题,而文件的读写能将每次操作的有效数据在计算机内存和磁盘上进行读写,使得每次进入系统从操作的数据我们都有记录,并且在下次登入系统的时候读入计算机内存,在系统程序中继续传递。第二章 设计简介及设计方案论述2.1设计内容与目标设计的内容和主要目标是完成一个具有简单基本功能的汽车租凭管理系统,承当某汽车公司的汽车租凭任务并对其进行有效的管理。管理系统的特点是:功能基本齐全,操作简

25、单易懂。最主要的是能完成基本的汽车租凭义务和管理,承担工作人员的大量繁琐记忆和脑力劳动。2.2设计的重点、难点和关键此设计的重点是各个功能函数的编码,例如添加车辆、租车、还车、计算费用,各种方式的查询等,其中这些操作都建立在对车辆记录的保存和查找上,因为进行这些操作都必先找到相应的记录信息,进行修改,然后再存储起来;设计的难点是无限次添加记录和保存记录,以及对每次记录的保存入库(在下次运用此程序时上次的操作信息还在),包括信息的存储和读取。说到无限次添加记录,一般用数组是不能办到的,我们都知道在用数组之前必须先定义大小;关键是把各个函数正确有效地连接起来,有正确的实参传递,能正确有效地输出预期

26、结果,达到系统管理的目的。这部分说起来简单,但实际去做,那就是程序中最难的一块,这要考虑到各个函数的关联以及每个函数完成的特殊功能和对整个信息记录的影响,就如一个机器人,要让他动起来,得花费大量的功夫来来你接他身体的机械硬件和软件代码2.3整体设计方案a读懂系统设计要求,初步了解设计思路;b首先用UML图分析,得出整体的设计方案;c依据UML图,分个写出每个函数,并留好相应的接口,以便后面每个函数的相互连接;d写一个整体的系统函数,在其中将所有函数聚合在一起,方便调用,可以用一个类来完成此任务;e写出界面函数,做到美观,操作简单,人性化;f写出main函数,组织调用各个函数和各种类,有效地完成

27、整个函数的功能;g全面而又广泛地测试,发现错误,改进错误,改进程序,提高程序的健壮性。整体设计方案:定义一个结构体,里面包括车辆的属性和一些标志,如车号,车型,出租、归还时间,费用,出租状态等,还有一个本身类型的指针,为了构建链表的节点。然后定义两个时间类Date和Time,分别用来计算租车、还车的日期差并计算相应的费用和存储租,归还日期。接下来定义一个类,作为整体调用函数用。完成以后就开始编写各个功能的函数,添加、删除、查询、保存、导入信息等。最后完成界面输出函数和main()函数的定义,界面函数只要做到美观、操作简单就可,主要是main()函数,它起到整体运行程序的作用,系统能不能成功运转

28、,就看它的正确性和高效性。下面分别是节点结构体类的定义:struct Vehiclechar VID10;char VType5;double fee1000;int vsign1000;int Typesign;/作为出租方式的标志,按小时租用1表示,按天租用2表示int sign;/作为是否出租过,租了没还,租了已还的标记,分别用0,1,2标志int k1;int k2; /作为Ldate和Bdate对想数组的下标Time Ldate1000;Time Bdate1000;Vehicle *next;下面分别是Data类的定义:class Dateprivate:int year,mont

29、h,day;public:Date(int y,int m,int d):year(y),month(m),day(d)int count()int counter1=0,m(month-1),d(day);for(;m0;m-)if(m=4|m=6|m=9|m=11)counter1+=30;else if(m=1|m=3|m=5|m=7|m=8|m=10)counter1+=31;else if(m=2)if(year%4=0)counter1+=29;elsecounter1+=28;else std:coutinput errora.year;y-)if(y%4=0)counter+=

30、366;else counter+=365;return counter;其中count()函数用来计算某个日期是该年的第几天,distances()用来计算两个日期的相差天数,从而计算出费用。下面分别是Data类的定义:class Timeprivate:int year,month,day,hour;public:Time(int i=0,int j=0,int k=0,int m=0):year(i),month(j),day(k),hour(m)void time(int yy=0,int mm=0,int dd=0,int hh=0)year=yy;month=mm;day=dd;h

31、our=hh;int Ryear()return year;int Rmonth()return month;int Rday()return day;int Rhour()return hour;friend void lead();第三章 详细设计3.1重点,难点技术设计与相关解决3.1.1设计重点与解决方案设计重点:各个功能函数的编码,例如添加车辆、租车、还车、计算费用,各种方式的查询等。解决方案:使用数据结构的相关知识,对整体的系统构建一个链表,用来存储每次向车库里添加的车辆,可以无限添加,这是链表和数组的区别,并在此基础上创建add(),del(),print(),lend(),ba

32、ck(),v_find(),v_find_all(),v_findfee(),v_find_allfee(),sav(),lead()等函数。3.1.2设计难点与解决方案设计难点:无限次添加车辆和删除车辆,以及对每次记录的保存和读取。解决方案:前者使用链表可以解决,但一辆车到底要租到少次,我们不知道,所以存储每辆车的出租记录也需要创建一个链表,至于信息的存储和导入,我们就用文件的读写操作来完成,每次操作完成后对数据进行保存,用文件写入磁盘,然后每次打开系统的时候再将上次的记录导入程序中(计算机内存中),进行新的操作,这是文件的重要操作。3.2整体、详细的设计方案3.2.1整体的设计思路运用链表

33、知识和文件的读写操作写一个基于命令提示符窗口的汽车租凭管理系统,先写一个存储车辆所有信息的链表,以便于添加车辆,和进行后续的相关工作,然后就是将计算机内存中的车辆信息写到硬盘上,再写一个读入函数,再每次登入系统后将硬盘上的信息读到内存,达到保存操作记录的作用。3.2.2具体步骤1.写一个名为Data的类,数据成员包括year,month,day,成员函数有count,其作用是计算一个日期是该年的第几天,还有一个友元函数distances,在count的配合下计算两个日期的相差天数,从而计算出租车的费用,完成计费任务;2.写一个名为Time的类,数据成员有year,month,day,hour。

34、成员函数有Ryear(),Rmonth(),Rday(),Rhour()和lead(),前四个是此类对外的接口,便于其他函数对私有数据成员的访问,而友元函数lead()是用来完成对操作信息导入的任务的。3.写一个名为Vehicle的结构体,定义车辆链表的一个节点,其中包括数据域和指针域next,数据域包括变量VID,VType,fee,vsign,Typesign,sign,k1,k2,Ldate,Bdate,其中VID,VType是两个字符型数组,用来存放车辆的车号和类型,fee和visgn分别是double型和int型的数组,用来存放每次租车的费用和租还的标志(出租标为1,已归还标为2),

35、sign是有没出租记录的标志(没有出租记录的sign为0,出租了的标志为1,还了的标志为2),Typesign是租车按月或按小时的标志(按小时租为1,按天租为2),Ldate和Bdate是两个class Time型的对象数组,用来存放车辆每次出租的租还日期,k1和k2是两个int型的变量,作为Ldate,Bdate的下标。4.定义一个名为sys的类,包括一个数据成员,即Vehicle类型的变量b,有V_find(),V_delete(),print()三个成员函数,分别完成链表中信息的查找、删除和打印输出工作,输出的信息主要是车辆的车号、车型和出租状态。本来还有V_add()函数(在链表中添加

36、信息)也要写在这里,但考虑到方便调用的问题,将其写在了类的外面。Sys这个类的作用就是对针对链表的一些基本操作进行封装,方便调用。它们的关键代码如下:链表中查找操作的代码:Vehicle *sys:find(Vehicle *head,char *s)Vehicle *p;p=head;while(p!=NULL)if(strcmp(p-VID,s)=0)return p;elsep=p-next;return NULL;链表中删除操作的代码,用来删除车辆信息:Vehicle *sys:V_delete(Vehicle *head,char *VID)Vehicle *p,*q;if(head

37、=NULL)std:coutList is NULL!VID,VID)=0)p=head;head=head-next;delete p;std:cout完成删除操作!next;q=q-next)if(strcmp(q-next-VID,VID)=0)p=q-next;q-next=p-next;delete p;return head;std:coutVID不在车库中!std:endl;return (head);打印输出车库中的车:void sys:print(Vehicle *head)Vehicle *p;p=head;if(p=NULL)std:cout车库为空!std:endl;w

38、hile(p!=NULL)std:coutVIDt;std:coutVTypenext;向链表中添加节点的代码,是增加车辆操作的重要核心程序:Vehicle *V_add(Vehicle *head,Vehicle *v) Vehicle *p; p=head; if(p=NULL) head=v; v-next=NULL; return head; if(strcmp(p-VID,v-VID)0) v-next=head; head=v; return head; 5.对sys类里的几个成员函数进行类外定义,都是基于简单链表操作的,就是上面提到的在链表中添加节点,删除节点,打印输出节点信息的

39、函数。6.开始定义系统界面函数list()和listview(),前者是用来接受用户对各种操作功能的选择,然后传递给main函数;listview()呢完成操作界面的输出(就是列出各个功能的操作选项),这都是很简单的问题,它们的代码如下:void listview()std:coutttt欢迎使用天行汽车租凭管理系统ttstd:endl;std:cout*std:endl;std:cout1.添加新车std:endl;std:cout2.删除一辆已经存在的车std:endl;std:cout3.查询车库中现有车辆std:endl;std:cout4.租车std:endl;std:cout5.还

40、车std:endl;std:cout6.按年月及车辆ID查询出租情况std:endl;std:cout7.按年月查询所有车辆的出租情况std:endl;std:cout8.按年月及车辆ID查询租车费用std:endl;std:cout9.按年月查询所有车辆的租车费用std:endl;std:cout10.保存操作记录std:endl;std:cout11.导入信息std:endl;std:cout12.退出租车系统!std:endl;std:cout*std:endl;std:coutnnstd:endl;int list()int i;for(int j=0;j+)std:coutntt请选择功能键1-11i;if(i=12)continue;elsebreak;return i;这两个函数联合起来达到的效果如下图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号