課程設(shè)計(jì)概述計(jì)算器_第1頁(yè)
課程設(shè)計(jì)概述計(jì)算器_第2頁(yè)
課程設(shè)計(jì)概述計(jì)算器_第3頁(yè)
課程設(shè)計(jì)概述計(jì)算器_第4頁(yè)
課程設(shè)計(jì)概述計(jì)算器_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、成都理工大學(xué)工程技術(shù)學(xué)院C#程序設(shè)計(jì)項(xiàng)目教程 實(shí)驗(yàn)指導(dǎo)與課程設(shè)計(jì)組長(zhǎng): 吳 建 組員: 李 俊 馮 宇 張 漢 川 馮 英 豪 課程設(shè)計(jì)概述C#編寫簡(jiǎn)易計(jì)算器【課程設(shè)計(jì)的目的】 實(shí)現(xiàn)一個(gè)簡(jiǎn)單的windows計(jì)算器,能實(shí)現(xiàn)基本的四則運(yùn)算和基本的對(duì)數(shù)計(jì)算等等,通過對(duì)該項(xiàng)目的設(shè)計(jì),進(jìn)一步了解和熟悉windows應(yīng)用程序的一般開發(fā)設(shè)計(jì)過程。【項(xiàng)目及其內(nèi)容】1. 項(xiàng)目Windows計(jì)算器2. 項(xiàng)目?jī)?nèi)容 作為一個(gè)windows應(yīng)用程序,首要目標(biāo)是搞清楚windows應(yīng)用程序的結(jié)構(gòu)和來龍去脈。通過C#設(shè)計(jì)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的計(jì)算器,要求能夠?qū)崿F(xiàn)基本的加、減、乘、除等功能,并以這個(gè)計(jì)算器為例,了解和掌握window

2、s應(yīng)用程序的一般開發(fā)過程?!驹O(shè)計(jì)要求】 添加計(jì)算器窗體,建立windows應(yīng)用程序的框架;添加計(jì)算器控件,設(shè)置其屬性;為控件添加事件處理程序和實(shí)現(xiàn)功能,最后測(cè)試運(yùn)行。創(chuàng)建主體框架:建立程序的主要界面后,系統(tǒng)自動(dòng)生成界面的主要窗口生成代碼。對(duì)于每個(gè)按鈕的的代碼段中,分別添加事件觸發(fā)的處理代碼??丶extBox1,顯示輸入的信息和顯示處理后的結(jié)果。數(shù)字1-9的按鍵的事件處理都是在textBox1中分別添加相對(duì)應(yīng)的數(shù)字字符,每按一次就在字符后面繼續(xù)加入數(shù)字的字符,把數(shù)字當(dāng)成是字符串處理。對(duì)于加減乘除四則運(yùn)算按鍵,事件觸發(fā)后的處理是判斷是否numa與numb都有值,沒有的話就先賦值,不做運(yùn)算,直到n

3、uma與numb都有值才進(jìn)行運(yùn)算。程序0-9這十個(gè)數(shù)字按鈕直接用托管實(shí)現(xiàn),所有執(zhí)行代碼置于數(shù)字鍵1的onclick事件中,其他按鈕用托管實(shí)現(xiàn)。加減乘除四個(gè)按鈕實(shí)現(xiàn)比較復(fù)雜的判斷與運(yùn)算。運(yùn)算是都是調(diào)用相同的計(jì)算類Computer進(jìn)行計(jì)算的。小數(shù)點(diǎn)和正負(fù)號(hào)按鈕的實(shí)現(xiàn),主要是用字符檢索與字符插入刪除操作,判斷字符串中是否已經(jīng)存在此字符。存在小數(shù)點(diǎn)的話就不再增加小數(shù)點(diǎn),存在負(fù)號(hào)就把負(fù)號(hào)去掉。【設(shè)計(jì)過程】1、 windows窗體時(shí)windows應(yīng)用程序的框架。建立windows應(yīng)用程序的第一步就是建立這個(gè)框架。2、 控件表示用戶和程序之間的圖形化連接??丶梢蕴峁┗蛱幚頂?shù)據(jù)、接受用戶輸入、對(duì)事件做出響應(yīng)

4、或執(zhí)行連接用戶和應(yīng)用程序的其他功能。窗體中的控件有很多,工具箱中的windows窗體里包含了所有的windows標(biāo)準(zhǔn)控件。通過在屬性窗口改變控件的屬性可以改變控件的外觀和特性。本項(xiàng)目需要用到以下空間: (1) 按鈕:31個(gè)。其中有10個(gè)數(shù)字按鈕;17個(gè)運(yùn)算按鈕;一個(gè)用于計(jì)算的等號(hào)按鈕;2個(gè)用于清空的按鈕。(2) 文本框:1個(gè)。用于顯示計(jì)算結(jié)果。(3) 分組框:1個(gè)。用于美化界面。(4) 單選框:7個(gè)。用于豐富計(jì)算器的功能。 如圖所示: 分別將按鈕、文本框、分組框、單選框拖拽的窗體中,并設(shè)計(jì)好它們的屬性。界面設(shè)計(jì)完成后,接下來就是為各個(gè)控件添加相應(yīng)的事件代碼了。3、 在c#中,基于windows

5、應(yīng)用程序設(shè)計(jì)方法是事件驅(qū)動(dòng)的。事件驅(qū)動(dòng)不是由程序的順序來控制,而是由事件的發(fā)生來控制的。事件驅(qū)動(dòng)程序設(shè)計(jì)是圍繞消息的產(chǎn)生與處理而展開的,消息就是關(guān)于發(fā)生的事件的信息。Windows程序員的工作就是對(duì)所開發(fā)的應(yīng)用程序所要發(fā)出或者接收的消息進(jìn)行排序和管理。在窗體設(shè)計(jì)器中看到的是窗體及其中的控件,而要為控件添加事件處理程序就必須先切換到代碼編輯器狀態(tài)。下面分析計(jì)算器中各個(gè)控件到底應(yīng)該添加什么樣的代碼。對(duì)于計(jì)算器來說,當(dāng)單擊某個(gè)數(shù)字鍵后,結(jié)果顯示區(qū)內(nèi)應(yīng)顯示該鍵上的數(shù)字。因此,可以雙擊按鈕1,切換到代碼編輯器,此時(shí)光標(biāo)就會(huì)停留在該按鈕所對(duì)應(yīng)的代碼處,輸入下列代碼: private void button

6、10_Click(object sender, EventArgs e) if (textBox1.Text = "0") textBox1.Text = "1" else textBox1.Text += "1" 注意: 在代碼中,數(shù)字鍵09只需將上述代碼中的1改為相應(yīng)的數(shù)字。4、 以下是運(yùn)算符按鈕的代碼: 加法: private void button21_Click(object sender, EventArgs e) Button btn = (Button)sender; textBox1.Text = textBox1.

7、Text + " " + btn.Text + " "/空格用于分隔數(shù)字各運(yùn)算符 減法: private void button26_Click(object sender, EventArgs e) Button btn = (Button)sender; textBox1.Text = textBox1.Text + " " + btn.Text + " "/空格用于分隔數(shù)字各運(yùn)算符 乘法: private void button25_Click(object sender, EventArgs e) Butt

8、on btn = (Button)sender; textBox1.Text = textBox1.Text + " " + btn.Text + " "/空格用于分隔數(shù)字各運(yùn)算符 除法: private void button22_Click(object sender, EventArgs e) Button btn = (Button)sender; textBox1.Text = textBox1.Text + " " + btn.Text + " "/空格用于分隔數(shù)字各運(yùn)算符 注意:在以上代碼中,對(duì)于空格

9、(“)的使用是用于分隔數(shù)字各運(yùn)算符。5、 接下來是“清空“按鈕添加如下代碼: private void button12_Click(object sender, EventArgs e) if (textBox1.Text.Length >= 1) textBox1.Text = textBox1.Text.Substring(0, textBox1.Text.Length - 1); if (textBox1.Text.Length = 0) textBox1.Text = "0" 6、 以下是sin、cos、tan、e、lg、n!、1/x按鈕添加的代碼:Sin:

10、 private void button1_Click(object sender, EventArgs e) oneNumber = Convert.ToDouble(textBox1.Text); if (mark = false) textBox1.Text = Convert.ToString(Math.Sin(oneNumber); else textBox1.Text = Convert.ToString(Math.Asin(oneNumber); Cos: private void button7_Click(object sender, EventArgs e) oneNumb

11、er = Convert.ToDouble(textBox1.Text); if (mark = false) textBox1.Text = Convert.ToString(Math.Cos(oneNumber); else textBox1.Text = Convert.ToString(Math.Acos(oneNumber); Tan: private void button6_Click(object sender, EventArgs e) oneNumber = Convert.ToDouble(textBox1.Text); if (mark = false) textBox

12、1.Text = Convert.ToString(Math.Tan(oneNumber); else textBox1.Text = Convert.ToString(Math.Atan(oneNumber); e: private void button5_Click(object sender, EventArgs e) oneNumber = Convert.ToDouble(textBox1.Text); textBox1.Text = Convert.ToString(Math.Exp(oneNumber); lg:private void button4_Click(object

13、 sender, EventArgs e) oneNumber = Convert.ToDouble(textBox1.Text); textBox1.Text = Convert.ToString(Math.Log10(oneNumber); n!: private void button11_Click(object sender, EventArgs e) uint n_Number = Convert.ToUInt32(textBox1.Text); int number1 = n_Text(n_Number); textBox1.Text = Convert.ToString(number1); 1/x:private void button3_Click(object sender, EventArgs e) twoNumber = Convert.ToDouble(textBox1.Text); if (mark = false) textBox1.

溫馨提示

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

評(píng)論

0/150

提交評(píng)論