C++課設(shè)1設(shè)計(jì)一個(gè)能夠?qū)崿F(xiàn)n×n矩陣操作的類2計(jì)算器程序_第1頁
C++課設(shè)1設(shè)計(jì)一個(gè)能夠?qū)崿F(xiàn)n×n矩陣操作的類2計(jì)算器程序_第2頁
C++課設(shè)1設(shè)計(jì)一個(gè)能夠?qū)崿F(xiàn)n×n矩陣操作的類2計(jì)算器程序_第3頁
C++課設(shè)1設(shè)計(jì)一個(gè)能夠?qū)崿F(xiàn)n×n矩陣操作的類2計(jì)算器程序_第4頁
C++課設(shè)1設(shè)計(jì)一個(gè)能夠?qū)崿F(xiàn)n×n矩陣操作的類2計(jì)算器程序_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、課 程 設(shè) 計(jì) 任 務(wù) 書學(xué)院信息科學(xué)與工程專業(yè)電子信息科學(xué)與技術(shù)學(xué)生姓名學(xué)號設(shè)計(jì)題目設(shè)計(jì)一個(gè)能夠?qū)崿F(xiàn) nn 矩陣操作的類/計(jì)算器程序內(nèi)容及要求:PART I設(shè)計(jì)一個(gè)能夠?qū)崿F(xiàn) nn 矩陣操作的類矩陣是線性代數(shù)里一個(gè)重要的概念,在這里采用 C+語言實(shí)現(xiàn)一個(gè)簡單的 nn 矩陣類,類中包括一些簡單的運(yùn)算等操作具體要求如下:(1)使用構(gòu)造函數(shù)完成方陣的初始化賦值(動(dòng)態(tài)內(nèi)存分配) ;(2)使用析構(gòu)函數(shù)完成矩陣動(dòng)態(tài)內(nèi)存的釋放;(3)重載加法運(yùn)算符、*、=,實(shí)現(xiàn)兩個(gè)矩陣的運(yùn)算;(4)使用函數(shù)實(shí)現(xiàn)矩陣的轉(zhuǎn)置;(5)使用函數(shù)求矩陣中的最大、小值、對應(yīng)行列式的值;(6)重載加法運(yùn)算符,實(shí)現(xiàn)矩陣按照行列的格式輸出;

2、(7)編寫一個(gè)主函數(shù)測試上述功能。PART II計(jì)算器程序進(jìn)度安排:第 17 周:分析題目,查閱課題相關(guān)資料,進(jìn)行類設(shè)計(jì)、算法設(shè)計(jì);第 18 周:上機(jī)調(diào)試程序,程序測試與分析,撰寫課程設(shè)計(jì)報(bào)告,準(zhǔn)備答辯。指導(dǎo)教師(簽字):年 月 日學(xué)院院長(簽字)年 月 日目目 錄錄PART I1 需求分析.22 算法基本原理.23 類設(shè)計(jì).34 詳細(xì)設(shè)計(jì).44.1 類的接口設(shè)計(jì).44.2 類的實(shí)現(xiàn).54.3 主函數(shù)設(shè)計(jì).115 運(yùn)行結(jié)果與分析.125.1 程序運(yùn)行結(jié)果.125.2 運(yùn)行結(jié)果分析.14PART 1 需求分析.142 算法基本原理.143 類設(shè)計(jì).144 詳細(xì)設(shè)計(jì).154.1 類的實(shí)現(xiàn).154.

3、2 主函數(shù)設(shè)計(jì).195 運(yùn)行結(jié)果與分析.275.1 程序運(yùn)行結(jié)果.275.2 運(yùn)行結(jié)果分析.276 參考文獻(xiàn).28PART I1 需求分析需求分析矩陣是線性代數(shù)里一個(gè)重要的概念,在這里采用 C+語言實(shí)現(xiàn)一個(gè)簡單的nn 矩陣類,類中包括一些簡單的運(yùn)算等操作具體要求如下:(1)使用構(gòu)造函數(shù)完成方陣的初始化賦值(動(dòng)態(tài)內(nèi)存分配) ;(2)使用析構(gòu)函數(shù)完成矩陣動(dòng)態(tài)內(nèi)存的釋放;(3)重載加法運(yùn)算符,實(shí)現(xiàn)兩個(gè)矩陣的和;(4)重載加法運(yùn)算符,實(shí)現(xiàn)兩個(gè)矩陣的差;(5)重載加法運(yùn)算符*,實(shí)現(xiàn)兩個(gè)矩陣的積;(6)重載加法運(yùn)算符=,實(shí)現(xiàn)兩個(gè)矩陣之間的賦值;(7)使用函數(shù)實(shí)現(xiàn)矩陣的轉(zhuǎn)置;(8)使用函數(shù)求矩陣中的最大值;

4、(9)使用函數(shù)求矩陣中的最小值;(10)添加函數(shù) Det 以得到矩陣對應(yīng)行列式的值;(11)重載加法運(yùn)算符,實(shí)現(xiàn)矩陣按照行列的格式輸出;(12)編寫一個(gè)主函數(shù)測試上述功能。2 算法基本原理算法基本原理矩陣進(jìn)行加法,減法,乘法運(yùn)算時(shí),必須滿足兩個(gè)矩陣階數(shù)相同的條件。加法,減法計(jì)算是把矩陣對應(yīng)的各行各列的每一對數(shù)值分別進(jìn)行加減法運(yùn)算,結(jié)果組成一個(gè)新的同階矩陣。矩陣乘法是這樣定義的,只有當(dāng)矩陣 A 的列數(shù)與矩陣 B 的行數(shù)相等時(shí) AB 才有意義。一個(gè) mn 的矩陣 a(m,n)左乘一個(gè) np 的矩陣 b(n,p),會(huì)得到一個(gè) mp的矩陣 c(m,p),滿足 矩陣乘法滿足結(jié)合率,但不滿足交換率3 類設(shè)

5、計(jì)類設(shè)計(jì)從上面的算法分析可以看到,本設(shè)計(jì)面臨的計(jì)算問題的關(guān)鍵是矩陣運(yùn)算??梢远x一個(gè)矩陣類 Matrix。矩陣類 Matrix 只處理 nn 類型的方陣,方陣用一個(gè)一維數(shù)組來存放,矩陣類 Matrix 的數(shù)據(jù)成員包括數(shù)組的首地址 num 和階數(shù)n。矩陣類 Matrix 的功能有:默認(rèn)構(gòu)造函數(shù) Matrix()、構(gòu)造函數(shù) Matrix(int n,int *a)、手動(dòng)輸入矩陣函數(shù) SetMatrix(int n)、析構(gòu)函數(shù)Matrix()、重載加法運(yùn)算符,實(shí)現(xiàn)兩個(gè)矩陣的和函數(shù) Matrix operator +(const Matrix &a)、重載加法運(yùn)算符,實(shí)現(xiàn)兩個(gè)矩陣的差函數(shù) Ma

6、trix operator -(const Matrix &a)、重載加法運(yùn)算符*,實(shí)現(xiàn)兩個(gè)矩陣的積函數(shù) Matrix operator *(const Matrix &a)、重載加法運(yùn)算符=,實(shí)現(xiàn)兩個(gè)矩陣之間的賦值函數(shù) Matrix &operator =(const Matrix &a)、實(shí)現(xiàn)矩陣的轉(zhuǎn)置 Transpose()、求矩陣中的最大值 Max()、求矩陣中的最小值 Min()、求行列式 Det()、重載加法運(yùn)算符,實(shí)現(xiàn)矩陣按照行列的格式輸出 Matrix operator (const Matrix &a)、我的求行列式函數(shù) MyDet(i

7、nt* array,int Jie)。矩陣類 Matrix 如圖所示。Matrix+n:int+num:int+Matrix()+Matrix(int n,int *a)+ SetMatrix(int n):void+Matrix()+ operator +(const Matrix &a):Matrix+ operator -(const Matrix &a):Matrix+operator *(const Matrix &a):Matrix+ &operator =(const Matrix &a):Matrix+ Transpose():void+

8、 Max():int+ Min():int+ Det():double+ operator (const Matrix &a):MatrixMyDet(int* array,int Jie) :double圖 1 Matrix 類的 UML 圖形表示4 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)整個(gè)程序分為三個(gè)部分,首先是類,然后是類的功能函數(shù),最后是一個(gè)主函數(shù)用來測試類的所有功能是否可是實(shí)現(xiàn)4.1 類的接口設(shè)計(jì)#include stdafx.h#includeusing namespace std;class Matrixpublic:int n;int *num;Matrix();/默認(rèn)構(gòu)造函數(shù)Matrix

9、(int n,int *a);/構(gòu)造函數(shù)void SetMatrix(int n);/手動(dòng)輸入矩陣Matrix();/析構(gòu)函數(shù)Matrix operator +(const Matrix &a);/重載加法運(yùn)算符,實(shí)現(xiàn)兩個(gè)矩陣的和Matrix operator -(const Matrix &a);/重載加法運(yùn)算符,實(shí)現(xiàn)兩個(gè)矩陣的差Matrix operator *(const Matrix &a);/重載加法運(yùn)算符,實(shí)現(xiàn)兩個(gè)矩陣的差Matrix &operator =(const Matrix &a);/重載加法運(yùn)算符*,實(shí)現(xiàn)兩個(gè)矩陣的積void Tr

10、anspose();/實(shí)現(xiàn)矩陣的轉(zhuǎn)置int Max();/求矩陣中的最大值int Min();/求矩陣中的最小值double Det();/求行列式Matrix operator (const Matrix &a);/重載加法運(yùn)算符n=n;num=new intn*n;for(int i=0;in=1)delete num;elsedeletenum;this-n=n;num=new intn*n;for(int i=0;in;i+)for(int j=0;jn;j+) cout請輸入第i+1行第j+1列個(gè)元素*(num+i*n+j);Matrix:Matrix()/析構(gòu)函數(shù)if(n=

11、1)delete num;elsedeletenum;Matrix Matrix:operator +(const Matrix &a)/重載加法運(yùn)算符,實(shí)現(xiàn)兩個(gè)矩陣的和if(a.n=n)int *p=new intn*n;for(int i=0;i1)deletep;elsedelete p;return *temp;elseMatrix temp;return temp;Matrix Matrix:operator -(const Matrix &a)/重載加法運(yùn)算符,實(shí)現(xiàn)兩個(gè)矩陣的差if(a.n=n)int *p=new intn*n;for(int i=0;i1)del

12、etep;elsedelete p;return *temp;elseMatrix temp;return temp;Matrix Matrix:operator *(const Matrix &a)/重載加法運(yùn)算符*,實(shí)現(xiàn)兩個(gè)矩陣的積if(a.n=n)int *p=new intn*n;int i=0,j=0,k=0;for(i=0;in*n;i+)*(p+i)=0;for(i=0;in;i+)for(j=0;jn;j+)for(k=0;k1)deletep;elsedelete p;return *temp;else Matrix temp;return temp;Matrix &

13、amp;Matrix:operator =(const Matrix &a)/重載加法運(yùn)算符=,實(shí)現(xiàn)兩個(gè)矩陣之間的賦值if(a.n=n)for(int i=0;i1)int temp;for(int i=0;in;i+)for(int j=0;ji;j+)temp=*(num+i*n+j);*(num+i*n+j)=*(num+j*n+i);*(num+j*n+i)=temp;int Matrix:Max()/求矩陣中的最大值int temp;temp=*num;for(int i=0;itemp)temp=*(num+i);return temp;int Matrix:Min()/求

14、矩陣中的最小值int temp;temp=*num;for(int i=0;in*n;i+)if(*(num+i)num,this-n);double Matrix:MyDet(int* array,int Jie)/我的求行列式函數(shù) if( Jie = 0 ) cerr 階小于 0 或等于 0! endl;return 0;else if( Jie = 1)return array0;else int i,j,k,tag;int *subArray500; for( i = 0; i Jie; i+ )subArrayi = new int(Jie-1)*(Jie-1);for( i = 0

15、; i Jie; i+ )for( j = 0; j Jie-1; j+ )for( k = 0; k Jie-1; k+ )*(subArrayi + j*(Jie-1) + k) = 0;for( i = 0; i Jie; i+ )for( j = 0; j Jie-1; j+ )for( k = 0; k Jie-1; k+ ) if( k i )*(subArrayi + j*(Jie-1) + k) = *(array + (j+1)*Jie + k );else*(subArrayi + j*(Jie-1) + k) = *(array + (j+1)*Jie + k+1 );

16、double temp= 0;tag = 1;for( i = 0 ; i Jie; i+) temp += tag * MyDet(subArrayi,Jie-1) * arrayi;tag *= -1;return temp;ostream &operator (ostream & stream,const Matrix &a)/重載加法運(yùn)算符,實(shí)現(xiàn)矩陣按照行列的格式輸出streamendl;for(int i=0;ia.n;i+)for(int j=0;ja.n;j+)stream*(a.num+i*a.n+j) ;streamendl;return stream

17、;以上就是類的成員函數(shù),在編寫中除了求行列式以外,沒有遇到什么大的問題。4.3 主函數(shù)設(shè)計(jì)int main(int argc, char* argv)int n1=3,n2=3,n3=3,max,min;int num1=1,1,1,1,1,1,1,1,1;int num2=2,3,3,2,2,3,2,2,2;int num3=3,3,3,3,3,3,3,3,3;Matrix a,b(n1,num1),c(n2,num2),d(n3,num3);a.SetMatrix(3);d=a+b;coutd=dendl;d=a-c;coutd=dendl;d=a*c;coutd=dendl;max=a.

18、Max();min=a.Min();coutThe max of a is:maxendl;coutThe min of a is:minendl;couta=aendl;a.Transpose();couta=aendl;coutThe Det of c is:c.Det()endl;return 0;在程序的主函數(shù)部分,選擇了一個(gè)手動(dòng)輸入矩陣和三個(gè)固定矩陣作為一個(gè)實(shí)際例子來驗(yàn)證算法。5 運(yùn)行結(jié)果與分析運(yùn)行結(jié)果與分析5.1 程序運(yùn)行結(jié)果程序運(yùn)行結(jié)果如圖 2 所示。圖 2 程序運(yùn)行結(jié)果從圖 2 中可以看出,程序能夠?qū)崿F(xiàn)一個(gè)簡單 nn 矩陣操作的類。5.2 運(yùn)行結(jié)果分析整個(gè)程序中的矩陣存儲(chǔ)采用的

19、是一維數(shù)組和動(dòng)態(tài)內(nèi)存分配方式。Matrix 類是專門處理矩陣的類結(jié)合問題的實(shí)際需要,增加了很矩陣所特有的運(yùn)算,使 Matrix 類進(jìn)一步具體化、特殊化,達(dá)到對問題的有效描述和處理。程序的訪問控制也是根據(jù)問題的需要而設(shè)計(jì)的。PART 1 需求分析需求分析(1)很多自然科學(xué)和工程技術(shù)中的問題都需要計(jì)算器的參與,常見的計(jì)算器有三類:算數(shù)型計(jì)算器、科學(xué)型計(jì)算器、程序計(jì)算器。(2)算術(shù)型計(jì)算器 可進(jìn)行加、減、乘、除等簡單的四則運(yùn)算,又稱簡單計(jì)算器。 科學(xué)型計(jì)算器 可進(jìn)行乘方、開方、指數(shù)、 對數(shù)、三角函數(shù)、統(tǒng)計(jì)等方面的運(yùn)算,又稱函數(shù)計(jì)算器。程序計(jì)算器可以編程序,把較復(fù)雜的運(yùn)算步驟貯存起來,進(jìn)行多次重復(fù)的運(yùn)

20、算。(3)本程序可以實(shí)現(xiàn)加、減、乘、除、平方、開方、sin、cos、清除、ce等操作。2 算法基本原理算法基本原理本程序使用 mfc 進(jìn)行編寫,首先建立一個(gè)基本對話框 Calc,用右邊的控件管理,構(gòu)造出該計(jì)算器的雛形。本計(jì)算器是以點(diǎn)擊對應(yīng)數(shù)字實(shí)現(xiàn)輸入數(shù)據(jù)。定義一個(gè)變量,然后點(diǎn)擊任何數(shù)字,首先該變量自乘 10 再加上對應(yīng)數(shù)字來實(shí)現(xiàn)其輸入功能。3 類設(shè)計(jì)類設(shè)計(jì)從上面的算法分析可以看到,本設(shè)計(jì)面臨的計(jì)算問題的關(guān)鍵是數(shù)據(jù)輸入以及數(shù)據(jù)操作??梢栽?CCalcDlg 類中定義 m_fresult 用于裝第一個(gè)操作數(shù),m_foldresult 用于裝第二個(gè)操作數(shù)。定義一個(gè)整型數(shù)據(jù) m_ nOperator

21、用于判斷操作符。定義一個(gè)整型數(shù)據(jù) m_ncontrol 用于判斷操作是否結(jié)束,以免獲得結(jié)果后,按數(shù)字鍵還能繼續(xù)執(zhí)行輸入操作。定義按鈕數(shù)字函數(shù),即對應(yīng)數(shù)字的輸入函數(shù)。定義按鈕操作函數(shù),即對應(yīng)函數(shù)的操作函數(shù)。定義按鈕清除函數(shù):C 按鈕,即為初始化所有操作數(shù);Ce 按鈕,即為初始化當(dāng)前操作數(shù)。4 詳細(xì)設(shè)計(jì)詳細(xì)設(shè)計(jì)calcDlg.h 中定義變量以及操作函數(shù)。calcDlg.cpp 中將對應(yīng)的操作函數(shù)內(nèi)容代碼編寫進(jìn)去。4.1 類的接口設(shè)計(jì)/calcDlg.h 文件,實(shí)現(xiàn)類的聲明#include using namespace std;class CCalcDlg : public CDialog/ Co

22、nstructionpublic:CCalcDlg(CWnd* pParent = NULL); / standard constructor/ Dialog Data/AFX_DATA(CCalcDlg)enum IDD = IDD_CALC_DIALOG ;double m_fresult;double m_foldresult;int m_nOperator;int m_ncontrol;/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CCalcDlg)protected:virtual vo

23、id DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:HICON m_hIcon;/ Generated message map functions/AFX_MSG(CCalcDlg)virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();afx_m

24、sg void OnButton1();afx_msg void OnButton2();afx_msg void OnButton3();afx_msg void OnButton4();afx_msg void OnButton5();afx_msg void OnButton6();afx_msg void OnButton7();afx_msg void OnButton8();afx_msg void OnButton9();afx_msg void OnButton0();afx_msg void OnButtonC();afx_msg void OnButtonAdd();afx

25、_msg void OnButtonSub();afx_msg void OnButtonMul();afx_msg void OnButtonDiv();afx_msg void OnButtonResult();afx_msg void OnButtonSqu();afx_msg void OnButtonSqr();afx_msg void OnButtonSin();afx_msg void OnButtonCos();afx_msg void OnButtonCe();/AFX_MSGDECLARE_MESSAGE_MAP();/AFX_INSERT_LOCATION4.2 類的實(shí)現(xiàn)

26、/calcDlg.cpp 文件,類實(shí)現(xiàn)#include stdafx.h#include math.h#include calc.h#include calcDlg.h/包含類的聲明頭文件/calcDlg 類的實(shí)現(xiàn)CCalcDlg:CCalcDlg(CWnd* pParent /*=NULL*/)/初始化變量: CDialog(CCalcDlg:IDD, pParent)/AFX_DATA_INIT(CCalcDlg)m_fresult = 0.0;m_fresult = 0.0;m_nOperator = 0;m_ncontrol = 0;/AFX_DATA_INIT/ Note that

27、LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME);BEGIN_MESSAGE_MAP(CCalcDlg, CDialog)/將變量于外面輸入/AFX_MSG_MAP(CCalcDlg)/聯(lián)系起來 產(chǎn)生映射ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_BUTTON12, OnButton1)ON_BN_CLICKED(IDC_BUTTON_2,

28、OnButton2)ON_BN_CLICKED(IDC_BUTTON_3, OnButton3)ON_BN_CLICKED(IDC_BUTTON_4, OnButton4)ON_BN_CLICKED(IDC_BUTTON_5, OnButton5)ON_BN_CLICKED(IDC_BUTTON_6, OnButton6)ON_BN_CLICKED(IDC_BUTTON_7, OnButton7)ON_BN_CLICKED(IDC_BUTTON_8, OnButton8)ON_BN_CLICKED(IDC_BUTTON_9, OnButton9)ON_BN_CLICKED(IDC_BUTTON

29、_0, OnButton0)ON_BN_CLICKED(IDC_BUTTON_C, OnButtonC)ON_BN_CLICKED(IDC_BUTTON_ADD, OnButtonAdd)ON_BN_CLICKED(IDC_BUTTON_SUB, OnButtonSub)ON_BN_CLICKED(IDC_BUTTON_MUL, OnButtonMul)ON_BN_CLICKED(IDC_BUTTON_DIV, OnButtonDiv)ON_BN_CLICKED(IDC_BUTTON_RESULT, OnButtonResult)ON_BN_CLICKED(IDC_BUTTON_SQU, On

30、ButtonSqu)ON_BN_CLICKED(IDC_BUTTON_SQR, OnButtonSqr)ON_BN_CLICKED(IDC_BUTTON_SIN, OnButtonSin)ON_BN_CLICKED(IDC_BUTTON_COS, OnButtonCos)ON_BN_CLICKED(IDC_BUTTON_CE, OnButtonCe)/AFX_MSG_MAPEND_MESSAGE_MAP()void CCalcDlg:OnButton1() /按 1 按鈕UpdateData(TRUE);/將控件中的數(shù)據(jù)交換到變量中if(m_ncontrol!=0)/如果是操作結(jié)束后m_fre

31、sult=m_foldresult=0;/操作數(shù)初始化m_ncontrol=0;/符號初始化m_fresult=m_fresult*10+1;/操作數(shù)自乘 10,加對應(yīng)按鈕數(shù)UpdateData(FALSE);/將變量中的數(shù)據(jù)交換到控件中void CCalcDlg:OnButton2() /按 2 按鈕UpdateData(TRUE);if(m_ncontrol!=0)m_fresult=m_foldresult=0;m_ncontrol=0;m_fresult=m_fresult*10+2;UpdateData(FALSE);void CCalcDlg:OnButton3() /按 3 按鈕

32、UpdateData(TRUE);if(m_ncontrol!=0)m_fresult=m_foldresult=0;m_ncontrol=0;m_fresult=m_fresult*10+3;UpdateData(FALSE);void CCalcDlg:OnButton4() /按 4 按鈕UpdateData(TRUE);if(m_ncontrol!=0)m_fresult=m_foldresult=0;m_ncontrol=0;m_fresult=m_fresult*10+4;UpdateData(FALSE);void CCalcDlg:OnButton5()/按 5 按鈕Updat

33、eData(TRUE);if(m_ncontrol!=0)m_fresult=m_foldresult=0;m_ncontrol=0;m_fresult=m_fresult*10+5;UpdateData(FALSE);void CCalcDlg:OnButton6() /按 6 按鈕UpdateData(TRUE);if(m_ncontrol!=0)m_fresult=m_foldresult=0;m_ncontrol=0;m_fresult=m_fresult*10+6;UpdateData(FALSE);void CCalcDlg:OnButton7() /按 7 按鈕UpdateDat

34、a(TRUE);if(m_ncontrol!=0)m_fresult=m_foldresult=0;m_ncontrol=0;m_fresult=m_fresult*10+7;UpdateData(FALSE);void CCalcDlg:OnButton8() /按 8 按鈕UpdateData(TRUE);if(m_ncontrol!=0)m_fresult=m_foldresult=0;m_ncontrol=0;m_fresult=m_fresult*10+8;UpdateData(FALSE);void CCalcDlg:OnButton9() /按 9 按鈕UpdateData(TR

35、UE);if(m_ncontrol!=0)m_fresult=m_foldresult=0;m_ncontrol=0;m_fresult=m_fresult*10+9;UpdateData(FALSE);void CCalcDlg:OnButton0() /按 0 按鈕UpdateData(TRUE);if(m_ncontrol!=0)m_fresult=m_foldresult=0;m_ncontrol=0;m_fresult=m_fresult*10;UpdateData(FALSE);void CCalcDlg:OnButtonC() /按 C 按鈕UpdateData(TRUE);m_

36、fresult=0;/初始化所有數(shù)據(jù)m_foldresult=0;m_nOperator=0;UpdateData(FALSE);void CCalcDlg:OnButtonAdd() /按+按鈕UpdateData(TRUE);m_foldresult=m_fresult;/將操作數(shù) 1 賦值給操作數(shù) 2m_fresult=0;/初始化操作數(shù) 1m_nOperator=1;/記錄操作為+UpdateData(FALSE);void CCalcDlg:OnButtonSub() /按-按鈕UpdateData(TRUE);m_foldresult=m_fresult;m_fresult=0;m

37、_nOperator=2;UpdateData(FALSE);void CCalcDlg:OnButtonMul() /按*按鈕UpdateData(TRUE);m_foldresult=m_fresult;m_fresult=0;m_nOperator=3;UpdateData(FALSE);void CCalcDlg:OnButtonDiv() /按/按鈕UpdateData(TRUE);m_foldresult=m_fresult;m_fresult=0;m_nOperator=4;UpdateData(FALSE);void CCalcDlg:OnButtonResult() Upda

38、teData(TRUE);switch(m_nOperator)/判斷操作符case 1:/m_nOperator 為 1,則加法運(yùn)算m_fresult=m_foldresult+m_fresult;break;case 2:/m_nOperator 為 2,則減法運(yùn)算m_fresult=m_foldresult-m_fresult;break;case 3:/m_nOperator 為 3,則乘法運(yùn)算m_fresult=m_foldresult*m_fresult;break;case 4:/m_nOperator 為 4,則除法運(yùn)算m_fresult=m_foldresult/m_fresult

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論