版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 揚 州 大 學</b></p><p><b> C語言課程設計報告</b></p><p> 題 目 一個簡易計算器的設計與實現(xiàn) </p><p> 班 級 </p><p> 學 號
2、 </p><p> 姓 名 </p><p> 指導教師 </p><p> 成 績 </p><p> 老師評語:
3、 </p><p> 揚州大學信息工程學院</p><p> 2010 年 6 月 25 </p><p><b> 目錄</b></p><p> 程序設計目的:………………………………………………1</p><p&g
4、t; 程序設計內容:………………………………………………1</p><p> 課程設計所補充的內容:補充的函數(shù)或算法…………3,4</p><p> 系統(tǒng)總體設計………………………………………………….4</p><p> 系統(tǒng)詳細設計………………………………………5,6,7,8</p><p> 運行結果…………………………………
5、……………8,9,10</p><p> 系統(tǒng)調試…………………………………………8,9,10,11</p><p> 課程設計體會總結………………………………8,9,10,11</p><p><b> 1 課程設計目的</b></p><p> ?。?).課程設計是一項綜合性實踐環(huán)節(jié),是對平時實驗的一個補充,課
6、程設計內容包括課程的主要理論知識,但由于C語言對初學者較難掌握,因而對一個完整的C語言程序不適合平時實驗。通過課程設計可以達到綜合設計C語言程序的目的。</p><p> ?。?)通過本課程設計,可以培養(yǎng)獨立思考,綜合運用所學有關相應知識的能力,能更好地使用C語言的知識,更好地了解C語言的好處和其可用性!掌握基本的程序設計過程和技巧,掌握基本的分析問題和 利用計算機求解問題的能力,具備初步的高級程序設計能力。為后
7、續(xù)各門計算機課程的學習和畢業(yè)設計打下堅實基礎!</p><p> ?。?)通過本程序訓練程序設計的基本技能,掌握字符串的表示方法和字符串函數(shù)的功能、自學掌握四則運算的算法及WIN-TC的圖形操作的基本知識、鍵盤上特殊鍵的獲取及圖形方式下光標的顯示。</p><p><b> 2 課程設計內容</b></p><p> 目的:本課程的課程設計
8、要求學生模擬實現(xiàn)一個簡單計算器,要求(1)能夠實現(xiàn)四則運算,并能支持優(yōu)先級運算。(2)三角與反三角運算:如sinx,cosx等。(3)指數(shù)對數(shù)運算:如log(x),lnx,e的x次方等。(4)其他運算:如X!,x的累加等。(4)不允許調用庫函數(shù),使用自行開發(fā)的程序實現(xiàn)常用函數(shù)運算。(5)進一步考慮計算器外觀設計,用可視化界面給出計算器外觀、功能按鍵及輸入界面。</p><p> 使用說明:執(zhí)行加法運算,'
9、;—'表示執(zhí)行減法運算,表示執(zhí)行乘法運算,'/'表示除法運算.‘Q’表示退出計算器‘C’表示清零,’=’表示得出結果'^'表示執(zhí)行x的y次方,'e'表示執(zhí)行e的x次方操作,'&'表示執(zhí)行累加操作.,你可以可以用鍵盤上的上下左右鍵對光標進行移動,當光標移動到計算器按鍵上時,按ENTER即可執(zhí)行該鍵的操作!最后按“=”則可得出結果。</p><
10、;p> 3 課題設計的補充知識</p><p> 本程序通過int specialkey(void)和#include<conio.h>來實現(xiàn)對屏幕的操作,通過調用int arrow()函數(shù),int specialkey(void)和#include<conio.h>來實現(xiàn)對光標的操作。計算機圖形采用Turbo C 2.0繪圖程序制作。 因此涉及C的圖形程序設計知識。此外,由于
11、不允許調用庫函數(shù),則要自行開發(fā)程序實現(xiàn)sinx,cosx,e的x次方函數(shù)運算,則可以根據(jù)冪級數(shù)的展開式來設計實現(xiàn)其運算的算法,而x的階乘和x的累加則可用for語句來實現(xiàn)。</p><p> 最后,不得不說說四則運算的算法,有兩種方法可以實現(xiàn):(1)利用堆棧實現(xiàn)四則運算(2)還可以用遞歸整數(shù)的四則運算。</p><p><b> sinx函數(shù)</b></p&g
12、t;<p> #include<stdio.h></p><p> #include<math.h></p><p><b> main()</b></p><p><b> {</b></p><p><b> int n=1;</b
13、></p><p><b> float x;</b></p><p> double sum ,term;</p><p> printf("input x:");</p><p> scanf("%f",&x);</p><p>&
14、lt;b> sum=x;</b></p><p><b> term=x;</b></p><p><b> do</b></p><p><b> {</b></p><p> term=-term*x*x/((n+1)*(n+2));</p
15、><p> sum=sum+term;</p><p><b> n=n+2;</b></p><p><b> }</b></p><p> while (fabs(term)>=1e-5);</p><p> printf("sin(x)=%f &q
16、uot;,sum);</p><p><b> getch();</b></p><p> } </p><p><b> cosx函數(shù)</b></p><p> #include<stdio.h></p><p> #in
17、clude<math.h> </p><p><b> main()</b></p><p><b> {</b></p><p><b> int n=0;</b></p><p><b> float x;</b></p&g
18、t;<p> double sum ,term;</p><p> printf("input x:");</p><p> scanf("%f",&x);</p><p><b> sum=1;</b></p><p><b> term
19、=x;</b></p><p><b> do</b></p><p><b> {</b></p><p> term=-term*x*x/((n+1)*(n+2));</p><p> sum=sum+term;</p><p><b>
20、n=n+2;</b></p><p><b> }</b></p><p> while (fabs(term)>=1e-5);</p><p> printf("cos(x)=%f ",sum);</p><p><b> getch();</b>&l
21、t;/p><p><b> }</b></p><p> 使用使只需要將其轉換為函數(shù),在computer函數(shù)中對其進行調用即可</p><p><b> 4課程總體設計</b></p><p> main()函數(shù)首先初始化圖形系統(tǒng),然后調用計算器computer()進行計算器的計算功能,當計算器
22、程序返回時,關閉圖形系統(tǒng),結束程序。</p><p><b> 其系統(tǒng)模塊圖如下:</b></p><p> 5.1系統(tǒng)詳細設計 </p><p> 5.1.1主界面:畫一個帶標題(calculator)的窗口,窗口最上面的光條顯示數(shù)字和運算結果,光條下30個矩形塊模擬命令按鈕,按鈕上面顯示數(shù)字和運算符號,并且在按鈕上有圖形光標,通過
23、移動光標鍵到所需位置,按回車鍵即可選擇相應的符號。</p><p> 5.1.2main()主函數(shù):首先初始化圖形系統(tǒng)(Initialize函數(shù)),然后調用計算器computer()函數(shù)進行計算器的計算功能,當計算器程序返回時,關閉圖形系統(tǒng)(Closegraph),結束程序。</p><p> 5.1.3initialize()初始化函數(shù):調用initgraph(&GraphD
24、river,&&GraphMode,”初始化系統(tǒng),將其裝入相應的圖形驅動器。圖形函數(shù)所用的屏顯模式由GraphMode所指向的整數(shù)值確定。用DETECT自動檢測目前屏顯硬件的類型,并選用最大分辨率的屏顯模式。為了方便設計計算器界面,在這個函數(shù)中你,獲取圖形屏幕的最大尺寸及縱橫比。</p><p> 5.1.4mwindow()主窗口函數(shù):設置視口大小為當前窗口的一半,然后調用畫邊框函數(shù)drawb
25、oder()畫出邊框。</p><p> 5.1.5drawboder()畫邊框函數(shù):通過函數(shù)getviewsettings(&vp)把有關當前視口的信息裝入由vp所指向的結構中。vp是struct viewporttype類型,其結構定義如下:</p><p> struct viewporttype</p><p> {int left,top,r
26、ight,bottom;</p><p><b> int clip;</b></p><p><b> }</b></p><p> 域left,top,right,bottom中分為左上角和右下角的坐標。當clip為0時,不對超出視口邊界裁剪,否則裁剪以防止超出邊界。</p><p>
27、因窗口是屏幕的活動部分,在這個活動窗口將顯示輸出,為保持字符屏幕和圖形系統(tǒng)的獨立。字符屏幕的函數(shù)提供了窗口(window),而圖形系統(tǒng)提供了視口(ViewPort),當屏幕用字符模式時,左上角坐標為(1,1),而在圖形狀態(tài)下,左上角坐標為(0,0)。根據(jù)視口坐標,利用畫矩形函數(shù)rectangle()畫出邊框線。</p><p> 5.1.6computer()計算器函數(shù):這是主要函數(shù),實現(xiàn)了計算器的計算功能。先
28、調用mwindow()函數(shù)顯示窗口,再在窗口中顯示計算器,最后接收按鍵進行運算。根據(jù)窗口大小設置按鈕大小和位置,設置了兩個單位變量width和height,圖形顯示以這兩個變量為計算單位。圖中的符號按鈕利用setfillstyle()設置顏色來實體填充,再用把bar()函數(shù)畫矩形條,setcolor()函數(shù)設置邊框線顏色,rectangle()函數(shù)畫矩形邊框線,利用outtextxy()函數(shù)將預先存儲在str1中的字符串中的字符輸出,因
29、outtextxy()輸出的時字符串,則應利用sprintf()函數(shù)將要輸出的字符寫入字符數(shù)組str2中,轉變?yōu)樽址?,然后輸出。界面設置好后,先在第一個按鈕位置顯示圖標,此時可移動和按下光標,變量m和n記錄光標的位置,光標移動某個位置按回車后,則程序判斷所按的字符,進行相應處理:(1)若為數(shù)字或小數(shù)點,則判斷是否為負數(shù),若是則將負號連接到字符串中,否則只連接所選的數(shù)字或小數(shù)點,并顯示數(shù)據(jù)。(2)當所選為“-“先判斷有無操作數(shù),沒有,則
30、為負數(shù),做負號標記,否則是做減法,做減</p><p> 5.1.7arrow()設計圖形鼠標函數(shù):用fillpoly(8,raw)畫一個由raw所指向的數(shù)組中定義的8個x、y坐標點所圍成的封閉圖形,用當前填充模式和顏色對該形狀進行填充,利用imagesize()函數(shù)測試圖像大小,分配內存區(qū)域,將圖像保存,再通過圖像的讀取函數(shù)getimage()和putimage()以及XOR-PUT操作實現(xiàn)光標的顯示和隱藏。
31、</p><p> 5.1.8speciallykey()讀取特殊鍵函數(shù):利用bioskey(1)讀取用戶所按鍵的信息,int bioskey(int cmb)函數(shù)原型在bios.h中,功能是完成直接按鍵操作。如果cmb是0 ,bioskey()返回下一個在鍵盤鍵入的值,即在等待到下一個鍵。如果cmb是1,bioskey()查詢是否按下一個鍵,當按下一個鍵時返回非0值,否則返回0值,所以用while(biosk
32、ey(1)==0)語句等待按鍵</p><p> 5.2.模塊接口設計</p><p> int main()</p><p> {initialize();</p><p> Computer();</p><p> Closegraph();</p><p> Return(0)
33、;</p><p><b> }</b></p><p> 先設置系統(tǒng)進入圖形模式(調用initialize()函數(shù)),即為模塊入口,然后調用computer()函數(shù)執(zhí)行計算器的計算功能,最后調用closegraph()函數(shù)來關閉圖形模式返回文本模式(模塊出口),再結束程序。</p><p><b> 5.3流程圖</b&
34、gt;</p><p> Computer()函數(shù)流程圖</p><p><b> 總系統(tǒng)設計流程圖</b></p><p><b> 6運行結果</b></p><p><b> 運算器主界面</b></p><p><b> 4的
35、階乘運算結果</b></p><p><b> cos0運算結果</b></p><p><b> e的平方運算結果</b></p><p><b> Ln10的運算結果</b></p><p><b> 7系統(tǒng)調試</b></p
36、><p> 該計算器系統(tǒng)不能實現(xiàn)四則運算功能,有望改進!</p><p><b> 8課程設計體會總結</b></p><p> 經過一周的C語言課程設計,使我加深了C語言程序的使用,并能達到基本上的運用。同時也增強了動手和實踐的能力。雖然在遇到了不少困難,但是正因為這些困難,我也學到了更多的東西。</p><p>
37、 這次“簡單計算器制作”的課程設計不僅讓我對C語言的的熟悉城的上升到了一個新的高度,是我在編程路上一個質的飛躍。當我看到一個具有圖形界面的計算器的模型成品出現(xiàn)在我的面前時,心中有著無限的感慨,原來編程也不是非常遙不可及的,原來在編程的趣味中能讓我學到更多有意思的知識!</p><p> 9實驗指導書與參考書</p><p> 1.譚浩強,《C程序設計(第三版)》,清華大學出版社,200
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設計--一個簡易計算器的設計與實現(xiàn)
- 設計一個簡單計算器的c語言課程設計報告
- 高級語言課程設計--簡易計算器
- c語言課程設計--- 制作2.0版簡易計算器
- c語言課程設計--計算器
- c語言課程設計--計算器
- java編程語言設計課程設計--- 簡易計算器設計
- 簡易計算器課程設計
- 簡易計算器課程設計
- 簡易計算器課程設計
- c語言計算器的編寫課程設計
- 簡易計算器的設計課程設計
- 簡易計算器課程設計 (3)
- 簡易計算器課程設計 (2)
- 簡易計算器課程設計報告
- java課程設計----簡易計算器
- vb課程設計簡易計算器
- 微機課程設計--簡易計算器
- 簡易計算器學生課程設計
- java課程設計報告---設計一個多功能計算器
評論
0/150
提交評論