C語(yǔ)言課程設(shè)計(jì)_第1頁(yè)
C語(yǔ)言課程設(shè)計(jì)_第2頁(yè)
C語(yǔ)言課程設(shè)計(jì)_第3頁(yè)
C語(yǔ)言課程設(shè)計(jì)_第4頁(yè)
C語(yǔ)言課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、分屏處理數(shù)據(jù)系統(tǒng)一、設(shè)計(jì)內(nèi)容隨機(jī)產(chǎn)生1000個(gè)數(shù),并分屏顯示(每行顯示10個(gè)數(shù)字,每頁(yè)顯示10行),而且在每一屏的下方顯示本屏中數(shù)據(jù)的最大值、最小值和平均值。提示:循環(huán)顯示,在分屏點(diǎn)上輸出press any key to continue,通過getchar()函數(shù)讓用戶以按回車鍵的方式進(jìn)入下一屏。二、方案設(shè)計(jì)與論證生成一個(gè)隨機(jī)數(shù),放入二維數(shù)組,輸出。每輸出十個(gè)一個(gè)回車。調(diào)用自定義函數(shù)求這個(gè)數(shù)組的最大最小值,平局值。摁下回車清屏。循環(huán)十次。三、程序運(yùn)行結(jié)果(截圖)四、心得體會(huì)運(yùn)行時(shí)數(shù)字?jǐn)D在一起,最后一行輸出十個(gè),每輸出一行一個(gè)回車;五、參考資料與致謝查找書本清屏,隨機(jī)函數(shù)的寫法。六、源程序#i

2、nclude<stdio.h>#include<time.h>#include<stdlib.h>#define MAX 99#define MIN 0int main()int ma(int a120);int mi(int a120);float v(int a120);int i,j,k,max,min,a120;float avg;int x;srand(unsigned)time(NULL);for(i=1;i<=10;i+)/顯示十頁(yè)for(j=1,x=1;j<=10;j+)/顯示十行 for(k=1;k<=10;k+,x+)/

3、顯示十個(gè)ax=rand()%(MAX-MIN+1)+MIN;printf("%d",ax);printf("n");max=ma(a);min=mi(a);avg=v(a);printf("最大:%d 最?。?d 平均:%.2fn",max,min,avg);printf("請(qǐng)按回車鍵進(jìn)入下一屏。");getchar();/下一頁(yè)system("cls");/清屏return 0;int ma(int a120)/最大int i,z;for(i=1,z=0;i<=100;i+)if(ai&

4、gt;=z)z=ai;else if(ai<z)z=z;return z;int mi(int a120)/最小int i,z;for(i=1,z=999999999;i<=100;i+)if(ai>=z)z=z;else if(ai<z)z=ai;return z;float v(int a120)/平均int sum=0,i;float z;for(i=1;i<=100;i+)sum=sum+ai;z=sum*1.0/100;return z;求積分一、 設(shè)計(jì)內(nèi)容小明最近在學(xué)高等數(shù)學(xué),被數(shù)學(xué)里面的微積分難倒了。但小明編程能力很強(qiáng),于是他就突發(fā)奇想,看能不能用編

5、程的方法來(lái)幫助理解數(shù)學(xué)的學(xué)習(xí)。以下是他想求解的問題:y=121x2+4xdx請(qǐng)編程求解y的值,并分析y的值與x的關(guān)系。(提示:如下圖,按照積分的原理,將函數(shù)區(qū)間切分為非常小的長(zhǎng)方形,其中長(zhǎng)方形的寬度為切分的間距x,長(zhǎng)方形的高度為方格所在橫坐標(biāo)對(duì)應(yīng)的函數(shù)值 f(xi),則圖中第i個(gè)小長(zhǎng)方形(陰影部分)面積為Si=x*f(xi),而最終函數(shù)的積分值為所有小方格的面積之和。)0.128二、二、方案設(shè)計(jì)與論證將不規(guī)則圖形分割成小矩形,最后求和。三、 程序運(yùn)行結(jié)果(截圖)四、 心得體會(huì)將不規(guī)則圖形分的越多,面積越準(zhǔn)確。五、 參考資料與致謝查找積分的幾何意義。六、源程序#include<stdio.

6、h>#define N 100000int main()float x,sum;int i;for(i=1,sum=0,x=1;i<=N;i+)sum=sum+(1.0/(x*x+4*x)*(1.0/N);x=x+1.0/N;printf("%f",sum);return 0;求離群點(diǎn)一、 設(shè)計(jì)內(nèi)容隨機(jī)生成一組位于二維坐標(biāo)系中的點(diǎn)集(集合大小小于50),點(diǎn)集中每個(gè)點(diǎn)的位置由x軸分量和y軸分量組成,且1x80, 1y80。 求這組點(diǎn)集中的離群點(diǎn)。(離群點(diǎn)定義:遠(yuǎn)離點(diǎn)集一般水平的極端大值和極端小值)。要求:若有離群點(diǎn),請(qǐng)輸出離群點(diǎn)的坐標(biāo);若無(wú)離群點(diǎn),則輸出“No o

7、utliers!”,將離群點(diǎn)在終端用#輸出表示,非離群點(diǎn)用*輸出表示,顯示方式如下圖所示。提示:離群點(diǎn)判斷的方法不止一種,例如,可借助點(diǎn)集所有的數(shù)據(jù)的平均值為圓心,以所有點(diǎn)集到圓心的平均距離為半徑,所構(gòu)成的圓。在圓中的為正常點(diǎn),否則為離群點(diǎn)。二、方案設(shè)計(jì)與論證開一個(gè)90*90的數(shù)組,并隨機(jī)生成50個(gè)點(diǎn)。再開一個(gè)90*90的數(shù)組,計(jì)算50個(gè)點(diǎn)到80*80個(gè)點(diǎn)的平均距離,找到最小的(離群點(diǎn))。計(jì)算所有點(diǎn)到離群點(diǎn)的距離,小于等于就為正常點(diǎn),否則為離群點(diǎn)。三、程序運(yùn)行結(jié)果(截圖)四、心得體會(huì)由于行間距不對(duì),所以看起來(lái)很怪,本來(lái)是正方形的。沒有離群點(diǎn)的概率太小了.五、參考資料與致謝參考題目的提示來(lái)寫的。

8、參考隨機(jī)數(shù)生成法。六、源程序#include<stdio.h>#include<time.h>#include<math.h>#define MAX 80#define MIN 1int main()int a9090,b170;float r9090,min;int i,j,k,m,n,q=0,x,y,l;srand(unsigned)time(NULL);for(i=1;i<=80;i+)/準(zhǔn)備工作,全為0for(j=1;j<=80;j+)aij=0;rij=0.0;for(1;1;1)for(i=1;i<=160;i+)/取隨機(jī)數(shù)bi

9、=rand()%(MAX-MIN+1)+MIN;for(j=2;j<=160;j=j+2)m=bj;n=bj-1;if(amn=1)continue;else if(amn!=1)amn=1;q+;if(q=50)break;if(q<50)continue;else if(q=50)break;for(i=1;i<=80;i+)/計(jì)算平均圓心距for(j=1;j<=80;j+)for(m=1;m<=80;m+)for(n=1;n<=80;n+)if(amn=1)x=m-i;x=abs(x);x=x*x;y=n-j;y=abs(y);y=y*y;rij=ri

10、j+sqrt(x+y);rij=rij*1.0/50;for(i=1,min=r11;i<=80;i+)/找最小for(j=1;j<=80;j+)if(rij<=min)min=rij;m=i;n=j;else if(rij>min)min=min;for(l=0,i=1,k=0;i<=80;i+)/判斷該點(diǎn)是什么類型for(j=1;j<=80;j+)if(aij=1)x=m-i;x=abs(x);x=x*x;y=n-j;y=abs(y);y=y*y;if(sqrt(x+y)<=min)aij=3;else if(sqrt(x+y)>min)ai

11、j=2;l+;if(l=0)printf("No outliers!");elsefor(i=1;i<=80;i+)/輸出for(j=1;j<=80;j+)if(aij=0)printf(" ");else if(aij=2)printf("#");else if(aij=3)printf("*");printf("n");printf("n");n=80-n;printf("(%d,%d)n",m,n);return 0;2階曲線繪制一、 設(shè)

12、計(jì)內(nèi)容2階曲線公式可描述為其中,為曲線的參數(shù),由用戶手動(dòng)輸入。請(qǐng)編程繪制出該曲線的圖形,坐標(biāo)原點(diǎn),y軸正方向,x軸正方向,如下圖所示提示:可利用二維數(shù)組預(yù)先計(jì)算并存儲(chǔ)每個(gè)點(diǎn)(圖中用“*”表示)的坐標(biāo),然后利用循環(huán)一次性輸出圖形。二、方案設(shè)計(jì)與論證開一個(gè)400*80的二維數(shù)組(以中心點(diǎn)做原點(diǎn))。再開一個(gè)數(shù)組,計(jì)算-4040的x代入方程的所得值。如果這個(gè)值大于200或小于-200,就計(jì)算下一個(gè)。輸出。三、程序運(yùn)行結(jié)果(截圖)四、心得體會(huì)由于WIN10于VC6.0不兼容,輸出圖形變形,于是輸出一行一個(gè)回車。五、參考資料與致謝六、源程序#include<stdio.h>int main()

13、float a0,a1,a2,a42090,zhi90;float ;int i,j,k,x,y;scanf("%f %f %f",&a0,&a1,&a2);for(i=1;i<=401;i+)/準(zhǔn)備for(j=1;j<=85;j+)aij=0;for(i=1;i<=79;i+)/建坐標(biāo)系a201i=1;for(i=1;i<=401;i+)ai40=2;a140=6;a20140=4;a20179=5;for(i=-39,j=1;i<=39;i+,j+)/算y值z(mì)hij=a0+a1*i+a2*i*i;for(i=1;i&

14、lt;=79;i+)/計(jì)算對(duì)應(yīng)坐標(biāo)y=zhii;if(y>=200|y<=-200)continue;y=201-y;ayi=3;for(i=1;i<=401;i+)for(j=1;j<=79;j+)if(aij=0)printf(" ");else if(aij=1)printf("-");else if(aij=2)printf("|");else if(aij=3)printf("*");else if(aij=4)printf("+");else if(aij=5

15、)printf(">");else if(aij=6)printf("");printf("n");return 0;概率法求圓周率一、 設(shè)計(jì)內(nèi)容如下圖所示,設(shè)一直角坐標(biāo)系中,有一邊長(zhǎng)為1的正方形,以原點(diǎn)為中心1為半徑,在正方形中畫一扇形(1/4圓)。概率法求解圓周率的過程為:隨機(jī)產(chǎn)生n個(gè)范圍在(0,1)之間的點(diǎn),若其中有m個(gè)點(diǎn)落于扇形中,則提示:根據(jù)圓的特點(diǎn),判斷隨機(jī)生成的點(diǎn)是否在扇形內(nèi)。二、方案設(shè)計(jì)與論證隨機(jī)產(chǎn)生01之間的小數(shù),賦值給x,y。計(jì)算x2+y2是否<=1。循環(huán),讓數(shù)據(jù)更準(zhǔn)確。三、程序運(yùn)行結(jié)果(截圖)四、心得

16、體會(huì)隨機(jī)數(shù)并不是真正意義上的隨機(jī)數(shù)。五、參考資料與致謝RAND_MAX是rand()隨機(jī)產(chǎn)生的最大數(shù)。六、源程序#include<stdio.h>#include<time.h>#include<math.h>#include<stdlib.h>int main()float x,y,pi;int i,k;srand(unsigned)time(NULL);for(k=0,i=1;i<=10000;i+)x=rand()*1.0/RAND_MAX;y=rand()*1.0/RAND_MAX;if(sqrt(x*x+y*y)<=1)k+

17、;pi=4*(k*1.0/10000);printf("%f",pi);return 0;推箱子游戲設(shè)計(jì)一、 設(shè)計(jì)內(nèi)容功能:實(shí)現(xiàn)簡(jiǎn)易小人推箱子游戲,游戲過程:(1)初始時(shí),小人在窗口的左上角位置,箱子在小人的右側(cè);(2)在小人前方隨機(jī)生成若干個(gè)阻礙物;(3)在窗口的右側(cè)隨機(jī)生成一個(gè)出口;(4)要求小人能夠?qū)⑾渥油频酱翱谟覀?cè)出口?;疽螅?用鍵盤上、下、左、右按鍵控制小人移動(dòng)。2在小人前方隨機(jī)生成若干個(gè)阻礙物和一個(gè)箱子。3小人必須推箱子,而不能拉箱子。4小人必須穿過阻礙物之間的空隙,到達(dá)出口。5 小人進(jìn)入出口時(shí)提示游戲成功。6小人無(wú)路可走時(shí)提示游戲失敗。7 小人每移動(dòng)一步在

18、窗口的左下角顯示當(dāng)前已經(jīng)移動(dòng)的步數(shù)。8用戶可自行放棄游戲提示:小人可以用“”表示(ASCII碼值為12),阻礙物可用“”表示(ASCII碼值為5),推箱子可用“”表示(ASCII碼值為30)。二、方案設(shè)計(jì)與論證利用整形二維數(shù)組,圍一個(gè)(025)*(081)的空間。全部賦值為0。最邊上一圈為墻,用1表示。隨機(jī)生成墻,出口。人用7表示。方塊用4表示。用Getch讀取上下左右,計(jì)算人,方塊的坐標(biāo)。輸出,逢0輸出空格,逢1輸出墻,逢7輸出人,逢4輸出方塊。三、程序運(yùn)行結(jié)果(截圖)四、心得體會(huì)上下左右的讀入有點(diǎn)小困難,在網(wǎng)上找了好久。控制臺(tái)行間距太大,看起來(lái)很難受。五、參考資料與致謝按照網(wǎng)上的方法,ge

19、tch上下左右,輸出前都有“-32”上72下80左75右77六、 源程序#include<stdio.h>#include<stdlib.h>#include<time.h>int main()int a40100;int i,j,k,m,n,p,q,bu,cheng,zhong;srand(unsigned)time(NULL);for(i=1;i<=23;i+)/畫空氣0for(j=1;j<=80;j+)aij=0;for(i=0;i<=85;i+)a0i=1;a24i=1;for(i=0;i<=30;i+)ai0=1;ai81=

20、1;m=rand()%21+2;/畫隨機(jī)墻1 n=rand()%21+2;p=rand()%21+30;for(1;1;1)q=rand()%21+30;if(q>(p+4)|q<(p-4)break;for(i=1;i<=23;i+)if(i=m)continue;aip=1;am+1p=0;for(i=1;i<=23;i+)if(i=n)continue;aiq=1;an+1q=0;zhong=rand()%21+2;/隨機(jī)終點(diǎn)azhong-180=1;azhong-179=1;azhong+180=1;azhong+179=1;a11=7;/人a22=4;/箱子f

21、or(bu=0,cheng=9;1;1)for(i=1;i<=23;i+)for(j=1;j<=80;j+)if(aij=0)printf(" ");else if(aij=1)printf("%c",5);else if(aij=7)printf("%c",12);m=i;n=j;else if(aij=4)printf("%c",30);p=i;q=j;printf("n");printf("總共%d步。(ESC退出)n",bu);if(cheng=1)pri

22、ntf("游戲成功!");break;else if(cheng=0)printf("游戲失?。?quot;);break;k=getch();if(k=27)break;if(k=75)/左if(q=(n-1)&&m=p)/箱子在左邊if(amq-1=1);/箱子左邊是墻else if(amq-1!=1)/箱子左邊不是墻amq=0;amq-1=4;amn=0;amn-1=7;bu+;q=q-1;n=n-1;else if(q!=(n-1)&&m=p)|m!=p)/箱子不在if(amn-1=1);/人左邊是墻else if(amn-1!=1)/人左邊不是墻amn=0;amn-1=7;bu+;n=n-1;else if(k=77)if(q=(n+1)&&

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論