c++设计一个名为MyInteger的类类包含: 一个名为value的int型数据域保存此对象表示的int型值。 一个用指定的int型值创建一个MyInteger对象的构造函数。 一个返回int型值的get函数。 只读函数isEven、isOdd和isPrime分别在整数为偶数、奇数或素数的情况下返回真。 静态函数isEvenint、isOddint以及isPrimeint分别
程序设计思想:
- 定义一个类MyInteger,数据域为int型的value,表示当前对象所代表的整数值。
- 实现构造函数MyInteger(int value),用指定的int型值创建一个MyInteger对象。
- 实现get函数,返回当前对象的整数值。
- 实现isEven()、isOdd()和isPrime()函数,根据当前对象的整数值分别返回真或假。
- 实现静态函数isEven(int)、isOdd(int)和isPrime(int),根据给定整数值分别返回真或假。
- 实现静态函数isEven(const MyInteger&)、isOdd(const MyInteger&)和isPrime(const MyInteger&),根据给定对象所代表的整数值分别返回真或假。
- 实现只读函数equals(int)和equals(const MyInteger&),判断当前对象所代表的整数值是否等于给定值,返回真或假。
- 实现静态函数parseInt(const string&),将一个字符串转换为一个int型值。
实现代码如下:
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
class MyInteger
{
public:
MyInteger(int value) // 构造函数
{
this->value = value;
}
int get() const // 返回当前对象的整数值
{
return value;
}
bool isEven() const // 判断当前对象的整数值是否为偶数
{
return value % 2 == 0;
}
bool isOdd() const // 判断当前对象的整数值是否为奇数
{
return value % 2 != 0;
}
bool isPrime() const // 判断当前对象的整数值是否为素数
{
if (value <= 1)
{
return false;
}
for (int i = 2; i <= sqrt(value); i++)
{
if (value % i == 0)
{
return false;
}
}
return true;
}
static bool isEven(int value) // 判断给定整数值是否为偶数
{
return value % 2 == 0;
}
static bool isOdd(int value) // 判断给定整数值是否为奇数
{
return value % 2 != 0;
}
static bool isPrime(int value) // 判断给定整数值是否为素数
{
if (value <= 1)
{
return false;
}
for (int i = 2; i <= sqrt(value); i++)
{
if (value % i == 0)
{
return false;
}
}
return true;
}
static bool isEven(const MyInteger& obj) // 判断给定对象的整数值是否为偶数
{
return obj.isEven();
}
static bool isOdd(const MyInteger& obj) // 判断给定对象的整数值是否为奇数
{
return obj.isOdd();
}
static bool isPrime(const MyInteger& obj) // 判断给定对象的整数值是否为素数
{
return obj.isPrime();
}
bool equals(int value) const // 判断当前对象的整数值是否等于给定值
{
return this->value == value;
}
bool equals(const MyInteger& obj) const // 判断当前对象的整数值是否等于给定对象的整数值
{
return this->value == obj.value;
}
static int parseInt(const string& str) // 将字符串转换为整数值
{
int value = 0;
for (char c : str)
{
if (isdigit(c))
{
value = value * 10 + (c - '0');
}
}
return value;
}
private:
int value; // 当前对象所代表的整数值
};
int main()
{
MyInteger num1(5);
cout << "num1 = " << num1.get() << endl;
cout << "isEven(num1) = " << MyInteger::isEven(num1) << endl;
cout << "isOdd(num1) = " << MyInteger::isOdd(num1) << endl;
cout << "isPrime(num1) = " << MyInteger::isPrime(num1) << endl;
MyInteger num2(6);
cout << "num2 = " << num2.get() << endl;
cout << "isEven(num2) = " << MyInteger::isEven(num2) << endl;
cout << "isOdd(num2) = " << MyInteger::isOdd(num2) << endl;
cout << "isPrime(num2) = " << MyInteger::isPrime(num2) << endl;
cout << "num1 equals 5? " << num1.equals(5) << endl;
cout << "num1 equals num2? " << num1.equals(num2) << endl;
string str = "12345";
int value = MyInteger::parseInt(str);
cout << "parseInt(\"" << str << "\") = " << value << endl;
return 0;
}
原文地址: http://www.cveoy.top/t/topic/bBDf 著作权归作者所有。请勿转载和采集!