VC++程序设计课程实践基础题 下载本文

? 成员int day; //日期

? 构造函数birth(int y=0,int m=0,int d=0);

? 成员函数void setbir(birth b); //用b为当前对象赋值 (3)类friends。包含数据:

? 私有成员int number; //序号 ? 私有成员char name[20]; //姓名 ? 私有成员char sex; //性别

? 私有成员char telephone[13]; //联系电话 ? 公有成员birth bir; //出生年月 ? 公有成员addr add; //通信地址

? 公有构造函数friends(int nu=0,char n[20]=\\s=' ',int y=0,int

m=0,int d=0,char p[10]=\;

? 公有成员函数void setfri(int nu,char n[20],char s,birth b,addr a,char

t[13]); //为当前对象赋值

? 公有成员函数friends input(friends &bb); //为对象bb输出数据 ? 公有成员函数int search(friends aa[100],char n[20]); //在aa中查找姓

名为n的对象

? 公有成员函数void show(friends aa); //输出对象aa

? 公有成员函数void delet(friends aa[100],int k); //在aa中删除下标为

k的元素

(4)在主函数中完成主菜单的设计,并根据输入值完成所需操作。

创新要求:自设计界面,要求美观、方便,还可自增加功能,如依据不同的条件排序后输出等。

程序执行后主菜单如下: 1.输入数据 2.输出数据 3.查找数据 4.删除数据 5.退出

请选择(1~5):

3.设计一个停车场管理系统。具体要求如下:

(1)停车场有若干停车位(为说明问题,假定为3个),每个位置可以存放不

同种类的的汽车,包括卡车Truck,客车Carriage和小轿车Car,但同一时刻一个位置只能存放0或1辆汽车。

(2)管理系统模拟实际车辆停车的情况:新来车辆时如果有空位,按顺序为该

车分配停车位;车辆开走时,交纳相应停车费;统计各类车辆的数量。 (3)定义描述停车场的类Park,其中有3个位置用于存放各类车辆。 (4)定义基类Automobile,至少包括纯虚函数Pay用于显示车辆信息并交纳相

应停车费。

24

(5)定义派生类Truck, Carriage和Car,这些车辆除了拥有车牌号(字符串)、

车辆已使用年数(整数)之外,Truck还拥有载重量(浮点数,单位吨)属性, Carriage还拥有乘坐人数(整数,单位人)属性,Car还拥有排气量(浮点数,单位L)属性。具体实现上述纯虚函数Pay,显示每类车辆的相应信息,并给出计价提示,其中Truck收费2元/小时,Carriage收费1.5元/小时,Car收费1元/小时。

(6)重载输入“>>”操作符,使得可以通过cin直接读入每类车辆的相应信息。 (7)编写main函数,测试上述所要求的各种功能,即根据菜单命令为新来车

辆分配停车位、开走车辆(输入车位编号)时付费、显示停车场中各类车辆的数量。

程序执行情况如下所示:

欢迎使用本系统 本系统包含的功能如下:

1 为新来车辆分配停车位 2 开走车辆

3 统计各类车辆的数量 0 退出系统 请选择:1

a 为卡车分配停车位 b 为客车分配停车位 c 为小轿车分配停车位 请选择:a

请输入车牌号:1111 请输入使用年份:2001 请输入载重量:5 请输入放车时间:10 该车辆已加入

4.设计一个一元稀疏多项式简单计算器。要求:

(1)输入并建立多项式;

(2)输出多项式,输出形式为整数序列:c1*x^e1+c2*x^e2+…+cn*en,其中ci

和ei分别是第i项的系数和指数,序列按指数降序排列; (3)两个多项式相加,建立并输出和多项式; (4)两个多项式相减,建立并输出差多项式; (5)删除多项式;

(6)用带表头结点的单链表存储多项式,多项式的项数n存放在头结点中。 程序执行结果如下所示: 1.建立多项式 2.输出多项式

3.求两个多项式之和(必须先创建),建立和式并输出

25

4.求两个多项式之差(必须先创建),建立差式并输出 5.删除多项式 6.退出

请选择指令:1

请输入要创建的多项式的名称(单个小写字母表示):a 请输入项数:2

请按照指数递减序输入最简形式的多项式 请输入第1项的系数和指数(系数,指数):2 3 请输入第2项的系数和指数(系数,指数):-1 1 多项式a创建完毕!

5.设计一个求二个大整数四则运算的类。要求:

(1)类中分别含放二个运算数及位数、运算结果的私有成员;

(2)公有成员函数包括:构造函数和析构函数;接受数据的函数;和函数;差函数;积函数;余函数;显示函数;清零函数等。 运行结果如下:

Please enter one:1234567 Please enter two:2345678 one+two=3580245 one-two=-1111111

one*two=2895896651426 6.设计一个大学师生类,包括学生类(Student),教师类(Professor),职员类(Staff)。教师类是职员类的派生类。另有一类既作为学生又兼做助教的,可作为学生类和职员类的派生类(StudentStaff)。另外定义一个所有类的父类DataRec。 具体要求如下:

(1) DataRec类中数据成员有姓名、家庭住址,定义为指针变量。成员函数有

构造函数、析构函数,输出函数和strsave函数。输出函数定义为虚函数。strsave函数用来动态申请内存空间,拷贝参数中的字符串,返回内存空间的首地址。因为所有的派生类都要用到,设置为保护权限。

(2) Student类数据成员有专业、学号,专业定义为指针变量。Staff类数据成

员有部门、计时薪酬,部门定义为指针变量。Professor类数据成员有工资,这三个类都有输出函数,用来输出自己的数据成员。

(3) StudentStaff类多重继承学生类和职员类。成员函数有输出函数。 (4) DataRec类可以定义为虚基类。 (5) 每个类中数据成员定义为私有的。

(6) 编写main函数,测试上述所要求的各种功能。 测试结果如下所示: Wang Vi 运河路

26

Major:Computer science Idnumber:8401031 Li Xin 北京路

Department:Electrical Engineer hourly wage:16.5 zhang Xi 南京路

Department:Computer science hourly wage:0 Salary:3000 Wang Xi 乌鲁木齐路

Major:Computer science Idnumber:8401032

Department:Electrical Engineer hourly wage:5.8

7.设计一个员工管理系统。具体要求如下:

(1)分三个部门:培训处、行政处、品管处,员工分为:正式员工和准员工。 (2)定义部门类Department,其中包含:

? 增加员工的函数Add(int num)(可以增加新的正式员工或准员工,

这里num为需要增加的员工数);

? 按照在职员工姓名实现离职的函数Quit(char *name);(这里name表示

要离职的员工的名字,查找部门所有员工,若找到就删除该员工信息);

? 按照在职员工姓名查询员工情况的函数Search(char *name);(根据

name查找部门中是否有这个员工,有就显示该员工的所有信息:在职员工的姓名、性别、年龄、职位、部门等等);

? Show()函数显示当前部门所有员工信息,员工数量等情况。每个部门

的信息有:部门名称char *officename,部门中的正式员工数emp_num,部门中的准员工数stu_num,正式员工链表的头指针h_emp,非正式员工链表的头指针h_stu。

(3)定义员工类Worker,包含:

? 属性姓名、性别、年龄等;

? 获取这些属性的成员函数:char *GetName();char *GetSex();int

GetAge();char *GetPosition();等。

(4)从基类Worker中派生正式员工类Employee、准员工类Student,

其中:

? 准员工有在职期限属性,正式员工有工资属性;

27