#include <iostream>
using namespace std;
class Fraction {
private:
int num;
int denom;
public:
Fraction() {
int num = 0;
int denom = 1;
}
Fraction(const Fraction& ref) {
num = ref.num;
denom = ref.denom;
}
Fraction(int arg) {
num = arg;
denom = 1;
}
Fraction(int arg, int arg2) {
num = arg;
if (arg2 == 0)
denom = 1;
else
denom = arg2;
}
~Fraction() {
}
void setnum(int arg) {
num = arg;
return;
}
void setdenom(int arg) {
if(arg) {
denom = arg;
} else {
denom = 1;
}
return;
}
int getnum() const {
return num;
}
int getdenom() const {
return denom;
}
};
Fraction addition(Fraction&, Fraction&);
Fraction init(void);
void print(Fraction&);
void menu(void);
int main() {
menu();
return 0;
}
void menu() {
int option;
Fraction e;
Fraction f;
Fraction g;
cout << "option: ";
cin >> option;
do {
switch(option) {
case 1:
cout << "For init: " << endl;
e = init();
f = init();
menu();
break;
case 2:
cout << "For add: " << endl;
g = addition(e,f);
break;
case 3:
cout << "For print: " << endl;
print(g);
break;
case 4:
cout << "bb" << endl;
break;
default:
cout << "Wrong" << endl;
}
}while(option != 4);
return;
}
Fraction addition(Fraction& arg1, Fraction& arg2) {
Fraction temp;
temp.setnum((arg1.getnum() * arg2.getdenom()) + (arg1.getdenom() * arg2.getnum()));
temp.setdenom(arg1.getdenom() * arg2.getdenom());
return temp;
}
Fraction init() {
int num;
int denom;
cout << "num: ";
cin >> num;
cout << "denom: ";
cin >> denom;
Fraction info(num, denom);
return info;
}
void print(Fraction& info) {
cout << "num: " << info.getnum() << endl;
cout << "denom: " << info.getdenom() << endl;
return;
}
我想提出一個方案,以增加兩個分數添加兩個分數
,我有3選項菜單:初始化,除了和打印
我的計劃是:
首先,我選擇選項初始化,並輸入兩個分數
然後我會回到菜單,並選擇添加選項加兩個分數
,並在最後我選擇了選擇打印,打印結果
但是從上面的程序,我總是得到了init選項
其實我能做的輸入,麻煩,但是當我回到菜單,做加法,
加入將無法正常工作
我認爲這是行不通的,因爲除了功能沒有得到輸入
所以我想問問 我怎樣才能解決這個問題?
對不起,我的英文不好
您是否在添加或打印時遇到問題?你有什麼麻煩? – Shashwat
我在初始化和添加時遇到問題 –
你有什麼麻煩? – Shashwat