




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、課題名稱:大數(shù)相乘1. 問題描述計算機的內(nèi)存有限,而且各個函數(shù)類型的范圍有限,如果要計算兩個更大的乘數(shù),就會超出范圍,得到不精確的數(shù),如何得到更精確的數(shù),而又不受計算機內(nèi)存空間的限制,本程序就可以解決大數(shù)相乘的問題。2. 設計思路這個程序的關鍵是如何保存大數(shù)的各個數(shù)字,以及如何處理大數(shù)乘法的進位問題。本人是運用棧的思想做的,先定義一個整型的棧,大數(shù)傳入棧的整型數(shù)組中,在乘法運算函數(shù)中,先從一個棧中取出一個大數(shù)S1的個位上的數(shù)字a,再從另一個大數(shù)S2取出一個個位數(shù)字b,再將a*b+d(d為進位數(shù))的個位數(shù)字壓到棧S中,十位上進位的數(shù)字先保存到d中,再從S2中取出一個十位數(shù),與a相乘,得到的個位數(shù)
2、字再壓到棧S中,再從S2中取出一個數(shù)字,以此類推,直到S2中的數(shù)字被a乘完,得到一個新的大數(shù)S,將該棧保存到A棧中,將S銷毀,再從S1中取出大數(shù)的十位數(shù)字,與S2的各個數(shù)字相乘,得到一個新的大數(shù)壓到S中,將S保存到B中,將B移位處理后,然后與A相加得到另一個大數(shù),以此類推,最終可相加得到想要的結果。這其中還用到了大數(shù)相加的原理。3. 數(shù)據(jù)結構設計前面提到,要用到棧的操作,這里,由于一個大數(shù)的最大長度是一定的,且大數(shù)最多執(zhí)行的操作是插入和刪除操作,所以順序存儲結構可以帶來更大益處。為了便于大數(shù)相加,將大數(shù)的各個數(shù)字存入到整型數(shù)組中。#define MAXSIZE 100typedef struc
3、t nodeint dataMAXSIZE;int top;SeqStack,*PSeqStack;4. 功能函數(shù)設計(1)棧初始化函數(shù)Init_SeqStack(char *ch)此函數(shù)是將傳入的字符處理成09的整數(shù)存入整型數(shù)組中。將*ch-0轉化為整數(shù)存入S-datai中,結束標志是*ch不等于0(2) 首尾倒置函數(shù)Convert_SeqStack(PSeqStack A)此函數(shù)是將棧中的數(shù)值首尾顛倒,比如以前是1234,現(xiàn)在變成4321。只要將傳入的A的棧中的元素依次取出壓到C中,再返回C棧即可(3) 大數(shù)相加函數(shù)Add(PSeqStack S1,PSeqStack S2)此函數(shù)是處理兩
4、個大數(shù)相加的功能。將傳入的兩個大數(shù)壓到S1和S2中,當S1或S2不為空時,從S1中取出a,從S2中取出b,得到Result=(a+b)%10+d,其中初始時d=0,再判斷Result是否大于10,如果小于10直接壓到棧S中,如果大于10將Result%10壓入棧中,令d=(a+b)/10+Result/10;如果運算后其中的一個??樟?,另一個不空的棧的數(shù)值加上進位數(shù)d再直接壓到S中,這樣可以得到一個大數(shù)。(4) 移位函數(shù)Crol(PSeqStack S,int n)將其中一位大數(shù)取出一位數(shù)字與另一位大數(shù)相乘的結果移位,然后相加,從各位開始,每乘一個數(shù),都要移位一個0(5) 復制函數(shù)Copy_S
5、eqStack(PSeqStack A,PSeqStack B)將一個A棧中的元素拷貝到B棧中,先將A中的元素壓到C棧中,再將C棧中的元素壓到B棧中,即可實現(xiàn)復制功能(6) 大數(shù)相乘函數(shù)Multiply(PSeqStack S1,PSeqStack S2)此函數(shù)是實現(xiàn)大數(shù)相乘的核心算法。主要思想就是將S1中取出個位數(shù)a,分別與S2中的各個數(shù)相乘得到新的大數(shù),再取S1中的十位數(shù),與S1大數(shù)相乘,以此類推,然后將各個大數(shù)進行移位處理再相加5. 編碼實現(xiàn)#include stdafx.h#include stdlib.h#include stdio.h#include string.h#define
6、 MAXSIZE 100typedef struct nodeint dataMAXSIZE;int top;SeqStack,*PSeqStack;void Destroy_SeqStack(PSeqStack *S)if(*S)free(*S);*S=NULL;return;int Push_SeqStack(PSeqStack S,int x)if(S-top=MAXSIZE-1)return 0;elseS-top+;S-dataS-top=x;return 1;PSeqStack Init_SeqStack(char *ch)PSeqStack S;int i=0;char *hea
7、d;S=(PSeqStack)malloc(sizeof(SeqStack);if(S)S-top=-1;head=ch;while(*ch!=0)if(*head=-)S-datai=(*(+ch)-0)*(-1);elseS-datai=*ch-0;ch+;S-top+;i+;return S;int GetTop_SeqStack(PSeqStack S,int *x)if(S-top=-1)return 0;else*x=S-dataS-top;return 1;int Empty_SeqStack(PSeqStack S)if(S-top=-1)return 1;elsereturn
8、 0;int Pop_SeqStack(PSeqStack S,int *x)if(Empty_SeqStack(S)return 0;else*x=S-dataS-top;S-top-;return 1;void print(PSeqStack S)int i;for(i=0;itop;i+)printf(%d,S-datai);/將棧頂變成棧尾,棧尾變成棧頂PSeqStack Convert_SeqStack(PSeqStack A)int x;PSeqStack C;C=(PSeqStack)malloc(sizeof(SeqStack);if(C)C-top=-1;while(!Emp
9、ty_SeqStack(A)Pop_SeqStack(A,&x);Push_SeqStack(C,x);return C;PSeqStack Add(PSeqStack S1,PSeqStack S2)PSeqStack S;int d=0,a,b,Result;S=(PSeqStack)malloc(sizeof(SeqStack);if(S)S-top=-1;while(!Empty_SeqStack(S1)&!Empty_SeqStack(S2)Pop_SeqStack(S1,&a);Pop_SeqStack(S2,&b);Result=(a+b)%10+d;/判斷Result是否大于等
10、于10if(Result/10=0)Push_SeqStack(S,Result);d=(a+b)/10;else if(Result/100)Push_SeqStack(S,Result%10);d=(a+b)/10+Result/10;while(!Empty_SeqStack(S1)Pop_SeqStack(S1,&a);Result=a%10+d;if(Result/10=0)Push_SeqStack(S,Result);d=a/10;elsePush_SeqStack(S,Result%10);d=a/10+Result/10;while(!Empty_SeqStack(S2)Po
11、p_SeqStack(S2,&a);Result=a%10+d;if(Result/10=0)Push_SeqStack(S,Result);d=a/10;elsePush_SeqStack(S,Result%10);d=a/10+Result/10;if(d!=0)Push_SeqStack(S,1);S=Convert_SeqStack(S);return S;PSeqStack Crol(PSeqStack S,int n)int i;for(i=0;itop=-1;while(!Empty_SeqStack(A)Pop_SeqStack(A,&x);Push_SeqStack(C,x)
12、;while(!Empty_SeqStack(B)Pop_SeqStack(B,&x);while(!Empty_SeqStack(C)Pop_SeqStack(C,&x);Push_SeqStack(A,x);Push_SeqStack(B,x);PSeqStack Multiply(PSeqStack S1,PSeqStack S2)PSeqStack S,A,B;int a,b,c,d=0,Result,i,count=0;S=(PSeqStack)malloc(sizeof(SeqStack);if(S)S-top=-1;A=(PSeqStack)malloc(sizeof(SeqSt
13、ack);if(A)A-top=-1;B=(PSeqStack)malloc(sizeof(SeqStack);if(B)B-top=-1;while(!Empty_SeqStack(S1)Pop_SeqStack(S1,&a);d=0;for(i=S2-top;i-1;i-)b=S2-datai;/printf(%d,b);Result=a*b%10+d;if(Result/10=0)Push_SeqStack(S,Result);d=a*b/10;else if(Result/100)Push_SeqStack(S,Result%10);d=a*b/10+Result/10;if(d!=0
14、)Push_SeqStack(S,d);/printf(nS為:);/print(S);S=Convert_SeqStack(S);if(count=0)Copy_SeqStack(S,A);/將S??截惖紸棧/printf(nA為:);/print(A);elseB=Crol(S,count);/將B左移count位/printf(nB為:);/print(B);A=Add(A,B);/printf(nA為:);/print(A);count+;Destroy_SeqStack(&S);S=(PSeqStack)malloc(sizeof(SeqStack);if(S)S-top=-1;A=
15、Convert_SeqStack(A);while(GetTop_SeqStack(A,&c)&c=0)Pop_SeqStack(A,&c);if(Empty_SeqStack(A)Push_SeqStack(A,0);A=Convert_SeqStack(A);return A;void main()PSeqStack A,B,C;int i;/char *ch1=1234876543329,*ch2=78656453534223656896;/char *ch1=99,*ch2=1;/char *ch1=111111111111111111111,*ch2=1111111111111111
16、11111;/char *ch1=11111111,*ch2=-11111111;/char *ch1=99996757657464,*ch2=0;char ch150,ch250;system(color 70);printf(請輸入第一個大數(shù):);gets(ch1);printf(n請輸入第二個大數(shù):);gets(ch2);printf(該乘式為:);A=Init_SeqStack(ch1);print(A);printf(*);B=Init_SeqStack(ch2);print(B);printf(n);/C=Add(A,B);C=Multiply(A,B);printf(n計算結果為
17、:);for(i=0;itop;i+)printf(%d,C-datai);/print(C);printf(n);/printf(實際結果為:78656454769100200225);6. 運行與測試首先屏幕會提示你輸入第一個大數(shù),然后按回車鍵,屏幕會提示你輸入第二個大數(shù),再按回車鍵,即可得到計算結果7. 設計中存在的問題及感想本程序的缺陷對負數(shù)以及小數(shù)相乘沒有處理好,只能處理大的整數(shù),這是一個遺憾。其實這個大數(shù)相乘程序我是根據(jù)大數(shù)相加的思想來做的,大數(shù)相加的進位思想是加進位,而大數(shù)相乘是乘進位,我想這是一樣的原理。大數(shù)相加時,進位數(shù)不超過1,而兩個一位數(shù)相乘得到的進位數(shù)不超過8所以進位數(shù)
18、都控制在一位數(shù)以內(nèi),這就不太復雜了。不過本程序還有一個問題,就是計算效率不高,雖然測試的時間不慢,但是我當測試100000個數(shù)時,其效率可見明顯降低。本來想用傅里葉算法的,可是傅里葉算法思想沒看懂,所以用了自己的本方法。課題名稱:模擬計算器1. 問題描述如果讓我們計算4+2*(8-5)-4/2=?我們該怎么計算?為了實現(xiàn)這個功能,特地做了這個計算器,可以對包含加、減、乘、除的運算符的任意整型式進行求解。2. 設計思路這個程序的關鍵就是如何將輸入的中綴表達式轉化為后綴表達式,然后再對后綴表達式進行求值運算。對于中綴表達式轉為后綴表達式,在參數(shù)先定義兩個指針型字符串infixexp和postfix
19、exp,infixexp是傳入的中綴表達式字符串,postfixexp是傳出的后綴表達式字符串,再定義一個棧,當棧頂元素不等于#時,然后判斷infixexp中的每一個字符是不是數(shù),如果是數(shù),傳入postfiexp中,否則進一步判斷w是不是),若不是判斷棧頂元素的優(yōu)先級,將操作符壓入棧中,以此類推,最終得到后綴表達式。對于后綴表達式的運算,主要判斷是不是數(shù)字還是操作符,如果是數(shù)字壓到棧中,如果是操作符,從棧中取出兩個數(shù)字運算。本人對于本程序還設計了一個操作界面,用的是MFC語言設計的,操作界面主要有一個文本框和19個按鈕組成,有清零按鈕,刪除按鈕,加減乘除按鈕,以及各個操作數(shù)按鈕,=按鈕,這些按
20、鈕大部分都是傳入相應的字符串到文本框中,當按下=號按鈕時,再從文本框中得到字符串,對字符串進行處理,然后運算出結果。3. 數(shù)據(jù)結構設計主要建立了一個CCaculatordlg的類,該類繼承MFC中CDialog的特征,這樣可以在MFC中建立一個單文檔對話框,這個對話框可以添加一些控件來做成一個計算器界面,如何對于該計算器操作,就要看控制各個控件函數(shù)怎么實現(xiàn)的。這里的類如下:class CCaculatorDlg : public CDialog/ Constructionpublic:int postfix_exp(char *A);int infix_exp_value(char *infi
21、xexp,char *postfixexp);int priority(char op);int IsNum(char c);/int infix_exp_value(char *infix,char *postfixexp);double num;/char CalculateExpre;/double CalculateResult;/double CalculateNum;char ch50,ch110,ch210,op;char text50;/stack S;CCaculatorDlg(CWnd* pParent = NULL); / standard constructor/ Di
22、alog Data/AFX_DATA(CCaculatorDlg)enum IDD = IDD_CACULATOR ;/ NOTE: the ClassWizard will add data members here/AFX_DATA/ Overrides/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CCaculatorDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Impl
23、ementationprotected:/ Generated message map functions/AFX_MSG(CCaculatorDlg)afx_msg void OnAdd();afx_msg void OnBtn1();afx_msg void OnBtn0();afx_msg void OnBtn2();afx_msg void OnBtn3();afx_msg void OnBtn4();afx_msg void OnBtn5();afx_msg void OnBtn6();afx_msg void OnBtn7();afx_msg void OnBtn8();afx_m
24、sg void OnBtn9();afx_msg void OnClear();afx_msg void OnDivide();afx_msg void OnEquals();afx_msg void OnMinus();afx_msg void OnMultiply();afx_msg void OnReset();virtual BOOL OnInitDialog();afx_msg void OnRbrackets();afx_msg void OnLbrackets();/AFX_MSGDECLARE_MESSAGE_MAP();4. 功能函數(shù)設計(1) 按鍵0函數(shù)CCaculator
25、Dlg:OnBtn0( )先得到文本框字符串,然后將該字符串末尾處加0,再將所有的字符串顯示到文本框中(2) 按鍵1函數(shù)CCaculatorDlg:OnBtn1( )先得到文本框字符串,然后將該字符串末尾處加1,再將所有的字符串顯示到文本框中(3) 按鍵2函數(shù)CCaculatorDlg:OnBtn2( )先得到文本框字符串,然后將該字符串末尾處加2,再將所有的字符串顯示到文本框中(4) 按鍵3函數(shù)CCaculatorDlg:OnBtn3( )先得到文本框字符串,然后將該字符串末尾處加3,再將所有的字符串顯示到文本框中(5) 按鍵4函數(shù)CCaculatorDlg:OnBtn4( )先得到文本框字
26、符串,然后將該字符串末尾處加4,再將所有的字符串顯示到文本框中(6) 按鍵5函數(shù)CCaculatorDlg:OnBtn5( )先得到文本框字符串,然后將該字符串末尾處加5,再將所有的字符串顯示到文本框中(7) 按鍵6函數(shù)CCaculatorDlg:OnBtn6( )先得到文本框字符串,然后將該字符串末尾處加6,再將所有的字符串顯示到文本框中(8) 按鍵7函數(shù)CCaculatorDlg:OnBtn7( )先得到文本框字符串,然后將該字符串末尾處加7,再將所有的字符串顯示到文本框中(9) 按鍵8函數(shù)CCaculatorDlg:OnBtn8( )先得到文本框字符串,然后將該字符串末尾處加8,再將所有
27、的字符串顯示到文本框中(10) 按鍵9函數(shù)CCaculatorDlg:OnBtn9( )先得到文本框字符串,然后將該字符串末尾處加9,再將所有的字符串顯示到文本框中(11) 按鍵加函數(shù)CCaculatorDlg:OnAdd( )先得到文本框字符串,然后將該字符串末尾處加+字符,再將所有的字符串顯示到文本框中(12) 按鍵減函數(shù)CCaculatorDlg:OnMinus( )先得到文本框字符串,然后將該字符串末尾處加-字符,再將所有的字符串顯示到文本框中(13) 按鍵乘函數(shù)CCaculatorDlg:OnMultiply( )先得到文本框字符串,然后將該字符串末尾處加*,再將所有的字符串顯示到文
28、本框中(14) 按鍵除函數(shù)CCaculatorDlg:OnDivide( )先得到文本框字符串,然后將該字符串末尾處加,再將所有的字符串顯示到文本框中(15) 按鍵清除函數(shù)CCaculatorDlg:OnClear( )先得到文本框字符串,然后將該字符串的最后一個字符刪除,再將所有的字符串顯示到文本框中(16) 按鍵左括號函數(shù)CCaculatorDlg:OnRbrackets()先得到文本框字符串,然后將該字符串末尾處加(,再將所有的字符串顯示到文本框中(17) 按鍵又括號函數(shù)CCaculatorDlg:OnLbrackets()先得到文本框字符串,然后將該字符串末尾處加),再將所有的字符串顯
29、示到文本框中(18) 按鍵左括號函數(shù)CCaculatorDlg:OnReset()將文本框中的字符串清零(19) 判斷是否是數(shù)字CCaculatorDlg:IsNum(char c)如果傳入的字符在09范圍內(nèi)則是數(shù)字(20) 優(yōu)先級函數(shù)CCaculatorDlg:priority(char op1)根據(jù)傳入的字符判斷優(yōu)先級(21) 將中綴表達式轉為后綴表達式CCaculatorDlg:infix_exp_value(char *infixexp, char *postfixexp)Infixexp是傳入的中綴表達式,即從文本框得到的字符,而postfixexp是后綴表達式,將要傳出去的字符串(
30、22) 計算后綴表達式的值postfix_exp(char *A)將轉化后的后綴表達式的字符串,傳入該函數(shù)中,可以運算出結果(23) 按鍵等于函數(shù)CCaculatorDlg:OnEquals()先從文本框中得到字符串,再將字符串通過infix_exp_value轉華為后綴表達式,再通過postfix_exp轉化為數(shù)值,將計算所得的數(shù)值轉化為字符顯示到文本框中。5. 編碼實現(xiàn)#include stdafx.h#include Chess.h#include CaculatorDlg.h#include math.h#include using namespace std;#ifdef _DEBU
31、G#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CCaculatorDlg dialogCCaculatorDlg:CCaculatorDlg(CWnd* pParent /*=NULL*/): CDialog(CCaculatorDlg:IDD, pParent)/AFX_DATA_INIT(CCaculatorDlg)/ NOTE: the ClassWizard will add member initialization here/AFX_DATA_INITvoid CCacula
32、torDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CCaculatorDlg)/ NOTE: the ClassWizard will add DDX and DDV calls here/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CCaculatorDlg, CDialog)/AFX_MSG_MAP(CCaculatorDlg)ON_BN_CLICKED(IDC_ADD, OnAdd)ON_BN_CLICKED(IDC_BTN_1, OnBtn1)ON_BN_
33、CLICKED(IDC_BTN_0, OnBtn0)ON_BN_CLICKED(IDC_BTN_2, OnBtn2)ON_BN_CLICKED(IDC_BTN_3, OnBtn3)ON_BN_CLICKED(IDC_BTN_4, OnBtn4)ON_BN_CLICKED(IDC_BTN_5, OnBtn5)ON_BN_CLICKED(IDC_BTN_6, OnBtn6)ON_BN_CLICKED(IDC_BTN_7, OnBtn7)ON_BN_CLICKED(IDC_BTN_8, OnBtn8)ON_BN_CLICKED(IDC_BTN_9, OnBtn9)ON_BN_CLICKED(IDC_
34、CLEAR, OnClear)ON_BN_CLICKED(IDC_DIVIDE, OnDivide)ON_BN_CLICKED(IDC_EQUALS, OnEquals)ON_BN_CLICKED(IDC_MINUS, OnMinus)ON_BN_CLICKED(IDC_MULTIPLY, OnMultiply)ON_BN_CLICKED(IDC_RESET, OnReset)ON_BN_CLICKED(IDC_RBRACKETS, OnRbrackets)ON_BN_CLICKED(IDC_LBRACKETS, OnLbrackets)/AFX_MSG_MAPEND_MESSAGE_MAP(
35、)/ CCaculatorDlg message handlersvoid CCaculatorDlg:OnAdd() / TODO: Add your control notification handler code hereUpdateData(); int len;GetDlgItem(IDC_EDIT1)-GetWindowText(text,50);len=strlen(text);/*textlen=$;textlen+1=+;textlen+2=0;*/textlen=+;textlen+1=0;GetDlgItem(IDC_EDIT1)-SetWindowText(text)
36、;UpdateData(FALSE); void CCaculatorDlg:OnBtn0() / TODO: Add your control notification handler code hereUpdateData(); int len;GetDlgItem(IDC_EDIT1)-GetWindowText(text,50);len=strlen(text);textlen=0;textlen+1=0;GetDlgItem(IDC_EDIT1)-SetWindowText(text);UpdateData(FALSE); void CCaculatorDlg:OnBtn1() /
37、TODO: Add your control notification handler code hereUpdateData(); int len;GetDlgItem(IDC_EDIT1)-GetWindowText(text,50);len=strlen(text);textlen=1;textlen+1=0;GetDlgItem(IDC_EDIT1)-SetWindowText(text);UpdateData(FALSE); void CCaculatorDlg:OnBtn2() / TODO: Add your control notification handler code h
38、ereint len;GetDlgItem(IDC_EDIT1)-GetWindowText(text,50);len=strlen(text);textlen=2;textlen+1=0;GetDlgItem(IDC_EDIT1)-SetWindowText(text);UpdateData(FALSE);void CCaculatorDlg:OnBtn3() / TODO: Add your control notification handler code hereint len;GetDlgItem(IDC_EDIT1)-GetWindowText(text,50);len=strle
39、n(text);textlen=3;textlen+1=0;GetDlgItem(IDC_EDIT1)-SetWindowText(text);void CCaculatorDlg:OnBtn4() / TODO: Add your control notification handler code hereint len;GetDlgItem(IDC_EDIT1)-GetWindowText(text,50);len=strlen(text);textlen=4;textlen+1=0;GetDlgItem(IDC_EDIT1)-SetWindowText(text);void CCacul
40、atorDlg:OnBtn5() / TODO: Add your control notification handler code hereint len;GetDlgItem(IDC_EDIT1)-GetWindowText(text,50);len=strlen(text);textlen=5;textlen+1=0;GetDlgItem(IDC_EDIT1)-SetWindowText(text);void CCaculatorDlg:OnBtn6() / TODO: Add your control notification handler code hereint len;Get
41、DlgItem(IDC_EDIT1)-GetWindowText(text,50);len=strlen(text);textlen=6;textlen+1=0;GetDlgItem(IDC_EDIT1)-SetWindowText(text);void CCaculatorDlg:OnBtn7() / TODO: Add your control notification handler code hereint len;GetDlgItem(IDC_EDIT1)-GetWindowText(text,50);/if(GetDlgItem(IDC_EDIT1)-GetWindowText(t
42、ext,50)=+|GetDlgItem(IDC_EDIT1)-GetWindowText(text,50)=-/|GetDlgItem(IDC_EDIT1)-GetWindowText(text,50)=*|GetDlgItem(IDC_EDIT1)-GetWindowText(text,50)=/)/GetDlgItem(IDC_EDIT1)-SetWindowText();/GetDlgItem(IDC_EDIT1)-GetWindowText(text,50);/len=strlen(text);textlen=7;textlen+1=0;GetDlgItem(IDC_EDIT1)-S
43、etWindowText(text);void CCaculatorDlg:OnBtn8() / TODO: Add your control notification handler code hereint len;GetDlgItem(IDC_EDIT1)-GetWindowText(text,50);len=strlen(text);textlen=8;textlen+1=0;GetDlgItem(IDC_EDIT1)-SetWindowText(text);void CCaculatorDlg:OnBtn9() / TODO: Add your control notificatio
44、n handler code hereint len;GetDlgItem(IDC_EDIT1)-GetWindowText(text,50);len=strlen(text);textlen=9;textlen+1=0;GetDlgItem(IDC_EDIT1)-SetWindowText(text);void CCaculatorDlg:OnClear() / TODO: Add your control notification handler code hereint len;GetDlgItem(IDC_EDIT1)-GetWindowText(text,50);len=strlen
45、(text);textlen-1=0;GetDlgItem(IDC_EDIT1)-SetWindowText(text);void CCaculatorDlg:OnDivide() / TODO: Add your control notification handler code hereUpdateData(); int len;GetDlgItem(IDC_EDIT1)-GetWindowText(text,50);len=strlen(text);/*textlen=$;textlen+1=/;textlen+2=0;*/textlen=/;textlen+1=0;GetDlgItem
46、(IDC_EDIT1)-SetWindowText(text);UpdateData(FALSE); /DEL void CCaculatorDlg:OnDot() /DEL /DEL / TODO: Add your control notification handler code here/DEL /DEL void CCaculatorDlg:OnEquals() / TODO: Add your control notification handler code hereUpdateData();int num1,num2,num3,len,len1;GetDlgItem(IDC_E
47、DIT1)-GetWindowText(text,50);len=strlen(text);/*textlen=$;textlen+1=#;textlen+2=0;*/textlen=#;textlen+1=0;infix_exp_value(text,ch);/len1=strlen(ch);/chlen1=0;/chlen1+1=0;/計算后綴表達式的值num1=postfix_exp(ch);/num1=atoi(ch1);/num2=atoi(ch2);/*if(op=+)num3=num1+num2;else if(op=-)/MessageBox(op=-);num3=num1-n
48、um2;else if(op=*)num3=num1*num2;else if(op=/)if(num2=0)MessageBox(親,除數(shù)不能為零你知道不?);GetDlgItem(IDC_EDIT1)-SetWindowText();elsenum3=num1/num2;*/itoa(num1,ch1,10);GetDlgItem(IDC_EDIT1)-SetWindowText(ch1);void CCaculatorDlg:OnMinus() / TODO: Add your control notification handler code hereUpdateData(); int len;GetDlgItem(IDC_EDIT1)-GetWindowText(text,50);len=strlen(text);/*textlen=$;textlen+1=-;textlen+2=0;*/textlen=-;textlen+1=0;GetDlgItem(IDC_EDIT1)-SetW
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 環(huán)保包裝材料在能量飲料的應用-洞察闡釋
- 北京衛(wèi)生職業(yè)學院《水利專業(yè)英語》2023-2024學年第二學期期末試卷
- 北京石油化工學院《環(huán)境生物技術原理》2023-2024學年第二學期期末試卷
- 社會保障中的性別平等與女性發(fā)展權益-洞察闡釋
- 2025年儲能技術多元化在儲能系統(tǒng)行業(yè)人才培養(yǎng)中的應用報告
- 北京經(jīng)貿(mào)職業(yè)學院《古典鋼琴欣賞與實踐》2023-2024學年第二學期期末試卷
- 2025年冰雪旅游項目投資回報率與可行性評估報告
- 生物●河北卷丨2024年河北省普通高中學業(yè)水平選擇性考試生物試卷及答案
- 教育培訓機構資料TOEIC FAQ
- 2025年保險數(shù)字化理賠服務智能理賠服務平臺構建與運營報告
- 簡單零件鉗加工完整版課件
- 眼耳鼻喉口腔科說課PPT
- 過濾器設計計算書
- 新一代寄遞平臺投遞PC(課堂PPT)
- SH3508-2011附錄A填寫示例
- 機械設計外文文獻翻譯、中英文翻譯、外文翻譯
- 中山大學南方學院互聯(lián)網(wǎng) 大學生創(chuàng)新創(chuàng)業(yè)大賽評分表
- 保險精算業(yè)中英翻譯術語及表達式詞庫
- 一次函數(shù)應用題
- 英語課題評審書
- 江蘇大學自主招生考試綜合素質測試面試試題答題技巧匯總
評論
0/150
提交評論