2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩10頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  C語言課程設(shè)計(jì)報(bào)告</b></p><p>  題 目 一個(gè)簡易計(jì)算器的設(shè)計(jì)與實(shí)現(xiàn) </p><p>  班 級 </p><p>  學(xué) 號 </p><p>  姓 名

2、 </p><p>  指導(dǎo)教師 </p><p>  成 績 </p><p>  老師評語: </p>

3、<p>  2010 年 6 月 25 </p><p><b>  目錄</b></p><p>  程序設(shè)計(jì)目的:………………………………………………1</p><p>  程序設(shè)計(jì)內(nèi)容:………………………………………………1</p><p>  課程設(shè)計(jì)所補(bǔ)充的內(nèi)容:補(bǔ)充的函數(shù)或算法…………3,4<

4、;/p><p>  系統(tǒng)總體設(shè)計(jì)………………………………………………….4</p><p>  系統(tǒng)詳細(xì)設(shè)計(jì)………………………………………5,6,7,8</p><p>  運(yùn)行結(jié)果………………………………………………8,9,10</p><p>  系統(tǒng)調(diào)試…………………………………………8,9,10,11</p><p&g

5、t;  課程設(shè)計(jì)體會總結(jié)………………………………8,9,10,11</p><p><b>  1 課程設(shè)計(jì)目的</b></p><p>  (1).課程設(shè)計(jì)是一項(xiàng)綜合性實(shí)踐環(huán)節(jié),是對平時(shí)實(shí)驗(yàn)的一個(gè)補(bǔ)充,課程設(shè)計(jì)內(nèi)容包括課程的主要理論知識,但由于C語言對初學(xué)者較難掌握,因而對一個(gè)完整的C語言程序不適合平時(shí)實(shí)驗(yàn)。通過課程設(shè)計(jì)可以達(dá)到綜合設(shè)計(jì)C語言程序的目的。</p

6、><p> ?。?)通過本課程設(shè)計(jì),可以培養(yǎng)獨(dú)立思考,綜合運(yùn)用所學(xué)有關(guān)相應(yīng)知識的能力,能更好地使用C語言的知識,更好地了解C語言的好處和其可用性!掌握基本的程序設(shè)計(jì)過程和技巧,掌握基本的分析問題和 利用計(jì)算機(jī)求解問題的能力,具備初步的高級程序設(shè)計(jì)能力。為后續(xù)各門計(jì)算機(jī)課程的學(xué)習(xí)和畢業(yè)設(shè)計(jì)打下堅(jiān)實(shí)基礎(chǔ)!</p><p>  (3)通過本程序訓(xùn)練程序設(shè)計(jì)的基本技能,掌握字符串的表示方法和字符串函數(shù)

7、的功能、自學(xué)掌握四則運(yùn)算的算法及WIN-TC的圖形操作的基本知識、鍵盤上特殊鍵的獲取及圖形方式下光標(biāo)的顯示。</p><p><b>  2 課程設(shè)計(jì)內(nèi)容</b></p><p>  目的:本課程的課程設(shè)計(jì)要求學(xué)生模擬實(shí)現(xiàn)一個(gè)簡單計(jì)算器,要求(1)能夠?qū)崿F(xiàn)四則運(yùn)算,并能支持優(yōu)先級運(yùn)算。(2)三角與反三角運(yùn)算:如sinx,cosx等。(3)指數(shù)對數(shù)運(yùn)算:如log(x),

8、lnx,e的x次方等。(4)其他運(yùn)算:如X!,x的累加等。(4)不允許調(diào)用庫函數(shù),使用自行開發(fā)的程序?qū)崿F(xiàn)常用函數(shù)運(yùn)算。(5)進(jìn)一步考慮計(jì)算器外觀設(shè)計(jì),用可視化界面給出計(jì)算器外觀、功能按鍵及輸入界面。</p><p>  使用說明:執(zhí)行加法運(yùn)算,'—'表示執(zhí)行減法運(yùn)算,表示執(zhí)行乘法運(yùn)算,'/'表示除法運(yùn)算.‘Q’表示退出計(jì)算器‘C’表示清零,’=’表示得出結(jié)果'^'表

9、示執(zhí)行x的y次方,'e'表示執(zhí)行e的x次方操作,'&'表示執(zhí)行累加操作.,你可以可以用鍵盤上的上下左右鍵對光標(biāo)進(jìn)行移動,當(dāng)光標(biāo)移動到計(jì)算器按鍵上時(shí),按ENTER即可執(zhí)行該鍵的操作!最后按“=”則可得出結(jié)果。</p><p>  3 課題設(shè)計(jì)的補(bǔ)充知識</p><p>  本程序通過int specialkey(void)和#include<co

10、nio.h>來實(shí)現(xiàn)對屏幕的操作,通過調(diào)用int arrow()函數(shù),int specialkey(void)和#include<conio.h>來實(shí)現(xiàn)對光標(biāo)的操作。計(jì)算機(jī)圖形采用Turbo C 2.0繪圖程序制作。 因此涉及C的圖形程序設(shè)計(jì)知識。此外,由于不允許調(diào)用庫函數(shù),則要自行開發(fā)程序?qū)崿F(xiàn)sinx,cosx,e的x次方函數(shù)運(yùn)算,則可以根據(jù)冪級數(shù)的展開式來設(shè)計(jì)實(shí)現(xiàn)其運(yùn)算的算法,而x的階乘和x的累加則可用for語句來

11、實(shí)現(xiàn)。</p><p>  最后,不得不說說四則運(yùn)算的算法,有兩種方法可以實(shí)現(xiàn):(1)利用堆棧實(shí)現(xiàn)四則運(yùn)算(2)還可以用遞歸整數(shù)的四則運(yùn)算。</p><p><b>  sinx函數(shù)</b></p><p>  #include<stdio.h></p><p>  #include<math.h>

12、;</p><p><b>  main()</b></p><p><b>  {</b></p><p><b>  int n=1;</b></p><p><b>  float x;</b></p><p>  doubl

13、e sum ,term;</p><p>  printf("input x:");</p><p>  scanf("%f",&x);</p><p><b>  sum=x;</b></p><p><b>  term=x;</b></p&

14、gt;<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>  n=n+2;</b><

15、/p><p><b>  }</b></p><p>  while (fabs(term)>=1e-5);</p><p>  printf("sin(x)=%f ",sum);</p><p><b>  getch();</b></p><p> 

16、 } </p><p><b>  cosx函數(shù)</b></p><p>  #include<stdio.h></p><p>  #include<math.h> </p><p><b>  main()</b></p>&

17、lt;p><b>  {</b></p><p><b>  int n=0;</b></p><p><b>  float x;</b></p><p>  double sum ,term;</p><p>  printf("input x:"

18、);</p><p>  scanf("%f",&x);</p><p><b>  sum=1;</b></p><p><b>  term=x;</b></p><p><b>  do</b></p><p><

19、b>  {</b></p><p>  term=-term*x*x/((n+1)*(n+2));</p><p>  sum=sum+term;</p><p><b>  n=n+2;</b></p><p><b>  }</b></p><p>  

20、while (fabs(term)>=1e-5);</p><p>  printf("cos(x)=%f ",sum);</p><p><b>  getch();</b></p><p><b>  }</b></p><p>  使用使只需要將其轉(zhuǎn)換為函數(shù),在com

21、puter函數(shù)中對其進(jìn)行調(diào)用即可</p><p><b>  4課程總體設(shè)計(jì)</b></p><p>  main()函數(shù)首先初始化圖形系統(tǒng),然后調(diào)用計(jì)算器computer()進(jìn)行計(jì)算器的計(jì)算功能,當(dāng)計(jì)算器程序返回時(shí),關(guān)閉圖形系統(tǒng),結(jié)束程序。</p><p><b>  其系統(tǒng)模塊圖如下:</b></p>&

22、lt;p>  5.1系統(tǒng)詳細(xì)設(shè)計(jì) </p><p>  5.1.1主界面:畫一個(gè)帶標(biāo)題(calculator)的窗口,窗口最上面的光條顯示數(shù)字和運(yùn)算結(jié)果,光條下30個(gè)矩形塊模擬命令按鈕,按鈕上面顯示數(shù)字和運(yùn)算符號,并且在按鈕上有圖形光標(biāo),通過移動光標(biāo)鍵到所需位置,按回車鍵即可選擇相應(yīng)的符號。</p><p>  5.1.2main()主函數(shù):首先初始化圖形系統(tǒng)(Initializ

23、e函數(shù)),然后調(diào)用計(jì)算器computer()函數(shù)進(jìn)行計(jì)算器的計(jì)算功能,當(dāng)計(jì)算器程序返回時(shí),關(guān)閉圖形系統(tǒng)(Closegraph),結(jié)束程序。</p><p>  5.1.3initialize()初始化函數(shù):調(diào)用initgraph(&GraphDriver,&&GraphMode,”初始化系統(tǒng),將其裝入相應(yīng)的圖形驅(qū)動器。圖形函數(shù)所用的屏顯模式由GraphMode所指向的整數(shù)值確定。用DETE

24、CT自動檢測目前屏顯硬件的類型,并選用最大分辨率的屏顯模式。為了方便設(shè)計(jì)計(jì)算器界面,在這個(gè)函數(shù)中你,獲取圖形屏幕的最大尺寸及縱橫比。</p><p>  5.1.4mwindow()主窗口函數(shù):設(shè)置視口大小為當(dāng)前窗口的一半,然后調(diào)用畫邊框函數(shù)drawboder()畫出邊框。</p><p>  5.1.5drawboder()畫邊框函數(shù):通過函數(shù)getviewsettings(&v

25、p)把有關(guān)當(dāng)前視口的信息裝入由vp所指向的結(jié)構(gòu)中。vp是struct viewporttype類型,其結(jié)構(gòu)定義如下:</p><p>  struct viewporttype</p><p>  {int left,top,right,bottom;</p><p><b>  int clip;</b></p><p&g

26、t;<b>  }</b></p><p>  域left,top,right,bottom中分為左上角和右下角的坐標(biāo)。當(dāng)clip為0時(shí),不對超出視口邊界裁剪,否則裁剪以防止超出邊界。</p><p>  因窗口是屏幕的活動部分,在這個(gè)活動窗口將顯示輸出,為保持字符屏幕和圖形系統(tǒng)的獨(dú)立。字符屏幕的函數(shù)提供了窗口(window),而圖形系統(tǒng)提供了視口(ViewPort)

27、,當(dāng)屏幕用字符模式時(shí),左上角坐標(biāo)為(1,1),而在圖形狀態(tài)下,左上角坐標(biāo)為(0,0)。根據(jù)視口坐標(biāo),利用畫矩形函數(shù)rectangle()畫出邊框線。</p><p>  5.1.6computer()計(jì)算器函數(shù):這是主要函數(shù),實(shí)現(xiàn)了計(jì)算器的計(jì)算功能。先調(diào)用mwindow()函數(shù)顯示窗口,再在窗口中顯示計(jì)算器,最后接收按鍵進(jìn)行運(yùn)算。根據(jù)窗口大小設(shè)置按鈕大小和位置,設(shè)置了兩個(gè)單位變量width和height,圖形顯示

28、以這兩個(gè)變量為計(jì)算單位。圖中的符號按鈕利用setfillstyle()設(shè)置顏色來實(shí)體填充,再用把bar()函數(shù)畫矩形條,setcolor()函數(shù)設(shè)置邊框線顏色,rectangle()函數(shù)畫矩形邊框線,利用outtextxy()函數(shù)將預(yù)先存儲在str1中的字符串中的字符輸出,因outtextxy()輸出的時(shí)字符串,則應(yīng)利用sprintf()函數(shù)將要輸出的字符寫入字符數(shù)組str2中,轉(zhuǎn)變?yōu)樽址?,然后輸出。界面設(shè)置好后,先在第一個(gè)按鈕位置顯

29、示圖標(biāo),此時(shí)可移動和按下光標(biāo),變量m和n記錄光標(biāo)的位置,光標(biāo)移動某個(gè)位置按回車后,則程序判斷所按的字符,進(jìn)行相應(yīng)處理:(1)若為數(shù)字或小數(shù)點(diǎn),則判斷是否為負(fù)數(shù),若是則將負(fù)號連接到字符串中,否則只連接所選的數(shù)字或小數(shù)點(diǎn),并顯示數(shù)據(jù)。(2)當(dāng)所選為“-“先判斷有無操作數(shù),沒有,則為負(fù)數(shù),做負(fù)號標(biāo)記,否則是做減法,做減</p><p>  5.1.7arrow()設(shè)計(jì)圖形鼠標(biāo)函數(shù):用fillpoly(8,raw)畫一個(gè)

30、由raw所指向的數(shù)組中定義的8個(gè)x、y坐標(biāo)點(diǎn)所圍成的封閉圖形,用當(dāng)前填充模式和顏色對該形狀進(jìn)行填充,利用imagesize()函數(shù)測試圖像大小,分配內(nèi)存區(qū)域,將圖像保存,再通過圖像的讀取函數(shù)getimage()和putimage()以及XOR-PUT操作實(shí)現(xiàn)光標(biāo)的顯示和隱藏。</p><p>  5.1.8speciallykey()讀取特殊鍵函數(shù):利用bioskey(1)讀取用戶所按鍵的信息,int biosk

31、ey(int cmb)函數(shù)原型在bios.h中,功能是完成直接按鍵操作。如果cmb是0 ,bioskey()返回下一個(gè)在鍵盤鍵入的值,即在等待到下一個(gè)鍵。如果cmb是1,bioskey()查詢是否按下一個(gè)鍵,當(dāng)按下一個(gè)鍵時(shí)返回非0值,否則返回0值,所以用while(bioskey(1)==0)語句等待按鍵</p><p>  5.2.模塊接口設(shè)計(jì)</p><p>  int main()&

32、lt;/p><p>  {initialize();</p><p>  Computer();</p><p>  Closegraph();</p><p>  Return(0);</p><p><b>  }</b></p><p>  先設(shè)置系統(tǒng)進(jìn)入圖形模式(調(diào)用i

33、nitialize()函數(shù)),即為模塊入口,然后調(diào)用computer()函數(shù)執(zhí)行計(jì)算器的計(jì)算功能,最后調(diào)用closegraph()函數(shù)來關(guān)閉圖形模式返回文本模式(模塊出口),再結(jié)束程序。</p><p><b>  5.3流程圖</b></p><p>  Computer()函數(shù)流程圖</p><p><b>  總系統(tǒng)設(shè)計(jì)流程圖&

34、lt;/b></p><p><b>  6運(yùn)行結(jié)果</b></p><p><b>  運(yùn)算器主界面</b></p><p><b>  4的階乘運(yùn)算結(jié)果</b></p><p><b>  cos0運(yùn)算結(jié)果</b></p><

35、p><b>  e的平方運(yùn)算結(jié)果</b></p><p><b>  Ln10的運(yùn)算結(jié)果</b></p><p><b>  7系統(tǒng)調(diào)試</b></p><p>  該計(jì)算器系統(tǒng)不能實(shí)現(xiàn)四則運(yùn)算功能,有望改進(jìn)!</p><p><b>  8課程設(shè)計(jì)體會總結(jié)&l

36、t;/b></p><p>  經(jīng)過一周的C語言課程設(shè)計(jì),使我加深了C語言程序的使用,并能達(dá)到基本上的運(yùn)用。同時(shí)也增強(qiáng)了動手和實(shí)踐的能力。雖然在遇到了不少困難,但是正因?yàn)檫@些困難,我也學(xué)到了更多的東西。</p><p>  這次“簡單計(jì)算器制作”的課程設(shè)計(jì)不僅讓我對C語言的的熟悉城的上升到了一個(gè)新的高度,是我在編程路上一個(gè)質(zhì)的飛躍。當(dāng)我看到一個(gè)具有圖形界面的計(jì)算器的模型成品出現(xiàn)在我的

37、面前時(shí),心中有著無限的感慨,原來編程也不是非常遙不可及的,原來在編程的趣味中能讓我學(xué)到更多有意思的知識!</p><p>  9實(shí)驗(yàn)指導(dǎo)書與參考書</p><p>  1.譚浩強(qiáng),《C程序設(shè)計(jì)(第三版)》,清華大學(xué)出版社,2005年。</p><p>  2.郭翠英,《C語言課程設(shè)計(jì)案例精編》,中國水利水電出版社,2004年。</p><p>

溫馨提示

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

評論

0/150

提交評論