版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C語言程序設(shè)計課程設(shè)計考語:業(yè):自動化設(shè)計報告辯論考勤(10)紀律(10)過程(40)總成績(100)級(30)(10):名:學號:指導教師:蘭州交通大學自動化與電氣工程學院2015年07月21日一.前言設(shè)計目的復習和穩(wěn)固C語言基礎(chǔ)知識,進一步加深對C語言的理解和掌握。提升同學將課本上的理論知識和實質(zhì)聯(lián)合的能力,鍛煉同學的剖析解決實質(zhì)問題的能力,提升同學團隊合作的能力。使同學們擅長察看和思慮,擅長合作,具備實踐編程的基礎(chǔ)素質(zhì),和實質(zhì)問題剖析的思慮方式。設(shè)計要求在設(shè)計時充分地剖析和理解問題自己,綜合考慮系統(tǒng)功能,如何使系統(tǒng)構(gòu)造清楚、合理、簡單和易于調(diào)試。而后詳盡設(shè)計,確立每個過程和函數(shù)的簡單功能,以及過程(或函數(shù))之間的調(diào)用關(guān)系。最后仔細達成課程設(shè)計說明書,并對設(shè)計方法,結(jié)果等進行總結(jié)。充分地剖析和理解問題自己,弄清要求做什么(Whattodo)。在確立解決方案框架過程中(Howtodo),綜合考慮系統(tǒng)功能,考慮如何使系統(tǒng)構(gòu)造清楚、合理、簡單和易于調(diào)試。最后確立每個過程和函數(shù)的簡單功能,以及過程(或函數(shù))之間的調(diào)用關(guān)系。確立算法的主要流程,在此基礎(chǔ)長進行代碼設(shè)計(Coding),每個明確的功能模塊程序一般不超出60行,不然要進一步區(qū)分。上機前途序靜態(tài)檢查可有效提升調(diào)試效率,減少上機調(diào)試程序時的無謂錯誤。靜態(tài)檢查主要有兩種門路:(1)用一組測試數(shù)據(jù)手工履行程序;(2)經(jīng)過閱讀或給他人解說自己的程序而深入全面地理解程序邏輯。二.基礎(chǔ)題題目用選擇法對10個數(shù)進行排序。有一個已排好序的數(shù)組。現(xiàn)輸入一個數(shù),要求按本來的規(guī)律插入到原數(shù)組中。解題思路程序的主要功能是對數(shù)組元素用排序函數(shù)按從小到大的次序進行排序。先定義一個10個元素的一維數(shù)組a[10],而后從電腦輸入10個數(shù)(也就是對數(shù)組賦值),而后使用一次fun()函數(shù),對這10個數(shù)進行排序;而后再定義一個11個元素的一維數(shù)組b[11],同時再從電腦輸入一個數(shù)同a[10]一同賦值給b[11],而后再使用fun( )函數(shù),從頭排序的到最后的有次序的一組數(shù)據(jù)。流程圖子函數(shù)流程圖如圖1所示:開始i=1Ni<=n-1Yi=i+1j=nNj>=iYYa[j]<a[j-1]N交換a[j]和a[j-1]的數(shù)據(jù)j=j+1輸出已排序的數(shù)組a結(jié)束圖1基礎(chǔ)題子函數(shù)流程圖主函數(shù)流程圖如圖2所示:圖2基礎(chǔ)題主函數(shù)流程圖源代碼基礎(chǔ)題源代碼見附錄A。運轉(zhuǎn)及測試結(jié)果運轉(zhuǎn)及測試結(jié)果如圖3所示:圖3基礎(chǔ)題運轉(zhuǎn)及測試結(jié)果截圖三.改錯題題目#include<>intfun( ){inta[3][3],sum;inti,j;____;for(i=0;i<3;i++){for(j=0;j<3;j++)scanf("%d"a[i][j]);}for(i=0;i<3;i++)sum=sum*a[i][i];printf("累乘積=%d\n",sum);}main( ){fun( );}解題思路程序的功能:這是一個求3*3矩陣主對角線元素累乘積的程序。程序剖析:能夠看出源程序中,先聲了然一個子函數(shù),并定義子函數(shù)fun( )累乘積函數(shù)(這個函數(shù)就是先定義了一個3*3的二維數(shù)組,而后從鍵盤輸入數(shù)值對這個二維數(shù)組進行了數(shù)組賦初值,賦值過程中使用了for循環(huán)語句,而后利用for循環(huán)語句對主角線的元素做每個數(shù)的乘積,最后是輸出這個累乘積。)。最后就是主函數(shù)main( ),主函數(shù)中使用一次子函數(shù)fun( )。錯誤剖析錯誤一:原程序中對sum沒有設(shè)置初值,應設(shè)置為“sum=1;”;錯誤二:scanf( )函數(shù)中沒有使用地點運算符,應在數(shù)組前加“&”錯誤三:子函數(shù)也沒設(shè)返回值,返回值應為“returnsum;”。改錯后的源代碼改錯后的源代碼見附錄B。運轉(zhuǎn)及測試結(jié)果運轉(zhuǎn)及測試結(jié)果如圖4所示:圖4改錯題運轉(zhuǎn)及測試結(jié)果截圖四.綜合題題目設(shè)計課題四:猜數(shù)字游戲一.問題描繪該游戲能夠由程序隨機產(chǎn)生或由用戶輸入四個0到9之間的數(shù)字,且不重復。玩游戲者經(jīng)過游戲提示輸入八次來般配上邊所輸入的數(shù)字。A表示地點正確且數(shù)字正確,B表示數(shù)字正確而地點不正確。假如4A0B,表示游戲成功。每次猜錯會有提示,假如八次都未猜對,游戲失敗,顯示正確答案。按隨意鍵能夠返回主菜單。主要應運數(shù)組和循環(huán)實現(xiàn)改功能。(對該系統(tǒng)有興趣的同學能夠在實現(xiàn)系統(tǒng)基本功能后,完美系統(tǒng)的其余功能,如:破記錄功能,若你所般配的次數(shù)小于紀錄保持者,則為破紀錄。)二.功能要求游戲顯示這樣的菜單:1)隨機產(chǎn)生數(shù)據(jù)2)用戶輸入數(shù)據(jù)3)退出游戲游戲成功與否都能返回主菜單三.算法提示數(shù)據(jù)構(gòu)造:數(shù)組用簡單的程序設(shè)計方法四.測試數(shù)據(jù)測試數(shù)據(jù):3792第一次輸入:12340A2B第二次輸入:56780A1B第三次輸入:08670A1B第四次輸入:97861A1B第五次輸入:17942A0B第六次輸入:27932A2B第七次輸入:37924A0B游戲成功!??!五.其余對該系統(tǒng)有興趣的同學能夠在實現(xiàn)系統(tǒng)基本功能后,完美系統(tǒng)的其余功能,如:破記錄功能,若你所般配的次數(shù)小于紀錄保持者,則為破紀錄。設(shè)計思路此游戲程序經(jīng)過不停輸入以及漸漸數(shù)位對應的方法,一步一步的減小猜想范圍最后猜想出機器內(nèi)已經(jīng)儲存的數(shù)字,達到健腦益智的成效。這類策略特別直接——每次都猜可能答案中的一個。比如:第一猜想1234,假如獲得的反應是2A2B那么可能的答案包含等等。依據(jù)簡單策略,下一次就猜1256,由于1256是全部可能答案中最小的數(shù)字。簡單策略是程序運轉(zhuǎn)速度特別快,弊端是所猜想的次數(shù)許多。利用主函數(shù)調(diào)用子函數(shù)來實現(xiàn)模塊化程序設(shè)計。將游戲的每一個功能設(shè)計成一個子函,數(shù)調(diào)用達成游戲。主要分為兩大模塊:隨機模式和用戶模式。猜數(shù)字游戲的主要功能,由系統(tǒng)自動產(chǎn)生4個隨機擺列的整數(shù),或許由用戶輸入4個不一樣的整數(shù),并給用戶8次時機猜想數(shù)字的數(shù)值和擺列次序。假如用戶在8次以內(nèi)沒有猜出正確的結(jié)果,則提示用戶游戲失敗,不然提示用戶猜數(shù)字成功。該游戲能夠由程序隨機產(chǎn)生或由用戶輸入四個0到9之間的數(shù)字,且不重復。玩游戲者經(jīng)過游戲提示輸入八次來般配上邊所輸入的數(shù)字。A表示地點正確且數(shù)字正確,B表示數(shù)字正確而地點不正確。假如4A0B,表示游戲成功。每次猜錯會有提示,假如八次都未猜對,游戲失敗,顯示正確答案。按隨意鍵能夠返回主菜單。主要應運數(shù)組和循環(huán)實現(xiàn)改功能。能夠?qū)ο到y(tǒng)在實現(xiàn)系統(tǒng)基本功能后,完美系統(tǒng)的其余功能,如:破記錄功能,若你所般配的次數(shù)小于紀錄保持者,則為破紀錄。流程圖主程序流程圖如圖5所示:開始游戲說明及選項游戲選項,非1,2,3為無效輸入2游戲說明1開始游戲3退出咨詢清屏輸出說明并返回并生成4個一位隨機數(shù)玩家輸入選擇否,返回選擇是,結(jié)束程序判斷輸入能否有重復數(shù)字并給與必定提示如超出最大回答次數(shù),給出正答案。在規(guī)定次數(shù)內(nèi)猜對,輸出你猜對了。咨詢“是”持續(xù),“否”退出咨詢“是”持續(xù),“否”退出。選擇是返回選擇否退出選擇否退出選擇是返回程序結(jié)束圖5主程序流程圖源代碼源代碼見附錄C。運轉(zhuǎn)及測試結(jié)果開始界面如圖6所示:圖6開始界面結(jié)果截圖使用說明界面如圖7所示:圖7使用說明界面截圖成功進行了一次游戲如圖8所示:圖8完好一次游戲截圖總結(jié)C程序課程設(shè)計是理論和實質(zhì)的聯(lián)合,經(jīng)過此次程序的設(shè)計,提升了我的c語言水平,比方,查閱資料的重要性,對程序的整體性掌握。并且對整體的掌控,還有對局部的棄取,以及對細節(jié)的商酌辦理,都使我的能力獲得了鍛煉,累積了經(jīng)驗,可是當自己依據(jù)此思路設(shè)計出程序時,程序的運轉(zhuǎn)出現(xiàn)了一些問題,這些問題出現(xiàn)時,我經(jīng)過查閱資料,并且和同學溝通,最后經(jīng)過幾次的改正,運轉(zhuǎn)結(jié)果和期望的同樣。經(jīng)過此次的課程設(shè)計,我感覺到自己的C語言知識極少,此次題目,能夠讓我掌握更多的知識,更好的認識c程序的編譯過程,剖析階段,我的剖析思路以下,進行面向?qū)ο蟮男枨笃饰觯到y(tǒng)設(shè)計,畫出相應需求剖析圖,流程圖,有了流程圖,能夠讓我更好的理解這個程序的設(shè)計方法。我還感覺到上機操作的重要性,從前我不過在書上看,而沒有過多的上機操作,就算一個程序能寫出來,上機操作的結(jié)果也未必正確,有時自己對一個程序信心實足,可是假如上機操作,那么就有好多問題,并且碰到錯誤不要氣餒,要一步一步的改,直到能運轉(zhuǎn)出正確的結(jié)果為止,還有就是借助資料的重要性,一道題假如不會作,我們要借助資料來對照和解決,學習是一個不停完美的過程,要正視自己的不足之處,碰到不足的之處,要自己完美,比方,我領(lǐng)會到自己c語言知識知道的極少,在此后,我要學習和完美自己的C語言知識,還有,自己的實質(zhì)操作太少,在此后學習C程序設(shè)計的過程中,要著重實質(zhì)操作,而不不過在書上看看就完了。參照文件譚浩強著.C程序設(shè)計(第四版).北京:清華大學第一版社,2010蔡志明著.指針的藝術(shù).中國水利水電第一版社,2009譚浩強編著.C程序設(shè)計(第三版).北京:清華大學第一版社,2005譚浩強著.C程序設(shè)計教程.北京:清華大學第一版社,2007譚浩強著.C語言程序設(shè)計(第2版).北京:清華大學第一版社,2008譚浩強編著.C程序設(shè)計題解與上機指導(第三版).北京:清華大學第一版社,2005譚浩強編著.C++程序設(shè)計.清華大學第一版社,2004譚浩強著.C程序設(shè)計(第四版)學習指導.北京:清華大學第一版社,2010陳明編著.計算機導論.北京:清華大學第一版社,2009[10]C編寫組編.常用C語言用法速查手冊.北京:龍門書局,1995附錄附錄A#include<>voidmain( ){voidfun(inta[],intn);inta[10],i,k,b[11];printf("請輸入十個數(shù):\n");for(i=0;i<10;i++){scanf("%d",&a[i]);}fun(a,10);
始游戲\n\n");printf("\t\t\t\t2.printf("\t\t\t\t3.printf("\t\t\t
使用說明\n\n");退出游戲\n\n");請輸入(1-3):");fflush(stdin);choice=getchar( );}while(choice!='1'&&choice!='2'&&choice!='3');switch(choice){case'1':{game( );break;}case'2':{system("cls");printf("\t\t\t\t歡迎使用本程序\n\n\n");printf("
游戲說明
:輸入%d位數(shù)字,輸入后會有提示
XAYB,X表示有幾個數(shù)字與答案數(shù)字同樣且地點同樣。\n",MANY);printf("Y表示有幾位數(shù)字與答案數(shù)字同樣但地點不正確。\n");printf("比如:答案數(shù)字是5764,假如輸入5481,則會提示1A1B。\n");printf("printf("
祝你快樂!\n\n");按隨意鍵返回主目錄
\n");getch( );break;}case'3':{printf("確立要退出嗎(y/n):");fflush(stdin);ch=getchar( );if(ch=='y'||ch=='Y')exit(0);elsecontinue;}}}while(1);}/*游戲部分*/voidgame( ){intguess[MANY],answer[MANY];inttimes,i,m,j;intkey;time_tt;charwantplay,temp;srand((unsigned)time(&t));do{/*生成MANY個隨機數(shù)*/do{u=0;for(i=0;i<MANY;i++)guess[i]=rand( )%10;same(guess);}while(u);printf("請輸入%d位不同樣的數(shù):\n",MANY);for(times=1;times<=TIME_OUT+1;times++){/*超出限制數(shù)次*/if(times==(TIME_OUT+1)){printf("正確答案是:");for(m=0;m<MANY;m++)printf("%d",guess[m]);printf("\n猜了%d次都沒料中",TIME_OUT);break;}printf("第%d次:",times);/*玩家輸入*/fflush(stdin);for(j=0;j<MANY;j++){temp=getchar( );answer[j]=temp-48;/*temp是char型*/}/*檢查輸入有沒有重復*/u=0;same(answer);if(u){printf("你輸入的數(shù)字有重復,請從頭輸入\n");continue;}ab(answer,guess);/*判斷輸入數(shù)字正確的個數(shù)*/if(a==MANY){printf("恭賀!你猜對了");break;}elseprintf("%dA%dB\n",a,b);}printf("還想玩嗎(y/n):");fflush(stdin);wantplay=getchar( );if(wantplay=='y'||wantplay=='Y'){system("cls");continue;}elsemenu( );}while(wantplay=='y'||wantplay=='Y
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家私行業(yè)美工設(shè)計心得
- 五年級班主任的成長與總結(jié)
- 教研工作推動學術(shù)創(chuàng)新
- 家具行業(yè)設(shè)計創(chuàng)新培訓分享
- 酒店倉儲管理總結(jié)
- 創(chuàng)新產(chǎn)品推廣總結(jié)
- 《氣防知識學習資料》課件
- 《黃培志危重醫(yī)學》課件
- 《姬花市場推廣》課件
- 2022年云南省普洱市公開招聘警務輔助人員輔警筆試自考題2卷含答案
- (已壓縮)礦產(chǎn)資源儲量技術(shù)標準解讀300問-1-90
- 《阿爾茨海默病康復》課件
- 2022-2023學年福建省泉州市惠安縣三年級(上)期末數(shù)學試卷
- 期末綜合試卷(含答案)2024-2025學年蘇教版數(shù)學四年級上冊
- 2024-2025學年人教版道法八年級上冊 第一學期期末測試卷01
- 徐州市2023-2024學年八年級上學期期末地理試卷(含答案解析)
- 人教版數(shù)學小學二年級上冊無紙筆測試題
- GA 1809-2022城市供水系統(tǒng)反恐怖防范要求
- 電壓10kV及以下送配電系統(tǒng)調(diào)試報告
- 最新手機開發(fā)項目流程圖
- 反滲透凈水機節(jié)水技術(shù)創(chuàng)新
評論
0/150
提交評論