first的实验报告.doc_第1页
first的实验报告.doc_第2页
first的实验报告.doc_第3页
first的实验报告.doc_第4页
first的实验报告.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据结构课程设计报告姓名杨天宇学号530915022009级15班1组实验室:A312提交日期成绩指导教师问题解析(对问题的分析、理解和解题方法):分析后抽象出七个类:Car(车辆)代表汽车CarFactory(汽车工厂)用于生产汽车及最后的析构CarList(车辆链表)辅助构建车辆队列Park(停车场)外界的接口,负责管理车位与便道Queue(便道)车辆临时等待的地方Position(车位)真正停车的地方Recorder(记录器)用于记录车辆到达离开信息CarParkQueuePositionRecorderCarFactory任务分工及进度计划:独立完成。星期一上午完成设计及函数借口编写;星期二完成函数实现、调试以及文档编写。数据结构选择(包括改进或给出)、算法设计:停车场(Park),管理车位和便道。构造时需要收费、车位数目、便道长度class Park public:Park(int);Park(int fee, int m, int n);Park();void update(); /整理停车场,使便道上的车尽量进入停车位void close(); /一天结束,清场void insert(Car*); /车辆进入停车场void showStatus(); /显示停车场状态private:Position* position; /停车位Queue* queue; /便道const int _fee; /停车场收费;汽车工厂(CarFactory)负责产生并管理汽车使用堆栈结构,方便管理。class CarFactory public:CarFactory();CarFactory();Car* getCar(); /制造车,并得到车辆指针private:CarList* head; /维护一个车辆链表;停车位(Position)使用线形邻接表,管理使用中和没有使用的车位。构造时需要停车费用以及车位数目。class Position public: Position(int fee, int m); Position();/轮询每辆车是否要离开。若离开,则记录,并清空占有车位;若停留,则增加每辆车的占用时间。voidupdate();/向停车位内增加车 voidinsert(Car*); /判断停车位是否已满 boolisFull(); /显示停车位状态 voidshowStatus(); /停车位清场,并记录 voidclear();private: const intM; /上限 const int_fee; /费用 int_count; /车辆计数 int*_map; /每个车位如果占用为1,否则为0 Car*_cars; /每辆车;便道(Queue)使用链式队列,管理等待车辆,先到先入。构造需要便道长度。class Queue public:Queue(int n);Queue();voidinsert(Car*); /插入车辆Car*pop(); /出车boolisEmpty(); /判断便道是否为空boolisFull(); /判断便道是否已满voidshowStatus(); /显示状态intgetCount()return _count; /获得便道车辆数目private:const intN;int_count;CarList*head; /队列头指针CarList*tail; /队列尾指针;编程与程序清单Procedure main(argc, argv)/程序运行的入口函数/显示用户界面,提示输入:空车位数量,等待队列长度,停车场费用以及备份文件名。setup();/根据用户输入创建停车场。CarFactory carFactory;Park park(cost, m, n);/24个循环代表24小时,每个小时(循环)内进行如下处理:for(int i = 0 ; i timeofday ; +i)/整理停车场,使便道上的车尽量进入停车位;park.update();/汽车工厂随机产生一定数量的车,并申请进入停车场;int _nCar = rand() % 21;for(int j = 0 ; j 36 ; +j)park.insert(carFactory.getCar();/显示此时状态park.showStatus();/一天结束,整个停车场内的车清场并记录。park.close();/显示一天的统计信息。Recorder:summarize();测试方法、测试数据与测试结果对于题目给出的数据,N=5,M=30,COST=30,测试结果见result1.txt当N=1,M=10,COST=30时,测试结果见result2.txt当N=10,M=1,COST=30时,测试结果见result3.txt当N=10,M=10,COST=30时,测试结果见result4.txt程序的使用说明(见附录)总结(对所作程序进行分析、评价运行效果,总结遇到的问题和解决办法)程序基本能完成停车场情况的模拟情况,并且能够用户自定义空车位数量,等待队列长度,停车场费用以及备份文件名等。人机交互及界面友好。运行时无明显延时。对于车的内存管理出现过问题,同一辆车被多次析构。最后理清逻辑关系后,使用工厂模式,对车辆管理由车厂统一管理。由于类的指针成员没有初始化,也出现过问题。最后缩小规模发现问题。以后应该养成良好的编程习惯,一切变量初始化。附录 用户使用说明运行软件后,首先进入用户输入界面:用户根据提示可以输入空车位数量,等待队列长度,停车场费用以及备份文件名。进行完参数设定后,程序开始模拟。每小时报告一次停车场出入情况,并配有图形说明。其中,图形部分不输出到记录文件中。红色部分为时间。蓝色部分为车辆出入情况的文字信息。绿色部分为车辆出入情况的图形信息。显示过24小

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论