如图所示,要求使用c++面向对象的程序设计方法,并且使用构造函数和析构函数
#include <iostream>
using namespace std;
int main()
{
int number, sum = 0;
cout << "输入一个三位数:" << endl;
cin >> number;
while (number > 0)
{
sum += number % 10; // 取余得到最低位的数字
number /= 10; // 整除得到去掉最低位的数字
}
cout << "该数各位之和为:" << sum << endl;
return 0;
}
使用构造函数和析构函数
#include <iostream>
using namespace std;
class SumDigits
{
private:
int number, sum;
public:
// 构造函数,接受一个三位数作为参数
SumDigits(int n)
{
cout << "对象被创建,输入的数为:" << n << endl;
number = n;
sum = 0;
}
// 计算各位之和的方法
void calculate()
{
while (number > 0)
{
sum += number % 10; // 取余得到最低位的数字
number /= 10; // 整除得到去掉最低位的数字
}
}
// 输出各位之和的方法
void display()
{
cout << "该数各位之和为:" << sum << endl;
}
// 析构函数,输出对象被销毁的信息
~SumDigits()
{
cout << "对象被销毁" << endl;
}
};
int main()
{
int num;
cout << "输入一个三位数:" << endl;
cin >> num;
SumDigits obj(num); // 创建SumDigits类的对象,调用构造函数
obj.calculate(); // 调用计算各位之和的方法
obj.display(); // 调用输出各位之和的方法
return 0; // 程序结束,调用析构函数
}
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int sum=0,m;
m=n;
while(m!=0)
{
n=m%10;
m=m/10;
sum=sum+n;
}
cout<<sum<<endl;
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!思路:
创建判断两个集合之间是否是单射,满射,双射的函数,同时也分别创建三个函数,里面存放两集合间的映射关系,再通过刚刚创建的判断函数,进行验证是否满足条件。