面向对象程序设计C++试验题目.docx

上传人:b****2 文档编号:17664539 上传时间:2023-07-27 格式:DOCX 页数:90 大小:41.21KB
下载 相关 举报
面向对象程序设计C++试验题目.docx_第1页
第1页 / 共90页
面向对象程序设计C++试验题目.docx_第2页
第2页 / 共90页
面向对象程序设计C++试验题目.docx_第3页
第3页 / 共90页
面向对象程序设计C++试验题目.docx_第4页
第4页 / 共90页
面向对象程序设计C++试验题目.docx_第5页
第5页 / 共90页
面向对象程序设计C++试验题目.docx_第6页
第6页 / 共90页
面向对象程序设计C++试验题目.docx_第7页
第7页 / 共90页
面向对象程序设计C++试验题目.docx_第8页
第8页 / 共90页
面向对象程序设计C++试验题目.docx_第9页
第9页 / 共90页
面向对象程序设计C++试验题目.docx_第10页
第10页 / 共90页
面向对象程序设计C++试验题目.docx_第11页
第11页 / 共90页
面向对象程序设计C++试验题目.docx_第12页
第12页 / 共90页
面向对象程序设计C++试验题目.docx_第13页
第13页 / 共90页
面向对象程序设计C++试验题目.docx_第14页
第14页 / 共90页
面向对象程序设计C++试验题目.docx_第15页
第15页 / 共90页
面向对象程序设计C++试验题目.docx_第16页
第16页 / 共90页
面向对象程序设计C++试验题目.docx_第17页
第17页 / 共90页
面向对象程序设计C++试验题目.docx_第18页
第18页 / 共90页
面向对象程序设计C++试验题目.docx_第19页
第19页 / 共90页
面向对象程序设计C++试验题目.docx_第20页
第20页 / 共90页
亲,该文档总共90页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

面向对象程序设计C++试验题目.docx

《面向对象程序设计C++试验题目.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计C++试验题目.docx(90页珍藏版)》请在冰点文库上搜索。

面向对象程序设计C++试验题目.docx

面向对象程序设计C++试验题目

标题:

1.函数重载实习二C++函数

时 限:

3000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

 设计一菜单程序,利用函数重载实现员工月工资的计算,计算方法如下:

 

(1)管理人员的月工资=月薪-缺勤天数 ×月薪 ÷22;

 

(2)销售人员的月工资=底薪+销售金额×提成比例;

 (3)计件工人的月工资=产品件数 ×每件报酬;

 (4)计时工人的月工资=工作小时×小时报酬;

输入:

职工类别及相关信息。

职工类别:

1表示管理人员;2表示销售人员;3表示计件工人;4表示计时工人;其余字符表示退出。

相关信息:

若为管理人员,则输入月薪和缺勤天数;若为销售人员,则输入底薪、销售金额和提成比例;若为计件工人,则输入产品件数和每件报酬;若为计时工人,则输入工作小时和小时报酬。

输出:

员工月工资。

输入样例:

1      〈--职工类别

5000.01〈--月薪和缺勤天数

输出样例:

4772.73

提示:

1.计算管理人员、销售人员、计件工人、计时工人的月工资的函数原型可以分别设计如下:

   doublegetEarning(doublesalary,intabsenceDays);

   doublegetEarning(doublebaseSalary,doublesalesSum,doublerate);

   doublegetEarning(intworkPieces,doublewagePerPiece);

   doublegetEarning(doublehours,doublewagePerHour);

2.菜单程序设计如下:

   

intmain()

{

   ...

   cout<<"Pleaseselect..."<

   cout<<"1:

Manager."<

   cout<<"2:

SalesMan."<

   cout<<"3:

PiecesWorker."<

   cout<<"4:

Hour-Worker."<

   cout<<"Others:

Quit"<

   cin>>sel;

   switch(sel)

   {

   case1:

       cin>>...;

       cout<

       break;

   case2:

       cin>>...;

       cout<

       break;

   case3:

       cin>>...;

       cout<

       break;

   case4:

       cin>>...;

       cout<

       break;

   default:

        break;

   }

   return0;

}

来源:

#include

usingnamespacestd;

doublegetEarning(doublesalary,intabsenceDays)

{

return(salary-salary*absenceDays/22);

}//admin

doublegetEarning(doublebaseSalary,doublesalesSum,doublerate)

{

return(baseSalary+salesSum*rate);

}

doublegetEarning(intworkPieces,doublewagePerPiece)

{

return(workPieces*wagePerPiece);

}

doublegetEarning(doublehours,doublewagePerHour)

{

return(hours*wagePerHour);

}

intmain()

{

intkind=0;

cout<<"Pleaseselect..."<

cout<<"1:

Manager."<

cout<<"2:

SalesMan."<

cout<<"3:

PiecesWorker."<

cout<<"4:

Hour-Worker."<

cout<<"Others:

Quit"<

cin>>kind;

switch(kind)

{

case1:

{

doublesalary;

intabDays;

cin>>salary>>abDays;

cout<

break;

}

case2:

{

doublebase;

doublesalesSum;

doublerate;

cin>>base>>salesSum>>rate;

cout<

break;

}

case3:

{

intworkPieces;

doublewagePerPiece;

cin>>workPieces>>wagePerPiece;

cout<

break;

}

case4:

{

doublehours;

doublewagePerHour;

cin>>hours>>wagePerHour;

cout<

break;

}

default:

break;

}

//cout<

//cout<

//cout<

//cout<

return0;

}

标题:

2.引用传递

时 限:

3000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

设计一个函数,将两个浮点数传入,然后通过引用把其和、差、积传出。

函数原型如下:

voidMath(floata,floatb,float&sum,float&sub,float&pro);

输入:

输入两个浮点数

输出:

输出两个浮点数的和、差、积。

输入样例:

6.52.3

输出样例:

8.84.214.95

#include

usingnamespacestd;

voidMath(floata,floatb,float&sum,float&sub,float&pro)

{

sum=a+b;

sub=a-b;

pro=a*b;

}

intmain()

{

floatsum=0;

floatsub=0;

floatpro=0;

floata=0;

floatb=0;

cin>>a>>b;

Math(a,b,sum,sub,pro);

cout<

return0;

}

标题:

3.函数模板

时 限:

3000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

   设计一个函数模板,实现两个同类型数据的交换。

   将设计好的函数模板分别实例化为两个整型数交换、两个字符交换的模板函数,调用这些函数并输出运行结果。

输入:

分别输入两个整型数和两个字符

输出:

分别输出两个整型数和两个字符交换的结果

输入样例:

59

输出样例:

95

#include

usingnamespacestd;

template

Tcg(T&a,T&b)

{

Tc;

c=a;

a=b;

b=c;

}

intmain()

{

inta=0;

intb=0;

charc=0;

chard=0;

cin>>a>>b>>c>>d;

cg(a,b);

cg(c,d);

cout<

return0;

}

标题:

4.默认形参值

时 限:

3000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

设计一个求空间两点距离的函数,要求第2个点的默认值为坐标原点。

输入:

两个点的坐标。

输出:

输出第一个点与原点之间的距离及输入的两个点之间的距离。

输入样例:

111

555

输出样例:

1.73205

6.9282

提示:

函数原型可设计如下:

float distance(floatx1,floaty1,floatz1,floatx2=0,floaty2=0,floatz2=0);

#include

#include

usingnamespacestd;

floatdistance(floatx1,floaty1,floatz1,floatx2=0,floaty2=0,floatz2=0)

{

returnsqrt(pow(x1-x2,2)+pow(y1-y2,2)+pow(z1-z2,2));

}

intmain()

{

floatx1=0;

floatx2=0;

floaty1=0;

floaty2=0;

floatz1=0;

floatz2=0;

cin>>x1>>y1>>z1>>x2>>y2>>z2;

cout<

cout<

return0;

}

实习三

标题:

类的定义_静态常量

时 限:

3000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

设计并实现一个圆柱类Cylinder,要求:

(1)设计两个double型的私有数据成员:

高度height和底圆半径radius。

(2)设计一个double型的公有静态常量数据成员pi(其值初始化为3.1415926),以及一个获取该常量的公有静态成员函数GetPI。

(3)在构造函数的初始化列表中初始化高度height和底圆半径radius。

(4)设计用于获取半径的成员函数GetRadius、获取高度的成员函数GetHeight、设置半径的成员函数SetRadius、设置高度的成员函数SetHeight。

(5)设计用于计算圆柱体积的成员函数Volume()、计算圆柱表面积的成员函数Area。

 

在main函数中:

根据输入的高度和半径构造圆柱对象,并输出圆柱的基本信息、体积和表面积。

输入:

圆柱的高度和底圆半径

输出:

圆周率pi、圆柱高度、底圆半径、圆柱的体积和表面积

输入样例:

2.01.0

输出样例:

pi=3.14159,height=2,radius=1:

volume=6.28319,area=18.8496

#include

usingnamespacestd;

classCylinder

{

private:

doubleheight,radius;

public:

staticconstdoublePi=3.1415926;

Cylinder(doublea=0,doubleb=0)

{

height=a;

radius=b;

}

doubleGetPI()

{

returnPi;

}

voidGetRadius()

{

cin>>radius;

}

voidGetHeight()

{

cin>>height;

}

doubleSetRadius()

{

returnradius;

}

doubleSetHeight()

{

returnheight;

}

doubleVolume()

{

returnPi*radius*radius*height;

}

doubleArea()

{

return2*Pi*radius*height+2*Pi*radius*radius;

}

};

intmain()

{

Cylindery;

y.GetHeight();

y.GetRadius();

cout<<"pi="<

cout<<"height="<

cout<<"radius="<

";

cout<<"volume="<

cout<<"area="<

return0;

}

标题:

类的定义_深拷贝

时 限:

3000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

设计并实现一个动态整型数组类Vect,要求:

(1)实现构造函数重载,可以根据指定的元素个数动态创建初始值为0的整型数组,或根据指定的内置整型数组动态创建整型数组。

(2)设计拷贝构造函数和析构函数,注意使用深拷贝。

(3)设计存取指定位置的数组元素的公有成员函数,并进行下标越界,若越界则输出“outofboundary”。

(4)设计获取数组元素个数的公有成员函数。

(5)设计用于输出数组元素的公有成员函数,元素之间以空格分隔,最后以换行符结束。

 

在main函数中按以下顺序操作:

(1)根据内置的静态整型数组{1,2,3,4,5}构造数组对象v1,根据输入的整型数构造数组对象v2。

(2)调用Vect的成员函数依次输出v1和v2的所有元素。

(3)输入指定的下标及对应的整型数,设置数组对象v1的指定元素。

(4)根据数组对象v1拷贝构造数组对象v3。

(5)调用Vect的成员函数依次输出v1和v3的所有元素。

输入:

用于构建数组对象v2的元素个数

用于设置数组对象v1的指定下标及元素值

 

输出:

数组对象v1和v2的所有元素

数组对象v1和v3的所有元素

输入样例:

10

66

 

输出样例:

12345

0000000000

outofboundary

12345

12345

提示:

#include

usingnamespacestd;

classVect

{

public:

Vect(intn=0);

Vect(intarr[],intn);

Vect(constVect&v);

~Vect();

intSize()

{

returnarrSize;

}

intGetData(inti)

{

if(i<0||i>=arrSize)

{

cout<<"outofboundary"<

}

else

returnarrData[i];

}

voidSetData(inti,intval)

{

if(i<0||i>=arrSize)

{

cout<<"outofboundary"<

}

else

arrData[i]=val;

}

voidPrintData()

{

if(arrSize>0)cout<

for(inti=1;i

{

cout<<""<

}

cout<

}

private:

intarrSize;

int*arrData;

};

Vect:

:

Vect(intn):

arrSize(n)

{

arrData=newint[arrSize];

for(inti=0;i

{

arrData[i]=0;

}

}

Vect:

:

Vect(intarr[],intn):

arrSize(n)

{

arrData=newint[arrSize];

for(inti=0;i

{

arrData[i]=arr[i];

}

}

Vect:

:

Vect(constVect&v):

arrSize(v.arrSize)

{

arrData=newint[arrSize];

for(inti=0;i

{

arrData[i]=v.arrData[i];

}

}

Vect:

:

~Vect()

{

if(arrData)

{

delete[]arrData;

arrSize=0;

}

}

intmain()

{

intarr[]={1,2,3,4,5};

intn;

cin>>n;

Vectv1(arr,5),v2(n);

v1.PrintData();

v2.PrintData();

inti,data;

cin>>i>>data;

v1.SetData(i,data);

Vectv3(v1);

v1.PrintData();

v3.PrintData();

return0;

}

实验四继承和派生

标题:

虚基类

时 限:

3000 ms

内存限制:

10000 K

总时限:

3000 ms

描述:

(1)定义人员类Person:

公有成员:

姓名(Name);

保护成员:

性别(Gender),年龄(Age);

构造函数和析构函数

(2)从人员类Person派生学生记录类StudentRecord:

添加公有成员:

学号(Number),班级(ClassName),

添加静态公有成员:

学生总人数(TotalCount);

添加保护成员:

平均成绩(Score);

实现构造函数和析构函数。

(3)从人员类Person派生教师记录类TeacherRecord:

添加公有成员:

学院(CollegeName),系(DepartmentName);

添加保护成员:

教龄(Year);

实现构造函数和析构函数。

(4)从学生记录类StudentRecord和教师记录类TeacherRecord派生学生助教类TeachingAssistant:

添加公有成员:

辅导课程(LectureName);

实现公有函数:

显示人员信息(Show),屏幕打印姓名,性别,年龄,学号,班级,学生总人数,平均成绩,学院,系,教龄,辅导课程。

实现构造函数和析构函数。

为检验类间结构设计是否正确,设计函数voidSetName(Stringname)实现更改一名助教的姓名的功能。

创建一个助教类的对象

助教

姓名性别年龄学号班级平均成绩学院系教龄辅导课程

郑七男222010123软2010189        信息软件   1数据结构

显示其信息。

调用更改姓名的函数,更改其姓名为“郑八”,并再次显示其信息。

输入:

输出:

显示构造的信息和更改前和更改后的助教信息

输入样例:

输出样例:

Person郑七constructed

Student郑七constructed

teacher郑七constructed

teachingassistant郑七constructed

Name:

郑七Gender:

男Age:

22Number:

2010123ClassName:

软20101TotalCount:

1Score:

8

9CollegeName:

信息DepartmentName:

软件Year:

1LectureName:

数据结构

Name:

郑八Gender:

男Age:

22Number:

2010123ClassName:

软20101TotalCount:

1Score:

8

9CollegeName:

信息DepartmentName:

软件Year:

1LectureName:

数据结构

teachingassistant郑八destructed

teacher郑八destructed

Student郑八destructed

Person郑八destructed

提示:

各类的构造函数和析构函数都有输出。

调用公有函数Show,以分别显示各个记录的人员信息。

在派生助教类时,使用虚基类。

#include

#include

usingnamespacestd;

classPerson

{

protected:

stringGender;

intAge;

public:

stringName;

Person(stringgender,intage,stringname)

{

Gender=gender;

Age=age;

//Name=newchar[strlen(name)+1];

//strcpy(Name,name);

Name=name;

cout<<"Person"<

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2