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

下載本文檔

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

文檔簡介

1、分屏處理數(shù)據(jù)系統(tǒng)一、設(shè)計(jì)內(nèi)容隨機(jī)產(chǎn)生 1000 個(gè)數(shù),并分屏顯示 (每行顯示 10 個(gè)數(shù)字,每頁顯示 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è)回車;五、參考資料與致謝- 1 -查找書本清屏

2、,隨機(jī)函數(shù)的寫法。六、源程序#include<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+)/顯示十頁for(j=1,x=1;j<=10;j+)/顯示十行for(k=1;k

3、<=10;k+,x+)/顯示十個(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(" 請按回車鍵進(jìn)入下一屏。");getchar();/下一頁system("cls");/清屏return 0;int ma(int a120)/最大int i,z;for(i=1,z=0

4、;i<=100;i+)if(ai>=z)z=ai;- 2 -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;- 3 -求積分一、 設(shè)計(jì)內(nèi)容小明最近在學(xué)高等數(shù)學(xué),被數(shù)學(xué)里面的微積

5、分難倒了。但小明編程能力很強(qiáng),于是他就突發(fā)奇想,看能不能用編程的方法來幫助理解數(shù)學(xué)的學(xué)習(xí)。以下是他想求解的問題:請編程求解 錯(cuò)誤 ! 未找到引用源。 的值,并分析 錯(cuò)誤 !未找到引用源。 的值與 錯(cuò)誤 ! 未找到引用源。 的關(guān)系。(提示:如下圖,按照積分的原理,將函數(shù)區(qū)間切分為非常小的長方形,其中長方形的寬度為切分的間距錯(cuò)誤 !未找到引用源。 ,長方形的高度為方格所在橫坐標(biāo)對應(yīng)的函數(shù)值錯(cuò)誤 !未找到引用源。 ,則圖中第 錯(cuò)誤 !未找到引用源。個(gè)小長方形(陰影部分)面積為 錯(cuò)誤 !未找到引用源。 ,而最終函數(shù)的積分值為所有小方格的面積之和。 ) 0.128y = f( x)| z xi|z二、?

6、 x二、方案設(shè)計(jì)與論證將不規(guī)則圖形分割成小矩形,最后求和。三、 程序運(yùn)行結(jié)果(截圖)四、 心得體會(huì)將不規(guī)則圖形分的越多,面積越準(zhǔn)確。五、 參考資料與致謝查找積分的幾何意義。六、源程序#include<stdio.h>- 4 -#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;- 5 -求離群點(diǎn)一、 設(shè)計(jì)內(nèi)容隨機(jī)生成一組位于二維坐標(biāo)系中的

7、點(diǎn)集(集合大小小于50),點(diǎn)集中每個(gè)點(diǎn)的位置由 x 軸分量和 y 軸分量組成, 且 1 錯(cuò)誤 !未找到引用源。 x 錯(cuò)誤 !未找到引用源。 80, 1 錯(cuò)誤 !未找到引用源。 y 錯(cuò)誤 ! 未找到引用源。 80。求這組點(diǎn)集中的離群點(diǎn)。 (離群點(diǎn)定義: 遠(yuǎn)離點(diǎn)集一般水平的極端大值和極端小值)。要求:若有離群點(diǎn),請輸出離群點(diǎn)的坐標(biāo);若無離群點(diǎn),則輸出“No outliers! ”,將離群點(diǎn)在終端用#輸出表示,非離群點(diǎn)用* 輸出表示,顯示方式如下圖所示。提示:離群點(diǎn)判斷的方法不止一種, 例如,可借助點(diǎn)集所有的數(shù)據(jù)的平均值為圓心,以所有點(diǎn)集到圓心的平均距離為半徑,所構(gòu)成的圓。在圓中的為正常點(diǎn),否則為離

8、群點(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ì)- 6 -由于行間距不對,所以看起來很怪,本來是正方形的。沒有離群點(diǎn)的概率太小了.五、參考資料與致謝參考題目的提示來寫的。參考隨機(jī)數(shù)生成法。六、源程序#include<stdio.h>#include<time.h>#include<math.h>#define MAX 80#define

9、 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=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

10、+;if(q=50)break;if(q<50)continue;else if(q=50)break;- 7 -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=rij+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

11、)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+)- 8 -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)aij=2;l+;if(l=0)printf("No outliers!");elsefor(i=1;i<=80;i+)/ 輸出for(j=1;j<

12、;=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;- 9 -2 階曲線繪制一、 設(shè)計(jì)內(nèi)容2 階曲線公式可描述為其中,為曲線的參數(shù),由用戶手動(dòng)輸入。請編程繪制出該曲線的圖形,坐標(biāo)原點(diǎn),y 軸正方向, x 軸正方向,如下圖所示提示:可利用二維數(shù)組

13、預(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é)果(截圖)-10-四、心得體會(huì)由于 WIN10 于 VC6.0 不兼容,輸出圖形變形,于是輸出一行一個(gè)回車。五、參考資料與致謝六、源程序#include<stdio.h>int main()float a0,a1,a2,a42090,zhi90;float ;int i,j,k,x,y;scanf("

14、;%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 值zhij=a0+a1*i+a2*i*i;for(i=1;i<=79;i+)/ 計(jì)算對應(yīng)坐標(biāo)y=zhii;if(y>=200|y<=-200)continu

15、e;-11-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)printf(">");else if(aij=6)printf(&quo

16、t;");printf("n");return 0;-12-概率法求圓周率一、 設(shè)計(jì)內(nèi)容如下圖所示, 設(shè)一直角坐標(biāo)系中,有一邊長為1 的正方形, 以原點(diǎn)為中心1 為半徑,在正方形中畫一扇形(1/4 圓)。概率法求解圓周率的過程為:隨機(jī)產(chǎn)生n 個(gè)范圍在( 0,1)之間的點(diǎn),若其中有m 個(gè)點(diǎn)落于扇形中,則y1O1x提示:根據(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é)果(截圖)四、心得體會(huì)隨機(jī)數(shù)并不是真正意義上的隨機(jī)數(shù)。五、參考資料與致謝

17、RAND_MAX是 rand()隨機(jī)產(chǎn)生的最大數(shù)。六、源程序-13-#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+;pi=4*(k*1.0/10000);pr

18、intf("%f",pi);return 0;-14-推箱子游戲設(shè)計(jì)一、 設(shè)計(jì)內(nèi)容功能:實(shí)現(xià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 小人無路可走時(shí)提示游戲失敗。7 小人每移動(dòng)一步在窗口的左下角

19、顯示當(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 輸出方塊。-15-三、程序運(yùn)行結(jié)果(截圖)四、心得體會(huì)上下左右的讀入有點(diǎn)小困難,在網(wǎng)上找了好久??刂婆_(tái)行間距

20、太大,看起來很難受。五、參考資料與致謝按照網(wǎng)上的方法,getch 上下左右,輸出前都有“-32”上 72下 80左 75右 77六、 源程序-16-#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=

21、1;a24i=1;for(i=0;i<=30;i+)ai0=1;ai81=1;m=rand()%21+2;/ 畫隨機(jī)墻 1n=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;-17-an+1q=0;zhong=rand()%21+2;/ 隨機(jī)終點(diǎn)azhong-180=1;azhong-179=

22、1;azhong+180=1;azhong+179=1;a11=7;/人a22=4;/箱子for(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

23、("總共 %d步。( ESC退出) n",bu);if(cheng=1)printf("游戲成功! ");break;else if(cheng=0)-18-printf("游戲失敗! ");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)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論