高級級語言課程設計實驗報告
實驗課程:課程設計 年級:2004級 實驗成績:
課程設計名稱 海龜作圖 姓名:
任課教師: 學號:2004810025 實驗日期:
壹、目的
通過編壹些小程序,鞏固和利用所學的知識,加強變成能力。
本課題涉及的知識內容:for循環嵌套,if語句,二維數組,文件創建與保存,自定義函數等高級語言內容。
二、內容與設計思想
1. 設計內容
海龜爬行過程中,筆朝下紀錄海龜爬行蹤跡,筆朝上則不紀錄並保存蹤跡,
1表示筆朝上,2表示朝下,3右轉彎,4左轉彎,5,x向前走x格,6打印
9結束
2. 主要代碼結構
main()函數調用了兩個函數
3. 主要代碼段分析。
譬如print函數,打印海龜蹤跡並保存。Step函數當筆朝上時海龜走過的數組值加壹
三、使用環境
本次上機實踐所使用的平臺和相關軟件。
平臺:Windows 2000
相關軟件:VC++
四、調試過程
1. 測試結果分析
經檢驗,運行結果正確
五、總結
1. 設計中遇到的問題及解決過程
調試過程中出現壹些邏輯和語法錯誤,但是語法錯誤容易糾正,而
邏輯錯誤則比較難糾正。有時會漏掉“,”,“;”,“}”等符號
2. 設計體會和收獲。
發現自己也能解決有點復雜的問題
六、附錄
1. 源代碼
/*海龜作圖,活動區域50*50,超出區域,海龜死亡遊戲完*/
#include<stdio.h>
void print(int [][49]);
void move(int [][49],int,int,int);
main()
{
int step[49][49];
int a,gostep,direct=1,record=1,i,j;
for(i=0;i<=49;i++)
for(j=0;j<=49;j++)
step[i][j]=0;
while(1)
{
scanf("%d,%d",&a,&gostep);
if(a==2) record=1;
if(a==1) record=0;
if(a==4)
{
direct++;
if(direct==5) direct=1;
continue;
}
if(a==3)
{
direct--;
if(direct==0) direct=4;
continue;
}
if(a==5)
{
move(step,gostep,direct,record);
continue;
}
if(a==6)
print(step);
if(a==9)
return 0;
}
}
/*打印海龜蹤跡並保存*/
void print(int s[][49])
{
int i,j;
FILE *fp;
fp=fopen("D:\\step.txt","w");
for(i=0;i<=49;i++)
{
for(j=0;j<=49;j++)
{
printf(s[i][j]==0? " ":"*");
fprintf(fp,s[i][j]==0? " ":"*");
}
printf("\n");
}
fclose(fp);
}
void move(int t[][49],int i,int j,int k)
{
static int x=0,y=0;
int xmove,ymove,num;
if(j==1)
{
xmove=1;ymove=0;}
if(j==2)
{
xmove=0;ymove=-1;
}
if(j==3)
{
xmove=-1;ymove=0;
}
if(j==4)
{
xmove=0;ymove=1;
}
for(num=0;num<i;num++)
{
t[0][0]=1;
x+=xmove;
y+=ymove;
if(x<0||x>49||y<0||y>49)
{
printf("the place is danger ,you are died");
exit();
}
t[y][x]+=k;
}
}