2013級C++第9週(春)項目——演算子再ロード(二)
3618 ワード
コースのトップページは次のとおりです.http://blog.csdn.net/sxhelijian/article/details/11890759、完全なカリキュラムとリソースリンクがあります
【プログラム読解】プログラム「簡単C++学生情報管理システム」を読み、その中に構造関数、友元関数、演算子のリロード、静態数メンバーの文法現象が現れた場所を探し出し、その使い方をよく理解し、今後の設計において関係者法と技術項目1-3を柔軟に応用して8週目のコードを直接複製し、要求された演算子を加えて定義を再ロードした後、9週目の任務として別途ブログを出す.【項目1】第8週目の項目1に基づいて(1)一目演算子-,-cは0-cに相当する.(2)Complexクラスの<<と>>演算子のリロードを定義し、入力と出力を実現し、元のプログラムの演算結果表示方式を改造し、プログラムをより自然に読む.【項目2】第8週目の項目2に基づき(1)時間オブジェクトに対する自増および自減の演算子を定義する
【事業3】第8週事業3に基づく
(1)スコアを定義する一目演算+と-は、それぞれスコアの正と逆を表し、「ビット別逆演算子」~をスコアの逆数演算に再ロードする.
(2)スコアクラスにおける<<と>>演算子のリロードを定義し,スコアの入出力を実現し,元のプログラムにおける演算結果の表示方式を改造し,プログラムをより自然に読み取る.
【プロジェクト4】ベクトルクラスMyVectorを作成し、次のように宣言します.クラスの定義を完了してください.
【項目5】ax+b=0のような方程式の解を求める一元一次方程式クラスを設計する.
例えば、3 x-8=0を入力すると、出力される方程式の解はx=2.66667となる.
さらに、5 s+18=0を入力すると、出力される方程式の解はs=-3.6となる.
【プログラム読解】プログラム「簡単C++学生情報管理システム」を読み、その中に構造関数、友元関数、演算子のリロード、静態数メンバーの文法現象が現れた場所を探し出し、その使い方をよく理解し、今後の設計において関係者法と技術項目1-3を柔軟に応用して8週目のコードを直接複製し、要求された演算子を加えて定義を再ロードした後、9週目の任務として別途ブログを出す.【項目1】第8週目の項目1に基づいて(1)一目演算子-,-cは0-cに相当する.(2)Complexクラスの<<と>>演算子のリロードを定義し、入力と出力を実現し、元のプログラムの演算結果表示方式を改造し、プログラムをより自然に読む.【項目2】第8週目の項目2に基づき(1)時間オブジェクトに対する自増および自減の演算子を定義する
//
CTime operator++(int);// ++,
CTime operator++();// ++, ,
CTime operator--( int);// --,
CTime operator--();// --,
(2)タイムクラスの<<と>>演算子の再ロードを定義し、時間の入出力を実現し、元のプログラムの演算結果の表示方式を改造し、プログラムをより自然に読むことができる.【事業3】第8週事業3に基づく
(1)スコアを定義する一目演算+と-は、それぞれスコアの正と逆を表し、「ビット別逆演算子」~をスコアの逆数演算に再ロードする.
(2)スコアクラスにおける<<と>>演算子のリロードを定義し,スコアの入出力を実現し,元のプログラムにおける演算結果の表示方式を改造し,プログラムをより自然に読み取る.
【プロジェクト4】ベクトルクラスMyVectorを作成し、次のように宣言します.クラスの定義を完了してください.
class MyVector //
{
public:
MyVector(int m); // , m , 0
MyVector(const MyVector &v); //
~MyVector(); // :
friend istream &operator>>(istream &input, MyVector &d);
friend ostream &operator<<(ostream &output, const MyVector &d);
friend MyVector operator+(const MyVector &d1,const MyVector &d2);// ,
friend MyVector operator-(const MyVector &d1,const MyVector &d2);// ,
bool operator==(const MyVector &d);// ,
private:
int *Array; //Array ,
int num; //
};
int main(){
MyVector d1(5),d2(5);
cout<<" d1——";
cin>>d1;
cout<<" d2——";
cin>>d2;
cout<<"d1="<<d1<<endl;
cout<<"d2="<<d2<<endl;
cout<<"d1+d2="<<d1+d2<<endl;
cout<<"d1-d2="<<d1-d2<<endl;
cout<<"d1"<<((d1==d2)?"==":"!=")<<"d2"<<endl;
return 0;
}
【項目5】ax+b=0のような方程式の解を求める一元一次方程式クラスを設計する.
例えば、3 x-8=0を入力すると、出力される方程式の解はx=2.66667となる.
さらに、5 s+18=0を入力すると、出力される方程式の解はs=-3.6となる.
class CEquation
{
private:
double a; //
double b; //
char unknown; //
public:
CEquation(double aa=0,double bb=0);
friend istream &operator >> (istream &in,CEquation &e);
friend ostream &operator << (ostream &out,CEquation &e);
double Solve();
char getUnknown();
};
int main()
{ CEquation e;
cout<<" ( :ax-b=0,a、b ,x ):";
cin>>e; // , 3x-8=0 50s+180=0
cout<<" :"<<e;
cout<<" :"<<e.getUnknown()<<"="<<e.Solve()<<endl; // , x=... s=...
e.Solve();
}
==================== CSDN =================
|== IT ( ) ==|
|== C++ ( ) ==|
|== ——《 —— IT 》 ==|
===== IT , =====