基于本单元前一个作业【创建Screen类】,为Screen类增加一个私有函数,用于检测屏幕的宽与高是否符合逻辑(10分)
题目内容:
基于本单元作业【创建Screen类】,在Screen类中添加一个私有函数exitWhenInvalidScreen用于检测屏幕的宽与高是否 符合逻辑
-
函数exitWhenInvalidScreen的返回值类型、参数的个数和类型请你自行指定。
-
函数exitWhenInvalidScreen的判断逻辑如下:
1)宽度和高度均不得大于1000像素(可以等于1000像素)
2)宽度和高度必须大于0像素(不能等于0像素)
3)如果宽或者高不满足上述任一条件,则整个程序仅仅输出字符串"invalid screen size",然后退出程序
-
在Screen类的有参构造函数及Setter函数中,要调用exitWhenInvalidScreen函数检测屏幕的宽和高
-
程序中的主函数如下(与前一作业【创建Screen类】完全相同)
int main() {
int width, height;
std::cin >> width >> height;
Screen screen1 (width, height);
Screen screen2;
screen2.setWidth(800);
screen2.setHeight(600);
// 下面两行代码所输出的宽和高之间有一个空格字符分隔
std::cout << screen1.getWidth() << ’ ’ << screen1.getHeight() << std::endl;
std::cout << screen2.getWidth() << ’ ’ << screen2.getHeight();
return 0;
}
- 提示
提示1: exit() 函数可以强行退出程序,该函数在头文件 中
提示2: 函数exitWhenInvalidScreen可以设计为拥有两个参数,分别为宽和高。当仅需 判断宽或者高二者之一是否符合逻辑时,可以给另一个参数随便赋一个符合逻辑的数
提示3: 当屏幕宽和高不符合逻辑时,仅输出规定的字符串,不要输出任何多余信息
输入格式:
空格分隔的两个整数,代表屏幕的宽和高
输出格式:
由输入的数据决定输出的内容。
有两种可能输出:
输出字符串"invalid screen size"。输出该字符串后不可以换行
或者
类似作业【创建Screen类】的输出格式
输入样例1:
320 2400
输出样例1:
invalid screen size
注意:上述输出只有一行,“invalid screen size”之后没有换行
输入样例2:
320 240
输出样例2:
screen
screen
320 240
800 600
注意:上述输出共4行。第4行之后没有换行
时间限制:500ms内存限制:32000kb
#include <iostream>
class Screen
{
public:
Screen()
{
std::cout << "screen" << std::endl;
}
Screen(int Width,int Height)
{
this -> Width = Width;
this -> Height = Height;
this -> exitWhenInvalidScreen(this -> Width,this -> Height);
std::cout << "screen" << std::endl;
}
int getWidth()
{
return Width;
}
int getHeight()
{
return this->Height;
}
int setWidth(int width)
{
this->Width = width;
this -> exitWhenInvalidScreen(this -> Width,500);
return width;
} //return width
int setHeight(int height)
{
this->Height = height;
this -> exitWhenInvalidScreen(500,this->Height);
return height;
} //return height
private:
int Width{640},Height{480};
void exitWhenInvalidScreen(int w,int h)
{
if(w > 0 && h > 0 && w <= 1000 && h <= 1000)
return;
else
{
std::cout << "invalid screen size";
exit(0);
}
}
};
int main() {
int width, height;
std::cin >> width >> height;
Screen screen1 (width, height);
Screen screen2;
screen2.setWidth(800);
screen2.setHeight(600);
// 下面两行代码所输出的宽和高之间有一个空格字符分隔
std::cout << screen1.getWidth() << ' ' << screen1.getHeight() << std::endl;
std::cout << screen2.getWidth() << ' ' << screen2.getHeight();
return 0;
}