久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

C語言課設(shè)實習報告[優(yōu)秀范文5篇]

時間:2019-05-14 19:28:48下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《C語言課設(shè)實習報告》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《C語言課設(shè)實習報告》。

第一篇:C語言課設(shè)實習報告

C語言課程設(shè)計實習報告

班 級: 學生姓名: 學 號: 指導老師: 日 期:

目錄

一、程序分析與設(shè)計.......................................................................................................................1

二、流程圖.......................................................................................................................................1

三、源程序清單...............................................................................................................................5

四、調(diào)試過程.................................................................................................................................10

五、程序有待改進的地方.............................................................................................................11

六、本次實習的收獲和建議.........................................................................................................11 附錄................................................................................................................................................11

C語言課程設(shè)計實習報告

一、程序分析與設(shè)計(標題四號宋體加黑,正文五號宋體,行間距-固定值行縮進2字符)

18,首

1、先用記事本編輯文件“文件數(shù)據(jù).txt”存儲一個班學習成績和“學分.txt” 存儲科目學分信息。然后在C環(huán)境下,建立一個學生信息的結(jié)構(gòu)體和學分信息的結(jié)構(gòu)體,用r方式打開上述文件,再用fscanf讀入。

2、利用循環(huán)使每個學生的三門功課的成績與對應(yīng)學分相乘再求和,然后再把和除以學分的總和就得到了平均成績。接著用冒泡法利用平均分的高低排出名次。最后用fprintf將每個學生的信息寫入到“學生成績及排名.txt”文件中。

3、利用for循環(huán)求出全班學生一門科目的平均分,利用switch或if求出分數(shù)段(60以下,60~69,70~79,80~89,90以上)的學生人數(shù);結(jié)果寫入文件“分數(shù)段及科目平均分.txt”中。

4、按照

2、中求出的信息,分別用printf在屏幕中打印每一位學生的學號、姓名、成績、平均分及排名情況,同時注意打印到屏幕上的直觀美觀問題。

5、在for循環(huán)中if語句與60 比較大小,用printf直接在屏幕上打印不及格學生的信息及科目等。

6、創(chuàng)建一個函數(shù)打印優(yōu)等生信息,用for循環(huán)if判斷符合條件的學生成績,用printf在屏幕上打印出優(yōu)等生的全部信息。

7、該課設(shè)程序中多次用到for及if語句,其中注意全局變量的應(yīng)用,stu[i].score.[j]中的i,j就可作為全局變量,以免多次在函數(shù)中定義。

8、用一個函數(shù)被主函數(shù)調(diào)用,該函數(shù)制作菜單。。。。

二、流程圖

地信10902 讀文件數(shù)據(jù)和學分文件

寫文件學生成績及排名

C語言課程設(shè)計實習報告

寫文件分數(shù)段及科目平均分

計算科目平均分

計算平均分及排名函數(shù)

打印信息函數(shù)

地信10902

不及格函數(shù)

優(yōu)秀學生函數(shù)

分數(shù)段函數(shù)

C語言課程設(shè)計實習報告

三、源程序清單(此部分采用小五號宋體,行間距-固定值14)

#include #include #include #define M 15 #define N 3 struct student {

struct XueFen {

struct FenShuDuan { char name[20];

int num[N];}FSD[5]={{“分數(shù)>=90”,0,0,0},{“分數(shù)>=80”,0,0,0},{“分數(shù)>=70”,0,0,0},{“分數(shù)>=60”,0,0,0},{“分數(shù)< 60”,0,0,0}};int i,j;FILE *fp;float average[N];

void readFromTxtFile();void writeToTxtFile1();void writeToTxtFile2();void CalculateAverageScore();void CalculateAverageScoreOfEveryCourse();void Print();void FenShuDuan();void NoPass();void GoodStudent();void menu();

void main(){ int num;char subject[20];float xuefen;int num;char name[10];float average;int rank;

int score[N];}stu[M];}xf[N];5

地信10902

readFromTxtFile();CalculateAverageScoreOfEveryCourse();writeToTxtFile1();

CalculateAverageScore();

FenShuDuan();

writeToTxtFile2();menu();}

//讀文本文件 void readFromTxtFile(){

}

//寫文件1 void writeToTxtFile1(){

if((fp=fopen(“學生成績及排名.txt”,“w”))==NULL){

} fputs(“ 序號t姓名t英語t數(shù)學tC程序設(shè)計t平均分t排名n”,fp);for(i=0;i

} for(j=0;j

} { char title[50];fgets(title,50,fp);printf(“can not open the file!n”);exit(0);

for(i=0;i

C語言課程設(shè)計實習報告

}

//寫文件2 void writeToTxtFile2(){ if((fp=fopen(“分數(shù)段及科目平均分.txt”,“w”))==NULL)} fclose(fp);{

printf(“can not open the file!n”);

exit(0);}

fputs(“tt英語t數(shù)學tC程序設(shè)計n”,fp);for(i=0;i<5;i++)

{

fprintf(fp,“%4s”,FSD[i].name);

for(j=0;j

{

fprintf(fp,“%10d”,FSD[i].num[j]);

}

fputs(“n”,fp);}

fputs(“n科目平均分”,fp);for(j=0;j

fprintf(fp,“%10.1f”,average[j]);} printf(“n”);

fclose(fp);}

//算平均分及排名

void CalculateAverageScore(){ float sum1,sum2;

for(i=0;i

for(j=0;j

{

sum1+=stu[i].score[j]*xf[j].xuefen;

sum2+=xf[j].xuefen;

}

stu[i].average=sum1/sum2;} for(i=0;i

stu[i].rank=1;for(j=0;j

地信10902

}

} {

} if(stu[i].average

void CalculateAverageScoreOfEveryCourse(){

int t,sum;

for(j=0;j

{

sum=0;for(i=0;i

t=stu[i].score[j];

sum+=t;

average[j]=sum/(M*1.0);

}

}

//計算分數(shù)段 void FenShuDuan(){

}

//打印內(nèi)容 void Print(){ //屏幕上打出平均分及排名

printf(“--------------------------n”);

printf(“序號t姓名t英語t數(shù)學tC程序設(shè)計t平均分t名次n”);for(i=0;i

for(j=0;j

} if(stu[i].score[j]>=90)

else if(stu[i].score[j]>=80)

else if(stu[i].score[j]>=70)else if(stu[i].score[j]>=60)else if(stu[i].score[j]<60)FSD[4].num[j]++;}

FSD[0].num[j]++;

FSD[1].num[j]++;

FSD[2].num[j]++;

FSD[3].num[j]++;8

C語言課程設(shè)計實習報告

for(i=0;i

printf(“%-5d%6s”,stu[i].num,stu[i].name);

for(j=0;j

{ } printf(“%9d”,stu[i].score[j]);

printf(“%14.1f%8dn”,stu[i].average,stu[i].rank);

}

}

//不及格統(tǒng)計 void NoPass(){

}

//優(yōu)等生信息 void GoodStudent(){

printf(“n|*|--------------------|*|n”);

printf(“n優(yōu)秀學生信息n”);printf(“--------------------n”);printf(“學號t姓名t英語t數(shù)學tc語言t平均分t排名n”);for(i=0;i

}

for(j=0;j

} if(stu[i].score[j]<60){

printf(“n不及格學生信息n”);printf(“n|*|--------------------|*|n”);printf(“tt英語t數(shù)學tc語言n”);printf(“n科目平均分”);for(j=0;j

{ printf(“%4d%8s%8s%8.1f%8dn”,stu[i].num,stu[i].name,xf[j].subject,xf[j].xuefen,stu[i].score[j]);

{ 9

地信10902

m=0;

n=0;

for(j=0;j

{

if(stu[i].score[j]==100)m++;

if(stu[i].score[j]>=90)n++;

}

if(stu[i].average>=90||stu[i].rank<=3||(stu[i].average>=85&&(m>=1||n>=2)))

{

}

} printf(“n|*|--------------------|*|n”);

} printf(“n%2d%8s”,stu[i].num,stu[i].name);for(j=0;j

void menu()

{ char ch1;

do{ printf(“nnnnnnnnnn”);

printf(“

************學 生 成 績 管 理 系 統(tǒng)****************n”);

printf(“

--------------------nn”);

printf(“

1.計算平均分及名次nn”);

printf(“

2.統(tǒng)計不及格情況nn”);

printf(“

3.輸出優(yōu)秀學生nn”);

printf(“

輸入選擇序號n”);

while((ch1=getchar(),ch1!='1'&&ch1!='2'&&ch1!='3'));

switch(ch1)

{case '1' : CalculateAverageScore(),CalculateAverageScoreOfEveryCourse(),Print();break;

case '2' : NoPass();break;

case '3' : GoodStudent();

}

}while(1);

}

四、調(diào)試過程

在程序運行的過程中,出現(xiàn)了很多的錯誤。有很復雜的問題,也不乏許多低級的錯誤。

1、在寫入文件的時候,首先用的是fwrite,而在讀入文件的時候用的是fread,現(xiàn)在知道這兩個語句都只是對二進制的文件進行操作,實際上我們要用到的fscanf、fprintf這兩個語句。

2、在讀文件中經(jīng)常讀不出文件,其實是打開文件路徑的問題,經(jīng)老師講解明白了絕對路徑與相對路徑的區(qū)別,當再次調(diào)試后可以正確打開文件。

3、在讀文件中,源文件有一個中文表頭,按原代碼讀出皆為零,后經(jīng)fgets(title,50,fp);可正確讀出,在寫文件時就用fputs在文件中打出表頭。

C語言課程設(shè)計實習報告

4、在編譯過程中經(jīng)常出現(xiàn)低級錯誤,有時標點用的中文格式,有時都忘在語句后加分號,由于長時間沒運用該軟件的結(jié)果,有的函數(shù)的格式都會錯誤。例如忽視了變量類型,用錯誤的格式輸出,導致錯誤。不過,在這個過程中都有一定收獲。

5、對fprintf及fscanf不太熟悉,在讀寫文件中多次用到這些函數(shù),加深了對這些函數(shù)的及文件讀寫的運用。

6、忘記變量初始化,導致運行錯誤。在主函數(shù)中調(diào)用函數(shù)中沒注意調(diào)用函數(shù)的順序的,導致結(jié)果出現(xiàn)問題。

7、在判斷相等時,用“=”代替了“==”,在C語言中“=”是賦值運算符,“==”是關(guān)系運算符。

8、對于雙層for語句循環(huán)中,在for后面第一個語句中加了;導致for循環(huán)不成功,對于for中的變量重復定義,于是用了全局變量。

五、程序有待改進的地方

1、菜單過于簡單,沒有功能打印出單個學生的成績信息,部分信息未打印出屏幕。

2、對于讀文件,本程序讀兩個文件,而且第二個文件數(shù)據(jù)不多,需改進把該文件加到文件1中一次都讀出。

3、.對于原文件表頭無信息,不能判斷學生成績的英語、數(shù)學、c語言分別是哪個分數(shù)只能本人能明白,需改進加入一個表頭。

六、本次實習的收獲和建議

附錄(此部分采用小五號宋體,行間距-固定值14)

1、原始數(shù)據(jù) 文件數(shù)據(jù).txt 01

陳志

02

程建

03

鄧達

04

汪嘯

05

夏雨

06

劉歡

07

楊丹

08

杜月

09

王波

林海

詹陽

馮峰

馬喜

吳立

李博

。。。

2、原始數(shù)據(jù) 學分.txt

01

英語

02

數(shù)學

03

c語言

4.5

地信10902

。。。

3、生成文件 學生成績及排名.txt 序號 姓名 英語 數(shù)學 C程序設(shè)計

平均分 排名 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 陳志 76 程建 76 鄧達 90 汪嘯 56 夏雨 73 劉歡 86 楊丹 76 杜月 64 王波 86 林海 85 詹陽 86 馮峰 76 馬喜 57 吳立 86 李博 76 89 89 95 53 56 46 76 79 92 86 95 54 80 76 72 78 78 98 80 45 60 75 80 89 96 59 87 89 73

80.17 6

80.17 6

94.43 1

64.61 13

57.61 15

65.39 12

75.61 8

74.17 10

88.74 4

92.26 2

63.61 14

74.74 9

84.57 5

73.78 11

數(shù)學

C程序設(shè)計 100

91.13 3

3、生成文件 分數(shù)段及科目平均分.txt 英語

分數(shù)>=90 分數(shù)>=80 分數(shù)>=70 分數(shù)>=60

0 分數(shù)< 60 科目平均分

76.6

75.9

79.1。。。

4、打印信息

C語言課程設(shè)計實習報告

地信10902

第二篇:交通工程課設(shè)實習報告

課設(shè)實習報告

實習目的

1.研究西安市地鐵使用特征。

2.通過調(diào)查了解目前開通的地鐵1、2線路運營存在的問題,分析并提出相應(yīng)的解決措施,為后續(xù)開通的線路積累相關(guān)經(jīng)驗。

3.調(diào)查西安居民日常交通出行中對地鐵的選擇需求,以及使用地鐵與其他交通方式的結(jié)合程度,對包括公交地鐵換乘銜接在內(nèi)的各交通方式銜接提出合理性建議。

4.對西安地鐵運營、維修和管理進行認知性實習,使同學們增加這方面的了解。

實習時間

12月16日-12月20日

其中,16號進行地鐵使用調(diào)查問卷的發(fā)放;18號到西安地鐵公司進行參觀認知實習;其余時間在校內(nèi)進行內(nèi)業(yè)實習-數(shù)據(jù)的分析處理和實習報告的撰寫。

實習內(nèi)容

3.1 西安地鐵發(fā)放調(diào)查問卷

3.1.1 調(diào)查對象

西安地鐵1、2號線的使用者

3.1.2 調(diào)查方法

問卷法(簡單隨機抽樣)

課設(shè)實習報告

3.1.3 調(diào)查過程

⑴15號在修遠教學樓由學長對我們進行了實習內(nèi)容的簡單講解和安排,并對調(diào)查問卷進行了編號和發(fā)放

⑵16號早上7:00學校南門集合乘車一同前往鳳城五路,并在此換乘地鐵來到發(fā)放調(diào)查問卷的起點-北客站,以小組成員間自由組合的形式開始調(diào)查,大家在此乘坐地鐵并在車廂內(nèi)對乘客進行了調(diào)查問卷的相關(guān)問題的詢問和填寫。用此種方式分別對早高峰、平峰、晚高峰進行了調(diào)查問卷的發(fā)放。

⑶16號晚上每個成員將自己收集到的信息進行了整理并錄入了表格。⑷實習余下時間小組成員對收集到數(shù)據(jù)進行了分析和整理,并提出了自己的意見和看法。

3.2 西安地鐵公司參觀

3.2.1 調(diào)查過程

⑴18號早上九點西區(qū)食堂東門集合乘坐校車到西安地鐵公司

⑵在維修和檢查車間對相關(guān)程序進行了參觀和了解,在相關(guān)人員的講解下對列車日常維修保養(yǎng)的基本知識簡單的了解,并參觀了列車駕駛室,向帶領(lǐng)我們的工作人員提出了我們的一些困惑。

⑶參觀了列車運營的調(diào)度室,了解了關(guān)于地鐵日常運營和事故減排的基本知識。

⑷中午12:00乘校車返回學校,實習參觀結(jié)束。

課設(shè)實習報告

3.2.2 調(diào)查心得

今天,在老師及地鐵工作人員的帶領(lǐng)下,我們參觀了西安地鐵分公司,對地鐵的運營進行了簡單的了解。

首先,我們參觀了地鐵車輛檢查及日常養(yǎng)護地方。在地鐵工作人員的介紹下,又從新的角度認識了地鐵。地鐵不再是簡簡單單搭載乘客的工具,而是工作人員貫穿了很多心血的地方。每一天,車輛都要進入這里進行修撿,確保車輛運行的萬無一失和乘客的安全。在這個大的維修室里,停放著很多備用和正在修檢的車輛,有三個階梯分別通向車底、車廂內(nèi)部及車頂。在車的頂部,配置著1500V的電壓,相當危險。整個大的維修室里,有專門對車輪維修的地方,保證車輛運

第三篇:C語言課設(shè) 貪食蛇 含完整代碼 課設(shè)報告

《c語言課程設(shè)計》課程設(shè)計報告

課程主題:

聰明的小蛇 Smart Snake 需求分析

【闡述課程設(shè)計應(yīng)該完成的功能】

使用鍵盤的上下左右鍵來控制蛇的運動方向,ESC鍵退出,顯示現(xiàn)在得分,三個難度選擇(每一關(guān)地圖不同,小蛇移動速度不同)系統(tǒng)分析和設(shè)計

2.1 數(shù)據(jù)結(jié)構(gòu)的設(shè)計和選擇的理由

本游戲中涉及的主要數(shù)據(jù)結(jié)構(gòu)是如何表示運動的蛇、食物狀態(tài)等問題。

2.1.1 蛇是由一連串舉行組成,用結(jié)構(gòu)體數(shù)組表示蛇每一節(jié)的橫縱坐標。用數(shù)組實現(xiàn)

struct Snake { int x[N];int y[N];int node;/*蛇的節(jié)數(shù)*/ int direction;/*蛇移動方向*/ int life;/* 蛇的生命,0活著,1死亡*/ }snake;//這是蛇的結(jié)構(gòu)體

小蛇是在不斷的運動的,我們研究蛇的運動可以發(fā)現(xiàn)這樣的特點: 1.蛇頭由鍵盤控制,在無操作的時候蛇需要以原來的方向繼續(xù)前進 2.運動時,蛇身后面一節(jié)移動到前面一節(jié)的位置。2.1.2 關(guān)于食物有兩個屬性: 1.坐標位置

2.狀態(tài):存在,或被吃。

(由于三者的存在狀態(tài)基本相同所以我們用一個結(jié)構(gòu)體表示)struct Food { int x;/*食物的橫坐標*/ int y;/*食物的縱坐標*/ int yes;/*判斷是否要出現(xiàn)食物的變量*/ }food;/*食物的結(jié)構(gòu)體*/

2.2 系統(tǒng)模塊劃分和模塊結(jié)構(gòu) 開始動畫

游戲開始界面 游戲過程界面 游戲結(jié)束界面 2.3 流程圖

2.4 數(shù)據(jù)類型、全局變量和函數(shù)說明

2.4.1數(shù)據(jù)類型&2.4.2全局變量 #include “stdafx.h” #include “graphics.h” #include “stdlib.h” #include “conio.h” #include “time.h” #include “stdio.h” #include “snake.h” #pragma comment(lib,“Winmm.lib”)//播放音樂 #ifndef SNAKE_H #define SNAKE_H #define LEFT 'a' #define RIGHT 'd' #define DOWN 's' #define UP 'w' #define ESC 27 #define N 200 #define ENTER 13 #define JACK 'j' #define KING 'k' #define LONG 'l' int score = 0;int Func = 0;int gamespeed = 200;//蛇運行速度 char mx1,mx2;int level=1;char string_score[100];char str[100];

2.5 涉及的函數(shù)

static void Init(void);/*圖形驅(qū)動*/ static void Close(void);/*圖形結(jié)束*/ static void Game_interface(void);/*游戲界面*/ static void GameOver(void);/*結(jié)束游戲*/ static void GamePlay(void);/*游戲過程*/ static void PrScore(void);/*輸出成績*/ static void textdown(void);//選關(guān)焦點鄉(xiāng)下 static void textup(void);//選關(guān)焦點向上 static void choose(void);//選關(guān)界面 static void difficult(void);//難度選擇 程序測試和運行結(jié)果

反復調(diào)試 效果良好,能正常運行 課程報告小結(jié)

【遇到的問題及解決方法分析等】

4.1小蛇和指示標走過有顯示

解決方法:每次都用一塊與背景色相同的的矩形覆蓋。

4.2食物出現(xiàn)在邊界上

解決方法:

if(level==1){ while(food.x%10!= 0)/*食物隨機出現(xiàn)后必須讓食物能夠在整格內(nèi),這樣才可以讓蛇吃到*/ food.x++;while(food.y%10!= 0)food.y++;food.yes = 0;/*畫面上有食物了*/ } if(level==2){while((food.x%10!= 0)||((food.x>=145)&&(food.x<=510))&&((food.y>=250)&&(food.y<=270)))/*食物隨機出現(xiàn)后必須讓食物能夠在整格內(nèi),這樣才可以讓蛇吃到*/ food.x++;while(food.y%10!= 0)food.y++;food.yes = 0;/*畫面上有食物了*/ }

/這段代碼保證了食物不被產(chǎn)生在障礙上 附錄 程序源代碼:

// mff.cpp : Defines the entry point for the console application.//

#include “stdafx.h” #include “graphics.h” #include “stdlib.h” #include “conio.h” #include “time.h” #include “stdio.h” #include “snake.h” #pragma comment(lib,“Winmm.lib”)//播放音樂

int score = 0;int Func = 0;int gamespeed = 200;//蛇運行速度 char mx1,mx2;int level=1;char string_score[100];char str[100];

static void Init(void);/*圖形驅(qū)動*/ static void Close(void);/*圖形結(jié)束*/ static void Game_interface(void);/*游戲界面*/ static void GameOver(void);/*結(jié)束游戲*/ static void GamePlay(void);/*游戲過程*/ static void PrScore(void);/*輸出成績*/ static void textdown(void);static void textup(void);static void choose(void);static void difficult(void);int _tmain(int argc, _TCHAR* argv[]){

}

/*圖形驅(qū)動*/ static void Init(void){ int gd=9,gm=2;

initgraph(&gd,&gm,“ ”);cleardevice();}

/* 開始畫面,左上角坐標為(,),右下角坐標為(,)的圍墻*/ static void Game_interface(void){ int i;int j;int k;

setcolor(YELLOW);/*setbkcolor(LIGHTGREEN);*/ setlinestyle(PS_SOLID,0,1);/*設(shè)置線型*/ for(i=50;i<=600;i+=10)/*畫邊框*/ { rectangle(i,40,i+10,49);/*上邊框*/ rectangle(i,451,i+10,460);/*下邊框*/ }

if(level==2){ for(j=150;j<=500;j+=10)

} if(level==3)///*畫Level3下兩條橫向隔斷*/ rectangle(j,245,j+10,254);/*畫Level2下橫向隔斷*/ mciSendString(_T(“open 2.mp3 alias mymusic”), NULL, 0, NULL);mciSendString(_T(“play mymusic repeat”), NULL, 0, NULL);choose();return 0;system(“pause”);{ for(j=150;j<=500;j+=10)rectangle(j,180,j+10,189);for(k=150;k<=500;k+=10)rectangle(k,350,k+10,359);} for(i=40;i<=450;i+=10){ rectangle(50,i,59,i+10);/*左邊框*/ rectangle(601,i,610,i+10);/*右邊框*/ } }

/* 游戲主函數(shù)*/ static void GamePlay(void){ int i;srand(time(NULL));/*隨機數(shù)發(fā)生器*/ food.yes = 1;/*1表示需要出現(xiàn)新食物,0表示已經(jīng)存在食物*/ snake.life = 0;/*活著*/ snake.direction = 1;/*方向往右*/ snake.x[0] = 100;snake.y[0] = 100;snake.x[1] = 110;snake.y[1] = 100;snake.node = 2;/*節(jié)數(shù)*/ PrScore();/*輸出得分*/ while(1)/*可以重復玩游戲,壓ESC鍵結(jié)束*/ { while(!kbhit())/*在沒有按鍵的情況下,蛇自己移動*/ { if(food.yes == 1)/*需要出現(xiàn)新食物*/ { food.x = rand()%400 + 60;food.y = rand()%350 + 60;if(level==1){ while(food.x%10!= 0)/*食物隨機出現(xiàn)后必須讓食物能夠在整格內(nèi),這樣才可以讓蛇吃到*/ food.x++;while(food.y%10!= 0)food.y++;food.yes = 0;/*畫面上有食物了*/ } if(level==2){while((food.x%10!= 0)||((food.x>=145)&&(food.x<=510))&&((food.y>=250)&&(food.y<=270)))/*食物隨機出現(xiàn)后必須讓食物能夠在整格內(nèi),這樣才可以讓蛇吃到*/ food.x++;while(food.y%10!= 0)food.y++;food.yes = 0;/*畫面上有食物了*/ }

if(level==3){while((food.x%10!= 0)||(((food.x < 530)&&(food.x > 135))&&((food.y < 185)&&(food.y > 185)))||(((food.x < 530)&&(food.x > 135))&&((food.y < 379)&&(food.y > 350))))/*食物隨機出現(xiàn)后必須讓食物能夠在整格內(nèi),這樣才可以讓蛇吃到*/ food.x++;while(food.y%10!= 0)food.y++;food.yes = 0;/*畫面上有食物了*/ }

}

if(food.yes == 0)/*畫面上有食物了就要顯示*/ { setcolor(GREEN);rectangle(food.x,food.y,food.x + 10,food.y-10);}

for(i=snake.node-1;i>0;i--)/*蛇的每個環(huán)節(jié)往前移動,也就是貪吃蛇的關(guān)鍵算法*/ { snake.x[i] = snake.x[i-1];snake.y[i] = snake.y[i-1];} /*1,2,3,4表示右,左,上,下四個方向,通過這個判斷來移動蛇頭*/ switch(snake.direction){ case 1: snake.x[0] += 10;break;case 2:

snake.x[0]-= 10;break;case 3: snake.y[0]-= 10;break;case 4: snake.y[0] += 10;break;} /* 從蛇的第四節(jié)開始判斷是否撞到自己*/ for(i=3;i 595)||(snake.y[0] < 55)||(snake.y[0] > 455))/*蛇是否撞到墻壁*/ { GameOver();/*本次游戲結(jié)束*/ snake.life = 1;/*蛇死*/ } if(level==2){ if((snake.x[0] < 530)&&(snake.x[0] > 140)&&((snake.y[0] < 260)&&(snake.y[0] > 230)))/*蛇是否撞到level2中橫向隔斷*/ { GameOver();/*本次游戲結(jié)束*/ snake.life = 1;/*蛇死*/ } }

if(level==3){ if((((snake.x[0] < 520)&&(snake.x[0] > 145))&&((snake.y[0] < 195)&&(snake.y[0] > 175)))||(((snake.x[0] < 510)&&(snake.x[0] > 140))&&((snake.y[0] < 369)&&(snake.y[0] > 330))))/*蛇是否撞到level3中兩條橫向隔斷*/ { GameOver();/*本次游戲結(jié)束*/ snake.life = 1;/*蛇死*/ } }

if(snake.life == 1)/*以上兩種判斷以后,如果蛇死就跳出內(nèi)循環(huán),重新開始*/ break;if((snake.x[0] == food.x)&&(snake.y[0] == food.y))/*吃到食物以后*/ { setcolor(BLACK);/*把畫面上的食物東西去掉*/ rectangle(food.x,food.y,food.x+10,food.y-10);snake.x[snake.node] =-20;snake.y[snake.node] =-20;

/* 新的一節(jié)先放在看不見的位置,下次循環(huán)就取前一節(jié)的位置*/

snake.node++;/*蛇的身體長一節(jié)*/ food.yes = 1;/*畫面上需要出現(xiàn)新的食物*/ score += 10;PrScore();/*輸出新得分*/ } setcolor(RED);/*畫出蛇*/

for(i=0;i

if(snake.life == 1)/*如果蛇死就跳出循環(huán)*/ break;

key=getch();/*接收按鍵*/ if(key == ESC)break;/*按ESC鍵退出*/ switch(key){ case UP: if(snake.direction!= 4)/*判斷是否往相反的方向移動*/ snake.direction = 3;break;case RIGHT: if(snake.direction!= 2)snake.direction = 1;break;case LEFT: if(snake.direction!= 1)snake.direction = 2;break;case DOWN: if(snake.direction!= 3)snake.direction = 4;break;}

}/*endwhile(1)*/ }

/*游戲結(jié)束*/ static void GameOver(void){ cleardevice();PrScore();setcolor(RED);setfont(50, 0, _T(“楷體”));outtextxy(200, 200, _T(“GAME OVER”));getch();}

/*輸出成績*/ static void PrScore(void){ setfillstyle(YELLOW);// bar(235, 560, 300, 580);char s[5] = {'

主站蜘蛛池模板: 人人妻人人澡人人爽人人精品av| 亚洲2022国产成人精品无码区| 韩国理伦片一区二区三区在线播放| 精品国产拍国产天天人| 亚洲午夜不卡无码影院| 中文丝袜人妻一区二区| 久久久中文久久久无码| 亚洲欧美成aⅴ人在线观看| 亚洲区精品区日韩区综合区| 和黑人邻居中文字幕在线| 玩弄放荡人妻一区二区三区| 精产国品一区二区三产区| 97se亚洲国产综合自在线不卡| 国产福利一区二区三区在线视频| 99精品国产兔费观看久久| 好日子在线观看视频大全免费动漫| 夜夜爽久久精品国产三级| 亚洲av无码乱码国产精品fc2| 天天碰免费上传视频| 人人超碰人人超级碰国| 高清精品一区二区三区| 亚洲欧美综合精品成人网站| 久久久久久人妻一区二区三区| 成人午夜性a级毛片免费| 日韩综合无码一区二区| 国产日韩av免费无码一区二区三区| 欧美日本亚洲韩国一区| 亚洲欧美成人一区二区三区| 中文字幕无码日韩av| 亚洲国产精品无码久久| 精品久久久久香蕉网| 奇米影视7777狠狠狠狠影视| 国产精品久久久久久爽爽爽| 中文字幕无码精品亚洲资源网| 97人妻碰碰碰久久久久禁片| 少妇高潮流白浆在线观看| 无码专区中文字幕无码野外| 毛片免费全部无码播放| 国产精品爽爽久久久久久| 熟女视频一区二区在线观看| 永久免费毛片在线播放|