




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、鄭州師范學院信息科學與技術學院 簡單計算器課程設計報告設計題目: 簡單計算器 班 級: B15計科二班 組 長: 組 員: 指導教師: 完成日期: 2016 年 12 月 23 日 成績: 摘 要本次選做的課程設計是實現簡單計算器的問題。計算器是一個常用的運算工具,本次課題要求用程序語言的方式解決問題。此問題僅使用數據結構中的棧操作就可以解決此問題。而在為了方便使用,添加了easyx圖形庫實現了UI設計。為了接近平常使用的計算器,特地創建死循環而且添加了“CE”清空輸入和“<-”刪除鍵來控制輸入錯誤或者循環使用的問題。在UI方面主要是實現按鍵和點擊響應等交互,方便輸入和修改,在程序框上面
2、有輸入和顯示結果的文本框。在計算過程中,以棧出棧進站的特性把中綴形式的算數表達式轉化為計算機方便計算的后綴表達式,最后計算出結果以文本方式顯示在結果輸出框內。 目 錄摘 要I目 錄II1需求分析31.1功能簡介及分析31.2設計平臺32概要設計32.1 Trans函數32.2 Compvalue 函數42.3 GetKey函數43詳細設計和實現43.1轉化為逆波蘭式43.2計算逆波蘭式63.3實現流程圖73.3部分具體程序84調試與操作說明134.1調試情況134.2操作說明145設計總結15參考文獻161需求分析1.1功能簡介及分析本次選做的課程設計是實現簡單的計算器并且添加UI的交互。此計
3、算器是以軟件的形式實現的計算器,運行在windows系統。計算器在功能上分為三類,分別是:常見計算器,專用計算器,綜合功能計算器。常見的計算器又分為四種: 簡單型計算器:只實現基本的加減乘除和括號運算。 科學型計算器:可以進行乘方、開方、指數、對數、三角函數、統計等方面的運算,又稱函數計算器。 程序員計算器:專門為程序員設計的計算器, 主要特點是支持And, Or, Not, Xor: 最基本的與或非和異或操作, 移位操作 Lsh, Rsh:全稱是Left Shift和Right Shift,也就是左移和右移操作,你需要輸入你要移動的位數(不能大于最大位數) RoL, RoR:全稱是Rotat
4、e Left和Rotate Right,對于RoL來講,就是向左移動一位,并將移出的那位補到最右邊那位上,RoR類似。 統計型計算器:為有統計要求的人員設計的設計的計算器。本次課程設計只是實現了常見的簡單計算器:在界面上:簡單的計算器需要有簡單的按鍵和按鍵響應,有輸入和結果的顯示。在功能上:能進行加減乘除混合運算,可以使用括號,有“M”鍵可以存儲結果,以便下次計算使用,可以對輸入的文本刪除和重置。并且可以在重置后繼續使用。1.2設計平臺Windows7操作系統;Visual Studio 20152概要設計2.1 Trans函數主要功能中綴算術表達式轉化成后綴表達式,然后存到棧里,以便計算時使
5、用,轉化時包括對小括號的匹配。2.2 Compvalue 函數主要功能是對棧中的后綴表達式進行計算,然后返回float類型的結果。2.3 GetKey函數GetKey主要是在UI界面中獲取按鍵然后保存成字符數組或者對字符數組的增減操作的函數。此函數為內置死循環,可以重復使用。3詳細設計和實現實現軟件形式的常用簡單計算機,主要用到棧的特點,把平常使用的表達式,轉化為能夠讓計算機計算的逆波蘭表達式。中綴表達式(或中綴記法)是一個通用的算術或邏輯公式表示方法, 操作符是以中綴形式處于操作數的中間(例:3 + 4),中綴表達式是人們常用的算術表示方法。與前綴表達式(例:+ 3 4)或后綴表達式(例:3
6、 4 +)相比,中綴表達式不容易被計算機解析,但仍被許多程序語言使用,因為它符合人們的普遍用法。與前綴或后綴記法不同的是,中綴記法中括號是必需的。計算過程中必須用括號將操作符和對應的操作數括起來,用于指示運算的次序。例:(1)8+4-6*2用后綴表達式表示為:62*84+-(2)2*(3+5)-4+7/1用后綴表達式表示為:35+2*71/4-+3.1轉化為逆波蘭式首先需要分配2個棧,一個作為臨時存儲運算符的棧S1(含一個結束符號),一個作為輸入逆波蘭式的棧S2(空棧),S1棧可先放入優先級最低的運算符#,注意,中綴式應以此最低優先級的運算符結束。可指定其他字符,不一定非#不可。從中綴式的左端
7、開始取字符,逐序進行如下步驟:(1)若取出的字符是操作數,則分析出完整的運算數,該操作數直接送入S2棧(2)若取出的字符是運算符,則將該運算符與S1棧棧頂元素比較,如果該運算符優先級大于S1棧棧頂運算符優先級,則將該運算符進S1棧,否則,將S1棧的棧頂運算符彈出,送入S2棧中,直至S1棧棧頂運算符低于(不包括等于)該運算符優先級,則將該運算符送入S1棧。(3)若取出的字符是“(”,則直接送入S1棧底。(4)若取出的字符是“)”,則將距離S1棧棧底最近的“(”之間的運算符,逐個出棧,依次送入S2棧,此時拋棄“(”。(5)重復上面的14步,直至處理完所有的輸入字符。(6)若取出的字符是“#”,則將
8、S1棧內所有運算符(不包括“#”),逐個出棧,依次送入S2棧。完成以上步驟,S2棧便為逆波蘭式輸出結果。不過S2應做一下逆序處理。便可以按照逆波蘭式的計算方法計算了!例如轉換:2-(1+2)*3+4轉換后的逆波蘭表達式是:2 1 2 + 3 * - 4 +3.2計算逆波蘭式逆波蘭式的計算同樣用到了棧的特點,首先需要建立一個空棧T,然后從頭遍歷逆波蘭式,如果是數字則直接放到棧頂,如果遇到操作符則連續取出兩個棧頂數據,分別賦值給n1,n2,再根據操作符計算n1和n2,把得到的結果放到T棧棧頂,繼續操作,直到遍歷完畢。以上面的例子計算過程如圖:最后得出的結果是-3,即2-(1+2)*3+4=-3;所
9、以計算的具體過程是先轉化中綴表達式為逆波蘭表達式,然后由逆波蘭表達式計算出結果,在轉化的過程和最后的計算過程都用到了棧的思想,利用棧的進棧和出棧的特點實現轉換。3.3實現流程圖開始通過界面按鍵獲得輸入內容轉換為逆波蘭式結束保存輸入內容到字符數組繼續輸入對字符數組里的數字字符進行轉義成數據型計算并顯示出結果是否繼續使用?否清空顯示是簡單運行流程圖3.3部分具體程序/界面顯示文字,”$”表示結束位置char KeyStr4 = "CE" , "<-" , "M" , "/" , "(" , &
10、quot;)" , "" , "" , "7" , "8" , "9" , "*" , "4" , "5" , "6" , "+" , "1" , "2" , "3" , "-" , "00" , "0" , "." , "="
11、, "$" ;void Trans(STR *InStr , char Lasts)/*將算術表達式轉化為后綴表達式*/int i = 1;char StackMAX;/*作為棧使用*/char ChStr = InStr->Stri;/用于保存數組里的臨時元素i+;int LastStrPos = 1, StackTop = 0;/StackTop用于表示棧頂while (ChStr != '#')switch (ChStr)case'(':/*判定為左括號*/StackTop+; StackStackTop = ChStr;brea
12、k;case')':/*判定為右括號*/while (StackStackTop != '(')LastsLastStrPos = StackStackTop; StackTop-; LastStrPos+;StackTop-;/扔掉(break;case'+':/*判定為加減號*/case'-':while (StackTop != 0 && StackStackTop != '(')LastsLastStrPos = StackStackTop;StackTop-;LastStrPos+;Sta
13、ckTop+;/保留(StackStackTop = ChStr;break;case'*':/*判定為乘除號*/case'/':while (StackStackTop = '*' | StackStackTop = '/')LastsLastStrPos = StackStackTop;/如果棧頂是*或者/彈出,放到后綴數組里StackTop-;LastStrPos+;StackTop+;StackStackTop = ChStr;break;case' ':break;/忽略空格default:while (
14、ChStr >= '0' && ChStr <= '9' | ChStr = '.')/*判定為數字*/LastsLastStrPos = ChStr; LastStrPos+;ChStr = InStr->Stri;i+;i-;LastsLastStrPos = ' '/輸出的時候隔開元素LastStrPos+;ChStr = InStr->Stri; i+;while (StackTop != 0)LastsLastStrPos = StackStackTop;LastStrPos+;
15、StackTop-;LastsLastStrPos = ' 'LastStrPosT = LastStrPos;float Compvalue(char LastStrTemp)/*計算后綴表達式的值*/float StackMAX;/*作為棧使用*/char ChStr;/臨時棧元素int StackTop = 0;/*LastStrPos為Lasts下標,StackTop為Stack下標*/int LastStrPos = 1;ChStr = LastStrTempLastStrPos;LastStrPos+;while (ChStr != ' ')swit
16、ch (ChStr)case'+':StackStackTop - 1 = StackStackTop - 1 + StackStackTop;StackTop-;break;case'-':StackStackTop - 1 = StackStackTop - 1 - StackStackTop;StackTop-;break;case'*':StackStackTop - 1 = StackStackTop - 1 * StackStackTop;StackTop-;break;case'/':if (StackStackTo
17、p != 0)StackStackTop - 1 = StackStackTop - 1 / StackStackTop;elseexit(0);/*異常退出*/StackTop-;break;default:float NumStr = 0;/把數字字符轉化為數字bool FlNum = 0;while (ChStr >= '0' && ChStr <= '9' | ChStr = '.')if (ChStr = '.') FlNum = 1;else if (!FlNum) NumStr = 10
18、* NumStr + ChStr - '0'/*將數字字符轉化為對應的數值*/else if (FlNum) NumStr += 0.1 * (ChStr - '0');/*計算小數*/ChStr = LastStrTempLastStrPos;LastStrPos+;StackTop+;StackStackTop = NumStr;ChStr = LastStrTempLastStrPos;LastStrPos+;return StackStackTop;void GetKey() /*FlushMouseMsgBuffer 清空鼠標消息緩沖區。 GetMou
19、seMsg 獲取一個鼠標消息。如果當前鼠標消息隊列中沒有,就一直等待。 MouseHit 檢測當前是否有鼠標消息。 MOUSEMSG 保存鼠標消息的結構體。 */MOUSEMSG Msg;RECT r = 0 , WINKEYY * 2 / 3 , WINSIZEX, WINKEYY * 2 ;IMAGE ClearImgUp , ClearImgDown;int ProPos = 0;/上一個點擊的按鈕int temp = 0;/當前點擊的按鈕int InCon = 0;/輸入的字符數int TempI = 0;float LastStrTemp = LastV;char StrTempMA
20、X;char M_Str20 = '/0' ;FlushMouseMsgBuffer();getimage(&ClearImgUp, 1, 1, WINSIZEX , WINKEYY * 2 / 3);/獲得輸入區域的截圖,用于覆蓋原先輸入的內容getimage(&ClearImgDown, 1, WINKEYY * 2 / 3, WINSIZEX, WINKEYY * 2);/獲得輸出區域的截圖,用于覆蓋原先輸入的內容while (TRUE) Msg = GetMouseMsg();if (Msg.uMsg) temp = JudgePos(Msg.x, Ms
21、g.y);switch (Msg.uMsg) case WM_LBUTTONDOWN:setlinecolor(YELLOW);rectangle(Postemp.x0, Postemp.y0, Postemp.x1, Postemp.y1);switch (temp) case 1:GetStr0 = '0'putimage(1, 1, &ClearImgUp);putimage(1, WINKEYY * 2 / 3, &ClearImgDown);InCon = 0;PrintStr();break;case 2:if(InCon > 0)/判斷是否有
22、輸入的字符GetStrInCon - 1 = '0'putimage(1, 1, &ClearImgUp);InCon-;PrintStr();break;case 3:strcat_s(GetStr, M_Str);InCon+;PrintStr();break;case 24:settextstyle(50, 0, _T("Prestige Elite Std");/設置字體大小,寬度,文字樣式putimage(1, WINKEYY * 2 / 3, &ClearImgDown);GiveStr(GetStr, TheLastStr);d
23、rawtext(_T(TheLastStr), &r, DT_RIGHT | DT_VCENTER | DT_SINGLELINE);break;case 7:case 8:break;default:strcat_s(GetStr, KeyStrtemp - 1);InCon+;PrintStr();Sleep(50);break;case WM_RBUTTONDOWN:setlinecolor(BLUE);rectangle(Postemp.x0, Postemp.y0, Postemp.x1, Postemp.y1);switch (temp) case 3:strcpy(M_S
24、tr, TheLastStr);break;break;setlinecolor(BLACK);rectangle(PosProPos.x0, PosProPos.y0, PosProPos.x1, PosProPos.y1);if (temp != 0) setlinecolor(RED);rectangle(Postemp.x0, Postemp.y0, Postemp.x1, Postemp.y1);ProPos = temp;4調試與操作說明4.1調試情況這次的課程設計的代碼很冗長,在實現整個思路之后難免會有很多錯誤。編寫代碼過程中遇到很多錯誤和難題。不過經過一點點的改正和攻克,錯誤也
25、慢慢地變少,難題也逐個解開。在計算機領域代碼無論在邏輯上還是在編寫上都不允許有一點錯誤,因為一點的錯誤就會使整個程序崩潰,有時即便能夠成功運行,得出的結果也有可能和預期的結果千差萬別,但是也是因為這樣的嚴謹編寫和工作學習中,使得調試或者編寫代碼的人逐漸培養出了有耐心,有毅力,并且嚴謹細心的心境。一般在編寫代碼過程留下的邏輯錯誤或者編寫錯誤都會在調試的時候遇到,這個時候就體現出了調試的重要性。調試可以使程序的可運行性、健壯性、效率性上大幅度提高。本程序在調試中遇到了很多問題,如計算結果的準確性、顯示結果的準確性或者顯示位置等等。本程序還存在的問題是對計算的精確度支持低,只支持兩位小數點,并且在應
26、對錯誤計算或者錯誤輸入沒有進行匹配,這些問題都會在使用的過程中可能造成程序的崩潰,但是這些問題都會在以后的設計中進行完善和增強。4.2操作說明生成界面如圖所示:生成界面當程序運行的時候會出現如上圖所示,要求使用者通過按鍵輸入運算表達式,使用者只需點擊輸入想要計算的表達式,最后點擊“=”鍵后,系統便會計算出結果并且顯示出來。然后可以點擊“<-”鍵刪除修改表達式,或者通過“CE”鍵清空表達式和顯示的結果,當然也可以通過點擊“M”鍵暫時保存當前計算的結果,以便于下次計算使用(右鍵M把當前結果存到M中,默認是0,左鍵M輸入當前M內的值)。5設計總結本次課程設計大概花費了兩周的時間,其中10天左右
27、用來編寫和調試程序代碼,4天左右用來對程序編寫報告。在此之間,遇到了許多編寫上的難題和遇到錯誤的抓狂,但是這些都在耐心的,一次一次的調試中解決和攻克。當再次總結后感覺收獲很大,首先在編寫代碼上,增加自己的代碼量,提高了編寫的熟練度。其次增加了對棧的使用和理解,也有了一些在使用棧的方法和經驗。然后是對界面設計的認識,如按鍵反饋、按鍵響應速度、顏色的搭配、字體的格式等等。最后是對在修改和調試代碼的經驗,代碼調試的過程是最辛苦的但也是最能體現編寫代碼能力的地方,看一個人代碼編寫能力怎么樣,不是說讓實現一個功能,而是在拿到一個存在諸多BUG時能一步步解決這些問題。當然,在編寫這個報告時,程序可能還是存
28、在一些錯誤沒被發現,這些都需要在后繼的補充完善中慢慢發現和更正,還有是本程序功能少,只是實現了常用的簡單計算器,對于和科學計算器或者程序員計算器等功能都為涉及,這些也將會成為我在后續的設計中一點點添加上去,因為我相信,每一個復雜的龐大的系統或者程序都是在簡單的基礎上一點點完善的。也希望我能在后續的開發設計中能學習更多,收獲更多,并且能一直堅持下去。參考文獻1 欒大成. 大話數據結構M. 北京清華大學學研大廈A座:清華大學出版社, 2011. 1-433 2 甘勇, 李曄, 盧冰. C語言課程設計M. 北京市西城區右安門西街8號:中國鐵道出版社, 2014. 1-3403 嚴蔚敏,吳偉民. 數據
29、結構M. 北京清華大學學研大廈A座:清華大學出版社, 2007. 1-3344 張宏林,孔艷,王哲等編著按實例學Microsoft Visual Studio 2005 6.0M.北京:人民郵電出版社,20005 Brian W Kernighan , Dennis M Ritchie. The C Programming LanguageM. Pubilished:Prentice-Hall , 2004.6 陳朔鷹, 陳英. C語言趣味程序百例精解M. 北京理工大學:北京理工大學出版社, 1996. 1-4357 譚浩強. C 程序設計(第二版)M. 清華大學:清華大學出版社, 2014.
30、 1-3508 譚浩強. C 語言程序設計題解與上機指導M. 清華大學:清華大學出版社, 2014. 1-2459 白中英, 戴志濤. 計算機組成原理M. 北京東黃城根北街16號:科學出版社, 2013. 1-350全部代碼如下:VS2015調試通過(未加入錯誤檢測)使用C11新標準/* 數據結構期末課程設計 * 作業名稱:多項式計算器 * 使用的數據結構:棧 * UI:使用easyx實現 */#include<stdlib.h> #include<stdio.h> #include<math.h> #include<string.h> #inc
31、lude <graphics.h> / 就是需要引用這個圖形庫#include <conio.h>#define WINSIZEX 401/窗口大小#define WINSIZEY 471#define WINKEYY (WINSIZEY - 1) / 8/行間距#define WINKEYX (WINSIZEX - 1) / 4#define MAX 100#define TRUE 1#pragma warning(disable:4996) typedef struct char StrMAX;/*存儲原算術表達式*/int Long;STR;struct int
32、x2;/對象的左上坐標x和右下坐標x,x0表示坐上x、x1表示右下xint y2;/同上Pos25;char KeyStr4 = "CE" , "<-" , "M" , "/" , "(" , ")" , "" , "" , "7" , "8" , "9" , "*" , "4" , "5" , "6&
33、quot; , "+" , "1" , "2" , "3" , "-" , "00" , "0" , "." , "=" , "$" ;int LastStrPosT = 1;/LastStrPos表示后綴表達式存的數量char GetStrMAX * 5;char TheLastStrMAX;float LastV = 0; /計算結果void Trans(STR *InStr, char La
34、stStr);float Compvalue(char LastStrTemp);void Trans(STR *InStr , char LastStr)/*將算術表達式轉化為后綴表達式*/int i = 1;char StackMAX;/*作為棧使用*/char ChStr = InStr->Stri;/用于保存數組里的臨時元素i+;int LastStrPos = 1, StackTop = 0;/StackTop用于表示棧頂while (ChStr != '#')switch (ChStr)case'(':/*判定為左括號*/StackTop+;
35、StackStackTop = ChStr;break;case')':/*判定為右括號*/while (StackStackTop != '(')LastStrLastStrPos = StackStackTop; StackTop-; LastStrPos+;StackTop-;/扔掉(break;case'+':/*判定為加減號*/case'-':while (StackTop != 0 && StackStackTop != '(')LastStrLastStrPos = StackStac
36、kTop;StackTop-;LastStrPos+;StackTop+;/保留(StackStackTop = ChStr;break;case'*':/*判定為乘除號*/case'/':while (StackStackTop = '*' | StackStackTop = '/')LastStrLastStrPos = StackStackTop;/如果棧頂是*或者/彈出,放到后綴數組里StackTop-;LastStrPos+;StackTop+;StackStackTop = ChStr;break;case'
37、':break;/忽略空格default:while (ChStr >= '0' && ChStr <= '9' | ChStr = '.')/*判定為數字*/LastStrLastStrPos = ChStr; LastStrPos+;ChStr = InStr->Stri;i+;i-;LastStrLastStrPos = ' '/輸出的時候隔開元素LastStrPos+;ChStr = InStr->Stri; i+;while (StackTop != 0)LastStrLa
38、stStrPos = StackStackTop;LastStrPos+; StackTop-;LastStrLastStrPos = ' 'LastStrPosT = LastStrPos;float Compvalue(char LastStrTemp)/*計算后綴表達式的值*/float StackMAX;/*作為棧使用*/char ChStr;/臨時棧元素int StackTop = 0;/*LastStrPos為LastStr下標,StackTop為Stack下標*/int LastStrPos = 1;ChStr = LastStrTempLastStrPos;La
39、stStrPos+;while (ChStr != ' ')switch (ChStr)case'+':StackStackTop - 1 = StackStackTop - 1 + StackStackTop;StackTop-;break;case'-':StackStackTop - 1 = StackStackTop - 1 - StackStackTop;StackTop-;break;case'*':StackStackTop - 1 = StackStackTop - 1 * StackStackTop;StackT
40、op-;break;case'/':if (StackStackTop != 0)StackStackTop - 1 = StackStackTop - 1 / StackStackTop;elseexit(0);/*異常退出*/StackTop-;break;default:float NumStr = 0;/把數字字符轉化為數字bool FlNum = 0;while (ChStr >= '0' && ChStr <= '9' | ChStr = '.')if (ChStr = '.'
41、;) FlNum = 1;else if (!FlNum) NumStr = 10 * NumStr + ChStr - '0'/*將數字字符轉化為對應的數值*/else if (FlNum) NumStr += 0.1 * (ChStr - '0');/*計算小數*/ChStr = LastStrTempLastStrPos;LastStrPos+;StackTop+;StackStackTop = NumStr;ChStr = LastStrTempLastStrPos;LastStrPos+;return StackStackTop;void GiveSt
42、r(char GetString , char *TheStr) STR InStr;char LastStrMAX;/*存儲后綴表達式*/InStr.Long = 0;for (int i = 0; GetStringi != '0' i+) InStr.Long+;InStr.StrInStr.Long = GetStringi;InStr.Long+;InStr.StrInStr.Long = '#'Trans(&InStr, LastStr);LastV = Compvalue(LastStr);LastV = (int)LastV ? spri
43、ntf(TheStr , "%.0f" , LastV) : sprintf(TheStr, "%.2f", LastV);void InitPos() Pos0.x0 = 0; Pos0.y0 = 0; Pos0.x1 = WINSIZEX; Pos0.y1 = WINKEYY * 2;int k = 1;for (int i = 2; i < 8; i+) for (int j = 0; j < 4; j+) Posk.x0 = j * WINKEYX;/左上xy坐標Posk.y0 = i * WINKEYY;Posk.x1 = (j +
44、 1) * WINKEYX;/右下xy坐標Posk.y1 = (i + 1) * WINKEYY;k+;int JudgePos(int x ,int y) if (x > 0 && x < WINSIZEX && y > 0 && y < WINKEYY * 2)/判斷文本輸出框return 0;for (int i = 1; i <= 4; i+) if (x >= Posi.x0 && x <= Posi.x1) for (int j = i; j <= 24; j += 4)
45、 if (y >= Posj.y0 && y <= Posj.y1) return j;void PrintStr() settextstyle(35, 0, _T("Prestige Elite Std");/設置輸入字體大小,寬度,文字樣式outtextxy(7,7,GetStr);void GetKey() /*FlushMouseMsgBuffer 清空鼠標消息緩沖區。 GetMouseMsg 獲取一個鼠標消息。如果當前鼠標消息隊列中沒有,就一直等待。 MouseHit 檢測當前是否有鼠標消息。 MOUSEMSG 保存鼠標消息的結構體。
46、*/MOUSEMSG Msg;RECT r = 0 , WINKEYY * 2 / 3 , WINSIZEX, WINKEYY * 2 ;IMAGE ClearImgUp , ClearImgDown;int ProPos = 0;/上一個點擊的按鈕int temp = 0;/當前點擊的按鈕int InCon = 0;/輸入的字符數int TempI = 0;float LastStrTemp = LastV;char StrTempMAX;char M_Str20 = '/0' ;FlushMouseMsgBuffer();getimage(&ClearImgUp,
47、1, 1, WINSIZEX , WINKEYY * 2 / 3);/獲得輸入區域的截圖,用于覆蓋原先輸入的內容getimage(&ClearImgDown, 1, WINKEYY * 2 / 3, WINSIZEX, WINKEYY * 2);/獲得輸出區域的截圖,用于覆蓋原先輸入的內容while (TRUE) Msg = GetMouseMsg();if (Msg.uMsg) temp = JudgePos(Msg.x, Msg.y);switch (Msg.uMsg) case WM_LBUTTONDOWN:setlinecolor(YELLOW);rectangle(Poste
48、mp.x0, Postemp.y0, Postemp.x1, Postemp.y1);switch (temp) case 1:GetStr0 = '0'putimage(1, 1, &ClearImgUp);putimage(1, WINKEYY * 2 / 3, &ClearImgDown);InCon = 0;PrintStr();break;case 2:if(InCon > 0)/判斷是否有輸入的字符GetStrInCon - 1 = '0'putimage(1, 1, &ClearImgUp);InCon-;PrintS
49、tr();break;case 3:strcat_s(GetStr, M_Str);InCon+;PrintStr();break;case 24:settextstyle(50, 0, _T("Prestige Elite Std");/設置字體大小,寬度,文字樣式putimage(1, WINKEYY * 2 / 3, &ClearImgDown);GiveStr(GetStr, TheLastStr);drawtext(_T(TheLastStr), &r, DT_RIGHT | DT_VCENTER | DT_SINGLELINE);break;case 7:case 8:break;default:strcat_s(GetStr, KeyStrtemp - 1);InCon+;PrintStr();Sleep(50);br
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電視設備智能生物診斷技術考核試卷
- 園林綠化工程綠化施工項目風險管理考核試卷
- 典當行不良資產處置與風險化解考核試卷
- 無損檢測非金屬專用設備考核試卷
- 廚房電器行業人才培養與技能培訓考核試卷
- 紡織行業經濟效益與投資回報分析考核試卷
- 服務綠色發展考核試卷
- 屠宰場食品安全管理考核試卷
- 漁業資源的保護與可持續發展考核試卷
- 糖果與巧克力銷售區域差異化策略考核試卷
- 2025年安徽國際商務職業學院單招職業技能考試題庫及答案1套
- 2024北京理工大附中高一(下)期中英語試題及答案
- 干洗店中央洗衣工廠崗位職責及管理手冊
- 2024年數學新高考I卷評析及教學建議
- 玉盤二部合唱簡譜
- 第十一單元課題1 化學與人體健康教學設計-2024-2025學年九年級化學人教版(2024)下冊
- 個人裝載機租賃協議書范本
- 2022年高級經濟師《運輸經濟》試題真題及答案
- 2023-2024學年滬科版(2019)高中信息技術必修一第三單元項目六《解決溫標轉換問題-認識程序和程序設計語言》教學設計
- 《豬的傳染病》課件
- 《新媒體營銷》課件-項目一 新媒體營銷認知
評論
0/150
提交評論