我寫出來的程式都是架構化的,可是有規定main檔,所以一定要用oop寫
題目是 求一元二次方程式的公式解
#include<math.h>
#include
using namespace std;
class Quadratic{
public:
Quadratic(double _a, double _b, double _c){
a=_a;
b=_b;
c=_c;
};
void solver();
//一元二次方程式公式解解出方程式
void print();
// print() print the answers in the form m+ni,
//where m is the real part and n is the imaginary part
private:
double a;
double b;
double c;
double real, imag;
};
void Quadratic::solver(){
double ans;
int j;
double m,n;
ans=bb-4ac;
if(ans<0)
ans=abs(ans);
ans=pow(ans,0.5);
for(int i;i<bb;i++){
if(ans==ii)
j=j+1;
}
if(j==0){
cout<<-b<<"_"<<ans/2a<<endl;
}
else{
m=(-b+ans)/2a;
cout<<m<<"_0"<<endl;
n=(-b-ans)/2a;
cout<<n<<"_0"<<endl;
}
}
void Quadratic::print(){
}
//我不知道如何把solver的cout移動到print()裡
int main(){
double a, b, c;
cout<<"input a,b,c";
cin >> a >> b >> c;
Quadratic formula(a, b, c);
formula.solver();
return 0;
}
//main檔不可以動
我跟你剛好相反
我寫的程式都沒有架構化
麻花捲型的程式碼
看看合不合用
#include <math.h>
#include <iostream>
using namespace std;
class Quadratic{
public:
Quadratic(double _a, double _b, double _c){
a=_a;
b=_b;
c=_c;
};
void solver();
//一元二次方程式公式解解出方程式
void print();
// print() print the answers in the form m+ni,
//where m is the real part and n is the imaginary part
private:
double a;
double b;
double c;
double real, imag;
int flag;
double real_1, imag_1;
double real_2, imag_2;
};
void Quadratic::solver(){
double ans;
int j;
double m,n;
ans=b*b-4*a*c;
if(ans<0)
ans=abs(ans);
ans=pow(ans,0.5);
for(int i;i<(b*b);i++){
if(ans==(i*i))
j=j+1;
}
flag = j;
if(j==0){
//std::cout<<-b<<"_"<<ans/(2*a)<<endl;
real_1 = -1 * b;
imag_1 = ans / (2*a);
}
else{
m=(-b+ans)/(2*a);
// cout<<m<<"_0"<<endl;
real_1 = m;
imag_1 = 0;
n=(-b-ans)/(2*a);
// cout<<n<<"_0"<<endl;
real_2 = n;
imag_2 = 0;
}
print();
}
void Quadratic::print(){
if (flag==0) {
cout << real_1 << "+" << imag_1 << "i" << endl;
} else {
cout << real_1 << "+" << imag_1 << "i" << endl;
cout << real_2 << "+" << imag_2 << "i" << endl;
}
}
//我不知道如何把solver的cout移動到print()裡
int main(){
double a, b, c;
cout<<"input a,b,c";
cin >> a >> b >> c;
Quadratic formula(a, b, c);
formula.solver();
return 0;
}
//main檔不可以動
凹屋 可以用!!非常謝謝你
另外 我想詢問一下
為什麼main檔那裡到數第二三行 需要打fomula?
oop初學 有很多疑惑QQ
formula 是變數名稱,
就像 int i 裡面的 i 一樣,
你喜歡叫 honey 也可以...
好像沒規定一定要移到print中,
如果真的要這樣做,
不如把Quadratic class新增一個解答的變數,
解題的時候先把答案紀錄在變數中,
print的時候直接將變數列印出來.