7-1 测试c++ (20分)
倒序输出从控制台输入的n个整数
输入格式:
第一行输入一个数n,代表行数
依次输入n个整数
输出格式:
将n个整数倒序输出
输入样例:
3
1 2 3
输出样例:
321
#include
int main()
{
int n,i;
std::cin>>i;
int a[i];
for(n=0;n<i;n++)
std::cin>>a[n];
for(i--;i>=0;i--)
std::cout<<a[i];
}
7-2 计算圆的面积 (20分)
从键盘输入圆的半径,计算圆的面积并输出。圆周率PI=3.1415926。
输入格式:
在这里写输入圆的半径,例如: 3.6
输出格式:
在这里输出圆的面积,例如: 40.715
输入样例:
1.5
输出样例:
7.06858
#include
int main()
{
double PI=3.1415926,r,sum;
std::cin>>r;
sum=PI*r*r;
std::cout<<sum<<std::endl;
}
7-3 计算三角形面积 (20分)
从键盘输入三个数,用来表示三角形的三条边长。如果能构成三角形就输出三角形的面积,否则就输出No。
输入格式:
请在这里写输入三角形的三条边长,例如: 3.1 4.2 5.3
输出格式:
请在这里输出三角形的面积,例如:
6.50661
输入样例:
3.0 4.0 5.0
输出样例:
6
#include
#include
bool panduan(double a,double b,double c)
{
bool d;
if(a >0 || b >0 || c>0)
if((a+b)>c&&(a+c>b)&&(b+c)>a)
{
d=true;
return d;
}
d=false;
return d;
}
int main()
{
double a,b,c;
std::cin>>a>>b>>c;
if(panduan(a,b,c))
{
double d,e,f;
d=(a+b+c)/2.0;
f=d*(d-a)*(d-b)*(d-c);
e=sqrt(f);
std::cout<<e<<std::endl;
} else
{
std::cout<<"No"<<std::endl;
}
}
7-4 问候 (20分)
输出问候:Hello!What’s your name? 从键盘输入名字,然后输出欢迎信息。
输入格式:
请在这里写输入姓名。例如: GaiFuShuai
输出格式:
请在这里描述输出,例如:
Hello!What’s your name?
GaiFuShuai,Welcome to learn OOP using C++!
输入样例:
BaiFuMei
输出样例:
Hello!What’s your name?
BaiFuMei,Welcome to learn OOP using C++!
#include
#include
int main()
{
std::cout<<"Hello!What's your name?"<<std::endl;
std::string a;
std::cin>>a;
std::cout<<a<<",Welcome to learn OOP using C++!"<<std::endl;
}
7-1 删除字符串中指定字母 (20分)
请使用指针的方法编写程序,程序的功能是从键盘输入一个字符串(字符串长度小于100),删除其中的字母a后输出。例如,输入字符串abcaca,输出bcc。
输入样例:
abcaca
输出样例:
bcc
#include
#include
using namespace std;
void put(string &a)
{
char *b=&a[0];
int i;
for(i=0;*(b+i);i++)
{
if(*(b+i)!='a')
cout<<*(b+i);
}
}
int main(int argc, char const *argv[])
{
string a;
cin>>a;
put(a);
}
7-2 用指针方法求10个数最大和最小值之差 (20分)
请使用指针的方法编写程序,程序的功能是从键盘输入10个数,求其最大值和最小值的差。
输入格式:
输入10个整数,每个整数之间用空格分隔。
输出格式:
同样例。
输入样例:
1 2 3 4 5 6 7 8 9 10
输出样例:
difference value = 9
#include
#include
using namespace std;
void put(int *b)
{
int i,j,k;
for(i=0,j=*(b+1),k=*(b+1);i<10;i++)
{
if(j>*(b+i))
j=*(b+i);
if(k<*(b+i))
k=*(b+i);
}
cout<<"difference value = "<<k-j;
}
int main(int argc, char const *argv[])
{
int a[10],i;
for(i=0;i<10;i++)
cin>>a[i];
put(a);
}
7-3 鸿鸿哥分钱 (20分)
鸿鸿哥最近和一个小伙伴做了个小项目,赚了一个亿,两人一起高高兴兴开了庆功宴之后,鸿鸿哥就准备分一下钱了。鸿鸿哥想了想,生意不是做一天的,所以一个亿之中的大部分资金还是要继续投资,不能只是做一发就走,这个想法也得到了小伙伴的认可。而余下来的钱不知道具体数值,只知道是x万~y万之间(因为某种神秘力量余下的钱一定是偶数万)。而鸿鸿哥原本也是土豪,这点小钱也看不上眼,于是他想分多一点给小伙伴,他决定把钱分成两个素数(程序员喜欢各种特别的数字),自己拿小的那份。那么问题来了,鸿鸿哥和小伙伴个各拿多少万呢?鸿鸿哥想知道所有可能的分法。
输入格式:
输入两个整数x,y(6<=x,x<=y,n<=100),一组输入。
输出格式:
输出x和y之间所有偶数表示成的两个素数之和。
输入样例:
在这里给出一组输入。例如:
8 10
输出样例:
在这里给出相应的输出。例如:
8=3+5
10=3+7
#include
#include
#include
using namespace std;
void out(int a)
{
int b,c,d;
for(b=3;b<=a/2;b+=2)
{
for(c=2;c<=sqrtl(b);c++)
if(b%c==0)
break;
if(c>sqrtl(b))
d=a-b;
else
break;
for(c=2;c<=sqrtl(d);c++)
if(d%c==0)
break;
if(c>sqrtl(d))
{
cout<<b<<"+"<<d<<endl;
break;}
}
}
void put(int x,int y)
{
for(;x<=y;x++)
{
if(x%2==0)
{
cout<<x<<'=';
out(x);
}
}
}
int main(int argc, char const *argv[])
{
int x,y;
cin>>x>>y;
put(x,y);
}
7-4 实数排序 (20分)
本题要求编写程序,输入n个实数,使用指针引用的方式将它们按从大到小的顺序排列。
输入格式:
输入第一行给出一个正整数n(2≤n≤10),输入第二行给出n个实数,其间以空格分隔。
输出格式:
输出从大到小排好序的n个数(保留2位小数),每个数之间空一格,行末没有空格。
输入样例:
在这里给出一组输入。例如:
5
3.2 5.4 6.12 2.51 4.23
输出样例:
在这里给出相应的输出。例如:
6.12 5.40 4.23 3.20 2.51
#include
#include
#include
using namespace std;
void put(float *a,int n)
{
int i,j;
float t;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(*(a+i)>*(a+j))
{
t=*(a+i);
*(a+i)=*(a+j);
*(a+j)=t;
}
}
}
}
void out(float *a,int n)
{
int i=1;
printf("%.2f",*(a+i-1));
for(;i<n;i++)
{
printf(" %.2f",*(a+i));
}
}
int main(int argc, char const *argv[])
{
int n,i;
cin>>n;
float a[n];
for(i=0;i<n;i++)
cin>>a[i];
put(a,n);
out(a,n);
}
7-1 设计一个矩形类Rectangle并创建测试程序(C++) (20分)
设计一个名为Rectangle的矩形类,这个类包括:两个名为width和height的double数据域,它们分别表示矩形的宽和高。width和height的默认值都为1.该类包括矩形类的无参构造函数(默认构造函数);一个width和height为指定值的矩形构造函数;一个名为getArea( )的函数返回矩形的面积;一个名为getPerimeter( )的函数返回矩形的周长。请实现这个类。编写一个测试程序,创建一个Rectangle对象,从键盘输入矩形的宽和高,然后输出矩形的面积和周长。
输入格式:
3.5 35.9(第一个数表示矩形的宽,第二个数表示矩形的高,中间是空间分隔。)
输出格式:
125.65 (第一行输出矩形的面积) 78.8 (第二行输出矩形的周长)
输入样例:
3.5 35.9
输出样例:
125.65
78.8
#include
using namespace std;
class Rectangle
{
private:
double width=1;
double height=1;
public:
Rectangle();
Rectangle(double a,double b)
{
width=a;
height=b;
}
double getArea()
{
return width*height;
}
double getPerimeter()
{
return 2*width+2*height;
}
} ;
int main(int argc, char *argv[])
{
double c,d;
cin>>c>>d;
Rectangle a(c,d);
cout<<a.getArea()<<endl;
cout<<a.getPerimeter()<<endl;
}
7-3 例4-3游泳池改造预算 (20分)
例4-3一圆形游泳池如图所示,现在需在其周围建一圆形过道,并在其四周围上栅栏。栅栏价格为35元/米,过道造价为20元/平方米。过道宽度为3米,游泳池半径由键盘输入。要求编程计算并输出过道和栅栏的造价。
输入格式:
输入一个整数或小数。
输出格式:
分两行输出:在第一行中输出栅栏的造价。在第二行输出过道的造价。
输入样例:
10
输出样例:
Fencing Cost is $2858.85
Concrete Cost is $4335.4
#include
using namespace std;
class pool
{
private:
double r;
double pi=3.1415926;
public:
pool(double a)
{
r=a;
}
double zhalan()
{
return pi*2*(r+3)*35;
}
double guodao()
{
return (pi*(r+3)*(r+3)-pi*r*r)*20;
}
} ;
int main(int argc, char *argv[])
{
double b;
cin>>b;
pool a(b);
cout<<"Fencing Cost is $"<<a.zhalan()<<endl;
cout<<"Concrete Cost is $"<<a.guodao()<<endl;
}
7-4 立方体类 (20分)
定义立方体类Box,数据成员有长宽高且都是整数,构造函数初始化数据成员,成员函数计算体积,主函数中输入长宽高,输出立方体体积。
输入格式:
输入立方体的长宽高,中间用空格分隔。
输出格式:
输出体积并换行。
输入样例:
在这里给出一组输入。例如:
1 2 3
输出样例:
在这里给出相应的输出。例如:
6
#include
using namespace std;
class Box
{
private:
int a,b,c;
public:
Box(int d,int e,int f)
{
a=d;
b=e;
c=f;
}
int tiji()
{
return a*b*c;
}
} ;
int main(int argc, char *argv[])
{
int a,b,c;
cin>>a>>b>>c;
Box d(a,b,c);
cout<<d.tiji()<<endl;
}
7-2 队列操作 (30分)
请实现一个MyQueue类,实现出队,入队,求队列长度.
实现入队函数 void push(int x); 实现出队函数 int pop(); 实现求队列长度函数 int size();
输入格式:
每个输入包含1个测试用例。每个测试用例第一行给出一个正整数 n (n <= 10^6) ,接下去n行每行一个数字,表示一种操作: 1 x : 表示从队尾插入x,0<=x<=2^31-1。 2 : 表示队首元素出队。 3 : 表示求队列长度。
输出格式:
对于操作2,若队列为空,则输出 “Invalid”,否则请输出队首元素。 对于操作3,请输出队列长度。 每个输出项最后换行。
输入样例:
5
3
2
1 100
3
2
输出样例:
0
Invalid
1
100
#include
using namespace std;
vector<int> obj;
int duilie=0,ren=0;
class MyQueue
{
private:
public:
void push(int x)
{
obj.push_back(x);
duilie++;
}
int pop(){
if(duilie==0)
cout<<"Invalid"<<endl;
if(duilie!=0)
{
cout<<obj[0]<<endl;
vector<int>::iterator s = obj.begin();
obj.erase(s);
duilie--;}
}
int size()
{
int i;
for(i=0;i<obj.size();i++)
{
;
}
cout<<i<<endl;
}
};
int main(int argc, char *argv[])
{
unsigned long long int i,j,k;
cin>>i;
MyQueue a;
for(j=0;j<i;j++)
{
cin>>k;
switch(k)
{
case 1:
int x;
cin>>x;
a.push(x);
break;
case 2:
a.pop();
break;
case 3:
a.size();
}
}
}
7-2 计算全班学生C++课程的总成绩和平均成绩 (20分)
定义一个类Student,记录学生C++课程的成绩。要求使用静态数据成员或静态成员函数计算全班学生C++课程的总成绩和平均成绩。
输入格式:
输入5个不超过100的正整数,作为C++成绩。
输出格式:
在第一行中输出成绩的和,第二行输出平均成绩。
输入样例:
90 80 70 60 50
输出样例:
350
70
#include
using namespace std;
class Student
{
private:
static double num;
static double sum;
public:
void add1(double a)
{
sum+=a;
num++;
}
double fan1()
{
return sum;
}
double fan2()
{
return sum/(num*1.0);
}
} ;
double Student::num=0;
double Student::sum=0;
int main(int argc, char *argv[])
{
Student a;
for(int i=0;i<5;i++)
{
double j;
cin>>j;
while(j<0)
{
cin>>j;
}
a.add1(j);
}
int b,c;
cout<<"The total score is "<<a.fan1()<<endl;
cout<<"The average score is "<<a.fan2()<<endl;
}
7-4 立方体类的实现 (20分)
立方体类Box的实现,完成计算体积、计算表面积、输出结果等功能。其中给定的主函数为:
int main( ){
float ab;
cin>>ab;
Box obj;
obj.seta( ab );
obj.getvolume( );
obj.getarea( );
obj.disp( );
return 0;
}
输入格式:
立方体的边长,可以是float类型的数据。
输出格式:
立方体的体积和表面积,中间用一个空格隔开,末尾换行。
输入样例:
3
输出样例:
27 54
#include
using namespace std;
class Box
{
private:
int a,b,c;
public:
void seta(int c)
{
Box::a=c;
}
void getvolume()
{
Box::b=Box::a*Box::a*Box::a;
}
void getarea()
{
Box::c=Box::a*Box::a*6;
}
void disp()
{
cout<<b<<" "<<c<<endl;
}
} ;
int main( ){
float ab;
cin>>ab;
Box obj;
obj.seta( ab );
obj.getvolume( );
obj.getarea( );
obj.disp( );
return 0;
}
7-6 (组合类)一定平面二维点类Point,线段类Line是由两个Point点组成的组合类 (30分) } 输入格式: 输出格式: 输入样例: 0 0 create Point:P(0,0) 7-1 求两点之间距离 (20分) 输入格式: 输出格式: 输入样例: 输出样例: 7-2 友元函数的练习 (20分) 参考主函数: int main() { int n,m; cin>>n>>m; Boat boat(n); Car car(m); cout<<“船和汽车共重”< 输入格式: 输出格式: 输入样例: 40 30 船和汽车共重70吨 7-3 复数类的操作 (20分) 2、定义构造函数,用于指定复数的实部与虚部。 3、定义取反成员函数,调用时能返回该复数的相反数(实部、虚部分别是原数的相反数)。 4、定义成员函数Print(),调用该函数时,以格式(real, image)输出当前对象。 5、编写加法友元函数,以复数对象c1,c2为参数,求两个复数对象相加之和。 6、主程序实现: (1)读入两个实数,用于初始化对象c1。 (2)读入两个实数,用于初始化对象c2。 (3)计算c1与c2相加结果,并输出。 (4)计算c2的相反数与c1相加结果,并输出。 输入格式: 第一行是复数c1的实部与虚部,以空格分隔; 第二行是复数c2的实部与虚部,以空格分隔。 输出格式: 第一行是c1与c2之和; 第二行是c2的相反数与c1之和; 第三行是c2 。 输入样例: 2.5 3.7 (6.7, 10.2) 1 两点间距离计算 (20分) class Point_1D { protected: float x;//1D 点的x坐标 public: Point_1D(float p = 0.0); float distance(const Point_1D & p2); } 以Point_1D为基类建立一个派生类Point_2D,增加一个保护数据成员: float y;//2D平面上点的y坐标 以Point_2D为直接基类再建立一个派生类Point_3D,增加一个保护数据成员: float z;//3D立体空间中点的z坐标 生成上述类并编写主函数,根据输入的点的基本信息,建立点对象,并能计算该点到原点的距离。 输入格式: 测试输入包含若干测试用例,每个测试用例占一行(点的类型(1表示1D点,2表示2D点,3表示3D点) 第一个点坐标信息(与点的类型相关) 第二个点坐标信息(与点的类型相关))。当读入0时输入结束,相应的结果不要输出。 输入样例: 1 -1 0 2 3 4 0 0 3 1 2 2 0 0 0 0 输出样例: Distance from Point -1 to Point 0 is 1 Distance from Point(3,4) to Point(0,0) is 5 Distance from Point(3,3,3) to Point(0,0,0) is 3 作者 7-2 多边形周长计算(继承) (20分) class polygon { protected: int number;//边数,最多不超过100条边 int side_length[100];//边长数组 polygon();//构造函数根据需要重载 建立一个派生类rectangle(矩形),增加以下数据成员: int height; rectangle类的无参和参数化构造函数 int side_len; equal_polygon类的无参和参数化构造函数 输入格式: 测试输入包含一个测试用例,该测试用例的第一行输入多边形的个数n,接下来n行每一行给出一个多边形的基本信息,每行的第一个数字为当前多边形的类型,0为一般多边形,后面跟随m个数字为m条边的边长,-1为一般多边形边长输入结束标志,1为矩形,后面跟随两个数字,分别为height和width,2为等边多边形,后面跟随两个数字为等边多边形的边数和边长。 输入样例: 3 0 32 54 76 88 24 -1 1 32 54 2 3 32 输出样例: 5 274 4 172 3 96 7-1 图书音像出租管理 (10分) 输入样例 7-2 宠物的生长 (10分) 输入样例 输出样例 7-3 师生信息管理 (10分) 输入样例 输出样例 7-4 汽车收费 (10分) class Vehicle { protected: string NO;//编号 public: virtual void display()=0;//输出应收费用 } 以Vehicle为基类,构建出Car、Truck和Bus三个类。 Car的收费公式为: 载客数8+重量2 Truck的收费公式为:重量*5 Bus的收费公式为: 载客数*3 生成上述类并编写主函数,要求主函数中有一个基类Vehicle指针数组,数组元素不超过10个。 Vehicle *pv[10]; 主函数根据输入的信息,相应建立Car,Truck或Bus类对象,对于Car给出载客数和重量,Truck给出重量,Bus给出载客数。假设载客数和重量均为整数 输入格式:每个测试用例占一行,每行给出汽车的基本信息,每一个为当前汽车的类型1为car,2为Truck,3为Bus。接下来为它的编号,接下来Car是载客数和重量,Truck给出重量,Bus给出载客数。最后一行为0,表示输入的结束。 要求输出各车的编号和收费。 提示:应用虚函数实现多态 输入样例 1 002 20 5 3 009 30 2 003 50 1 010 17 6 0 输出样例 002 170 009 90 003 250 010 148 作者 7-5 饮料的价格 (10分) 给出下面的基类框架: Class Drink { protected: int NO; //编号 int amount; //数量 float price; //单价 public: virtual void display()=0;//输出费用 } 以Drink为基类,构建出Tea, Coffee和Milk三个类。 生成上述类,并编写主函数,要求主函数中有一个基类Drink指针数组,数组元素不超过10个。 Drink *pd[10]; 主函数根据输入的信息,相应建立Tea, Coffee或Milk类对象,并给出收费。 输入格式:每个测试用例占一行,每行给出饮料的基本信息,第一个为饮料的类型,茶为1,咖啡为2,牛奶为3。接下来是申请的编号(100-999),然后是数量和单价。对于茶叶来说,接下来输入一个地区代码,其中1代表本地。对于咖啡来说,接下来要输入一个加工代码,其中1代表现磨。最后一行为0。 要求输出编号和收费(小数点后保留1位小数)。 提示:应用虚函数实现多态 输入样例: 1 106 3 33 1 1 103 2 20 2 3 109 1 15 2 107 2 15.8 1 2 232 3 21 29 0 输出样例: 106 148.5 103 48.0 109 15.0 107 63.2 232 75.6 7-4 复数类的运算 (20分) class Complex void Complex::Display() const int main() 输出格式: 输入样例: 4 2 (7, -3) 7-1 用虚函数分别计算各种图形的面积 (20分) 输入格式: 输出格式: 输入样例: 12.6 3.5 4.5 8.4 2.0 4.5 3.2 4.5 8.4 total of all areas = 574.109
定义平面二维点类Point,(有x,y坐标,构造函数、复制构造函数,输出函数)。线段类Line是由两个Point点组成的组合类(数据成员: 两个端点,线段长度; 函数成员:构造函数、复制构造函数、计算线段长度函数) //主函数 int main() {
int x1,y1,x2,y2; cin>>x1>>y1;
cin>>x2>>y2; Point myp1(x1,y1),myp2(x2,y2); //建立Point类的对象 Line L1(myp1,myp2); //建立Line类的对象 cout<<“Line start Point is:”; L1.GetPstart().print(); cout<
输入两行,第一行为线段的起点坐标(中间已空格隔开),第二行为线段的终点坐标 (中间已空格隔开)
输入各个函数被调用过程主程序,需要填写。
在这里给出一组输入。例如:
3 4
输出样例:
在这里给出相应的输出。例如:
create Point:P(3,4)
Create a new Line:
Line start Point is:P(0,0)
Line end Point is:P(3,4)
Length of Line is:5#include
定义一个Point类,有两个数据成员:x和y, 分别代表x坐标和y坐标,并有若干成员函数。 定义一个函数Distance(), 用于求两点之间的距离。
输入有两行: 第一行是第一个点的x坐标和y坐标; 第二行是第二个点的x坐标和y坐标。
输出两个点之间的距离,保留两位小数。
0 9 3 -4
13.34
#include
定义Boat与Car两个类,两者都有私有的整型weight属性,定义两者的一个友元函数getTotalWeight(),计算二者的重量和。
请在这里写输入格式。例如:输入在一行中给出2个整数m和n。
请在这里描述输出格式。例如:对每一组输入,在一行中输出:船和汽车共重M+n吨值。
在这里给出一组输入。例如:
输出样例:
在这里给出相应的输出。例如:
#include
1、声明一个复数类Complex(类私有数据成员为double型的real和image)
输入有两行:
输出共三行:
在这里给出一组输入。例如:
4.2 6.5
输出样例:
在这里给出相应的输出。例如:
(-1.7, -2.8)
(4.2, 6.5)#include
给出下面的一个基类框架:
余春艳
单位
浙江大学
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB#include
给出下面的多边形基类框架:
private:
public:
int perimeter();//计算多边形边长
void display();//输出多边形边数和周长
}
int width;
增加以下成员函数:
int perimeter();//计算矩形边长
void display();//输出多边形边数和周长
建立一个派生类equal_polygon(等边多边形),增加以下数据成员:
增加以下成员函数:
int perimeter();//计算等边多边形边长
void display();//输出多边形边数和周长
生成上述类并编写主函数,根据输入的多边形信息,相应建立一个多边形类对象或矩形类对象或等边多边形类对象,计算每一个多边形的周长并且输出其边数和周长。#include
一个图书音像店出租图书和磁带。
给出下面一个基类的框架:
class Publication
{
protected:
string title;//名称
float price;//原价
int day;//租期
public:
virtual void display()=0;//打印价格清单
}
以Publication为基类,构建Book和Tape类。
生成上述类并编写主函数,要求主函数中有一个基类Publication指针数组,数组元素不超过10个。
Publication pp[10];
主函数根据输入的信息,相应建立Book, Tape类对象。
它们的原始租金为:租期1.2。
另外,实际收取的租金不超过2倍的租品估价。
Book的估价为:新旧程度*原价。
Tape的估价为:原价/(1+已出租次数/3)。
输入格式:每个测试用例占一行,第一项为租品类型,1为Book,2为Tape.接下来为名称、原价、租期。最后一项Book是新旧程度(0.1至1),Tape是已出租次数。以0表示输入的结束。
要求输出名称,原始租金(小数点后保留1位小数),如果原始租金大于2倍租品估价,则同时给出实际应收取的租金(小数点后保留1位小数),并在最后标明R。
1 AAA 19.5 3 0.5
1 BBB 9.5 2 0.1
2 AA 10 2 0
2 DDDD 12.5 2 38
1 FFF 42 3 0.1
0
输出样例
AAA 3.6
BBB 2.4 1.9 R
AA 2.4
DDDD 2.4 1.8 R
FFF 3.6#include
现在要开发一个系统,对宠物的生长状态进行管理。
给出下面的一个基类框架
class Pet
{
protected:
string name;//姓名
int length;//身长
int weight;//体重
int current;//当前日期
public:
virtual void display(int day)=0;//输出目标日期的身长和体重
}
以Pet为基类,构建出Cat和Dog两个类:
Cat一天身长加1,体重加2。
Dog一天身长加2,体重加1。
生成上述类并编写主函数,要求主函数中有一个基类Pet指针数组,数组元素不超过10个。
Pet *pt[10];
主函数根据输入的信息,相应建立Cat类对象或Dog类对象,并给出目标日期宠物的身长和体重。
输入格式:每个测试用例占一行,每行给出宠物的基本信息,第一个为当前宠物的类型:1为Cat,2为Dog。接下来为它的名字,随后的两个数字为身长和体重,最后为测身长和体重的日期(不大于10的正整数)。最后一行为目标日期(大于10的正整数)。
要求输出目标日期宠物姓名、身长和体重
提示:应用虚函数实现多态
1 Marry 22 12 5
2 Jack 10 9 9
1 Jim 11 8 6
11
Marry 28 24
Jack 14 11
Jim 16 18#include
给出下面的一个基类框架
class Person
{
protected:
int NO;//编号
public:
virtual void display()=0;//输出相关信息
}
以Person为基类,构建出Student、Teacher两个类。
生成上述类并编写主函数,要求主函数中有一个基类Person指针数组,数组元素不超过10个。
Person *pp[10];
主函数根据输入的信息,相应建立Student, Teacher类对象,对于Student给出期末5门课的成绩(为整数,缺考的科目填-1), 对于Teacher则给出近3年,每年发表的论文数量。
输入格式:每个测试用例占一行,第一项为人员类型,1为Student,2为Teacher.接下来为编号(0-9999),接下来Student是5门课程成绩,Teacher是3年的论文数。最后一行为0,表示输入的结束。
要求输出编号,以及Student缺考的科目数和已考科目的平均分(保留1位小数,已考科目数为0时,不输出平均分),Teacher的3年论文总数。
提示:应用虚函数实现多态
1 19 -1 -1 -1 -1 -1
1 125 78 66 -1 95 88
2 68 3 0 7
2 52 0 0 0
1 6999 32 95 100 88 74
0
19 5
125 1 81.8
68 10
52 0
6999 0 77.8#include
现在要开发一个系统,管理对多种汽车的收费工作。 给出下面的一个基类框架
east
单位
福州大学
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB#include
一个茶吧提供三类饮料:茶、咖啡和牛奶。其中本地茶要另加50%的服务费,其它茶要加20%的服务费;现磨咖啡要加100%的服务费,其它咖啡加20%的服务费;牛奶不加服务费,服务费精确到小数点一位。#include
根据以下代码段完善 ?? 处内容及程序内容,以实现规定的输出。
{
public:
Complex(double r=0, double i=0):real®, imag(i){ }
Complex operator+( ?? ) const;//重载双目运算符’+’
Complex operator-=( ?? ); //重载双目运算符’-=’
friend Complex operator-( ?? ) const;//重载双目运算符’-’
void Display() const;
private:
double real;
double imag;
};
{
cout << “(” << real << ", " << imag << “)” << endl;
}
{
double r, m;
cin >> r >> m;
Complex c1(r, m);
cin >> r >> m;
Complex c2(r, m);
Complex c3 = c1+c2;
c3.Display();
c3 = c1-c2;
c3.Display();
c3 -= c1;
c3.Display();
return 0;
}
输入格式:
输入有两行,分别为两个复数的实部与虚部。
按样例格式输出结果。
在这里给出一组输入。例如:
3 -5
输出样例:
在这里给出相应的输出。例如:
(1, 7)
(-3, 5)#include
定义抽象基类Shape,由它派生出五个派生类:Circle(圆形)、Square(正方形)、Rectangle( 长方形)、Trapezoid (梯形)和Triangle (三角形),用虚函数分别计算各种图形的面积,并求出它们的和。要求用基类指针数组。使它的每一个元素指向一个派生类的对象。PI=3.1415926
请在这里写输入格式。例如:输入在一行中给出9个大于0的数,用空格分隔,分别代表圆的半径,正方形的边长,矩形的宽和高,梯形的上底、下底和高,三角形的底和高。
请在这里描述输出格式。例如:输出所有图形的面积和,小数点后保留3位有效数字。
在这里给出一组输入。例如:
输出样例:
在这里给出相应的输出。例如:
作者
沙金
单位
石家庄铁道大学
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB#include