亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

基于MFC的仿Windows計算器

2023-06-05 11:58:37
字體:
來源:轉載
供稿:網友

首先,讓我們來仔細了解一下mircosoft的計算器吧,我們發現它是一個基于對話框的含有兩的主對話框、一個關于對話框、一個菜單的應用程序。也就是說,我們應該創建一個基于對話框的應用程序,并且為其添加一個菜單和一個主對話框(因為,應用程序已經創建好了一個主對話框和關于對話框)

接下來,我們應該設計對話框的界面了,這個是很簡單的事情,你只要將其和mircosoft的計算器比較就行了。當然,你也可以添加其他控件。

第一個主對話框也就是默認的主程序界面,是用于執行簡單計算(+、-、*、/、開根、倒數、平方等)

第二個就是執行科學計算的程序了。用戶可以用vc/MFC中的控件排版工具和TAB設計出一個漂亮的界面(通常,程序的界面在很大程度上會影響程序的普及度和用戶的情緒的)。好了,上面的工作完成后,我們進入正題吧。

我們首先要為所有控件指定一個ID號(一定要見ID知其意),比如0控件我們用ID_0表示。其他控件依次類推。設計好ID后我們就應該為其添加變量,這里我們為所有的除了編輯控件外的控件指定CString型變量,編輯控件為CEdit。然后我添加一些必要的成員變量(我們以簡單計數器為例介紹)

public:
char m_sign; //記錄運算符+、-、*、/等
int m; //控制編輯框中的字符
int n; //用于判斷連續進行了幾次運算
CString strItem; //用于記錄當前編輯框中的數據
CString m_string; //用于記錄前n-1次的運算結果

現在,我們編寫構造函數: m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

m=n=0;
m_string="";
strItem="";

我們然后為數字鍵編寫程序:(以0為例)

if(!m) {m_Edit.SetWindowText("");m++;} //用于得到連續的輸入
m_Edit.GetWindowText(strItem); //將當前字符保存在strItem中
CString str="0";輸入數字
strItem+=str;//連續輸入字符
m_Edit.SetWindowText(strItem); //顯示連續的輸入

其他字符同樣處理這些字符控件實際上就是數字發生器,只不過一字符形式保存。 下面,我們應該處理這些數據了我們以加法為例: //n用來判斷是不是第一次按+號按扭

if(!n)
{
m_string=strItem;
if(m_string==""){m_string="";return;}
}
else
{
double num1,num2;
num1=atof(m_string);
num2=atof(strItem);
switch(m_sign)
{
case ''+'':num1+=num2;break;
case ''-'':num1-=num2;break;
case ''*'':num1*=num2;break;
case ''/'':if(!num2) AfxMessageBox("the divisor is 0!"); else num1/=num2;break;
case ''%'':if(!num2) AfxMessageBox("the divisor is 0!"); else num1=(int)num2%(int)num1;break;
default:break;
}
m_string.Format("%.6f",num1);
}//以上是進行判別與運算,這里用了CString對象轉換成數據的函數
m_sign=''+'';
strItem="";
n++;
if(m>0)m--;//是執行完加法后,編輯框輸入新數據
m_Edit.SetWindowText(m_string);//顯示上一次按運算件的結果

像其他的-、*、/可以同樣的處理。最后,顯示最終結果:(即等號運算)

if(!n)
{
m_string=strItem;
}
else
{
double num1,num2;
num1=atof(m_string);
num2=atof(strItem);
switch(m_sign)
{
case ''+'':num1+=num2;break;
case ''-'':num1-=num2;break;
case ''*'':num1*=num2;break;
case ''/'':if(!num2) AfxMessageBox("the divisor is 0!"); else num1/=num2;break;
case ''%'':if(!num2) AfxMessageBox("the divisor is 0!"); else num1=(int)num1%(int)num2;break;
default:break;
}
m_string.Format("答案: %.6f",num1);
}
m_Edit.SetWindowText(m_string);
m_string="";
strItem="";
n=0;
m=0;
m_sign='' '';//等號運算完所有數據回歸成默認

當然你可以加一些輔助功能:下面我們舉兩個例子:一個是退格功能;一個是清除功能。退格功能:

m_Edit.GetWindowText(strItem);
if(!strItem.GetLength())::AfxMessageBox("the contents is empty!");
else
{
strItem.SetAt(strItem.GetLength()-1,NULL);
m_Edit.SetWindowText(strItem);
}

讀者可以自己體會,并相處更好的更多的其他功能。清除功能: strItem="";

m_string="";
n=0;m=0;
m_sign='' '';
m_Edit.SetWindowText(m_string);//即所有回歸默認

好了,其他的功能,用戶可以同樣處理,只不過是換個樣子而已。當然了,讀者可以隨時想到隨時增加進去。希望,讀者能夠有所收獲.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品入口福利| 91日本视频在线| 国产亚洲人成网站在线观看| 欧美一区第一页| 久久香蕉频线观| 亚洲综合小说区| 欧美一级大片视频| 国产在线观看精品一区二区三区| 最近2019好看的中文字幕免费| 国产精品男人的天堂| 91亚洲国产成人久久精品网站| 国内精品中文字幕| 中文字幕亚洲综合久久筱田步美| 色偷偷亚洲男人天堂| 国产又爽又黄的激情精品视频| 欧美国产日韩一区二区三区| 亚洲人成网7777777国产| 曰本色欧美视频在线| 久久精品亚洲国产| 91tv亚洲精品香蕉国产一区7ujn| 91网在线免费观看| 亚洲一区免费网站| 丰满岳妇乱一区二区三区| 7777免费精品视频| 亚洲免费伊人电影在线观看av| 另类专区欧美制服同性| 久久久久久久久国产精品| 美女国内精品自产拍在线播放| 亚洲xxxx视频| 色狠狠久久aa北条麻妃| 亚洲精品永久免费精品| 久久久久久久久久久久av| 国产999精品视频| 亚洲精品动漫100p| 欧美最顶级丰满的aⅴ艳星| 国产精品第七影院| 国产午夜精品全部视频播放| 亚洲成色999久久网站| 91av在线国产| 国产精品久久久久av| 亚洲二区在线播放视频| 91亚洲精品久久久久久久久久久久| 国产欧美在线播放| 亚洲日韩中文字幕在线播放| 欧美电影免费观看大全| 91sa在线看| 国产一区在线播放| 久久久国产精品免费| 97欧美精品一区二区三区| 日韩精品视频在线播放| 草民午夜欧美限制a级福利片| 成人在线精品视频| 国产精品久久久久久久久久久久久久| 日韩欧美亚洲综合| 91免费国产视频| 97色在线播放视频| 精品国产一区二区在线| 亚洲国产成人91精品| 欧美日韩一区二区精品| 91九色国产视频| 国产一区二区三区在线| 国产精品91久久久久久| 日韩国产欧美精品在线| 日韩一区二区三区在线播放| 欧美日韩亚洲91| 91精品国产91久久久| 成人福利在线视频| 国产一区二区激情| 亚洲欧洲成视频免费观看| 国产欧美久久一区二区| 国产精品极品在线| 视频在线观看99| 精品偷拍各种wc美女嘘嘘| 欧美电影《睫毛膏》| 久久免费国产精品1| 国产一区二区三区三区在线观看| 成人xvideos免费视频| 97视频在线播放| 国产精品久久综合av爱欲tv| www.久久撸.com| 亚洲人午夜精品免费| 大荫蒂欧美视频另类xxxx| 日本精品va在线观看| 国产精品白嫩美女在线观看| 欧美激情免费看| 九九热这里只有精品6| 国内外成人免费激情在线视频| 亚洲丝袜在线视频| 国产专区精品视频| 亚洲精品电影网在线观看| 成人黄色片在线| 欧美极品少妇全裸体| 欧美怡春院一区二区三区| 日韩在线视频一区| 欧美在线视频免费播放| 中文字幕欧美精品日韩中文字幕| 国产一区二区三区18| 国产综合在线观看视频| 日韩精品欧美激情| 亚洲欧美一区二区精品久久久| 欧美精品免费播放| 亚洲欧美中文字幕| 国内精品视频一区| 日韩在线中文视频| 91免费的视频在线播放| 精品少妇一区二区30p| 亚洲欧美在线x视频| 精品国内自产拍在线观看| 韩国v欧美v日本v亚洲| 国内伊人久久久久久网站视频| 亚洲偷熟乱区亚洲香蕉av| 国产成人精品视频在线观看| 亚洲人成77777在线观看网| 国产日韩亚洲欧美| 亚洲女人天堂成人av在线| 日韩成人小视频| 国产精品入口日韩视频大尺度| 欧美亚洲一区在线| 国产午夜精品麻豆| 亚洲国产99精品国自产| 日韩一区二区久久久| 欧美激情欧美狂野欧美精品| 91av在线免费观看| 亚洲女性裸体视频| 国产亚洲在线播放| 久久影视电视剧免费网站| 精品中文字幕在线观看| 日韩中文字幕久久| 富二代精品短视频| 日韩精品中文字幕在线观看| 中文字幕在线日韩| 国产成人精品在线播放| 日韩大陆欧美高清视频区| 国产精品久久久久久久久男| 欧美激情在线狂野欧美精品| 97国产一区二区精品久久呦| 精品久久久av| 国产欧美精品va在线观看| 色婷婷久久一区二区| 欧美电影免费看| 久久不射电影网| 亚洲影视九九影院在线观看| 国产视频久久久久久久| 992tv成人免费视频| 亚洲国产精久久久久久久| 国产精品白丝av嫩草影院| 欧美成人免费小视频| 国产成人亚洲综合青青| 精品二区三区线观看| 久热精品视频在线观看一区| 亚洲精品av在线| 日韩av免费在线| 久久亚洲精品国产亚洲老地址| 一区二区三区亚洲| 亚洲韩国日本中文字幕| 国产精品99久久久久久www| 欧美性xxxx极品hd满灌| 一区二区亚洲欧洲国产日韩| 日韩在线视频网| 欧美大片va欧美在线播放| 国产裸体写真av一区二区| 国产精品一区二区三区在线播放| 欧美自拍大量在线观看| 色偷偷亚洲男人天堂|