c語言課程設計報告_第1頁
c語言課程設計報告_第2頁
c語言課程設計報告_第3頁
c語言課程設計報告_第4頁
c語言課程設計報告_第5頁
免費預覽已結束,剩余23頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

4、r(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,。warning 的提示)【運行結果示圖】1.3.3 設計任務3實現過程【任務描述】2.若一個口袋中放有12個球 淇中有3個紅色球,3個白色球和6個黑色球,從中任取8個球,問共有多少不同的顏色搭配,把每種搭配顯示出來。【算法分析】(用文字或流程圖進行描述)用三個for循環嵌套,再以一個if條件語句就可以輸出最后結果。【

5、源程序代碼】#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 紅 白 %dMn,x,y,z);【編譯示圖】(示圖中要有0 error,。warning 的提示)r * fi-ii * 匾 R-1 *d& i*gi Hur * u/尸。-7事,*曲1-可 1【運行結果示圖】ci a lr j|.r1 Jer ukuft 1. ib.ii-ial IStadi okBuj| ueLh t BelhwgS a t. *i ft*m白臼白白白men白白白口 A nfes6s4G

6、5 4 3s一堂里察膽黑事官楠rl七i mm,1.3.4設計任務4實現過程【任務描述】3.輸入年月日,求它是該年的第幾天。注:閏年的2月有29天,平年的2月有28天。【算法分析】(用文字或流程圖進行描述)先用if語句判斷出平年和閏年,再用for循環輸出最后結果。【源程序代碼】#include 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

7、天 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;elsex=0;if(x)for(i=0;imoth-1;i+)num+=bi;num+=day;elsefor(j=0;jmoth-1;j+)num+=aj;num+=day;printf(今天是第 d年的第 %dn,year,num);【編譯示圖】(示圖中要有0 error,。warning 的提示)【運行結果示圖】0-. Ti-0gf

8、ui FiLe.s1! i er o sof t. VizmaJ.請Q年 月 日.2ali4.E,2R今天拜州之年的第14學兀Pif ? 梟力步 ku” *fi ftnnt: inurr1.3.5設計任務5實現過程【任務描述】4.簡單計算器。請編寫一個程序計算表達式:datal op data2的值。其中op為運算符+、-、*、/,data1 和 data2 是數據。【算法分析】(用文字或流程圖進行描述)先輸出所需數據和運算符,然后用 switch語句進行判斷,最后輸出結果。【源程序代碼】#include void main()float a,b;char c;printf(請輸入數字a,運算

9、符c,數字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,。warning 的提示)用工也-RP E 隹輸入融主*將算苻G.裁手b;r,a _Prets

10、any Moy to cont lnu【運行結果示圖】第2章數組與函數2.2設計任務1 .有一個一維數組score口,內存放10個學生的成績,要求編寫三個函數分別求學生的平均 成績,求10個學生的最高分,求 10個學生的最低分。2 .編寫一個函數,將輸入的一串字符中的小寫字母轉變成大寫字母,并輸出所有的大寫字 母。3 .輸入10個學生姓名,按字典順序將排在最前面的學生姓名輸出。即在字符數組中求最小字符串。4 .用函數求N*N的對角線的和。其中的 N是用戶通過鍵盤輸入的任意值。5 . “數學黑洞”任意一個4位自然數,將組成該數的各位數字重新排列,形成一個最大數和一個最小數,之后兩數相減,其差任為

11、一個自然數。重復進行上述運算,會發現一個神秘的 數。6 .輸入n值,打印邊長為n的空心正六邊形,其邊有*組成。例如:n=4時,圖形如下:*2.3實現過程2.3.1 設計任務1實現過程【任務描述】1.有一個一維數組score,內存放10個學生的成績,要求編寫三個函數分別求學生的平均成績,求10個學生的最高分,求 10個學生的最低分。【算法分析】(用文字或流程圖進行描述)用數組存放10個學生的成績,然后用求出平均分、最高分、最低分。【源程序代碼】#includeint score10=56,66,21,45,52,65,70,82,90,92;int i,max,min;aver()int i;f

12、loat 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);【編譯示圖】(示圖中要有0 error,

13、。warning 的提示),加fa - -rhfe*) -! s- 9 11【運行結果示圖】 =Lhie心力Je而吊后鼻星界占1口一加均1工道蘭事叁修l+aeku一 口IM 3( 2植件56h:tss 曲ti leflv to :antim.i&2.3.2設計任務2實現過程【任務描述】2.編寫一個函數,將輸入的一串字符中的小寫字母轉變成大寫字母,并輸出所有的大寫字 母。【算法分析】(用文字或流程圖進行描述)用gets()函數輸入字符串,然后講小寫字母轉換成大寫使用puts()輸出。【源程序代碼】#includevoid main()char ch20;int i;printf(input st

14、ring:n);gets(ch);for(i=0;i=97&chi=122)chi-=32;puts(ch);【編譯示圖】(示圖中要有0 error,。warning 的提示)【運行結果示圖】Lrysjt FtratiE 行心由HFd FSSMTCDm由 Mi事FF la IdtfldfiU、第3章指針3.2設計任務1 .已知一個整型數組 a5,其各元素值為4, 6, 8, 10, 12。使用指針法求該數組元素之積。2.100個圍成一圈,從第1個人開始,每數到 3的人出圈。問最后一個出圈的人是哪一個。3.編寫兩個排序函數,要求一個函數完成從小到大排序,一個函數完成從大到小排序,并編 寫主函數完

15、成:輸入n個數;調用排序函數對n個數按從大到小排序并輸出;調用排序函數對n個數按從小到大排序并輸出;3.3實現過程3.3.1 設計任務1實現過程【任務描述】1.已知一個整型數組 a5,其各元素值為4, 6, 8, 10, 12。使用指針法求該數組元素之積。【算法分析】(用文字或流程圖進行描述)使用數組存放元素,然后用指針取出數值運算。【源程序代碼】#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,。warning 的提示)【運行結果示圖】

16、詢了日 iny key tu cDntinuB3.3.2設計任務2實現過程【任務描述】100個圍成一圈,從第 1個人開始,每數到 3的人出圈。問最后一個出圈的人是哪一個。【算法分析】(用文字或流程圖進行描述)使用for循環取出出圈人,然后用 wile輸出最后一個出圈的人。【源程序代碼】#include#define n 100void main()int an,i,quit_num,k;for(i=0;in;i+)/ 數組a存放原始編號ai=i+1;quit_num=0;/ 出圈人數i=0;k=0;while(quit_numn-1)/直到只剩下 1 人時if(ai!=0)k+;if(k=3)

17、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,。warning 的提示)【運行結果示圖】第4章綜合設計題4.1 設計任務1 .運用C語言開發一個“小學生算術四則運算測試系統”。該系統是讓計算機充當一位給小學 生布置作業的算術老師,為學生出題并閱卷。該系統要求實現下列功能:為小學生出題(分別進行 +、-、*、/等不同運算)。學生做題后,進行評閱。學生每做一題后,評閱給出“答題正確,很好”或“答題錯誤, 重做”等信息。加、減、乘、除運算功能可以自由選擇實現。運算數

18、值可控制在兩位數的四則運算范圍內。2 .運用C語言開發一個“比賽評分系統”。評委打分原則:滿分 10分,評委打分后,去掉一 個最高分和一個最低分,最后的平均分為參賽選手的最后得分(精確到小數點后兩位)。要求該系統實現以下功能: 假設參賽人數為20人,評委為10人。(有興趣的同學可拓展為參賽人數為n人,評委為m人)。并對參賽選手和評委分別編號,序號從 1開始,順序編號。選手按編號順序依次參加比賽,統計最后得分。 比賽結束,按從高分到低分每行5人依次打印選手的得分情況。 公布選手獲獎。取一等獎 1名,二等獎2名,三等獎3名。3 .王小二幫學生食堂編了一個買菜計價的程序,該程序可以顯示菜單,讓學生輸

19、入菜號來選 擇買什么菜,之后程序會報出你買了多少個菜,用了多少錢。4.2 設計過程4.2.1 設計任務實現過程【任務描述】2.運用C語言開發一個“比賽評分系統”。評委打分原則:滿分 10分,評委打分后,去掉一 個最高分和一個最低分,最后的平均分為參賽選手的最后得分(精確到小數點后兩位)。要求該系統實現以下功能: 假設參賽人數為20人,評委為10人。(有興趣的同學可拓展為參賽人數為n人,評委為m人)。并對參賽選手和評委分別編號,序號從 1開始,順序編號。選手按編號順序依次參加比賽,統計最后得分。 比賽結束,按從高分到低分每行5人依次打印選手的得分情況。 公布選手獲獎。取一等獎 1名,二等獎2名,

20、三等獎3名。【算法分析】(用文字或流程圖進行描述)使用for循環嵌套輸出每位選手的評分,然后用冒泡排序法排序,然后輸出得獎人。【源程序代碼】#include#includevoid main() int max(float b);int min(float b);int i1,k1,j1,t,t1,b1;float tt;int ii, jj;int flag = 1;int k,m,i,b,j;float sum=0;float a10,c20;printf(評分系統 n);printf(*n);for(b=0;b20;b+)printf(%d 號選手:n,b+1);for(i=0;i=9;

21、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(nn);printf(n 最高分是:%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(第位

22、選手的分數是:gn”,b1+1,cb1);for(ii=0;ii20;ii+)for(jj=0;jjajj+1) 如果后面的數字大于前面的數字tt=cjj;cjj=cjj+1;cjj+1=tt; /就把兩個數交換printf(%g ,cjj);printf(第一名 %g ,c0);printf(第二名 %g ,c1);printf(第三名 %g ,32);int max(floatb口) 最大值 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;fl

23、oat min=b0;for(i=1;i10;i+)if(bi:?:口一富是 MH-i-WTA.4.Fl iT: 干干平十卡車下n 2,苗町力BnBnRrErlg 靄 YT案奏喪兵否安*關#( u A rTTmrf-TITTT M 法工-Jr 1 JT -T.It 1. f母號集與年回nrtrg 41 1-1134 =1 & T=.!Ht r&i 是 t Qf 3 5詞徐瓊高的JH氏弁:后的,紂是I7這置地于站平均分是;* *7*: T XLG3CK3!- OCFKIO KKK3KKMCKHK-CXLEWM *K*:4 iX3KKK LnEKk4.2.2設計任務實現過程【任務描述】運用C語言開

24、發一個“小學生算術四則運算測試系統”。 該系統是讓計算機充當一位給小學生 布置作業的算術老師,為學生出題并閱卷。該系統要求實現下列功能:為小學生出題(分別進行 +、-、*、/等不同運算)。學生做題后,進行評閱。學生每做一題后,評閱給出“答題正確,很好”或“答題錯誤, 重做”等信息。加、減、乘、除運算功能可以自由選擇實現。運算數值可控制在兩位數的四則運算范圍內。【算法分析】(用文字或流程圖進行描述)用隨機函數取出兩個數 1-100 ,用while循環判斷是否重做,用switch(選擇加、減、乘、除運算,然后輸出結果。【源程序代碼】#include#include #include int mai

25、n()int a=0,b=1,x=0,y=0,i=0,x1=0,y1=0;srand(unsigned int)time(NULL);/ 設置當前時間為種子 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(答案錯誤,重做n); i

26、=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; else printf(答案錯誤,重做n); i=0; break;return 0;【編譯示圖】(示圖中要有0 err

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論