版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 設(shè)計(jì)(論文)題目: 實(shí)現(xiàn)計(jì)算器功能的應(yīng)用程序 </p><p> 學(xué) 院 名 稱: 電子與信息工程學(xué)院 </p><p> 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) </p>
2、<p> 班 級(jí): 計(jì)科12—1 </p><p> 姓 名: </p><p> 學(xué) 號(hào): </p><p>
3、目 錄</p><p> 設(shè)計(jì)背景和需求分析…………………………………………………………………… 3</p><p> 設(shè)計(jì)背景………………………………………………………………………… 3</p><p> 1.2 應(yīng)用背景………………………………………………………………………… 3</p><p>
4、; 1.3 需求分析………………………………………………………………………… 3</p><p> 1.4 應(yīng)用技術(shù)………………………………………………………………………… 3</p><p> 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)…………………………………………………………………………… 4</p><p> 系統(tǒng)結(jié)構(gòu)模型……………………………………………
5、……………………… 4</p><p> 模塊劃分………………………………………………………………………… 5</p><p> 實(shí)現(xiàn)方法………………………………………………………………………… 5</p><p> 程序模塊設(shè)計(jì)與調(diào)試…………………………………………………………………… 6</p><p> 設(shè)
6、計(jì)和調(diào)試各程序模塊………………………………………………………… 7</p><p> 提交主要的程序段……………………………………………………………… 12</p><p> 結(jié)束語…………………………………………………………………………………… 13</p><p> 系統(tǒng)應(yīng)用前景…………………………………………………………………… 13&
7、lt;/p><p> 不足與改進(jìn)……………………………………………………………………… 13</p><p> 體會(huì)……………………………………………………………………………… 14</p><p> 1.設(shè)計(jì)背景和需求分析</p><p><b> 1.1 設(shè)計(jì)背景</b></p><
8、p> (1)鞏固和加深學(xué)生對(duì)類的基本知識(shí)的理解和掌握;</p><p> (2)掌握C++語言編程和程序調(diào)試的基本技能;</p><p> ?。?)利用C+語言進(jìn)行基本的軟件設(shè)計(jì);</p><p> ?。?)掌握書寫程序設(shè)計(jì)說明文檔的能力;</p><p> 提高運(yùn)用C++語言解決實(shí)際問題的能力。</p><p
9、><b> 1.2 應(yīng)用背景</b></p><p> 說起計(jì)算器,值得我們驕傲的是,最早的計(jì)算工具誕生在中國(guó)。中國(guó)古代最早采用的一種計(jì)算工具叫籌策,又被叫做算籌。這種算籌多用竹子制成,也有用木頭,獸骨充當(dāng)材料的。約二百七十枚一束,放在布袋里可隨身攜帶。 直到今天仍在使用的珠算盤,是中國(guó)古代計(jì)算工具領(lǐng)域中的另一項(xiàng)發(fā)明,明代時(shí)的珠算盤已經(jīng)與現(xiàn)代的珠算盤幾乎相同。
10、 十七世紀(jì)初,西方國(guó)家的計(jì)算工具有了較大的發(fā)展,英國(guó)數(shù)學(xué)家納皮爾發(fā)明的“納皮爾算籌”,英國(guó)牧師奧卻德發(fā)明了圓柱型對(duì)數(shù)計(jì)算尺,這種計(jì)算尺不僅能做加減乘除、乘方、開方運(yùn)算,甚至可以計(jì)算三角函數(shù),指數(shù)函數(shù)和對(duì)數(shù)函數(shù),這些計(jì)算工具不僅帶動(dòng)了計(jì)算器的發(fā)展,也為現(xiàn)代計(jì)算器發(fā)展奠定了良好的基礎(chǔ),成為現(xiàn)代社會(huì)應(yīng)用廣泛的計(jì)算工具。1.3 需求分析</p><p> 即要實(shí)現(xiàn)簡(jiǎn)單計(jì)算器等功能,包括加、減、乘、除等運(yùn)算功能,還要
11、實(shí)現(xiàn)數(shù)據(jù)的輸入、輸出、計(jì)算、顯示等功能。</p><p><b> 1.4 應(yīng)用技術(shù)</b></p><p> Visual Studio 2005、</p><p><b> C++編程、</b></p><p><b> MFC、</b><
12、/p><p><b> 類</b></p><p><b> 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)</b></p><p> 2.1 系統(tǒng)結(jié)構(gòu)模型</p><p><b> 2.2模塊劃分</b></p><p><b> 2.3 實(shí)現(xiàn)方法</b>&
13、lt;/p><p> 運(yùn)用MFC制作界面輸入代碼,創(chuàng)建類來實(shí)現(xiàn)</p><p><b> 程序模塊設(shè)計(jì)與調(diào)試</b></p><p> 3.1 設(shè)計(jì)和調(diào)試各模塊程序/主要程序段</p><p><b> 數(shù)字等號(hào)按鈕程序:</b></p><p> void CZjfD
14、lg::OnButton19() </p><p><b> {</b></p><p> // TODO: Add your control notification handler code here</p><p><b> Calc2();</b></p><p> m_sign =
15、 '=';</p><p> equals = true;</p><p><b> }</b></p><p> void CZjfDlg::OnButton7() </p><p><b> {</b></p><p> // TODO: Add
16、 your control notification handler code here</p><p> m_numb = 1;</p><p><b> Calc1();</b></p><p><b> }</b></p><p> void CZjfDlg::OnButton8()
17、</p><p><b> {</b></p><p> // TODO: Add your control notification handler code here</p><p> m_numb = 2;</p><p><b> Calc1();</b></p>&l
18、t;p><b> }</b></p><p> void CZjfDlg::OnButton9() </p><p><b> {</b></p><p> // TODO: Add your control notification handler code here</p><p>
19、; m_numb = 3;</p><p><b> Calc1();</b></p><p><b> }</b></p><p> void CZjfDlg::OnButton4() </p><p><b> {</b></p><p>
20、; // TODO: Add your control notification handler code here</p><p> m_numb = 4;</p><p><b> Calc1();</b></p><p><b> }</b></p><p> void CZjfDl
21、g::OnButton5() </p><p><b> {</b></p><p> // TODO: Add your control notification handler code here</p><p> m_numb = 5;</p><p><b> Calc1();</b>
22、;</p><p><b> }</b></p><p> void CZjfDlg::OnButton6() </p><p><b> {</b></p><p> // TODO: Add your control notification handler code here</
23、p><p> m_numb = 6;</p><p><b> Calc1();</b></p><p><b> }</b></p><p> void CZjfDlg::OnButton1() </p><p><b> {</b></p
24、><p> // TODO: Add your control notification handler code here</p><p> m_numb = 7;</p><p><b> Calc1();</b></p><p><b> }</b></p><p>
25、; void CZjfDlg::OnButton2() </p><p><b> {</b></p><p> // TODO: Add your control notification handler code here</p><p> m_numb = 8;</p><p><b> Cal
26、c1();</b></p><p><b> }</b></p><p> void CZjfDlg::OnButton3() </p><p><b> {</b></p><p> // TODO: Add your control notification handler
27、code here</p><p> m_numb = 9;</p><p><b> Calc1();</b></p><p><b> }</b></p><p> void CZjfDlg::OnButton10() </p><p><b> {&
28、lt;/b></p><p> // TODO: Add your control notification handler code here</p><p> m_numb = 0;</p><p><b> Calc1();</b></p><p><b> }</b></
29、p><p><b> 運(yùn)算符程序段:</b></p><p> void CZjfDlg::OnButton14() </p><p><b> {</b></p><p> // TODO: Add your control notification handler code here<
30、/p><p><b> Calc2();</b></p><p> m_sign = '+';</p><p><b> }</b></p><p> void CZjfDlg::OnButton15() </p><p><b> {<
31、/b></p><p> // TODO: Add your control notification handler code here</p><p><b> Calc2();</b></p><p> m_sign = '-';</p><p><b> }</b&g
32、t;</p><p> void CZjfDlg::OnButton16() </p><p><b> {</b></p><p> // TODO: Add your control notification handler code here</p><p><b> Calc2();</b
33、></p><p> m_sign = '*';</p><p><b> }</b></p><p> void CZjfDlg::OnButton17() </p><p><b> {</b></p><p> // TODO: Add
34、your control notification handler code here</p><p><b> Calc2();</b></p><p> m_sign = '/';</p><p><b> }</b></p><p> void CZjfDlg::OnB
35、utton18() </p><p><b> {</b></p><p> // TODO: Add your control notification handler code here</p><p><b> Calc2();</b></p><p> m_sign = '^
36、';</p><p><b> }</b></p><p> void CZjfDlg::OnButton13() </p><p><b> {</b></p><p> // TODO: Add your control notification handler code her
37、e</p><p> if(equals)//通過運(yùn)算符運(yùn)算之后值</p><p><b> {</b></p><p> number1 = sqrt(number1);</p><p> m_EDIT1.Format("%lg", number1);</p><p>
38、;<b> }</b></p><p> else//運(yùn)算之前的值</p><p><b> {</b></p><p> number2 = sqrt(number2);</p><p> m_EDIT1.Format("%lg", number2);</p&g
39、t;<p><b> }</b></p><p> UpdateData(FALSE);</p><p><b> }</b></p><p> void CZjfDlg::OnButton12() </p><p><b> {</b></p&g
40、t;<p> // TODO: Add your control notification handler code here</p><p> number1 = 0;</p><p> number2 = 0;</p><p> nums = -1;</p><p> num = false;</p>
41、<p> point = false;</p><p> equals = false;</p><p> m_sign = '=';</p><p> m_EDIT1.Format("%lg",number1);</p><p> UpdateData(FALSE);</p&g
42、t;<p><b> }</b></p><p> void CZjfDlg::OnButton11() </p><p><b> {</b></p><p> // TODO: Add your control notification handler code here</p>&
43、lt;p> if(equals)</p><p><b> {</b></p><p> if(point == true) m_EDIT1.Format("%lg", number1);</p><p><b> else</b></p><p><b>
44、; {</b></p><p> m_EDIT1.Format("%lg", number1);</p><p> m_EDIT1 += ".";</p><p><b> }</b></p><p><b> }</b></p&g
45、t;<p><b> else</b></p><p><b> {</b></p><p> if(point == true) m_EDIT1.Format("%lg", number2);</p><p><b> else</b></p>
46、<p><b> {</b></p><p> m_EDIT1.Format("%lg", number2);</p><p> m_EDIT1 += ".";</p><p><b> }</b></p><p><b> }
47、</b></p><p> point = true;</p><p> UpdateData(FALSE);</p><p><b> }</b></p><p><b> 實(shí)現(xiàn)按鈕:</b></p><p> void CZjfDlg::Calc1(
48、)//按下數(shù)字鍵</p><p><b> {</b></p><p> switch(m_numb)</p><p><b> {</b></p><p><b> case 0:</b></p><p> m_edit = 0;</p
49、><p><b> break;</b></p><p><b> case 1:</b></p><p> m_edit = 1;</p><p><b> break;</b></p><p><b> case 2:</b&g
50、t;</p><p> m_edit = 2;</p><p><b> break;</b></p><p><b> case 3:</b></p><p> m_edit = 3;</p><p><b> break;</b></
51、p><p><b> case 4:</b></p><p> m_edit = 4;</p><p><b> break;</b></p><p><b> case 5:</b></p><p> m_edit = 5;</p>
52、<p><b> break;</b></p><p><b> case 6:</b></p><p> m_edit = 6;</p><p><b> break;</b></p><p><b> case 7:</b><
53、;/p><p> m_edit = 7;</p><p><b> break;</b></p><p><b> case 8:</b></p><p> m_edit = 8;</p><p><b> break;</b></p>
54、<p><b> case 9:</b></p><p> m_edit = 9;</p><p><b> break;</b></p><p><b> }</b></p><p> if(equals)//如果按下等號(hào)鍵將其還原到初始值</p
55、><p><b> {</b></p><p> equals = false;</p><p> num = false;</p><p><b> }</b></p><p> if(point)//如果現(xiàn)在輸入的是小數(shù)</p><p>&l
56、t;b> {</b></p><p> number2 = number2 + m_edit * pow(10, nums --);//乘以10的多少次方</p><p> if(m_edit == 0)</p><p><b> {</b></p><p> if(nums == -2)//
57、0直接跟在小數(shù)點(diǎn)后面,如:1.0</p><p><b> {</b></p><p> m_EDIT1.Format("%lg", number2);</p><p> m_EDIT1 += ".0";</p><p><b> }</b></
58、p><p> else//0不是直接跟在小數(shù)點(diǎn)后,如1.2304</p><p><b> {</b></p><p> m_EDIT1.Format("%lg", number2);</p><p> m_EDIT1 += "0";</p><p>&
59、lt;b> }</b></p><p><b> }</b></p><p> else m_EDIT1.Format("%lg", number2); </p><p><b> }</b></p><p> else//輸入的是整數(shù)<
60、/p><p><b> {</b></p><p> number2 = number2 * 10 + m_edit;</p><p> m_EDIT1.Format("%lg", number2);</p><p><b> }</b></p><p&g
61、t; UpdateData(FALSE);</p><p><b> }</b></p><p> void CZjfDlg::Calc2()//按下運(yùn)算符</p><p><b> {</b></p><p> if(!equals)//如果不是等號(hào)</p><p&g
62、t;<b> {</b></p><p> if(num)//如果是數(shù)字鍵則不做</p><p><b> {</b></p><p> switch(m_sign)</p><p><b> {</b></p><p><b>
63、case '+':</b></p><p> number1 = number1 + number2;</p><p><b> break;</b></p><p><b> case '-':</b></p><p> number1 = nu
64、mber1 - number2;</p><p><b> break;</b></p><p><b> case '*':</b></p><p> number1 = number1 * number2;</p><p><b> break;</b&g
65、t;</p><p><b> case '/':</b></p><p> if(number2 != 0)</p><p><b> {</b></p><p> number1 = number1 / number2;</p><p><b
66、> }</b></p><p><b> break;</b></p><p><b> case '^':</b></p><p> number1 = number1 * number1;</p><p><b> break;</b&
67、gt;</p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> number1 = number2;&
68、lt;/p><p> num = true;</p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p>
69、<p> equals = false;</p><p><b> }</b></p><p> if(m_sign == '/' && number2 == 0) m_EDIT1 = "除數(shù)不能為零!";</p><p> else m_EDIT1.Format(&quo
70、t;%lg", number1);</p><p> number2 = 0;</p><p> point = false;</p><p> nums = -1;</p><p> UpdateData(FALSE);</p><p><b> }</b></p>
71、;<p><b> 結(jié)束語</b></p><p> 4.1 系統(tǒng)應(yīng)用前景</p><p> 隨著21世紀(jì)的到來,信息化時(shí)代已經(jīng)向我們走來,這個(gè)時(shí)代的最重要的標(biāo)志就是計(jì)算機(jī)的廣泛應(yīng)用。如今社會(huì)上計(jì)算機(jī)應(yīng)用已經(jīng)達(dá)到非常普及的程度,隨處都可以見到計(jì)算機(jī)的身影。我們也熟悉了在社會(huì)各處遇見它們的環(huán)境,學(xué)校的機(jī)房,金融場(chǎng)所,以及到處可見的網(wǎng)吧,計(jì)算機(jī)如水銀般
72、無孔不入。我們甚至?xí)岩捎?jì)算機(jī)還將向哪里深入,還將控制哪個(gè)地方。當(dāng)然這前景依然是樂觀的。</p><p> 計(jì)算機(jī)的發(fā)展歷程:現(xiàn)在的計(jì)算機(jī)是由早期的電動(dòng)計(jì)算器發(fā)展而來的。1945年,世界上出現(xiàn)了第一臺(tái)電子數(shù)字計(jì)算機(jī)“ENIAC”,用于計(jì)算彈道。是由美國(guó)賓夕法尼亞大學(xué)莫爾電工學(xué)院制造的,但它的體積龐大,占地面積170多平方米,重量約30噸,消耗近100千瓦的電力。顯然,這樣的計(jì)算機(jī)成本很高,使用不便。1956年,
73、晶體管電子計(jì)算機(jī)誕生了,這是第二代電子計(jì)算機(jī)。只要幾個(gè)大一點(diǎn)的柜子就可將它容下,運(yùn)算速度也大大地提高了。1959年出現(xiàn)的是第三代集成電路計(jì)算機(jī)。從20世紀(jì)70年代開始,這是電腦發(fā)展的最新階段。整理76年,由大規(guī)模集成電路和超大規(guī)模集成電路制成的“克雷一號(hào)”,使電腦進(jìn)入了第四代。超大規(guī)模集成電路的發(fā)明,使電子計(jì)算機(jī)不斷向著 小型化、微型化、低功耗、智能化、系統(tǒng)化的方向更新?lián)Q代。20世紀(jì)90年代,電腦向“智能”方向發(fā)展,制造出與人腦相似的電
74、腦,可以進(jìn)行思維、學(xué)習(xí)、記憶、網(wǎng)絡(luò)通信等工作。 進(jìn)入21世紀(jì),電腦更是筆記本化、微型化和專業(yè)化,每秒運(yùn)算速度超過100萬次,不但操作簡(jiǎn)易、價(jià)格便宜,而且可以代替人們的部分腦力勞動(dòng),甚至在某些方面擴(kuò)展了人的智能。于是,今天的微型電子計(jì)算機(jī)就被形象地稱做電腦</p><p><b> 4.2 不足與改進(jìn)</b></p><p> 該計(jì)算器無法進(jìn)行高級(jí)的運(yùn)算,因?yàn)榫幊棠?/p>
75、力有限,在調(diào)試時(shí)錯(cuò)誤也是很多,雖然完成了所要求的操作,但是還遠(yuǎn)遠(yuǎn)沒達(dá)到一只合格計(jì)算器的要求,就此而言,要加強(qiáng)自己的編程能力與調(diào)試能力,以致能做出一只更完美的計(jì)算器。</p><p><b> 4.3 體會(huì)</b></p><p> 通過本次C++的課程設(shè)計(jì)使得我對(duì)C++語言有了更深一步的了解,在計(jì)算器的制作過程中,學(xué)習(xí)到了基本的C++編程方法,提高了自己的實(shí)踐能
76、力。雖然課程設(shè)計(jì)完成了,但程序還存在一點(diǎn)小問題,希望以后能將這些問題妥善解決。加強(qiáng)面向?qū)ο蟮乃枷氲牧私?,提高C++編程的基礎(chǔ),通過不斷的學(xué)習(xí)和實(shí)踐來進(jìn)一步掌握C++語言。</p><p><b> 5.參考文獻(xiàn)</b></p><p> [1]張福祥. C++語言程序設(shè)計(jì)[M]. 遼寧大學(xué)出版社,2008.1[2] 張福祥,王萌.C++語言程序設(shè)計(jì)習(xí)題解答與實(shí)驗(yàn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java課程設(shè)計(jì)-- 實(shí)現(xiàn)計(jì)算器功能的應(yīng)用程序
- java課程設(shè)計(jì)--實(shí)現(xiàn)計(jì)算器功能的應(yīng)用程序
- java課程設(shè)計(jì)報(bào)告---計(jì)算器應(yīng)用程序?qū)嶒?yàn)報(bào)告
- 計(jì)算器課程設(shè)計(jì)---計(jì)算器仿真程序設(shè)計(jì)
- java計(jì)算器課程設(shè)計(jì)---計(jì)算器模擬程序
- c++計(jì)算器課程設(shè)計(jì)--計(jì)算器程序設(shè)計(jì)
- java計(jì)算器課程設(shè)計(jì)-- 計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)
- 模擬計(jì)算器程序-課程設(shè)計(jì)
- java程序課程設(shè)計(jì)--計(jì)算器編輯
- 《c#計(jì)算器程序設(shè)計(jì)》課程設(shè)計(jì)--計(jì)算器的開發(fā)與應(yīng)用
- java實(shí)現(xiàn)計(jì)算器課程設(shè)計(jì)
- 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)——計(jì)算器
- 課程設(shè)計(jì)-計(jì)算器
- 計(jì)算器java課程設(shè)計(jì)--簡(jiǎn)單計(jì)算器
- 三種語言實(shí)現(xiàn)計(jì)算器課程設(shè)計(jì)--計(jì)算器
- java課程設(shè)計(jì)--計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)
- 計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn)課程設(shè)計(jì)論文
- c課程設(shè)計(jì)報(bào)告——多功能計(jì)算器
- 軟件測(cè)試課程設(shè)計(jì)報(bào)告-計(jì)算器程序測(cè)試
- 面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)--分?jǐn)?shù)計(jì)算器
評(píng)論
0/150
提交評(píng)論