《C語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告(共30頁)_第1頁
《C語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告(共30頁)_第2頁
《C語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告(共30頁)_第3頁
《C語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告(共30頁)_第4頁
《C語言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告(共30頁)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、C語言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告(2013 2014學(xué)年 第 3 學(xué)期)題 目: C語言課程設(shè)計(jì) 專 業(yè): 軟件工程 班 級: 軟件工程技術(shù)2班 姓名學(xué)號: 1307142225 林燕萍 指導(dǎo)教師: 吳蕓 成 績: 計(jì)算機(jī)科學(xué)與技術(shù)系 2014 年6月23日目 錄一、課程設(shè)計(jì)的目的與要求1二、方案實(shí)現(xiàn)與調(diào)試 32.1 擲骰子游戲52.2 射擊游戲72.3 計(jì)算存款本息之和 82.4肇事逃逸102.5 禮炮122.6 汽車加油142.7 大優(yōu)惠162.8 金幣19三、課程設(shè)計(jì)分析與總結(jié)23附錄 程序清單25一、二、 課程設(shè)計(jì)的目的與要求(含設(shè)計(jì)指標(biāo))C語言是一種編程靈活,特色鮮明的程序設(shè)計(jì)語言。C語言

2、除了基知識,如概念,方法和語法規(guī)則之外更重要的是進(jìn)行實(shí)訓(xùn),以提高學(xué)習(xí)者的動手和編程能力,從應(yīng)試課程轉(zhuǎn)變?yōu)閷?shí)踐工具。這是學(xué)習(xí)語言的最終目的。結(jié)合多年來的教學(xué)經(jīng)驗(yàn),根據(jù)學(xué)生的學(xué)習(xí)情況,為配合教學(xué)過程,使“項(xiàng)目教學(xué)法”能在本質(zhì)上促使學(xué)生有更大進(jìn)步,特編寫了該C語言程序設(shè)計(jì)任務(wù)書 ,以在實(shí)訓(xùn)過程中給學(xué)生提供幫助。達(dá)到如下目的:1在課程結(jié)束之前,讓學(xué)生進(jìn)一步了解C程序設(shè)計(jì)語言的編程功能;2讓學(xué)生扎實(shí)掌握C程序設(shè)計(jì)語言的相關(guān)知識;3通過一些有實(shí)際意義的程序設(shè)計(jì),使學(xué)生體會到學(xué)以致用,并能將程序設(shè)計(jì)的知識 與專業(yè)知識有效地結(jié)合,更全面系統(tǒng)地了解行業(yè)知識。編寫程序要求遵循如下基本要求:l模塊化程序設(shè)計(jì)鋸齒型書

3、寫格式 必須上機(jī)調(diào)試通過 二、方案實(shí)現(xiàn)與調(diào)試2.1擲骰子游戲2.1.1 題目內(nèi)容的描述 1)兩人輪流擲骰子,每次擲兩個,每人最多擲10次。2)將每人每次的分值累加計(jì)分3)當(dāng)兩個骰子點(diǎn)數(shù)都為6時,計(jì)8分;當(dāng)兩個點(diǎn)數(shù)相等且不為兩個6時,計(jì)7分;當(dāng)兩個點(diǎn)數(shù)不一樣時,計(jì)其中點(diǎn)數(shù)較小的骰子的點(diǎn)數(shù)。4)結(jié)束條件:當(dāng)雙方都擲10次或經(jīng)過5次后一方累計(jì)分?jǐn)?shù)多出另一方的30%及以上。最后顯示雙方分?jǐn)?shù)并判定優(yōu)勝者。2.1.2輸入數(shù)據(jù)類型、格式和內(nèi)容限制和輸出數(shù)據(jù)的說明數(shù)據(jù)類型:整型;內(nèi)容限制:隨機(jī)數(shù)的產(chǎn)生;輸入數(shù)據(jù)結(jié)果:勝利的一方2.1.3主要模塊的算法描述 本算法的思路過程:首先要隨機(jī)產(chǎn)生隨機(jī)數(shù),然后進(jìn)行算法輸

4、出數(shù)值,執(zhí)行條件判斷輸入結(jié)果,最后比較結(jié)果,判斷勝利的一方。程序流程圖 圖1 擲骰子游戲2.1.4調(diào)試過程及實(shí)驗(yàn)結(jié)果編輯過程中遇到的困難有:編程思路正確,但是無法正確編寫出程序和編程過程缺乏。 圖2 擲骰子游戲2.2射擊游戲2.2.1題目內(nèi)容的描述 在程序運(yùn)行時屏幕上方第一行隨機(jī)出現(xiàn)一個 符號,要求游戲者輸入一個1-80之間的整數(shù),當(dāng)用戶輸入一個整數(shù)后,一個*立即從屏幕底端的該整數(shù)列向上移動,若移動到屏幕的頂端能撞上 符號,則游戲者獲勝;若沒有撞上,則要求再輸入一個整數(shù),共允許輸入5次,如果一直沒有撞上,則認(rèn)為游戲者輸。 提示: 1)輸入 符號可以采用printf(%c,1) 2)顯示*號向上

5、移動:輸出一些空行;輸出*號;以循環(huán)的方式增加延時(for(i=0;i100000;i+););clrscr()清屏重新繪制*號。2.2.2輸入數(shù)據(jù)類型、格式和內(nèi)容限制和輸出數(shù)據(jù)的說明System(“cls”);清楚屏幕,2.2.3主要模塊的算法描述 本算法的思路過程:首先清楚屏幕,然后循環(huán)每行輸出* ,依次循環(huán),判斷是否擊中目標(biāo),最后 5次輸入結(jié)束,或者擊中目標(biāo)結(jié)束。程序流程圖 圖3 射擊游戲2.2.4調(diào)試過程及實(shí)驗(yàn)結(jié)果該程序在調(diào)試過程中出現(xiàn)的問題是:該題中大體循環(huán)是以次數(shù),還是循環(huán)的結(jié)果作為判斷,弄不清楚 圖4 射擊游戲2.3計(jì)算存款本息之和: *2.3.1題目內(nèi)容描述 以“存款利率”為關(guān)

6、鍵字上網(wǎng)搜索目前我國整存整取不同期限我國的銀行存款利率,只計(jì)算一年(3%)、三年(4.25%)和五年(4.75%)三種期限。 問題: 1) 要求輸入存錢的本金和期限,求到期能從銀行得到的利息與本金合計(jì)。 2)假設(shè)存款期限為三十年本金為10萬,比較一年、三年和五年滾存三十年后的本息金額。 261036.844 332020.963 359146.175 *2.3.2輸入數(shù)據(jù)類型、格式和內(nèi)容限制和輸出數(shù)據(jù)的說明1)數(shù)據(jù)類型:長整型;2)內(nèi)容限制:鍵入本金與年限;3)輸出數(shù)據(jù):本息和PI 2.3.3主要模塊的算法描述本算法的語言描述:輸入限定之內(nèi)的年份與存款金額,選擇對應(yīng)的年利率計(jì)算本息和程序流程圖

7、開始初始化i,j,k,n,m=0,x=0輸入存期i,本金j,滾利年限k,利率nm=m+i*j*k,x=x+ixm是 結(jié)束否 圖5 計(jì)算存款本息之和2.3.4調(diào)試過程及實(shí)驗(yàn)結(jié)果 圖6 計(jì)算存款本息之和 圖7 計(jì)算存款本息之和2.4肇事逃逸2.4.1題目內(nèi)容的描述某部閩DT的出租車交通肇事逃逸,現(xiàn)場無人看清后面的四位數(shù)字,但三位目擊群眾提供信息如下:1) 車牌號后兩位相同; 2) 車牌號前兩位相同; 3) 車牌號是一個整數(shù)的平方。請編程查出肇事逃逸車輛的車牌號。2.4.2輸入數(shù)據(jù)類型、格式和內(nèi)容限制和輸出數(shù)據(jù)的說明 1)數(shù)據(jù)類型:整型;2)內(nèi)容限制:前兩位相同,后兩位相同,整數(shù)的平方; 3)輸出數(shù)

8、據(jù):四位整數(shù)2.4.3主要模塊的算法描述本算法的思路描述:前兩位,后兩位相同,則前兩位用i表示,后兩位用均表示,用k是100以內(nèi)的兩位整數(shù),l表示這個四位數(shù),用循環(huán)語句依次判斷結(jié)果適合公式:k*k=l=1000*i+100*i+10*j+j,即為肇事車牌號!程序流程圖輸出結(jié)果PIPI=m*(1+0.475*5);I=5PI=m*(1+0.425*3);I=3PI=m*(1+0.03*1);I=1輸入本金嗎,存款年限你,本息和PI開始否是否是是結(jié)束 圖8 肇事逃逸2.4.4調(diào)試過程及實(shí)驗(yàn)結(jié)果實(shí)驗(yàn)中所遇到的困難是:書寫代碼時,定義四位車牌號為l,由于字母i與數(shù)字1比較像,結(jié)果導(dǎo)致混淆。 圖9 肇事

9、逃逸 2.5禮炮:2.5.1題目內(nèi)容的描述 鳴放禮炮起源于英國。據(jù)說400多年前英國海軍用的是火炮。當(dāng)戰(zhàn)艦進(jìn)入友好國家的港口之前,或在公海上與友好國家的艦船相遇時,為了表示沒有敵意,便把船上大炮內(nèi)的炮彈統(tǒng)統(tǒng)放掉,對方的海岸炮艦船也同樣做以表示回報(bào)。這種做法以后就逐漸成為互致敬意的一種禮儀。由于當(dāng)時最大的戰(zhàn)艦裝有大炮21門,所以鳴炮21響就成了一種最高禮節(jié)。有四艘戰(zhàn)艦ABCD開始鳴放禮炮各21響,已知A戰(zhàn)艦每隔5秒放一次,B戰(zhàn)艦每隔6秒放一次, C戰(zhàn)艦每隔7秒放一次, D戰(zhàn)艦每隔8秒放一次.假設(shè)各炮手對時間掌握非常準(zhǔn)確,請問觀眾共可以聽到幾次禮炮聲?2.5.2輸入數(shù)據(jù)類型、格式和內(nèi)容限制和輸出數(shù)

10、據(jù)的說明2.5.3主要模塊的算法描述 本算法的思路過程:根據(jù)條件“A戰(zhàn)艦每隔5秒放一次,B 戰(zhàn)艦每隔6秒放一次, C戰(zhàn)艦每隔7秒放一次, D戰(zhàn)艦每隔8秒放一次”確定可能性!依次判斷,累計(jì)聽到的次數(shù),得出結(jié)果!程序流程圖I+i+;j+結(jié)束輸出ji%8=0&(i140)(i%7=0)|(i%8=0)& (i120)(i%6=0)|(i%7=0)|(i%8=0)&( i100)(i%5=0)|(i%6=0)|(i%7=0)|(i%8=0)& (i=100)I=168初始化i=1,j=0開始否是是否是否是否是 圖10 禮炮2.5.4調(diào)試過程及實(shí)驗(yàn)結(jié)果程序在調(diào)試過程中出現(xiàn)的問題是:編碼時要注意“|”,“

11、&” 圖11 禮炮2.6汽車加油*2.6.1題目內(nèi)容的描述一輛汽車加滿油后可行駛n公里。旅途中有若干個加油站。設(shè)計(jì)一個有效算法,指出應(yīng)在哪些加油站??考佑停寡赝炯佑痛螖?shù)最少。輸入:第一行有2 個正整數(shù)N和K(1 = N = 100,1 = K = 100),表示汽車加滿油后可行駛N公里,且旅途中有K個加油站。接下來的1 行中,有K+1 個整數(shù),表示第K個加油站與第K-1 個加油站之間的距離。第0 個加油站表示出發(fā)地,汽車已加滿油。第K+1 個整數(shù)表示第K個加油站與目的地的距離。輸出:將編程計(jì)算出的最少加油次數(shù)輸出。如果無法到達(dá)目的地,則輸出 No Solution。(注意:No和Soluti

12、on之間有一個空格)。例如:輸入:8 83 2 3 6 5 4 2 7 2輸出:52.6.2輸入數(shù)據(jù)類型、格式和內(nèi)容限制和輸出數(shù)據(jù)的說明1) 數(shù)據(jù)類型:數(shù)組類型;2) 內(nèi)容限制:鍵入數(shù)據(jù):3) 用到的主要語句:循環(huán)條件判斷;4) 輸出數(shù)據(jù):加油次數(shù)(整型)2.6.3主要模塊的算法描述本算法的語言描述是:按題目要求輸入數(shù)據(jù);首先判斷可行駛的路程是否足夠汽車到達(dá)加油站;如果不能到達(dá),則需要加油,在此處記錄一次并循環(huán);得出累計(jì)加油次數(shù)之和算得出結(jié)果。程序流程圖 開始初始化:汽車加滿油后可行駛N公里,且旅途中有K個加油站輸入K個加油站距離YES是否到達(dá)終點(diǎn)?記錄加油次數(shù)NOYES汽車是否需要加油?NO

13、輸出加油次數(shù)結(jié)束 圖12 禮炮*2.6.4調(diào)試過程及實(shí)驗(yàn)結(jié)果實(shí)驗(yàn)中所遇到的困難是:循環(huán)條件判斷錯誤。 圖13 禮炮2.7大優(yōu)惠2.7.1題目內(nèi)容的描述中國移動推出最新的手機(jī)資費(fèi)優(yōu)惠方案,按照這個方案Tom的手機(jī)每天消費(fèi)1元,每消費(fèi)K元就可以獲贈1元,一開始Tom有M元,問最多可以用多少天?輸入的測試數(shù)據(jù)為一行,實(shí)例包括2個整數(shù)M, K(2 = K = M 0M,K, i=0(2=K=M=1000)開始否是i+;M=M-1;i%K=0否 圖14簡要的語言描述思考數(shù)據(jù)間的關(guān)系;分析K與天數(shù)的關(guān)系; 按M值遞減的方式運(yùn)算;2.7.4調(diào)試過程及實(shí)驗(yàn)結(jié)果實(shí)驗(yàn)中所遇到的困難是: 沒有注意到題目中給定的限制

14、范圍。注意大小寫 圖152.8金幣 2.8.1題目內(nèi)容的描述 國王用金幣獎勵他忠誠的侍從。第一天侍從工作結(jié)束后,國王獎勵了他一個金幣;接著的兩天侍從工作中(第二天,第三天)的每一天,國王獎勵了他兩個金幣;接著的三天侍從工作中(第四天,第五天,第六天)的每一天,國王獎勵了他三個金幣;接著的四天侍從工作中(第七天,第八天,第九天,第十天)的每一天,國王獎勵了他四個金幣。這種獎勵的模式將是固定不變的,即在N天侍從工作中的每一天,國王將獎勵他N個金幣;接著的N+1天的侍從工作中的每一天,國王將獎勵他N+1個金幣。 要求在給定的天數(shù)時,你的程序能夠統(tǒng)計(jì)國王總共獎勵了侍從多少金幣。2.8.2輸入數(shù)據(jù)類型、

15、格式和內(nèi)容限制和輸出數(shù)據(jù)的說明 整型,算法的應(yīng)用,內(nèi)容數(shù)字的限定;2.8.3主要模塊的算法描述以程序流程圖的方式給出。開始初始化:i=1,j=1,s=0,m=0;輸入工作天數(shù)day,m=m+i,s=s+1;s=day?j=i輸出mi=day結(jié)束 圖16簡要的語言描述 思考數(shù)據(jù)間的關(guān)系; 分析天數(shù)與獲得金幣的關(guān)系(類金字塔); 進(jìn)行總求和;2.8.4調(diào)試過程及實(shí)驗(yàn)結(jié)果實(shí)驗(yàn)中所遇到的困難是:循環(huán)條件的出口判斷不明確;求和處理不簡約;三、課程設(shè)計(jì)分析與總結(jié)由于上學(xué)期在語言的學(xué)習(xí)方面還有很多不足之處,因此,這次課程設(shè)計(jì)顯得特別吃力,很多不足都暴露了出來。不過最終還是基本完成了此次課程設(shè)計(jì)的內(nèi)容。在各個

16、實(shí)驗(yàn)中解決問題的基本流程是:分析問題分析解決問題的基本流程選擇合適的算法語句書寫程序調(diào)試修改按要求書寫實(shí)驗(yàn)報(bào)告。在這些過程中,我認(rèn)為分析問題的解決流程最為重要,分析好解決流程之后,就可以清楚的知道自己這一步要干什么,下一步要干什么,思路就顯得十分清楚,按照這個流程解決問題是我感覺做得好的一面。不過也有很多不足,例如:好久沒碰C語言了,for, while之類的循環(huán)語句的基本功能都模糊了,在選擇運(yùn)用時還要在課本、網(wǎng)絡(luò)上熟悉這些內(nèi)容,還有一點(diǎn)就是自己對函數(shù)、模塊化的思想掌握不夠,按照實(shí)驗(yàn)要求需運(yùn)用模塊化的方式來解決問題,自己卻很少使用這種思想,這就是實(shí)驗(yàn)中的不足之處??偠酝ㄟ^這次5天的課程設(shè)計(jì)我

17、進(jìn)一步了解C程序設(shè)計(jì)語言的編程功能,握C程序設(shè)計(jì)語言的相關(guān)知識,體會到學(xué)以致用,并能將程序設(shè)計(jì)的知識與專業(yè)知識有效地結(jié)合,更全面系統(tǒng)地了解行業(yè)知識。眾多不足之處我會課余時間進(jìn)一步加固,力爭將這門基礎(chǔ)課真正的學(xué)好、用好,擺正思想,為以后的專業(yè)課的學(xué)習(xí)大好基礎(chǔ)! 最后感謝謝老師的一而再再而三的嚴(yán)格要求及耐心指導(dǎo),感謝感謝同學(xué)們的幫助,謝謝你們!附錄 程序清單 2.1擲骰子游戲:#include #include #include void main() int i,j,k,b,n,m,add1=0,add2=0; srand( (unsigned)time( NULL ) ); /生成隨機(jī)數(shù)發(fā)生器

18、 for(i=1; i11; i+) for(b=1;bj) add1=add1+j; else add1=add1+k; printf(第二個人第%d次投出的數(shù)n,i); m=rand()%6+1; printf(%dn,m); /rand()產(chǎn)生隨機(jī)數(shù) - 12 - n=rand()%6+1; printf(%dn,n); if(n=6|m=6) add2=add2+8; if(n=m=5|n=m=4|n=m=3|n=m=2|n=m=1) add2=add2+7; else if(nm) add2=add2+m; else add2=add2+n; if(i=6) if(add1=2*ad

19、d2|add2=2*add1) i=10; printf(第一個人分值累加計(jì)分%dn,add1); printf(第二個人分值累加計(jì)數(shù)%dn,add2); if(add1add2) printf(第一個人勝利); if(add2add1) printf(第二個人勝利);2.2射擊游戲#include #include #include void main() int i,j,n,t,m; long int k; printf(*Welcome*); printf(nGame Begin:n); srand(unsigned)time(NULL); n=rand()%80+1; for(i=0;

20、in;i+) printf( ); printf(%cn,1); for(m=0;m0;j-) system(cls); for(i=0;i80;i+) if(i=n) printf(%c,1); else printf( ); for(i=1;ij;i+) printf(n); for(k=0;k80;k+) if(k=t) printf(*); else printf( ); for(k=0;k100000;k+); if(t=n) printf(Your Winnern); break; if(m=4) printf(You Losen); 2.3計(jì)算存款本息之和#include voi

21、d main() float m,n,PI;/定義m存款本金,n存款年限,printf(Please input the principal:);scanf(%f,&m);printf(Please input the years:);scanf(%f,&n); if(n=1)PI=m*(1+0.03*1);else if(n=3) PI=m*(1+0.425*3); else if(n=5) PI=m*(1+0.475*5);printf(You save:%fn,PI);2.3.2 #include#includemain()float i,save,total,profit,term;w

22、hile(1)printf(total=);scanf(%f,&total);if(total=0)break;printf(Please input the principal:);scanf(%f,&save);printf(Please input the years:);scanf(%f,&term);if(term=5)for(i=1;i=30;i=i+term)save=0.0475*save*term+save;printf(You save:%fn,save);else if(term=3)for(i=1;i=30;i=i+term)save=0.0425*save*term+

23、save;printf(You save:%fn,save);elsefor(i=1;i=30;i=i+term)save=0.03*save*term+save;printf(You save:%fn,save);2.4肇事逃逸#include#includemain()int i,j,k,c;for(i=0;i=9;i+)for(j=0;j=9;j+)c=1000*i+100*i+10*j+j;for(k=1;k=(c/2);k+)if(k*k)=c)printf(肇事逃逸車輛的車牌號為:%dn,c);2.5禮炮#include#includemain()int i,j=1;for(i=1

24、;i=168;i+)if(i=100)if(i%5=0)|(i%6=0)|(i%7=0)|(i%8=0) j=j+1;else if(i100)if(i%6=0)|(i%7=0)|(i%8=0) j=j+1;else if(i120)if(i%7=0)|(i%8=0) j=j+1;elseif(i%8=0) j=j+1;printf(%dn,j);2.6汽車加油#includevoid main()int K,N,i,j,i999,x=0,y=0; /i表示第幾個加油站;j為第K個加油站與第K-1個加油站 直接的距離;x表示總距離;*/ printf(輸入N K:); scanf(%d%d,&N,&K); for(i=0;i=K;i+) scanf(%d,&j); li=j; for(i=0;i=K;i+) if(Nli) printf(No Solution.n); break; else x=x+li; if(Nx) y+; x=li; if(i=K) printf(輸出最少加油次數(shù):%dn,y); 2.7大優(yōu)惠#includemain()int M,K,i=0;printf(Please input

溫馨提示

  • 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

提交評論