作业1:输入两个变量,输出两个变量的最大值。要求:使用C++语言,使用max函数完成求最大值的操作。
#include<iostream.h>
int max(int x,int y)
{return(x>y?x:y);}
int main(int argc,char*argv[])
{
int a,b;
cout<<"输入两个数,求出最大值:"<<endl;
cin>>a>>b;
cout<<"最大值为:"<<max(a,b)<<endl;
cin>>a;
return0;enum c++
}
作业2:(1)输入下列简单C++程序,完成编译、连接、运行,熟悉C++程序的开发过程。#include<iostream>
using namespace std;
const float PI=3.1416;
void main()
{
int iType;
float radius,a,b,area;
cout<<"图形的类型为?(1-圆形2-长方形3-正方形):";
cin>>iType;
switch(iType)
{
case1:
cout<<"圆的半径为:";
cin>>radius;
area=PI*radius*radius;
cout<<"面积为:"<<area<<endl;
break;
case2:
cout<<"矩形的长为:";
cin>>a;
cout<<"矩形的宽为:";
cin>>b;
area=a*b;
cout<<"面积为:"<<area<<endl;
break;
case3:
cout<<"正方形的边长为:";
cin>>a;
area=a*a;
cout<<"面积为:"<<area<<endl;
break;
default:
cout<<"不是合法的输入值!"<<endl;
}
}
(2)改写以上程序,要求:编写三个内联函数分别完成1-圆形2-长方形3-正方形的求面积操作。
(3)改写以上程序,要求:编写三个函数分别完成1-圆形2-长方形3-正方形的求面积操作,以上三个函数分别写在三个文件中。
(4)思考:可否使用重载函数完成三种形状的求面积操作?
答案:(2)改写以上程序,要求:编写三个内联函数分别完成1-圆形2-长方形3-正方形的求面积操作。
#include<iostream>
using namespace std;
const double PI=3.1416;
inline float cirlearea(float);
inline float rectarea(float);
inline float zrectarea(float);
void main()
{
int iType;
float radius,a,b,area;
cout<<"图形的类型为?(1-圆形2-长方形3-正方形):";
cin>>iType;
switch(iType)
{
case1:
cout<<"圆的半径为:";
cin>>radius;
area=cirlearea(radius);
cout<<"面积为:"<<area<<endl;
break;
case2:
cout<<"矩形的长为:";
cin>>a;
cout<<"矩形的宽为:";
cin>>b;
area=a*b;
cout<<"面积为:"<<area<<endl;
break;
case3:
cout<<"正方形的边长为:";
cin>>a;
area=a*a;
cout<<"面积为:"<<area<<endl;
break;
default:
cout<<"不是合法的输入值!"<<endl;
}
}
float cirlearea(float r)
{
float area;
return area=PI*r*r;
}
float rectarea(float a,float b)
{
float area;
return area=a*b;
}
float zrectarea(float a)
{
float area;
area=a*a;
}
(3)改写以上程序,要求:编写三个函数分别完成1-圆形2-长方形3-正方形的求面积操作,以上三个函数分别写在三个文件中。
#include<iostream>
using namespace std;
const double PI=3.1416;
inline float cirlearea(float,float);
inline float rectarea(float,float);
inline float zrectarea(float,float);
void main()
{
int iType;
float radius,a,b,area;
float(*carea)(float,float);
cout<<"图形的类型为?(1-圆形2-长方形3-正方形):";
cin>>iType;
switch(iType)
{
case1:
carea=cirlearea;
cout<<"圆的半径为:";
cin>>radius;
area=(*carea)(radius,a=0);
cout<<"面积为:"<<area<<endl;
break;
case2:
carea=rectarea;
cout<<"矩形的长为:";
cin>>a;
cout<<"矩形的宽为:";
cin>>b;
area=(*carea)(a,b);
cout<<"面积为:"<<area<<endl;
break;
case3:
carea=zrectarea;
cout<<"正方形的边长为:";
cin>>a;
area=(*carea)(a,a);
cout<<"面积为:"<<area<<endl;
break;
default:
cout<<"不是合法的输入值!"<<endl;
}
}
float cirlearea(float r,float def)
{
float area;
return area=PI*r*r;
}
float rectarea(float a,float b)
{
float area;
return area=a*b;
}
float zrectarea(float a,float def)
{
float area;
return area=a*a;
}
作业3:
(1)设计一个类CRectangle,要求如下所述:
a.该类中的私有成员变量存放Rectangle的左上角x,y和它的长、宽,并且它们的默认值都是10。
b.通过函数设置其长和宽,并确保长和宽在(0,50)范围之内。
c.定义求它的周长的函数Perimeter。
#include<iostream>
using namespace std;
class Rect
{
private:
int length;
int width;
int perim;
public:
Rect()
{
length=10;
width=10;
}
Rect(int length,int width)
{
this->length=length;
this->width=width;
}
void setLength(int length)
{
if(length>0&&length<50)
{
this->length=length;
}
else
{
cout<<"INPUT ERROR!"<<endl;
}
}
void setWidth(int width)
{
if(width>0&&width<50)
{
this->width=width;
}
else
{
cout<<"INPUT ERROR!"<<endl;
}
}
float permi()
{
return length*width;
}
};
int main()
{
Rect a;
a.setLength(20);
a.setWidth(20);
cout<<a.permi()<<endl;
<();
return0;
}
(2)在实验任务一的基础上,要求有如下成员函数。
a.Move:从一个位置移动到另一个位置。
b.Size:改变矩形的大小。
c.Where:返回矩形左上角的坐标值。
d.Area:计算面积。
clase CRectangle
{
public:
void Move(int dx,int dy){left+=dx;top+=dy;};
void Size(int newW,int newH){width=newW;height=newH;};
void Where(int&x,int&y){x=left;y=top;};
int Area(){return(width*height);};
private:
int left,top;//矩形的左上角横坐标和纵坐标
int width,height;//矩形的宽度和高度
};
作业4:声明一个CPU类,要求:
(1)包含主频(frequency),字长(wordlength),CPU倍频系数(coefficient)属性,其中字长为枚举型enum cpu_wordlen={W16,W32,W64,W128,W256},frequency是单位为GHz的实数,coefficient为浮点型数据。两个公有成员函数run和stop分别表示CPU的运行与停止。
(2)请在构造函数(带参数和不带参数)、拷贝构造函数、析构函数、run和stop函数体给出相应的提示(输出提示字符串,例如“the CPU is running!”)。
(3)说明并实现这个类,观察构造函数、拷贝构造函数和析构函数的调用顺序。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论