第1页共25页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共25页算法与数据结构课程设计报告请尊重我的劳动成果不要复制!题目:汽车租借公司的管理班级:学号:姓名:成绩:2014年1月1日第2页共25页第1页共25页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第2页共25页一、题目汽车租借公司的管理(1)问题描述设计数据结构及算法完成某个汽车租借公司日常工作的组织与管理。该管理系统的基本管理对象为汽车,每台汽车用一个licensenumber进行唯一标识。每个汽车存在三种可能状态:●可以租借(availableforrent)●已借(rented)●修理中(inrepair)其中在available队列中汽车应该依据汽车行驶过的路程进行排序,行驶路程最少的汽车排在最前面。在rented队列中的汽车应依据其预期返回时间进行排序,排在最前的应是预期最早返回的汽车。(2)课程设计目的应用线性数据结构存储信息,并能够应用上面的基本操作实现事务管理。(3)基本要求①用三个链表组织三种状态的汽车。②能够实现租借的日常事务:引入新车,租借,收费,修理等。③租借收费应根据汽车行驶的路程及借去的时间综合计算得出,路程收费标准如下:⒈低于100km收费20.00元⒉100km以外的路程每km收费0.15元④汽车根据行驶的路程定期进行维护。⑤还需实现辅助操作:汽车查询,打印全部信息,计算并打印收入、成本及收益。⑥管理系统应有完整地界面(最好是图形化界面)。(4)实现提示主要集中在链表的基本操作上。二、设计思想1、问题分析该公司的所有车辆只有以下三种状态:●可以租借(availableforrent)●已借(rented)●修理中(repairing)一.每种状态的都有要能够实现车辆的添加、删除、显示的最最基本的功能,他们里面又都有多辆车需要统一管理,而这些车辆无疑都是属性相同的车辆,所以可以建立一个cars结构体,包含他们共同的属性。公司日常业务有添加新车,租借汽车,归还收费、修理汽车,修理完毕,配置信息,汽车查询,打印全部信息,计算收益。其所有功能如下:第3页共25页第2页共25页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第3页共25页1.添加新车,2.租借汽车,3.归还收费、4.修理汽车,5.修理完毕,6.配置信息,7.汽车查询,8.打印信息,9.计算收益,10.退出二.基本实现:采用的链式结构,即对链表的操作。另外有两个配置文件:1.data.dat:储存的信息有汽车编号、汽车状态(0表示未借出,1表示借出,2表示维修中)、已行驶的路程、预期归还的时间、借出的次数、该车的获得的收益。2.data.ini:每辆车的成本、每次修理费、油费/km、租费(100km以下)、租费(超过100km)。三.结构关系structcars包含了一辆车的的基本信息:1.汽车编号license_number(int);2.汽车状态0--可以租借,1--已借出,2--修理中stutes(int);3.汽车行驶过的路程car_runned(float);4.汽车预期返回的时间return_time(int);5.汽车修理的次数repaired_time(int);6.汽车收入income(float);7.next指针structcars*next;四.相关函数1.读取data.ini配置信息的数据:voidReadDataIni();2.设置data.ini配置信息的数据:voidsetDataIni();3.将数据存档到data.dat中:voidsave_data(structcars*carData);4.追加数据存档到data.dat中:voidadd_data(structcars*carData);5.根据汽车所行驶的距离排序:structcars*rank_Distance(structcars*carDistance);6.根据预期返回时间排序:structcars*rank_Time(structcars*carTime);7.建立可以租借的链表:structcars*create_available(void);8.建立已借出的链表:structcars*create_rented(void);9.建立修理中的链表:structcars*create_repairing(void);10.打印汽车的信息:voidprintThreeOfCars(structcars*ThreeOfCar);11.计算链表数据个数:intcalculateCars(structcars*ThreeOfCar);12.删除链表中的汽车:voiddeleteThreeOfCar(structcars*ThreeOfCar,intxuhao);13.插入到可以租借的车链表中:structinsertThreeOfCars(structcars*ThreeOfCar,intLicenseNumber,intStu,floatCarRunned,intReturnTime,intRepairedTime,floatIco);14.增加新车:vo...