车位管理课程设计报告_第1页
车位管理课程设计报告_第2页
车位管理课程设计报告_第3页
车位管理课程设计报告_第4页
车位管理课程设计报告_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计报告设计题目:车位管理 学生姓名:专业:计算机科学与技术班级:学号:指导老师:完成日期:2012.7.4合肥工业大学计算机与信息学院(一) 需求和规格说明车位管理随着家庭购买汽车的增加,停车场车位紧张的问题越来越突出。请根据题目要求完成简单的车位管理程序。 1停车场有若干停车位(为说明问题,假定为3个),每个位置可以存放不同种类的汽车,包括卡车Truck,客车Carriage和小轿车Car,但同一时刻一个位置只能存放0或1辆汽车。 2管理系统模拟实际车辆停车的情况:停车:新来车辆时如果有空位,按顺序为该车分配停车位,并自动记录开始停车的时间(用系统的时间);计费:车辆开走时,输入车位编

2、号,自动记录结束停车的时间(用系统的时间);计算出相应停车费;显示:显示停车场中各类车辆的信息。 保存退出3定义描述停车场的类Park,其中有3个位置用于存放各类车辆。 4定义基类Automobile,至少包括纯虚函数Pay用于显示车辆信息并交纳相应停车费。 5定义派生类Truck,Carriage和Car,这些车辆除了拥有车牌号、之外, Truck还拥有载重量(浮点数,单位吨)属性,Carriage还拥有乘坐人数(整数,单位座)属性,Car还拥有排气量(浮点数,单位L)属性。具体实现上述纯虚函数Pay,显示每类车辆的相应信息,并给出计价提示,其中Truck收费2元/小时,Carriage收费

3、1.5元/小时,Car收费1元/小时。(二) 设计根据上述需求,设计一个基类Automobile,然后派生出Truck(卡车),Carriage(客车),Car(小轿车)。定义描述停车场的类Park,其中有3个位置用于存放各类车辆。在基类中,除了定义公用变量time和number以外,还应统一定义对各类车都应有的操作,这样可以规范各派生类的基本行为。但是各类人员的情况不同,不能在基类Automobile中统一定义计算方法。各类人员信息的显示内容也不同,同样不能在基类中统一定义显示方法。因此,在Automobile类中用纯虚函数的方式定义了计算收费函数pay()和取车函数pick(),然后在派生

4、类中再根据各自的同名函数实现具体的功能。即先定义基类Automobile,在通过公有继承得到Car, Carriage,Car.同时定义含有AutomobilePark3的类Park。成员类别类型成员名描述Automobile属性char *Number车牌号inttime停车时间clock_tstart进场时间clock_tfinish出场时间方法voidpay()计算停车费(为纯虚函数)voidpick()取车(为纯虚函数)AutomobileAutomobile()析构函数类名成员类别类型成员名描述Truck属性floatzzl载重量inttrucksum卡车数目方法voidpay()显

5、示信息并停止计时,显示费用voidpick()取车时使卡车数目减一intnumber()返回此时的卡车数目TruckTruck()析构函数TruckTruck()初始化卡车的各类信息并开始计时Carriage属性intchairs客车载客数量intcarriagesum客车数目方法voidpay()显示信息并停止计时,显示费用voidpick()取车时使客车数目减一intnumber()返回此时的客车数目CarriageCarriage()初始化客车的各类信息并开始计时CarriageCarriage()析构函数Car属性floatair排气量intcarsum小轿车数目方法voidpay()

6、显示信息并停止计时,显示费用CarCar()初始化小轿车的各类信息并开始计时 voidpick()取车时使小轿车数目减一intnumber()返回此时的小轿车数目CarCar()析构函数Park属性AutomobilePark3提供三个位置方法ParkPark()使数组Park3指向均为空voidpick(int n)取出第n个位置上的车voidstatistics()显示此时的停车情况及其信息intJudge(Park p)友元函数,按顺序选取为空的位置(三) 用户手册按程序提示进行即可。(四) 调试及测试进一步改进能灵活选取停车位置,而不是顺序依次选取。附录源程序#include#incl

7、udeclass Automobilepublic:virtual void pay()=0; virtual void pick()=0; Automobile();protected:char *Number; int time;clock_t start,finish; ;class Truck:public virtual Automobilepublic:Truck();void pay();void pick(); static int number(); Truck();protected:float zzl; static int trucksum; ;class Carria

8、ge:public Automobilepublic:Carriage();void pay();void pick();static int number(); Carriage();protected:int chairs; static int carriagesum; ;class Car:public Automobilepublic:Car();void pay();void pick();static int number();Car();protected:float air; static int carsum; ;class Parkpublic:Park();void p

9、ick(int n); void statistics();friend int Judge(Park p);Automobile *park3;int Truck:trucksum=0;Truck:Truck()Number=new char20;trucksum+;coutNumber;coutzzl;start=clock();void Truck:pay()finish=clock();time=int(finish-start)/36000000+1;cout*endl;cout车辆类型:卡车endl;cout车牌号:Numberendl;cout卡车的载重量为:zzl吨endl;c

10、out卡车的收费标准为每小时2元. endl;cout停车的时间为:time小时endl;cout所需费用为:2*time元endl;cout*endl;void Truck:pick()trucksum-;int Truck:number()return trucksum;int Carriage:carriagesum=0;Carriage:Carriage()Number=new char20;carriagesum+;coutNumber;coutchairs;start=clock();void Carriage:pay() finish=clock();time=int(finis

11、h-start)/36000000+1;cout*endl;cout车辆类型:客车endl;cout车牌号:Numberendl;cout客车可以乘坐的人数:chairs吨endl;cout客车的收费标准为每小时1.5元. endl;cout停车的时间为:time小时endl;cout所需费用为:1.5*time元endl;cout*endl;void Carriage:pick()carriagesum-;int Carriage:number()return carriagesum;int Car:carsum=0;Car:Car() Number=new char20;carsum+;

12、coutNumber;coutair;start=clock();void Car:pay() finish=clock();time=int(finish-start)/36000000+1; cout*endl;cout车辆类型:小轿车endl;cout车牌号:Numberendl;cout小轿车的排气量:airLendl;cout小轿车的收费标准为每小时1元. endl;cout停车的时间为:time小时endl;cout所需费用为:1*time元endl;cout*endl;void Car:pick()carsum-;int Car:number()return carsum;Par

13、k:Park()for(int i=0;i3;i+)parki=NULL;void Park:pick(int n)if(parkn=NULL)cout第n个车位上没有车!pay();parkn-pick(); delete parkn; parkn=NULL; cout取车成功!endl;void Park:statistics() cout目前停车场有:Truck:number()辆卡车,Carriage:number()辆客车,Car:number()辆小轿车!endl; for(int i=0;ipay();int Judge(Park p) for(int j=0;j3;j+)if(

14、p.parkj=NULL) return j;break;return 0;int main()Park *park=new Park;Truck *truck;Carriage *carriage;Car *car;int n=0,k,m;int i=0;char kind;while(1) cout*endl;cout-endl;cout* *endl;cout* 欢迎进入停车场交费管理系统 *endl;cout* *endl;cout-endl;cout*endl;coutendl;cout请选择(1-3):endl;cout 1:停 车endl;cout 2:取车交费endl;cout 3:车辆状态i;while(i3)cout错误输入!endl;couti;switch(i)case 1: if(n2) cout车库已满,无法再停车endl; break;couta:卡车 b:客车 c:轿车endl;coutkind;while (kind!=a&kind!=b&kind!=c)coutkind; m=Judge(*park);switch(kind)

温馨提示

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

评论

0/150

提交评论