版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 青島農(nóng)業(yè)大學</b></p><p><b> 課程設計報告</b></p><p> 題 目: 使用菜單選擇趣味程序 </p><p> 姓 名: 楊麗娜 </p><p&
2、gt; 學 院: 理學與信息科學學院 </p><p> 專 業(yè): 通信工程 </p><p> 班 級: 2班 </p><p> 學 號: 20
3、123239 </p><p> 指導教師: </p><p><b> 年月日</b></p><p><b> 目 錄</b></p><p> 一 設計目的……………………………………
4、……………………….1</p><p> 二 課程設計的內容........................................2</p><p> 三 課程設計的要求與數(shù)據(jù)..................................3</p><p> 四 課程設計應完成的工作.........................
5、.........4</p><p> 五 總體設計(包含幾大功能模塊)...........................5</p><p> 六 詳細設計(各功能模塊的具體實現(xiàn)算法——流程圖)………….6</p><p> 七 調試分析(包含各模塊的測試用例,及測試結果)…………….7</p><p> 八 總結
6、………………………………………………………………...8</p><p> 十 參考資料…………………………………………………………….9</p><p><b> 一 設計目的</b></p><p> 進一步加深、鞏固所學專業(yè)課程(《C語言程序設計》)的基本理論知識,理論聯(lián)系實際,進一步培養(yǎng)自己綜合分析問題和解決問題的能力。掌握
7、運用C語言獨立地編寫、調試應用程序和進行其它相關設計的技能。</p><p> 結合實際深入理解高級語言程序設計的基本概念、原理及方法。運用所學的基礎知識開發(fā)一個小型的程序,能根據(jù)問題的需要構造所需的數(shù)據(jù)結構,設計適合的算法,解決問題。掌握設計任務的具體要求,進行設計、調試軟件的具體方法、步驟和技巧。對一個實際課題的軟件設計有基本了解,拓展知識面,激發(fā)在此領域中繼續(xù)學習和研究的興趣,為學習后續(xù)課程做準備。<
8、;/p><p> 二 課程設計的內容</p><p> 使用菜單選擇趣味程序</p><p> 設計目的:本程序旨在訓練學生的編程能力,使用C語言最基本的知識,訓練結構化程序設計的基本技術。</p><p> 功能:設計分兩步,首先設計一個含有多個菜單項的菜單演示程序,然后再為這些菜單項配上相應的功能。</p><p
9、> 要求:使用數(shù)字1—6來選擇菜單項,其他輸入則不起作用。其實是5道編程題:</p><p> 1)FindNum 使用窮舉法尋找滿足下式中的i 的值(30+i)*6237=(10*i+3)*3564</p><p> 2)FindRoot 求方程的根的程序</p><p> 3)Detective 一輛汽車撞人后逃跑。4個目擊者提供如下線索:&
10、lt;/p><p> 甲:牌照三、四位相同; 乙:牌號為31xxxx;</p><p> 丙:牌照五、六位相同; ?。喝搅皇且粋€整數(shù)的平方</p><p><b> 4)Bear</b></p><p> 本題是一個笑話,話說有一只狗熊到玉米地里掰玉米,一邊掰一邊吃。第一天吃了一半,又拿走一個回去喂小
11、狗熊。第二天又去吃了剩下的一半,走時仍然帶一個回去喂小狗熊。以后每天都吃前一天剩下的一半,拿走一個。到第十天時,地里只剩下一個玉米。求地里一共有多少玉米。</p><p><b> 5)Diamond</b></p><p> 本題要求編制打印以下圖案的程序,注意題目要求在左邊留出一定空格</p><p><b> *</
12、b></p><p><b> ***</b></p><p><b> *****</b></p><p><b> *******</b></p><p><b> *****</b></p><p><b&
13、gt; ***</b></p><p><b> *</b></p><p> 6)GoodBye!</p><p><b> 結束程序運行。</b></p><p> 三 課程設計的要求與數(shù)據(jù)</p><p> 1.用C語言實現(xiàn)系統(tǒng);</p&
14、gt;<p> 2.使用數(shù)字1—6來選擇菜單項,其他輸入則不起作用;</p><p> 四 課程設計應完成的工作</p><p><b> (1)編寫算法;</b></p><p> (2)算法測試,并有具體的測試結果和結果分析;</p><p> (3)撰寫課程設計報告。內容包括:</p
15、><p><b> 封面扉頁</b></p><p><b> 設計任務書</b></p><p><b> 目錄</b></p><p> 總體設計方案(包括流程圖)</p><p> 使用說明及運行實例(包括界面)</p><
16、;p><b> 成員設計內容簡介</b></p><p> 項目源程序代碼(注意注釋的使用)</p><p><b> 指導教師評語</b></p><p> 五 總體設計(包含幾大功能模塊)</p><p> 通過輸入1-6來進行菜單選擇,來選取自己需要的程序結果,從而得到想要的
17、結果。</p><p> 六 詳細設計(各功能模塊的具體實現(xiàn)算法——流程圖)</p><p> 使用菜單選擇程序 菜單是應用程序的界面,控制語句用來改變程序執(zhí)行的順序,是實現(xiàn)結構化程序設計的基礎。設計一個比較實用的菜單,通過菜單選擇不同的功能。 設計分為兩步:首先設計一個含有多個菜單項的菜單演示程序,然后再為這些菜單項配
18、上相應的功能。一、設計一個菜單程序(1)菜單內客程序運行后,給出6個菜單項的內容和輸入提示。 1.FindNum 2.FindRoot 3.Detective 4.Bear 5.Diamond 6.Goodbye! Input 1-6:(2)設計要求
19、使用數(shù)字1-6來選擇菜單項,其他輸人則不起作用。二、增加菜單項的處理功能 以設計的菜單為基礎,增加菜單項的處理功能。菜單項設計要求 這其實是5道編程題,目的是鍛煉使用控制語句的能力。 (1)FindNum
20、60; 利用計算機的計算速度快的特點,把所有可能的數(shù)都試一下,從中找出符合條件的數(shù)。這就是所謂的窮舉法。 某位的數(shù)字只有0-9個數(shù)字,顯然已經(jīng)排除了為0的可能性,將1--9種可能性拿來試驗,即可找到</p><p> int i,a,b,c,d;long m;</p><p> for(i=32;i<=99;i++)
21、 /*窮舉找出后四位號碼*/</p><p><b> {</b></p><p><b> m=i*i;</b></p><p><b> a=m%10;</b></p><p> b=m/10%10;</p><p> c=m
22、/100%10;</p><p><b> d=m/1000;</b></p><p> if(a==b&&c==d)</p><p><b> break;</b></p><p><b> }</b></p><p> pr
23、intf("%ld\n",m+310000);</p><p><b> return 0;</b></p><p><b> }</b></p><p> (4)Bear本題是一個笑話,話說有一只狗熊到玉米地里掰玉米,一邊掰一邊吃。第一天吃了一半,又拿走一個回去喂小狗熊。第二天又去吃了剩下的一
24、半,走時仍然帶一個回去喂小狗熊。以后每天都吃前一天剩下的一半,拿走一個。到第十天時,地里只剩下一個玉米。求地里一共有多少玉米。這里可以使用回溯算法。假設狗熊每次吃掉的為x2,則第10天時的x2=1,第9天地里剩下的玉米xl = (x2 + l) ×2,這也是狗熊在第8天時吃掉的玉米數(shù)量。因此可以使用如下算法描述:</p><p><b> {</b></p>&l
25、t;p> int day,x1,x2;</p><p><b> day=9;</b></p><p><b> x2=1;</b></p><p> while(day>0)</p><p> {x1=(x2+1)*2; /*第1天玉米數(shù)是第2天玉米數(shù)加1后的2倍*/
26、 </p><p><b> x2=x1;</b></p><p><b> day--;</b></p><p><b> }</b></p><p> printf("total=%d\n",x1);</p><p>
27、<b> return 0;</b></p><p><b> }</b></p><p> ?。ǎ担〥iamond本題要求編制打印以下圖案的程序,注意題目還要求在左邊留出一定空格。 *</p><p><b>
28、; ***</b></p><p><b> *****</b></p><p><b> *******</b></p><p><b> *****</b></p><p><b> ***</b></p><
29、p><b> *</b></p><p> (6)Goodbye!這里除了輸出一個簡單的信息之外,還必須結束程序運行。 </p><p> 七 調試分析(包含各模塊的測試用例,及測試結果)</p><p><b> 7.1源程序</b></p><p> #include<
30、stdio.h></p><p> #include<stdlib.h>/*定義雜相函數(shù)及內存分配函數(shù)*/</p><p> #include<ctype.h>/*字符處理*/</p><p> #include<math.h></p><p> int menu_select
31、();</p><p> int FindNum();</p><p> int FindRoot();</p><p> int Detective();</p><p> int Bear();</p><p> int Diamond();</p><p> int GoodB
32、ye();</p><p> void main() /*主函數(shù)*/</p><p><b> {</b></p><p> for(;;)/*一直循環(huán)直到用break等終止,和while(1)有著同樣的作用*/</p><p><b> {</b></p>
33、<p> switch(menu_select())</p><p><b> {case 1:</b></p><p> FindNum();</p><p> system("pause");</p><p><b> break;</b></p&g
34、t;<p><b> case 2:</b></p><p> FindRoot();</p><p> system("pause");</p><p><b> break;</b></p><p><b> case 3:</b>
35、;</p><p> Detective();</p><p> system("pause");</p><p><b> break;</b></p><p><b> case 4:</b></p><p><b> Bear()
36、;</b></p><p> system("pause");</p><p><b> break;</b></p><p><b> case 5:</b></p><p> Diamond();</p><p> system(
37、"pause");</p><p><b> break;</b></p><p><b> case 6:</b></p><p> printf("GoodBye!\n");</p><p> system("pause");&
38、lt;/p><p><b> exit(6);</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> int menu_select()
39、 /*主函數(shù)菜單*/</p><p><b> {</b></p><p><b> char c;</b></p><p><b> do{</b></p><p> system("cls");</p><p>
40、 printf("1.FindNum\n" );</p><p> printf("2.FindRoot\n");</p><p> printf("3.Detective\n");</p><p> printf("4.Bear\n");</p><p>
41、 printf("5.Diamond\n");</p><p> printf("6.GoodBye\n");</p><p> c=getchar();</p><p> }while(c<'1'||c>'6');</p><p> return(
42、c-'0');</p><p><b> }</b></p><p> int FindNum() /*找數(shù)字*/</p><p><b> {</b></p><p><b> int i; </b></p><
43、;p> for(i=0;i<10;i++) </p><p><b> { </b></p><p> if((30+i)*6237==(i*10+3)*3564) </p><p><b> { </b></p><p> printf("The answe
44、r is %d\n",i); </p><p> printf("3%d*6237=%d3*3564\n",i,i); </p><p><b> break; </b></p><p><b> } </b></p><p><b> }
45、</b></p><p><b> return 0;</b></p><p><b> } </b></p><p> int FindRoot() /*找方程的根*/</p><p><b> {</b></p><p>
46、 double a,b,c,disc,x1,x2,realpart,imagpart;/*定義double型變量*/</p><p> scanf("%lf%lf%lf",&a,&b,&c);</p><p> printf("The equation");</p><p> if(fabs
47、(a)<=1e-6)</p><p> printf("is not a equation\n");</p><p><b> else</b></p><p><b> {</b></p><p> disc=b*b-4*a*c;</p><p
48、> if(fabs(disc)<=1e-6)</p><p> printf("has two eqaul roots:%8.4f\n",-b/(2*a));</p><p><b> else</b></p><p> if(disc>1e-6)</p><p><b
49、> {</b></p><p> x1=(-b+sqrt(-disc))/(2*a);</p><p> x2=(-b-sqrt(disc))/(2*a);</p><p> printf("has distinct real roots:%8.4fand%8.4f\n",x1,x2);</p><p
50、><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> realpart=-b/(2*a); /*realpart是復根的實部*/</p><p> imag
51、part=sqrt(disc)/(2*a); /*realpart是復根的虛部*/</p><p> printf("has complax roots\n");</p><p> printf("%8.4f+%8.4fi\n",realpart,imagpart); /*輸出一個復數(shù)*/</p><p&g
52、t; printf("%8.4f+%8.4fi\n",realpart,imagpart); /*輸出另一個復數(shù)*/</p><p><b> }</b></p><p><b> }</b></p><p><b> return 0;</b></p>&l
53、t;p><b> }</b></p><p> int Detective() /*找牌照*/</p><p><b> {</b></p><p> int i,a,b,c,d;long m;</p><p> for(i=32;i<=99;i++)
54、 /*窮舉找出后四位號碼*/</p><p><b> {</b></p><p><b> m=i*i;</b></p><p><b> a=m%10;</b></p><p> b=m/10%10;</p><p> c=m/100%1
55、0;</p><p><b> d=m/1000;</b></p><p> if(a==b&&c==d)</p><p><b> break;</b></p><p><b> }</b></p><p> printf(&
56、quot;%ld\n",m+310000);</p><p><b> return 0;</b></p><p><b> }</b></p><p> int Bear() /*熊吃玉米的問題*/</p><p><b> {</b><
57、;/p><p> int day,x1,x2;</p><p><b> day=9;</b></p><p><b> x2=1;</b></p><p> while(day>0)</p><p> {x1=(x2+1)*2; /*第1天玉米數(shù)是第2天玉米
58、數(shù)加1后的2倍*/ </p><p><b> x2=x1;</b></p><p><b> day--;</b></p><p><b> }</b></p><p> printf("total=%d\n",x1);</p>
59、<p><b> return 0;</b></p><p><b> }</b></p><p> int Diamond() /*鉆石*/</p><p><b> {</b></p><p> int i,j,k;</p&g
60、t;<p> for(i=0;i<=3;i++)/*控制循環(huán)次數(shù),i由1變到3,共循環(huán)3次*/</p><p><b> {</b></p><p> for(j=0;j<=2-i;j++)</p><p> printf(" ");</p><p> for
61、(k=0;k<=2*i;k++)</p><p> printf("*");</p><p> printf("\n");</p><p><b> }</b></p><p> for(i=0;i<=2;i++)</p><p><
62、;b> {</b></p><p> for(j=0;j<=i;j++)</p><p> printf(" ");</p><p> for(k=0;k<4-2*i;k++)</p><p> printf("*");</p><p>
63、 printf("\n");</p><p><b> }</b></p><p><b> return 0;</b></p><p><b> }</b></p><p> int GoodBye() /*再見*/</p&
64、gt;<p><b> {</b></p><p> char a='G',b='o',c='o',d='d',e='B',f='y',g='e’,h=’!’; /*定義8個字符變量并初始化*/</p><p> putchar(a);
65、 /*向顯示器輸出字母G*/</p><p> putchar(b); /*向顯示器輸出字母o*/</p><p> putchar(c); /*向顯示器輸出字母o*/</p><p> putchar(d);
66、 /*向顯示器輸出字母d*/</p><p> putchar(e); /*向顯示器輸出字母B*/</p><p> putchar(f); /*向顯示器輸出字母y*/</p><p> putchar(g);
67、 /*向顯示器輸出字母e*/</p><p> putchar(h); /*向顯示器輸出符號!*/</p><p> putchar('\n'); /*向顯示器輸出一個換行值*/</p><p><b>
68、 return 0;</b></p><p><b> }</b></p><p> 7.2主要程序運行結果</p><p> 1)當輸入的菜單項為1時,輸出結果如圖a所示</p><p><b> 圖a</b></p><p> 2)當輸入的菜單項為2
69、時有以下3種情況</p><p> (1)輸入a,b,c的值1,2,1,得到兩個相等的實根,輸出結果如圖b①所示</p><p><b> 圖b①</b></p><p> ?。?)輸入a,b,c的值1,2,2,得到兩個共軛的復根,輸出結果如圖b②所示</p><p><b> 圖b②</b>
70、</p><p> ?。?)輸入a,b,c的值2,6,1,得到兩個不等的實根,輸出結果如圖b③所示</p><p><b> 圖b②</b></p><p> 3)當輸入的菜單項為3時,輸出結果如圖c所示</p><p><b> 圖b③</b></p><p> 4
71、)當輸入的菜單項為4時,輸出結果如圖d所示</p><p><b> 圖d</b></p><p> 5)當輸入的菜單項為5時,輸出結果如圖e所示</p><p><b> 圖e</b></p><p> 6)當輸入的菜單項為6時,輸出結果如圖f所示</p><p>
72、 圖f </p><p><b> 八 總結</b></p><p> 由于本課題中的許多知識點都沒有學過都要靠自己到課外的資料中去查找。在用的時候難免出現(xiàn)這樣那樣的錯誤。如開始設計出來的菜單不是預想的那樣,而是總個窗中出現(xiàn)混亂。解決的這個問題的辦法是調整。一個系統(tǒng)的菜單和提示信息
73、非常重要。如果沒有這些用戶根本不知道怎么用你設計的這個系統(tǒng)。在設計的調試過程中也無法順利的完成調試工作。有了一個清晰簡單的菜單和一些提示信息這后,調試過程完成的非常順利。</p><p> 回顧起此次課程設計,我感慨頗多,的確,從拿到題目到完成整個編程,從理論到實踐,在整整兩個禮拜的日子里,可以學到很多很多的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我
74、們懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,這畢竟第一次做的,難免會遇到過各種各樣的問題,同時在設計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,比如說結構體……通過這次課程設計之后,一定把以前所學過的知識熟悉了,本次課程設
75、計結束了,我們通過這次實踐學到了許多知識。學到了設計一個簡單的系統(tǒng)。要注意哪些方面。也使我們知道自己哪些方面做得還不夠。這不僅是程序設計,更是鍛煉我們處理問題的能力,同時也使我了解編寫程序是件細心活,稍不留神就會出錯,這就必須要求我們對待事情要認真!在編寫程序的過程中,錯誤不斷出現(xiàn),不同的類型(如少寫了一個符號,寫錯了字母,用錯了函數(shù)</p><p> 但我們總結出了一點點的經(jīng)驗如下:</p>&
76、lt;p> 1、要對系統(tǒng)的功能和要求做出詳細的分析,并合理分解任務。</p><p> 2、把分解出來的子任務,做給一個相對獨立的模塊。</p><p> 3、在設計一個模塊之前,要簡單構想一下總界面的顯視情況。</p><p> 4、針對構想出來的界面進行程序的編寫。</p><p><b> 九 參考資料<
77、;/b></p><p> [1]譚浩強. C程序設計(第三版) . 北京:清華大學出版社, 2005 </p><p> [2]譚浩強. C程序設計題解與上機指導(第三版) . 北京:清華大學出版社, 2005</p><p> [3]李春葆,張植民,肖忠付.C語言設計題典[M].北京:清華大學出版社,2002</p><p&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c++課程設計--設計菜單選擇程序
- 趣味矩陣c語言課程設計
- c課程設計報告-- c語言程序設計
- c語言程序設計課程設計報告
- 《c語言程序設計》課程設計報告
- c語言程序課程設計
- c語言課程設計--c語言投票程序
- 《c++語言程序設計》課程設計報告
- c語言課程設計---c語言小車動畫程序
- c語言課程設計源程序
- c語言課程設計報告-數(shù)獨解謎程序
- c語言課程設計報告-模擬時鐘轉動程序
- c語言程序設計課程設計
- c語言課程設計報告
- c語言課程設計報告
- c語言課程設計報告
- c語言課程設計報告
- c語言程序課程設計報告-圖書銷售管理系統(tǒng)
- c語言程序設計課程設計報告—宿舍管理系統(tǒng)
- 《c語言程序設計》課程設計報告-景點查詢系統(tǒng)
評論
0/150
提交評論