资源描述:
《C语言-汽车租赁管理系统实习报告书.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、西北农林科技大学信息工程学院《数据结构与C语言综合训练》实习报告题目:汽车租借公司的管理学号姓名陈金亚专业班级计算机科学与技术102班指导教师蔡骋完成日期2011年7月8日——7月17日30目录一、综合训练目的与要求3二、综合训练任务描述3三、算法设计3四、详细设计说明12五、调试与测试13六、实习日志15七、实习总结15八、附录:核心代码清单1530一、综合训练目的与要求本综合训练是软件工程专业重要的实践性环节之一,是在学生学习完《算法分析》课程后进行的综合练习。本课综合训练的目的和任务:1.巩固和加深学生对算法分析课程基本知识的理解和掌握;
2、2.培养利用算法知识解决实际问题的能力;3.掌握利用程序设计语言进行算法程序的开发、调试、测试的能力;4.掌握书写算法设计说明文档的能力;5.提高综合运用算法、程序设计语言、数据结构知识的能力。6.应用线性数据结构存储信息,并能够应用上面的基本操作实现事务管理。二、综合训练任务描述设计数据结构及算法完成某个汽车租借公司日常工作的组织与管理。该管理系统的基本管理对象为汽车,每台汽车用一个licensenumber进行唯一标识。每个汽车存在三种可能状态:·可以租借(availableforrent)·已借(rented)·修理中(inrepair)
3、其中在available队列中汽车应该依据汽车行驶过的路程进行排序,行驶路程最少的汽车排在最前面。在rented队列中的汽车应依据其预期返回时间进行排序,排在最前的应是预期最早返回的汽车。三、算法设计(1)文字描述用三个链表组织三种状态的汽车,能够实现租借的日常事务:引入新车,租借,收费,修理等。租借收费应根据汽车行驶的路程及借去的时间综合计算得出,路程收费标准如下:低于100Km收费20.00元,100Km以外的路程枚Km收费0.15元,汽车根据行驶的路程定期进行维护,还需实现辅助操作:汽车查询,打印全部信息,计算并打印收入、成本及收益,,主
4、要集中在链表的基本操作上管理系统应有完整地界面(最好是图形化界面)主要集中在链表的基本操作上,主要是链表的插入、删除、排序,文件导入导出。(2)框图30导出文件保存按车牌查找按车名查找开始退出结束初始化导入文件删除成功,链表操作添加成功,链表操作已修成功,链表操作修理成功,链表操作归还成功,链表操作租赁成功,链表操作输入车辆信息输入车辆信息输入车辆信息输入车辆信息输入车辆信息输入车辆信息打印车辆信息打印收益查看车辆选择车辆查找车辆查看收益删除车辆添加车辆已修车辆修理车辆租赁车辆归还车辆30(2)伪代码structcarRecord//汽车记录结
5、构体{intNumber;char*Name;intJourney;char*Information;intAvailableRent;intRentedTime;intRepairTime;floatFee;floatEarn;floatBenifit;intLable;TCHARWay[256];};//carRecordstructcarNode//节点结构体{carRecordRecord;carNode*Next;carNode*Front;};//carNodestructHead//三个链表的结构体{carNode*Availab
6、le;intaN;carNode*Rented;intreN;carNode*Repair;intrepN;};//HeadvoidlinkInsert(carNode*head,carNode*node)//链表头插入{node->Next=head->Next;if(head->Next)head->Next->Front=node;head->Next=node;30node->Front=head;}//if}//linkInsertintloadRecord(char*path,carNode*head,intlable)//文件导入
7、{FILE*file=fopen(path,"rt");fscanf(file,"%d",&num);carNode**Cars;for(i=0;iRecord.Name=(char*)malloc(NMAX);fscanf(file,"%d",&Cars[i]->Record.Number);fgets(Cars[i]->Record.Name,NMAX,file);fscanf(file,"%d",&Cars[i]->Record.Journey);fscanf(file,"%d",&C
8、ars[i]->Record.RentedTime);fscanf(file,"%d",&Cars[i]->Record.RepairTime);