c語言課程設(shè)計報告.doc_第1頁
c語言課程設(shè)計報告.doc_第2頁
c語言課程設(shè)計報告.doc_第3頁
c語言課程設(shè)計報告.doc_第4頁
c語言課程設(shè)計報告.doc_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言程序設(shè)計課程設(shè)計報告課程設(shè)計題目: 專 業(yè): 姓 名: 學(xué) 號:指導(dǎo)老師:成 績: 年 月目 錄1實踐1:猜數(shù)游戲21.1 題目21.2 設(shè)計思路21.3 程序框圖21.4 程序(附錄)21.5 調(diào)試過程22實踐2:數(shù)組32.1 題目32.2 設(shè)計思路32.3 程序框圖32.4 程序(附錄)32.5 調(diào)試過程33實踐3:函數(shù)43.1 題目43.2 設(shè)計思路43.3 程序框圖43.4 程序(附錄)43.5 調(diào)試過程44實踐4:結(jié)構(gòu)體54.1 題目54.2 設(shè)計思路54.3 程序框圖54.4 程序(附錄)54.5 調(diào)試過程55課程總結(jié)55.1 任務(wù)完成情況65.2 能力提高情況65.3 存在問題及努力方向65.4 意見與建議66附錄66.1 實踐1程序清單66.2 實踐2程序清單66.3 實踐3程序清單66.4 實踐4程序清單61實踐1:猜數(shù)游戲1.1 題目1題目:猜數(shù)游戲程序1 編程先由計算機(jī)“想”一個1100之間的數(shù)請人猜,如果人猜對了,則計算機(jī)給出提示“Right!”,否則提示“Wrong!”,并告訴人所猜的數(shù)是大還是小,然后結(jié)束游戲。要求每次運行程序時機(jī)器所“想”的數(shù)不能都一樣。程序2 編程先由計算機(jī)“想”一個1100之間的數(shù)請人猜,如果人猜對了,則結(jié)束游戲,并在屏幕上輸出人猜了多少次才猜對此數(shù),以此來反映猜數(shù)者“猜”的水平;否則計算機(jī)給出提示,告訴人所猜的數(shù)是太大還是太小,直到人猜對為止。程序3 編程先由計算機(jī)“想”一個1100之間的數(shù)請人猜,如果人猜對了,則結(jié)束游戲,并在屏幕上輸出人猜了多少次才猜對此數(shù),以此來反映猜數(shù)者“猜”的水平;否則計算機(jī)給出提示,告訴人所猜的數(shù)是太大還是太小,最多可以猜10次,如果猜了10次仍未猜中的話,結(jié)束游戲。程序4 編程先由計算機(jī)“想”一個1100之間的數(shù)請人猜,如果人猜對了,在屏幕上輸出人猜了多少次才猜對此數(shù),以此來反映猜數(shù)者“猜”的水平,則結(jié)束游戲;否則計算機(jī)給出提示,告訴人所猜的數(shù)是太大還是太小,最多可以猜10次,如果猜了10次仍未猜中的話,則停止本次猜數(shù),然后繼續(xù)猜下一個數(shù)。每次運行程序可以反復(fù)猜多個數(shù),直到操作者想停止時才結(jié)束。2.目標(biāo):此次試驗重點在于循環(huán)變量的用法和隨機(jī)函數(shù)的使用,能夠熟練的調(diào)用函數(shù)循環(huán)函數(shù),能接受整型變量(int)和輸入(輸出)函數(shù)(printf),限制小于0和大于100的整數(shù)輸入,格式要求邏輯合理,規(guī)范美觀。1.2設(shè)計思路 1.使用Microsoft Visual C+6.0 來編寫程序。2.使用用srand(time(NULL)調(diào)用隨機(jī)函數(shù),用if-else語句,while語句和for語句調(diào)用循環(huán)函數(shù),實現(xiàn)0到10次循環(huán)。輸入人猜想的一個1100的整數(shù),并存入變量n中 開 始使用隨機(jī)函數(shù)生成一個1100的整數(shù),并存入變量x中x=n ?WrongIf xn猜的數(shù)大了猜的數(shù)小了輸出猜中時所用的次數(shù)i人猜了的次數(shù) 結(jié)束 i11 ? i=i+1Right1.3 程序框圖 1.4 程序(附錄) 程序代碼放在報告最后以附錄形式提交1.5 調(diào)試過程調(diào)試時,先隨意輸入了一個數(shù)如輸入23,而隨機(jī)數(shù)顯示為60,故結(jié)果猜錯,則會顯示數(shù)小了,重來一次,已猜過一次;經(jīng)過重復(fù)調(diào)試,程序符合要求。而調(diào)試時也出了一點小問題,函數(shù)的總體變量和局部變量定義出錯,經(jīng)過細(xì)心查找書本,查看程序,最總得以解決。2實踐2:數(shù)組2.1 題目1題目:數(shù)組編程 1.學(xué)生成績統(tǒng)計(一維數(shù)組)從鍵盤輸入一個班(全班最多不超過30人)學(xué)生某門課的成績,當(dāng)輸入成績?yōu)樨?fù)值時,輸入結(jié)束,分別實現(xiàn)下列功能:(1)統(tǒng)計不及格人數(shù)并打印不及格學(xué)生名單;(2)統(tǒng)計成績在全班平均分及平均分之上的學(xué)生人數(shù),并打印這些學(xué)生的名單;(3)以直方圖方式統(tǒng)計各分?jǐn)?shù)段的學(xué)生人數(shù)及所占的百分比。形式如下:分?jǐn)?shù)段 學(xué)生人數(shù) 圖形=90 4() *2. 成績排名次(二維數(shù)組)某班期末考試科目為數(shù)學(xué)(MT)、英語(EN)和物理(PH),有最多不超過30人參加考試??荚嚭笠螅海?)計算每個學(xué)生的總分和平均分;(2)按總分成績由高到低排出成績的名次;(3)打印出名次表,表格內(nèi)包括學(xué)生編號、各科分?jǐn)?shù)、總分和平均分;(4)任意輸入一個學(xué)號,能夠查找出該學(xué)生在班級中的排名及其考試分?jǐn)?shù)2目標(biāo):1.此次試驗使用一維數(shù)組,二維數(shù)組和結(jié)構(gòu)體來統(tǒng)計學(xué)生統(tǒng)計不及格人數(shù),不及格學(xué)生名單,平均分及平均分之上的學(xué)生人數(shù)和名次表,它限制小于0和大于100的整數(shù)輸入,格式要求用直方圖的形式。 2.2 設(shè)計思路1解題思路:使用二維數(shù)組score305來存放姓名,學(xué)號等,再用結(jié)構(gòu)體函數(shù)記錄輸入成績的學(xué)生變量,計算總分、平均分,調(diào)用函數(shù)比較學(xué)生成績,得出排名,再根據(jù)數(shù)組定義對應(yīng)存放各變量的位置,最后得到名次表和直方圖。2使用Microsoft Visual C+6.0 編程,調(diào)用一維、二維數(shù)組和結(jié)構(gòu)體,及判斷語句(if-else)實現(xiàn)循環(huán),從而調(diào)用函數(shù)實現(xiàn)目的。 開始輸入學(xué)生分?jǐn)?shù)nn=1;n=sum;n+ ?判斷輸出?輸出分?jǐn)?shù)段、學(xué)生人數(shù)、直方圖 結(jié)束錯誤處理定義(int)變量輸入學(xué)生人數(shù)sumsum0 ?2.3 程序框圖 1 NO Yes WrongYes 開始定義(int)變量輸入學(xué)生學(xué)號、成績輸出直方圖 結(jié)束2計算學(xué)生、班級平均分,總分;比較成績并得出排名開始定義變量輸出結(jié)果錯誤處理判斷定義結(jié)束2.4 程序(附錄)2.5 調(diào)試過程1. 程序一調(diào)試時,隨意輸入學(xué)生人數(shù),如5人,結(jié)果如下,經(jīng)過反復(fù)調(diào)試,確認(rèn)程序無誤。調(diào)試也出現(xiàn)了一點下問題-調(diào)試窗口不美觀,經(jīng)過多次調(diào)整,才解決問題。2.程序二調(diào)試時, 隨意輸入30名學(xué)生學(xué)號,姓名,分?jǐn)?shù),結(jié)果如下,經(jīng)過多次反復(fù)調(diào)試,確認(rèn)程序無誤,調(diào)試時由于程序較長,出現(xiàn)一些細(xì)節(jié)錯誤 ,經(jīng)過反復(fù)檢查,才解決。3實踐3:函數(shù)3.1 題目函數(shù)編程 1題目:1.將實踐二(1)的程序利用函數(shù)的思想進(jìn)行修改。要求函數(shù)參數(shù)中包含一維數(shù)組。2擲骰子游戲編寫程序模擬擲骰子游戲。已知擲骰子游戲的游戲規(guī)則為:每個骰子有6面,這些面包含1、2、3、4、5、6個點,投兩枚骰子之后,計算點數(shù)之和。如果第一次投的點數(shù)和為7或11,則游戲者獲勝;如果第一次投的點數(shù)和為2、3或12,則游戲者輸;如果第一次投的點數(shù)和為4、5、6、8、9或10,則將這個和作為游戲者獲勝需要擲出的點數(shù),繼續(xù)投骰子,直到賺到該點數(shù)時算是游戲者獲勝。如果投擲7次仍未賺到該點數(shù),則游戲者輸?!舅伎碱}】 將游戲規(guī)則改為:計算機(jī)想一個數(shù)作為一個骰子擲出的點數(shù)(在用戶輸入數(shù)據(jù)之前不顯示該點數(shù)),用戶從鍵盤輸入一個數(shù)作為另一個骰子擲出的點數(shù),再計算兩點數(shù)之和。其余規(guī)則相同,然后請讀者重新編寫該程序。2目標(biāo):此次試驗使用隨機(jī)函數(shù)生成隨機(jī)數(shù)(1-6)代表擲出色子的點數(shù),用while語句和if-else語句來實現(xiàn)循環(huán)使之符合色子擲出不同點數(shù)的不同結(jié)果。支持#include 、#include #include 和#include 的輸入,輸出,它限制色子的點數(shù)(1-6),輸出格式要求邏輯合理,規(guī)范美觀。3.2 設(shè)計思路1此次試驗使用隨機(jī)函數(shù)生成隨機(jī)數(shù)(1-6)代表擲出色子的點數(shù),使用int定義整型變量,用if-else語句來控制色子不同點數(shù)的情況(判斷輸出),最后輸出結(jié)果。2.使用Microsoft VisualC+6.0編程;用srand(unsigned)time(NULL)調(diào)用隨機(jī)函數(shù),有if-else語句判斷輸出。 開始 主函數(shù)用隨機(jī)函數(shù)生成隨機(jī)數(shù)i定義(int)變量 結(jié)束判斷輸出?錯誤處理輸出結(jié)果3.3 程序框圖3.4 程序(附錄)3.5 調(diào)試過程程序調(diào)試結(jié)果如下,經(jīng)過多次反復(fù)調(diào)試,確認(rèn)程序無誤。調(diào)試時也并非一帆風(fēng)順,出現(xiàn)了一些錯誤-隨機(jī)函數(shù)使用出錯,導(dǎo)致無法生成隨機(jī)數(shù),經(jīng)過查找書本,翻看課件和網(wǎng)絡(luò)查找等手段,才能正確使用該函數(shù)。4實踐4:結(jié)構(gòu)體4.1 題目1題目:結(jié)構(gòu)體編程 在屏幕上模擬顯示一個數(shù)字式時鐘按如下方法定義一個時鐘結(jié)構(gòu)體類型:struct clock int hour; int minute; int second;typedef struct clock CLOCK;然后編寫時鐘模擬顯示程序2目標(biāo):利用結(jié)構(gòu)體函數(shù)全局定義變量,使用void Update和void Display的函數(shù)功能顯示時鐘并達(dá)到與計算機(jī)時間同步的目的。能接受整型變量(int)、void Update和void Display函數(shù)的輸入(輸出),格式要求時間顯示清晰準(zhǔn)確,規(guī)范合理。4.2 設(shè)計思路 開始時、分、秒時間的更新時、分、秒時間的同步輸出最新時間 結(jié)束1,使用結(jié)構(gòu)圖全局定義函數(shù),用void Update(void)函數(shù)實現(xiàn)時、分、秒時間的更新,用void Display(void)函數(shù)控制時、分、秒顯示的位置,用for語句實現(xiàn)空語句的循環(huán),起延時作用Update(), Display()和Delay()實現(xiàn)和計算機(jī)時間同步,再輸出結(jié)果。4.3 程序框圖主函數(shù)定義結(jié)構(gòu)體變量4.4 程序(附錄)4.5 調(diào)試過程調(diào)試過程如下,經(jīng)過多次反復(fù)調(diào)試,確認(rèn)程序無誤。在調(diào)試過程終于到多個問題,如:不會處理時間的更新,執(zhí)行時產(chǎn)生的時間與計算機(jī)時間有誤差,換算成格林威治時間時出現(xiàn)錯誤等。經(jīng)過參考指導(dǎo)老師的程序,翻查書本和上網(wǎng)了解才解決問題。 5 課程總結(jié)經(jīng)過半學(xué)期的實踐課程,然我對C語言產(chǎn)生了濃厚的興趣,使我初步了解了C語言的基礎(chǔ),也能獨立初步完成編程操作,但目前作為初學(xué)者,無法實現(xiàn)較復(fù)雜的編程,有些較為復(fù)雜的程序更是看不懂,各方面有待提高。C語言作為現(xiàn)代大學(xué)生最重要的課程之一,用途廣泛,更使我認(rèn)識到了獨立思考,實踐操作的重要性。C語言的學(xué)習(xí)不僅重理論,更重實踐。而學(xué)好C語言的一大方法便是“實踐”,在C語言實踐過程中遇到的種種問題,及解決問題的方法,更是鍛煉了學(xué)生的實踐能力,使我們不僅是學(xué)習(xí)理論,更學(xué)習(xí)了實踐,今后一定要理論和實踐有機(jī)結(jié)合,加上獨立思考和不懈努力的學(xué)好C語言,為撬開編程的大門不懈努力??傮w來說老師授課很有水平,不過老師以后在上實踐課的時候也進(jìn)行更多的實踐操作,讓我們更好地理解,這樣理論課也將變得更有趣。6附錄6.1 實踐1程序清單#include#include#includeint main() while(1)int x; int i=0;int y; int n=1;int m=9; srand(time(NULL); while(i=0) x=rand()%100+1; printf(請輸入一個1100之間的整數(shù)n);while(n=10)scanf(%d,&y);if(x=y)printf(您猜了%d次,終于猜對了n,n); break;elseif(xy) printf(您猜的數(shù)太大了n);printf(您已經(jīng)猜了%d次n,n);printf(您還有%d次機(jī)會n,m); elseprintf(您猜的數(shù)太小了n);printf(您已經(jīng)猜了%d次n,n);printf(您還有%d次機(jī)會n,m);n+;m-; printf(正確答案是%dn,x);return 0;6.2 實踐2程序清單1.#include int main() int sum; int score30;int n=1; int j=1;int a=0,b=0,c=0,d=0,e=0;float q,w,s,r,t;printf(請輸入學(xué)生人數(shù):);scanf(%d,&sum);if(sum0) for(n=1;n=sum;n+) printf(請輸入第%d個同學(xué)的分?jǐn)?shù):,n); scanf(%d,&scoren); n=1;while(n=sum)if(scoren59&scoren69&scoren79&scoren89&scoren101) a+; else break; n+;q=(e/sum)*100; w=(d/sum)*100;s=(c/sum)*100; r=(b/sum)*100;t=(a/sum)*100; printf(分?jǐn)?shù)段 學(xué)生人數(shù) 圖形n);printf(60 %d(%.f%) ,e,q);n=1;for(n=1;n=e;n+)printf(*);printf(n); printf(60-69 %d(%.f%) ,d,w);n=1;for(n=1;n=d;n+)printf(*);printf(n); printf(70-79 %d(%.f%) ,c,s);n=1;for(n=1;n=c;n+)printf(*);printf(n); printf(80-89 %d(%.f%) ,b,r);n=1;for(n=1;n=90 %d(%.f%) ,a,t);n=1;for(n=1;n=a;n+)printf(*);printf(n); return 0;2#include#include#define NUM 30int main() struct student int ID; char NAME9; int MT; int EN; int PH; int ALL; double AVE; stu30,t; int a,b,c,d,i=0,j; for(a=0;a100|stua.MT100)|(stua.MT100|stua.EN100)|(stua.EN100|stua.PH100)|(stua.PH0); printf(第%d個同學(xué)的總分 平均分n,a+1); stua.ALL=(stua.MT+stua.EN+stua.PH); stua.AVE=(stua.MT+stua.EN+stua.PH)/3; printf(%d %-8.1f,stua.ALL,stua.AVE); printf(n); stua.ID=a+1; getchar(); c=a; for(b=0;bc;b+) for(d=0;dc-1-b;d+) if(stud.AVEstud+1.AVE) t=stud; stud=stud+1; stud+1=t; printf(學(xué)號 姓名 數(shù)學(xué)分?jǐn)?shù) 英語分?jǐn)?shù) 物理分?jǐn)?shù) 總分 平均n); while(ic) printf(%5d%s%5d%5d %5d %-8.1fn,stui.ID,stui.NAME,stui.MT, stui.EN,stui.PH,stui.ALL,stui.AVE);i+; while(1) printf(輸入學(xué)號:); scanf(%d,&j); printf(%5d%s%5d%5d%5d%-8.1f,stuj-1.ID,stuj-1.NAME, stuj-1.MT,stuj-1.EN,stuj-1.PH,stuj-1.ALL,stuj-1. AVE);return 0;6.3 實踐3程序清單#include #include #include #include enum status CONTINUE,WON,LOST;void main() while(1)int status=CONTINUE; int i=0,j=0,add,k,newadd; srand(unsigned)time(NULL); while(i=0) i=rand()%7; printf(骰子1: %dn,i); while(j=0)/zhinan/11001/1100129308.html j=rand()%7; printf(骰子2: %dn,j); add=i+j; if(add=11 & add=7) status=WON; if(add=2 & add=3 & add=12) status=LOST; if(status=WON) printf(兩個色子的和為 %d. 您贏了!n,add);else if(status=LOST) printf(兩色子的和為 %d. 您輸了!n,add); else printf(兩色子的和為 %d.CONTINUE!n,add); for(k=1;k=7;k+) i=0; j=0; printf(n重新投擲第%d次n,k); while(i=0) i=rand()%7; printf(骰子1: %dn,i); while(j=0) j=rand()%7; printf(骰子2: %

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論