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)属性。具体实现上述纯虚函数
3、Pay,显示 每类车辆的相应信息,并给出计价提示,其中 Truck 收费 2 元/小时,Carriage 收费 1.5 元 /小时,Car 收费 1 元/小时。 (二)(二) 设计设计 根据上述需求,设计一个基 类 Automobile,然后派生出 Truck( 卡车), Carriage(客车),Car(小轿车)。定义描述停车场的类 Park,其中有 3 个位置用于存 放各类车辆。 在基类中,除了定义公用变量 time 和 number 以外,还应统一定义对各类车都 应有的操作,这样可以规范各派生类的基本行为。但是各类人员的情况不同,不能 在基类 Automobile 中统一定义计算方法。各
4、类人员信息的显示内容也不同,同样不 能在基类中统一定义显示方法。因此,在 Automobile 类中用纯虚函数的方式定义了 计算收费函数 pay()和取车函数 pick(),然后在派生类中再根据各自的同名函数实 现具体的功能。 即先定义基类 Automobile,在通过公有继承得到 Car, Carriage,Car.同时定义含有 Automobile Park3的类 Park。 成员类成员类 别别 类型类型 成员名成员名 描述描述 Automobile 属性 char * Number 车牌号 int time 停车时间 clock_t start 进场时间 clock_t finish 出
5、场时间 方法 void pay() 计算停车费(为纯虚函 数) void pick() 取车(为纯虚函数) Automobile Automobile() 析构函数 类名类名 成员类成员类 别别 类型类型 成员名成员名 描述描述 Truck 属性 float zzl 载重量 int trucksum 卡车数目 方法 void pay() 显示信息并停止计时,显示费用 void pick() 取车时使卡车数目减一 int number() 返回此时的卡车数目 Truck Truck() 析构函数 Truck Truck() 初始化卡车的各类信息并开始计 时 Carriag e 属性 int ch
6、airs 客车载客数量 int carriagesum 客车数目 方法 void pay() 显示信息并停止计时,显示费用 void pick() 取车时使客车数目减一 int number() 返回此时的客车数目 Carriage Carriage() 初始化客车的各类信息并开始计 时 Carriage Carriage() 析构函数 Car 属性 float air 排气量 int carsum 小轿车数目 方法 void pay() 显示信息并停止计时,显示费用 Car Car() 初始化小轿车的各类信息并开始 计时 void pick() 取车时使小轿车数目减一 int number() 返回此时的小轿车数目 Car Car() 析构函数 Park 属性 Automobile Park3 提供三个位置 方法 Park Park() 使数组 Park3指向均为空 void pick(int n) 取出第 n 个位置上的车 void statistics() 显示此时的停车情况及其信息 int Judge