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

下載本文檔

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

文檔簡介

1、C程序設(shè)計課程設(shè)計 學 院: * 專 業(yè): * 班 級: * 學 號: * 姓 名: * 指導教師: * 2016 年 9 月第1章 分支與循環(huán)1.2 設(shè)計任務(wù)1. 王小二自夸刀工不錯,有人放一張大地煎餅在砧板上,問他:“煎餅不許離開砧板,切100刀最多能分成多少塊?”2. 若一個口袋中放有12個球,其中有3個紅色球,3個白色球和6個黑色球,從中任取8個球,問共有多少不同的顏色搭配,把每種搭配顯示出來。3. 輸入年月日,求它是該年的第幾天。注:閏年的2月有29天,平年的2月有28天。4. 簡單計算器。請編寫一個程序計算表達式:data1 op data2的值。其中op為運算符+、-、*、/,d

2、ata1和data2是數(shù)據(jù)。5. 猜數(shù)游戲。由計算機“想”一個數(shù)請人猜,如果猜對了,則游戲結(jié)束,否則計算機給出提示,告訴人所猜的數(shù)是太大還是太小,直到猜對為止。計算機記錄人猜的次數(shù),以此可以反映出猜數(shù)者“猜”的水平。6. 一輛肇事汽車的號碼是4位十進制數(shù)。目擊者向交警描述這個車號:這是一個完全平方數(shù);這4個數(shù)字從左至右一個比一個小。請幫助交警尋找肇事者,將車號算出來。1.3 實現(xiàn)過程1.3.1設(shè)計任務(wù)1的實現(xiàn)過程【任務(wù)描述】 1王小二自夸刀工不錯,有人放一張大地煎餅在砧板上,問他:“煎餅不許離開砧板,切100刀最多能分成多少塊?”【算法分析】(用文字或流程圖進行描述)用到數(shù)學中的逆推公式。s=

3、1+n*(n+1)/2【源程序代碼】#include main()int n,s;for(n=1;n=100;n+)s=1+n*(n+1)/2;printf(%dn,s);【編譯示圖】(示圖中要有0 error,0 warning的提示)【運行結(jié)果示圖】1.3.2 設(shè)計任務(wù)2的實現(xiàn)過程【任務(wù)描述】6. 一輛肇事汽車的號碼是4位十進制數(shù)。目擊者向交警描述這個車號:這是一個完全平方數(shù);這4個數(shù)字從左至右一個比一個小。請幫助交警尋找肇事者,將車號算出來。【算法分析】(用文字或流程圖進行描述)找出這個四位數(shù)的個、十、百、千位數(shù),利用題目條件運用兩個for循環(huán)最后求出結(jié)果?!驹闯绦虼a】#include

4、 main()int s,a,b,c,d,e;for(s=1000;s10000;s+)a=s%10;/geweib=s/10%10;/shiweic=s/100%10;/baiweid=s/1000;/qianweifor(e=30;eb&bc&cd&e*e=s) printf(%dn,s);【編譯示圖】(示圖中要有0 error,0 warning的提示)【運行結(jié)果示圖】1.3.3設(shè)計任務(wù)3實現(xiàn)過程【任務(wù)描述】2. 若一個口袋中放有12個球,其中有3個紅色球,3個白色球和6個黑色球,從中任取8個球,問共有多少不同的顏色搭配,把每種搭配顯示出來?!舅惴ǚ治觥浚ㄓ梦淖只蛄鞒虉D進行描述)用三個f

5、or循環(huán)嵌套,再以一個if條件語句就可以輸出最后結(jié)果?!驹闯绦虼a】#include main()int x,y,z;for(x=0;x4;x+)for(y=0;y4;y+)for(z=0;z7;z+)if(x+y+z=8)printf(%d紅 %d白 %d黑n,x,y,z);【編譯示圖】(示圖中要有0 error,0 warning的提示)【運行結(jié)果示圖】1.3.4 設(shè)計任務(wù)4實現(xiàn)過程【任務(wù)描述】3. 輸入年月日,求它是該年的第幾天。注:閏年的2月有29天,平年的2月有28天?!舅惴ǚ治觥浚ㄓ梦淖只蛄鞒虉D進行描述)先用if語句判斷出平年和閏年,再用for循環(huán)輸出最后結(jié)果?!驹闯绦虼a】#in

6、clude void main()int year,moth,day;int a12=31,28,31,30,31,30,31,31,30,31,30,31;/平年2月28天 365天int b12=31,29,31,30,31,30,31,31,30,31,30,31;/閏年2月29天 366天int i,j,num=0;int x;printf(請輸入年 月 日,n);scanf(%d,%d,%d,&year,&moth,&day);if(year%4=0)&(year%100!=0)|(year%4=0)&(year%400=0)x=1;else x=0;if(x)for(i=0;imo

7、th-1;i+) num+=bi;num+=day;elsefor(j=0;jmoth-1;j+)num+=aj;num+=day;printf(今天是第%d年的第%d天n,year,num);【編譯示圖】(示圖中要有0 error,0 warning的提示)【運行結(jié)果示圖】1.3.5 設(shè)計任務(wù)5實現(xiàn)過程【任務(wù)描述】4. 簡單計算器。請編寫一個程序計算表達式:data1 op data2的值。其中op為運算符+、-、*、/,data1和data2是數(shù)據(jù)?!舅惴ǚ治觥浚ㄓ梦淖只蛄鞒虉D進行描述)先輸出所需數(shù)據(jù)和運算符,然后用switch語句進行判斷,最后輸出結(jié)果?!驹闯绦虼a】#include v

8、oid main()float a,b;char c;printf(請輸入數(shù)字a,運算符c,數(shù)字b:n);scanf(%f%c%f,&a,&c,&b);/char c;/printf(請輸入運算符:n);/scanf(%c,&c);switch(c)case+: printf(%fn,a+b); break;case-: printf(%fn,a-b); break;case*: printf(%fn,a*b); break;case/: printf(%fn,a/b); break;default: printf(input errorn);【編譯示圖】(示圖中要有0 error,0 war

9、ning的提示)【運行結(jié)果示圖】第2章 數(shù)組與函數(shù)2.2 設(shè)計任務(wù)1. 有一個一維數(shù)組score,內(nèi)存放10個學生的成績,要求編寫三個函數(shù)分別求學生的平均成績,求10個學生的最高分,求10個學生的最低分。2. 編寫一個函數(shù),將輸入的一串字符中的小寫字母轉(zhuǎn)變成大寫字母,并輸出所有的大寫字母。3. 輸入10個學生姓名,按字典順序?qū)⑴旁谧钋懊娴膶W生姓名輸出。即在字符數(shù)組中求最小字符串。4. 用函數(shù)求N*N的對角線的和。其中的N是用戶通過鍵盤輸入的任意值。5. “數(shù)學黑洞”:任意一個4位自然數(shù),將組成該數(shù)的各位數(shù)字重新排列,形成一個最大數(shù)和一個最小數(shù),之后兩數(shù)相減,其差任為一個自然數(shù)。重復(fù)進行上述運算

10、,會發(fā)現(xiàn)一個神秘的數(shù)。6. 輸入n值,打印邊長為n的空心正六邊形,其邊有*組成。例如:n=4時,圖形如下:* * * * * * * * * * * *2.3實現(xiàn)過程2.3.1 設(shè)計任務(wù)1實現(xiàn)過程【任務(wù)描述】1. 有一個一維數(shù)組score,內(nèi)存放10個學生的成績,要求編寫三個函數(shù)分別求學生的平均成績,求10個學生的最高分,求10個學生的最低分?!舅惴ǚ治觥浚ㄓ梦淖只蛄鞒虉D進行描述)用數(shù)組存放10個學生的成績,然后用求出平均分、最高分、最低分?!驹闯绦虼a】#includeint score10=56,66,21,45,52,65,70,82,90,92;int i,max,min; aver(

11、)int i;float aver=0,a=0;for(i=0;i10;i+)a+=scorei;printf(aver=%fn,a/10);maxain() max=min=score0; for(i=0;imax) max=scorei; if(score0min) min=scorei; printf(max=%dn min=%dn,max,min); void main() aver(); max=min=score0; for(i=0;imax) max=scorei; if(score0min) min=scorei; printf( max=%dn min=%dn,max,min

12、); 【編譯示圖】(示圖中要有0 error,0 warning的提示)【運行結(jié)果示圖】2.3.2設(shè)計任務(wù)2實現(xiàn)過程【任務(wù)描述】2. 編寫一個函數(shù),將輸入的一串字符中的小寫字母轉(zhuǎn)變成大寫字母,并輸出所有的大寫字母?!舅惴ǚ治觥浚ㄓ梦淖只蛄鞒虉D進行描述)用gets()函數(shù)輸入字符串,然后講小寫字母轉(zhuǎn)換成大寫使用puts()輸出?!驹闯绦虼a】#includevoid main()char ch20;int i; printf(input string:n); gets(ch);for(i=0;i=97&chi=122)chi-=32; puts(ch);【編譯示圖】(示圖中要有0 error,0

13、 warning的提示)【運行結(jié)果示圖】第3章 指針3.2 設(shè)計任務(wù)1.已知一個整型數(shù)組a5,其各元素值為4,6,8,10,12。使用指針法求該數(shù)組元素之積。2.100個圍成一圈,從第1個人開始,每數(shù)到3的人出圈。問最后一個出圈的人是哪一個。3.編寫兩個排序函數(shù),要求一個函數(shù)完成從小到大排序,一個函數(shù)完成從大到小排序,并編寫主函數(shù)完成: 輸入n個數(shù); 調(diào)用排序函數(shù)對n個數(shù)按從大到小排序并輸出; 調(diào)用排序函數(shù)對n個數(shù)按從小到大排序并輸出;3.3實現(xiàn)過程3.3.1 設(shè)計任務(wù)1實現(xiàn)過程【任務(wù)描述】1.已知一個整型數(shù)組a5,其各元素值為4,6,8,10,12。使用指針法求該數(shù)組元素之積?!舅惴ǚ治觥浚?/p>

14、用文字或流程圖進行描述)使用數(shù)組存放元素,然后用指針取出數(shù)值運算。【源程序代碼】#includemain()int a5=4,6,8,10,12;int *p,s=1;for(p=a;p=a+4;p+)s=s*(*p);printf(%dn,s);【編譯示圖】(示圖中要有0 error,0 warning的提示)【運行結(jié)果示圖】3.3.2設(shè)計任務(wù)2實現(xiàn)過程【任務(wù)描述】100個圍成一圈,從第1個人開始,每數(shù)到3的人出圈。問最后一個出圈的人是哪一個?!舅惴ǚ治觥浚ㄓ梦淖只蛄鞒虉D進行描述)使用for循環(huán)取出出圈人,然后用wile輸出最后一個出圈的人。【源程序代碼】#include#define n

15、100 void main() int an,i,quit_num,k; for(i=0;in;i+)/數(shù)組a存放原始編號ai=i+1; quit_num=0;/出圈人數(shù) i=0; k=0; while(quit_numn-1)/直到只剩下1人時if(ai!=0)k+; if(k=3) ai=0; quit_num+; k=0; i+; if(i=n)i=0; for(i=0;in;i+) if(ai!=0)printf(%dn,ai); 【編譯示圖】(示圖中要有0 error,0 warning的提示)【運行結(jié)果示圖】第4章 綜合設(shè)計題4.1 設(shè)計任務(wù)1.運用C語言開發(fā)一個“小學生算術(shù)四則運

16、算測試系統(tǒng)”。該系統(tǒng)是讓計算機充當一位給小學生布置作業(yè)的算術(shù)老師,為學生出題并閱卷。該系統(tǒng)要求實現(xiàn)下列功能:為小學生出題(分別進行+、-、*、/等不同運算)。學生做題后,進行評閱。學生每做一題后,評閱給出“答題正確,很好”或“答題錯誤,重做”等信息。加、減、乘、除運算功能可以自由選擇實現(xiàn)。運算數(shù)值可控制在兩位數(shù)的四則運算范圍內(nèi)。2.運用C語言開發(fā)一個“比賽評分系統(tǒng)”。評委打分原則:滿分10分,評委打分后,去掉一個最高分和一個最低分,最后的平均分為參賽選手的最后得分(精確到小數(shù)點后兩位)。要求該系統(tǒng)實現(xiàn)以下功能: 假設(shè)參賽人數(shù)為20人,評委為10人。(有興趣的同學可拓展為參賽人數(shù)為n人,評委為m

17、人)。并對參賽選手和評委分別編號,序號從1開始,順序編號。 選手按編號順序依次參加比賽,統(tǒng)計最后得分。 比賽結(jié)束,按從高分到低分每行5人依次打印選手的得分情況。 公布選手獲獎。取一等獎1名,二等獎2名,三等獎3名。3.王小二幫學生食堂編了一個買菜計價的程序,該程序可以顯示菜單,讓學生輸入菜號來選擇買什么菜,之后程序會報出你買了多少個菜,用了多少錢。4.2 設(shè)計過程4.2.1 設(shè)計任務(wù)實現(xiàn)過程【任務(wù)描述】2.運用C語言開發(fā)一個“比賽評分系統(tǒng)”。評委打分原則:滿分10分,評委打分后,去掉一個最高分和一個最低分,最后的平均分為參賽選手的最后得分(精確到小數(shù)點后兩位)。要求該系統(tǒng)實現(xiàn)以下功能: 假設(shè)參

18、賽人數(shù)為20人,評委為10人。(有興趣的同學可拓展為參賽人數(shù)為n人,評委為m人)。并對參賽選手和評委分別編號,序號從1開始,順序編號。 選手按編號順序依次參加比賽,統(tǒng)計最后得分。 比賽結(jié)束,按從高分到低分每行5人依次打印選手的得分情況。 公布選手獲獎。取一等獎1名,二等獎2名,三等獎3名?!舅惴ǚ治觥浚ㄓ梦淖只蛄鞒虉D進行描述)使用for循環(huán)嵌套輸出每位選手的評分,然后用冒泡排序法排序,然后輸出得獎人?!驹闯绦虼a】#include#includevoid main() int max(float b); int min(float b); int i1,k1,j1,t,t1,b1; float

19、 tt; int ii, jj; int flag = 1; int k,m,i,b,j; float sum=0; float a10,c20; printf( 評分系統(tǒng)n); printf(*n); for(b=0;b20;b+) printf(%d號選手:n,b+1); for(i=0;i=9;i+) printf(%d號評委的評分是:,i+1); scanf(%f,&ai); sum+=ai; for(j=0;j10;j+) cj=sum/10; printf(nn); k=max(a); m=min(a); printf(-n); printf(n-n); printf(n最高分是:

20、%g 最低分是:%gnn,ak,am); printf(刪除最高分最低分之后的總分是: %gnn,sum-ak-am); printf(這位選手的平均分是:%gnn,(sum-ak-am)/10);cb = (sum-ak-am)/10;sum = 0; printf(*nnnn); for(b1=0;b120;b1+) printf(第%d位選手的分數(shù)是:%gn,b1+1,cb1); for(ii=0;ii20;ii+) for(jj=0;jjajj+1) /如果后面的數(shù)字大于前面的數(shù)字 tt=cjj; cjj=cjj+1; cjj+1=tt; /就把兩個數(shù)交換 printf(%g ,cjj

21、); printf(第一名%g ,c0);printf(第二名%g ,c1);printf(第三名%g ,c2); int max(float b)/最大值 int i,k=0; float max=b0; for(i=0;i10;i+) if(maxbi) max=bi;k=i; return k; int min(float b)/最小值 int i,m=0; float min=b0; for(i=1;i10;i+) if(bimin)min=bi;m=i; return m;【編譯示圖】(示圖中要有0 error,0 warning的提示)【運行結(jié)果示圖】4.2.2設(shè)計任務(wù)實現(xiàn)過程【任

22、務(wù)描述】運用C語言開發(fā)一個“小學生算術(shù)四則運算測試系統(tǒng)”。該系統(tǒng)是讓計算機充當一位給小學生布置作業(yè)的算術(shù)老師,為學生出題并閱卷。該系統(tǒng)要求實現(xiàn)下列功能:為小學生出題(分別進行+、-、*、/等不同運算)。學生做題后,進行評閱。學生每做一題后,評閱給出“答題正確,很好”或“答題錯誤,重做”等信息。加、減、乘、除運算功能可以自由選擇實現(xiàn)。運算數(shù)值可控制在兩位數(shù)的四則運算范圍內(nèi)?!舅惴ǚ治觥浚ㄓ梦淖只蛄鞒虉D進行描述)用隨機函數(shù)取出兩個數(shù)1-100,用while循環(huán)判斷是否重做,用switch(選擇加、減、乘、除運算,然后輸出結(jié)果?!驹闯绦虼a】#include#include #include int

23、 main()int a=0,b=1,x=0,y=0,i=0,x1=0,y1=0;srand(unsigned int)time(NULL);/設(shè)置當前時間為種子while(ab)a=rand()%100+1;b=rand()%100+1;printf(請選擇 n1 加法運算,n2 減法運算,n3 乘法運算,n4 除法運算n);scanf(%dn,&x);x1=x;switch(x1)case 1:while(i=0)printf(請計算 %d+%d=,a,b);scanf(%dn,&y1);y=y1;if(y=(a+b)printf(答案正確n);i=1;elseprintf(答案錯誤,重做

24、n);i=0;break;case 2:while(i=0)printf(請計算 %d-%d=,a,b);scanf(%dn,&y1);y=y1;if(y=(a-b)printf(答案正確n);i=1;elseprintf(答案錯誤,重做n);i=0;break;case 3:while(i=0)printf(請計算 %d*%d=,a,b);scanf(%dn,&y1);y=y1;if(y=(a*b)printf(答案正確n);elseprintf(答案錯誤,重做n);break;case 4:while(i=0)printf(請計算 %d/%d=,a,b);scanf(%dn,&y1);y=y1;if(y=(a/b)printf(答案正確n);i=1;elseprintf(答

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論