Mylnteger 类

设计一个名为 Mylnteger 的类。这个类包括:

  • 一个名为 value 的 int 型数据域.存储这个对象表示的 int 值。
  • — 个为指定的 int 值创建 Mylnteger 对象的构造方法。
  • 一个返回 int 值的 get 方法。
  • 如果值分别为偶数、 奇数或素数,那么isEven()、isOdd()和 isPrime(int) 方法都会返回true
  • 如果指定值分别为偶数、 奇数或素数,那么相应的静态方法isEven(int)、isOdd(int)和 isPrime(int) 方法都会返回true
  • 如果指定值分别为偶数、 奇数或素数,那么相应的静态方isEven(Mylnteger)、
    isOdd(Mylnteger)和 isPrime(Mylnteger)会返回 true。
  • 如果该对象的值与指定的值相等,那么 equals(int)和 equals(Mylnteger)方法返回
    true。
  • 静态方法 parselnt(char[ ])将数宇字符构成的数组转换为一个 int 值。
  • 静态方法 parselnt(String)将一个字符串转换为一个 int 值。
    编写客户程序测试这个类中的所有方法。
    代码如下:
public class MyInteger {
private int value;
MyInteger (int value){
    this.value = value;
}
public int getValue(){
    return value;
}
public boolean isEven(int value){  // 偶数
    return value % 2 == 0;
}
public boolean isOdd(int value){
    return value % 2 == 1;
}
public boolean isPrime(int value){
    int i;
    boolean R = false;
    if(value > 1){
        for( i = 2;i<=getValue();i++){
            if(getValue() % i == 0 && i == getValue())
                R = true;
            else
                R = false;
        }
        return R;
    }
    else
        return R;
}
public static boolean isEven(MyInteger integer){
    return integer.getValue() % 2 == 0;
}
public static boolean isOdd(MyInteger integer){
    return integer.getValue() % 2 == 1;
}
public static boolean isPrime(MyInteger integer){
    int i;
    boolean R = false;
    if(integer.getValue() > 1){
        for( i = 2;i <= integer.getValue();i++){
            if(integer.getValue() % i == 0 && i ==integer.getValue())
                R = true;
            else
                R = false;
        }
        return R;
    }
    else
        return R;
}
public boolean equals(int value){
    return this.value == value;
}
public boolean equals(MyInteger integer){
    return this.value == integer.getValue();
}
public static void parseInt(char[] a){
    String str = String.valueOf(a);
    System.out.println("字符数组转整数:"+ Integer.parseInt(str));
}
public static void parseInt(String c){
    System.out.println("字符串转整数:"+ Integer.parseInt(c));
}
    public static void main(String[] args) {
        MyInteger number = new MyInteger(3);
        MyInteger number1 = new MyInteger(5);
        char[] a = {'1','2','3','4'};
        System.out.println("Even1: " + MyInteger.isEven(number) + " Odd1: " + MyInteger.isOdd(number) + " Prime1: " + MyInteger.isPrime(number));
        System.out.println("Even2: " + MyInteger.isEven(number) + " Odd2: " + MyInteger.isOdd(number) + " Prime2: " + MyInteger.isPrime(number));
        System.out.println("equals1: " + number.equals(3) + " equals2: " + number.equals(number1));
        MyInteger.parseInt("1234");
        MyInteger.parseInt(a);
        
    }
    
}

运行结果:
在这里插入图片描述

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,根据您的要求,我设计了如下的计算: ```c++ #include <iostream> using namespace std; class Calculator{ private: int m_iValue1; int m_iValue2; char m_cValue1; char m_cValue2; double m_dValue1; double m_dValue2; Complex m_complexValue1; Complex m_complexValue2; Mylnteger m_myint1; Mylnteger m_myint2; public: Calculator(int v1, int v2) : m_iValue1(v1), m_iValue2(v2) {} Calculator(char v1, char v2) : m_cValue1(v1), m_cValue2(v2) {} Calculator(double v1, double v2) : m_dValue1(v1), m_dValue2(v2) {} Calculator(Complex c1, Complex c2) : m_complexValue1(c1), m_complexValue2(c2) {} Calculator(Mylnteger m1, Mylnteger m2) : m_myint1(m1), m_myint2(m2) {} template <typename T> T add(T v1, T v2){ return v1 + v2; } template <typename T> T sub(T v1, T v2){ return v1 - v2; } }; //定义Complex和Mylnteger class Complex{ public: Complex(double r=0, double i=0) : real(r), imag(i) {} Complex operator+(Complex &c){ return Complex(real+c.real, imag+c.imag); } Complex operator-(Complex &c){ return Complex(real-c.real, imag-c.imag); } private: double real; double imag; }; class Mylnteger{ public: Mylnteger(int n=0) : num(n) {} Mylnteger operator+(Mylnteger &m){ return Mylnteger(num+m.num); } Mylnteger operator-(Mylnteger &m){ return Mylnteger(num-m.num); } private: int num; }; int main(){ //测试 Calculator cal1(3, 5); cout << "3+5=" << cal1.add(cal1, cal1) << endl; cout << "3-5=" << cal1.sub(cal1, cal1) << endl; Calculator cal2('a', 'b'); cout << "a+b=" << cal2.add(cal2, cal2) << endl; cout << "a-b=" << cal2.sub(cal2, cal2) << endl; Calculator cal3(3.14, 2.718); cout << "3.14+2.718=" << cal3.add(cal3, cal3) << endl; cout << "3.14-2.718=" << cal3.sub(cal3, cal3) << endl; Complex c1(1, 2); Complex c2(3, 4); Calculator cal4(c1, c2); Complex res = cal4.add(c1, c2); cout << "1+2i + 3+4i = " << res.real << "+" << res.imag << "i" << endl; res = cal4.sub(c1, c2); cout << "1+2i - 3+4i = " << res.real << "+" << res.imag << "i" << endl; Mylnteger m1(10); Mylnteger m2(5); Calculator cal5(m1, m2); cout << "10+5=" << cal5.add(m1, m2).getNum() << endl; cout << "10-5=" << cal5.sub(m1, m2).getNum() << endl; return 0; } ``` 这里定义了一个`Calculator`,包含了五种不同型的数据成员,同时提供了`add`和`sub`两个模板函数,用于实现两个数据成员的求和和求差操作。其中,`add`和`sub`函数都是模板函数,可以接受任意型的数据成员作为输入。为了支持复数和自定义整数型的计算,我们还需要定义`Complex`和`Mylnteger`两个,它们都重载了加法和减法运算符。 在主函数中,我们分别创建了不同型的`Calculator`对象,并调用了`add`和`sub`函数进行测试。您可以根据需要修改数据成员的型,并测试不同型的数据计算。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值