報告是指向上級機(jī)關(guān)匯報本單位、本部門,、本地區(qū)工作情況,、做法、經(jīng)驗(yàn)以及問題的報告,,那么什么樣的報告才是有效的呢,?下面是小編幫大家整理的最新報告范文,僅供參考,,希望能夠幫助到大家,。
C語言課程設(shè)計(jì)掃雷代碼 掃雷游戲課程設(shè)計(jì)報告篇一
專業(yè)
軟 件 工 程
班級
x
班
學(xué)號_ xxxxxxxxxxx_
姓名
實(shí)驗(yàn)日期:201x年x月x日
報告退發(fā)(訂正、重做)
課程
c程序設(shè)計(jì)實(shí)驗(yàn)
實(shí)驗(yàn)名稱
函
數(shù)
一,、實(shí)驗(yàn)?zāi)康?/p>
① 熟練掌握c程序中函數(shù)的定義,; ② 掌握函數(shù)的調(diào)用,函數(shù)參數(shù)的傳遞,; ③ 熟練掌握函數(shù)的嵌套調(diào)用和遞歸調(diào)用,;
二、實(shí)驗(yàn)環(huán)境(描述實(shí)驗(yàn)的軟件,、硬件環(huán)境)
① 軟件環(huán)境:windows xp/win7等操作系統(tǒng),,microsoft visual c++ 6.0編譯器; ② 硬件環(huán)境:pc機(jī)一臺
三,、實(shí)驗(yàn)內(nèi)容,、步驟和結(jié)果分析
題目一:編寫一個用來判斷質(zhì)數(shù)(素?cái)?shù))的函數(shù)。
要求:
(1)在main函數(shù)中調(diào)用該函數(shù)對輸入的數(shù)值進(jìn)行判斷,,并輸出判斷結(jié)果,;(2)當(dāng)輸入數(shù)值<=1時,停止輸入和判斷,。
#include
#include
/*=======判斷質(zhì)數(shù)(素?cái)?shù))的函數(shù)=======*/ int judgeprime(int n){
} /*=======判斷質(zhì)數(shù)(素?cái)?shù))的函數(shù)=======*/ int main(){printf(“n提示:輸入一個數(shù)字來判斷是否是質(zhì)數(shù)(素?cái)?shù)),當(dāng)輸入數(shù)值<=1時,,停止輸入和判斷,。nn”);for(int num=2,temp;num>1;){ printf(“please enter a number:”);for(int i=2;i<=sqrt(n);i++)//一個數(shù)n如果是合數(shù),,那么它的所有的因子不超過n的開方 {
} return 1;if(n%i==0)return 0;else continue;
}
} scanf(“%d”,#);if(num<=1)break;//當(dāng)輸入數(shù)值<=1時,停止輸入和判斷 temp=judgeprime(num);if(temp==0)printf(“%d is not a prime numner!nn”,num);else printf(“%d is a prime numner!nn”,num);return 0;
題目二:使用習(xí)題1中所編寫的判斷質(zhì)數(shù)的函數(shù)驗(yàn)證哥德巴赫(goldbach)的1+1猜想-----任何一個>=6的偶數(shù)都可以表示成兩個素?cái)?shù)之和
要求:
① 屏幕提示用戶一個>=6的偶數(shù),;
② 輸出這個偶數(shù)等于2個素?cái)?shù)之和的表達(dá)式,; ③ 當(dāng)輸入數(shù)據(jù)<6或者不是偶數(shù)時,停止輸入和驗(yàn)證,。
#include
#include
/*=======判斷質(zhì)數(shù)(素?cái)?shù))的函數(shù)=======*/ int judgeprime(int n){
for(int i=2;i<=sqrt(n);i++)//一個數(shù)n如果是合數(shù),,那么它的所有的因子不超過n的開方 {if(n%i==0)return 0;else continue;
} } return 1;//true-->1,false-->0 /*=======驗(yàn)證哥德巴赫猜想的函數(shù)(調(diào)用judgeprime)=======*/ int provegoldbach(int m){
} int main(){
}
printf(“n提示:輸入一個偶數(shù)來驗(yàn)證哥德巴赫猜想,當(dāng)輸入數(shù)值<6時,,停止輸入和判斷,。nn”);for(int num=6;num>=6;){
} int temp;printf(“please enter a number:”);scanf(“%d”,#);temp=provegoldbach(num);if(temp==0)//當(dāng)輸入小于6或者不是偶數(shù)時結(jié)束 return 0;printf(“==================================”);if(m<6||m%2!=0){
} if(judgeprime(j)==1&&judgeprime(m-j)==1)//判斷兩數(shù)是否都等于質(zhì)數(shù) { } printf(“t%d = %d + %dn”,m,j,m-j);return 0;//判斷是否大于等于6或者不是偶數(shù) for(int j=2;j<(m/2);j++)
題目三:編寫一個求階乘的函數(shù),接著調(diào)用該函數(shù)實(shí)現(xiàn)組合的求解要求:
① 提示用戶輸入n和m的數(shù)值,; ② 輸出的 結(jié)果
#include
/*=======階乘函數(shù)=======*/ int fac(int n){
} /*=======組合函數(shù)=======*/ int combine(int m,int n){ } /*=======main函數(shù)=======*/ void main(){int m,n;int res;printf(“n提示:這是求組合求和公式的函數(shù),,輸入兩個整數(shù)(分別為上標(biāo)和下標(biāo))nn”);scanf(“%d%d”,&m,&n);if(m>n)//判斷上標(biāo)大于小標(biāo)重新輸入 goto loop;return fac(n)/(fac(n-m)*fac(m));int f;if(n<0)printf(“n<0,data error!”);f=1;else if(n==0||n==1)else f=fac(n-1)*n;return f;loop:printf(“please enter two numbers:”);
}res=combine(m,n);printf(“tresult is %dn”,res);
題目四:編寫一個求矩陣中最大元素以及最小元素的函數(shù)selectmaxandmin(),在main函數(shù)中調(diào)用該函數(shù)
要求:
最大值和最小值的輸出操作,,可以放在selectmaxandmin()函數(shù)中
#include
#define row 4//矩陣的行 #define column 4//矩陣的列
/*=======在矩陣中選擇最大最小數(shù)的函數(shù)=======*/ void selectmaxandmin(int arry[row][column])//用指針更方便 {int tempmax,tempmin;if(arry[0][0]>arry[0][1])//賦初始值 {
} else {
} for(int i=0;i
}
} for(int j=0;j
} if(arry[i][j]>tempmax){ } if(arry[i][j]
} int mat[row][column];printf(“please enter a %d x %d matrix:n”,row,column);for(int i=0;i
} selectmaxandmin(mat);return 0;for(int j=0;j
題目五:編寫一個編碼原文的函數(shù),,對于給定的內(nèi)容,按照敵方的規(guī)律對其進(jìn)行編碼
要求:
某日,,我軍某部截獲了一份敵方電報,,經(jīng)過仔細(xì)分析后發(fā)現(xiàn):該電文中所有的字母字符都是經(jīng)過某種運(yùn)算后得到的,然那些非字母字符則沒有經(jīng)過任何處理,。例如,,原文中的字符a對應(yīng)電文中的字符e,原文中的字符b對應(yīng)電文中的字符f,,原文中的字符w對應(yīng)電文中的字符a,,原文中的字符!在電文中仍為!
#include
#define size 20
//定義大小 /*=======密碼翻譯的函數(shù)=======*/ char trans(char a){} //主函數(shù) int main(void){
printf(“請輸入原文:nnn”);char str[size];gets(str);printf(“nnn”);if((a>='a'&&a<='v')||(a>='a'&&a<='v')){ } else {
} if(a>='w'||a>='w'){ } else { return a;} return a-22;return a+4;
}printf(“正在破解……nnn”);printf(“破譯的原文是:”);for(int i=0;i<20;i++){
} printf(“n”);str[i]=trans(str[i]);if(str[i]=='')//判斷是否結(jié)束 break;printf(“%c”,str[i]);
題目六:編寫一個函數(shù),,求解輸入矩陣的轉(zhuǎn)置矩陣并輸出
#include
#define row 3//矩陣的行 #define column 4//矩陣的列 /*=======矩陣的輸入函數(shù)=======*/ void matinput(int mat[][column]){
} /*=======原始矩陣的打印函數(shù)=======*/ for(int i=0;ifor(int j=0;j
} printf(“請輸入矩陣元素 [%d][%d]=:”,i,j);scanf(“%d”,&mat[i][j]);
void matprint(int mat[][column]){
} /*=======轉(zhuǎn)置矩陣的打印函數(shù)=======*/ void mattrasprint(int mat[][column]){
} /*=======main函數(shù)=======*/ int main(void){
} printf(“==================================”);printf(“請輸入一個 %d x %d 的矩陣:n”,row,column);int mat[row][column];matinput(mat);printf(“==================================”);printf(“原始矩陣為:n”);matprint(mat);printf(“==================================”);printf(“原始矩陣的轉(zhuǎn)置矩陣為n”);mattrasprint(mat);return 0;int arr[column][row];for(int i=0;i
} for(int j=0;j
} printf(“n”);arr[i][j]=mat[j][i];printf(“%3d”,arr[i][j]);for(int i=0;i
} for(int j=0;j
題目七:用戶輸入的字符串,,以相反的順序打印出來。
要求:利用遞歸函數(shù)調(diào)用形式
#include
#define size 20 /*=======相反輸出字符串的函數(shù)=======*/ void reverse(char a[]){
int i=0;if(a[i]!=''){} int main(void){
}printf(“t提示:輸入一串字符以相反的順序打印n”);char str[size];gets(str);reverse(str);printf(“n”);return 0;
} else return;reverse(&a[i+1]);//遞歸調(diào)用 printf(“%c”,a[i]);
四,、討論
C語言課程設(shè)計(jì)掃雷代碼 掃雷游戲課程設(shè)計(jì)報告篇二
中南大學(xué)
程序設(shè)計(jì)基礎(chǔ)實(shí)踐報告
學(xué)生姓名 張?zhí)m蘭 學(xué) 院 信息科學(xué)與工程學(xué)院 專業(yè)班級 物聯(lián)網(wǎng)工程1301班 完成時間 2014.1 題 目 設(shè)計(jì)一個和window系統(tǒng)類似的小游戲【挖地雷】
《計(jì)算機(jī)程序設(shè)計(jì)實(shí)踐》錯誤,!未指定書簽。
目錄
1.課程設(shè)計(jì)內(nèi)容.............................................................................................3 2.課程設(shè)計(jì)目的.............................................................................................3 3.背景知識....................................................................................................3 4.工具/準(zhǔn)備工作............................................................................................5 5.設(shè)計(jì)步驟,、方法.........................................................................................5
5.1.步驟1:步驟名稱(二級標(biāo)題).......................................................錯誤,!未定義書簽。
步驟1.1:步驟名稱(三級標(biāo)題)..............................................................................5 5.1.1.5.2.5.3.步驟2:步驟名稱..........................................................................錯誤,!未定義書簽,。步驟n:步驟名稱..........................................................................錯誤!未定義書簽,。
6.設(shè)計(jì)結(jié)果及分析.........................................................................................5 7.設(shè)計(jì)結(jié)論..................................................................................................15 8.問題及心得體會.......................................................................................16 9.對本設(shè)計(jì)過程及方法,、手段的改進(jìn)建議....................................................17 10.參考文獻(xiàn)..................................................................................................17
《計(jì)算機(jī)程序設(shè)計(jì)實(shí)踐》錯誤,!未指定書簽。
case 4:
system(“cls”);
printf(“請輸入棋盤行列數(shù)(小于20且用逗號隔開):”);
scanf(“%d,%d”,&x,&y);
getchar();
printf(“請輸入雷的個數(shù):”);
scanf(“%d”,&b);
getchar();
break;
}
break;
}
else
{
printf(“輸入錯誤請重新輸n”);
}
} while(begin){
system(“cls”);
initialvalue_game(&g);
initialmine_game(&g);
print_game(&g,2);
no=1;
while(no)
{
printf(“please choose:”);
scanf(“%d,%d”,&i,&j);getchar();if(-1
{
switch(openmap(&g,i-1,j-1))
{
case 1:
《計(jì)算機(jī)程序設(shè)計(jì)實(shí)踐》錯誤,!未指定書簽,。
print_game(&g,1);
printf(“游戲結(jié)束!按回車鍵再來一局n”);
if(getchar()=='n')begin=1;
else begin=0;
no=0;
break;
case 2:
if(judge_game(&g)==b)
{
printf(“win,!n”);
print_game(&g,1);
printf(“按回車鍵再來一局n”);
if(getchar()=='n')begin=1;
else begin=0;
no=0;
break;
}
else print_game(&g,2);no=1;break;
default:break;
}
}
else
{
printf(“你輸入錯誤!請重新輸入n”);
} } } }
C語言課程設(shè)計(jì)掃雷代碼 掃雷游戲課程設(shè)計(jì)報告篇三
c語言程序設(shè)計(jì)報告
題目: 掃雷小游戲設(shè)計(jì)
電子通信與物理學(xué)院 日期:2018年7月 12 日
指導(dǎo)教師評語
目錄
1.課程設(shè)計(jì)內(nèi)容...........................................................................................................1 2.課程設(shè)計(jì)目的...........................................................................................................1 3.背景知識..................................................................................................................1 4.工具/準(zhǔn)備工作..........................................................................................................3 5.設(shè)計(jì)步驟,、方法.....................................................................................................3
5.1........................................................................................................................3 5.2定義全局變量..................................................................................................4 5.3挖雷部分函數(shù)的分析.......................................................................................5 6.設(shè)計(jì)結(jié)果及分析.....................................................................................................11 7.設(shè)計(jì)結(jié)論...............................................................................................................16 8.參考文獻(xiàn)...............................................................................................................17 附錄...........................................................................................................................17
1.課程設(shè)計(jì)內(nèi)容
在計(jì)算機(jī)逐步滲入社會生活各個層面的今天,計(jì)算機(jī)已經(jīng)成為人們?nèi)粘I畹囊环?,越來越多的人使用?jì)算機(jī)辦公,、娛樂等等。
掃雷游戲是windows操作系統(tǒng)自帶的一款小游戲,,在過去的幾年里,,windows操作系統(tǒng)歷經(jīng)數(shù)次換代更新,變得越來越龐大,、復(fù)雜,,功能也越來越強(qiáng)大,但是這款小游戲依然保持原來的容貌,,可見這款小游戲受到越來越多人的喜愛,。我利用c-free編寫了與它功能相仿的挖地雷游戲,寓學(xué)于樂,。
即:設(shè)計(jì)一個功能與windows中的挖雷游戲相同的小游戲,。
2.課程設(shè)計(jì)目的
1.培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識獨(dú)立完成課題的能力。
2.試學(xué)生更深入地理解和掌握該課程中的有關(guān)基本概念,,程序設(shè)計(jì)思想和方法,。3.提高對工作認(rèn)真負(fù)責(zé)、一絲不茍,,對同學(xué)團(tuán)結(jié)友愛,,協(xié)作攻關(guān)的基本素質(zhì)。4.培養(yǎng)勇于探索,、嚴(yán)謹(jǐn)推理,、實(shí)事求是、有錯必改,,用實(shí)踐來檢驗(yàn)理論,,全方位考慮問題等科學(xué)技術(shù)人員應(yīng)具有的素質(zhì)。
5.培養(yǎng)從資料文獻(xiàn),、科學(xué)實(shí)驗(yàn)中獲得知識的能力,,提高從別人經(jīng)驗(yàn)中找到解決問題的新途徑的悟性,初步培養(yǎng)工程意識和創(chuàng)新能力。
6.對掌握知識的深度,、運(yùn)用理論去處理問題的能力,、實(shí)驗(yàn)?zāi)芰?、課程設(shè)計(jì)能力,、書面及口頭表達(dá)能力進(jìn)行考核
3.背景知識
游戲區(qū)包括雷區(qū)、地雷計(jì)數(shù)器(位于左上角,,記錄剩余地雷數(shù))和計(jì)時器(位于 右上角,,記錄游戲時間),確定大小的矩形雷區(qū)中隨機(jī)布置一定數(shù)量的地雷(初級為9*9個方塊10個雷,,中級為16*16個方塊40個雷,,高級為16*30個方塊99個雷,自定義級別可以自己設(shè)定雷區(qū)大小和雷數(shù),,但是雷區(qū)大小不能超過24*30),,玩家需要盡快找出雷區(qū)中的所有不是地雷的方塊,而不許踩到地雷,。
游戲的基本操作包括左鍵單擊(left click),、右鍵單擊(right click)、雙擊(chording)三種,。其中左鍵用于打開安全的格子,,推進(jìn)游戲進(jìn)度;右鍵用于標(biāo)記地雷,,以輔助判斷,,或?yàn)榻酉聛淼碾p擊做準(zhǔn)備;雙擊在一個數(shù)字周圍的地雷標(biāo)記完時,,相當(dāng)于對數(shù)字周圍未打開的方塊均進(jìn)行一次左鍵單擊操作:
左鍵單擊:在判斷出不是雷的方塊上按下左鍵,,可以打開該方塊。如果方塊上出現(xiàn)數(shù)字,,則該數(shù)字表示其周圍3×3區(qū)域中的地雷數(shù)(一般為8個格子,,對于邊塊為5個格子,對于角塊為3個格子,。所以掃雷中最大的數(shù)字為8),;如果方塊上為空(相當(dāng)于0),則可以遞歸地打開與空相鄰的方塊,;如果不幸觸雷,,則游戲結(jié)束。
雙擊:同時按下左鍵和右鍵完成雙擊,。當(dāng)雙擊位置周圍已標(biāo)記雷數(shù)等于該位置數(shù)字時操作有效,,相當(dāng)于對該數(shù)字周圍未打開的方塊均進(jìn)行一次左鍵單擊操作。地雷未標(biāo)記完全時使用雙擊無效。若數(shù)字周圍有標(biāo)錯的地雷,,則游戲結(jié)束,,標(biāo)錯的地雷上會顯示一個“ ×”(見下圖)
掃雷的設(shè)計(jì)原理: 掃雷游戲分為幾個步驟: 第一步,使用二維數(shù)組表示地圖,; 第二步,,隨機(jī)生成幾個地雷;
第三步,,點(diǎn)擊方格的反應(yīng),,計(jì)算每個非雷區(qū)方格點(diǎn)開后的數(shù)字; 第四步,,當(dāng)方格數(shù)字為0的情況,; 第五步,當(dāng)方格為地雷的情況,。
第一步地圖的大小和第二步地雷的數(shù)量都應(yīng)該是程序中給定的,,或者玩家輸入的。這個是多少自己決定吧,。第三步,,計(jì)算非雷區(qū)方格點(diǎn)開后的數(shù)字就把這個方格在二維數(shù)組中周圍八個方向的方格是否是地雷都檢查一遍,一定要注意不要越出數(shù)組邊界,。這個數(shù)字可以在游戲初始化時全都計(jì)算好,,也可以在玩家點(diǎn)擊的時候再計(jì)算。點(diǎn) 擊非雷區(qū)方格,,顯示數(shù)字,,這個方格標(biāo)記為“已點(diǎn)過”。第四步,,當(dāng)方格數(shù)字為0時,,這里要用到遞歸調(diào)用,就是讓程序自動“點(diǎn)擊”這個數(shù)字為0方格周圍的八個方格,,然后再看結(jié)果,,如果不是0,就停止,,如果是0,,依然遞歸調(diào)用,直到?jīng)]有0為止,,或者直到點(diǎn)遍所有方格為止,,一定要注意不要越出數(shù)組邊界。第五步,,很簡單,,宣布玩家死亡就可以了,。
4.準(zhǔn)備工作
查閱相關(guān)資料,了解掃雷的的玩法,,了解掃雷的設(shè)計(jì)思想方法,。借鑒他人寫過的程序,從中找到突破口,。從程序中了解需要的各種函數(shù)準(zhǔn)備,,再進(jìn)一步獲悉該函數(shù)的功能與使用方法。
對自己要設(shè)計(jì)的挖地雷游戲進(jìn)行功能分析,,大致如下:
總體游戲過程分析:在屏幕上顯示一個游戲界面,,雷區(qū)范圍內(nèi)預(yù)先埋設(shè)了一定數(shù)量的隨機(jī)分布的地雷(用數(shù)字9代替地雷);玩家通過從鍵盤中輸入(行數(shù)x,列數(shù)y)↙進(jìn)行點(diǎn)擊,;若能點(diǎn)中所有非雷區(qū),則游戲勝利,;否則踩雷,,游戲失敗。簡易版掃雷游戲要具備以下功能:
1)開局:首先選擇游戲等級,,然后生成不同等級的雷區(qū)界面,。游戲等級分 為三級:各等級行列數(shù)為———:簡單:10×
10、普通:15×
15,、困難:20×20,;雷區(qū)每個*號下面或埋藏有1個地雷,或者沒有地雷,;
2)挖雷:從鍵盤中輸入(行數(shù)x,列數(shù)y),,并按回車鍵,可挖開它,;若所揭方塊下有9,,則踩雷,此時所有含地雷的塊都出現(xiàn)9,,該局游戲失?。蝗绻綁K上出現(xiàn)數(shù)字,,它代表 在它周圍的8個方塊中共有多少顆地雷,;
3)輸入:通過鍵盤輸入相關(guān)指示信息; 4)輸出:提示游戲失敗,,是否繼續(xù)再來一遍,;
5.設(shè)計(jì)步驟、方法 5.1主函數(shù)第一步,,寫出主程序的基本框架,,確定各子模塊名字和參數(shù),。具體的函數(shù)流程如圖5-3 所示:
定義使用到的常數(shù)、全局變量,、函數(shù)原型說明,。然后初始化圖形系統(tǒng),調(diào)用游戲控制函數(shù),,游戲只接受鍵盤,,通過鼠標(biāo)結(jié)束游戲,,關(guān)閉系統(tǒng),,退出游戲,。
主控模塊的各子模塊說明:
void initialvalue_game()用于棋盤初始化,; initialmine_game()用于棋盤的隨機(jī)布雷,; void print_game()用于打印棋盤; int judge_game()用于判斷游戲是否結(jié)束,; int openmap()用于點(diǎn)開地圖,;
5.2定義全局變量
#include
#include “stdlib.h” #include“time.h” # define s 20 int x;/*棋盤行數(shù)*/ int y;/*棋盤列數(shù)*/ int b;/*選擇游戲難度 1簡單2普通3困難4 自定義*/ int h;/*雷的個數(shù)*/ struct games g;struct games { int game_int[s][s];char game_char[s][s];};使用結(jié)構(gòu)體數(shù)組來完成棋盤的定義,引用時間頭文件來完成對隨機(jī)布雷的隨時性,。
5.3挖雷部分函數(shù)的分析void initialvalue_game(struct games *g){ int i,j;for(i=0;i
initialmine_game(struct games *g){ 5 int i,j,next1,next2;int sum=0;srand((unsigned)time(null));while(1){ i=rand()%x;j=rand()%y;if((*g).game_int[i][j]==9)continue;(*g).game_int[i][j]=9;++sum;for(next1=-1;next1<2;next1++){ for(next2=-1;next2<2;next2++){ if(-1
void print_game(struct games *g,int logo){ int i,j;int a[s];for(i=0;i
int judge_game(struct games *g){ int sum=0;int i,j;for(i=0;i
運(yùn)行第一步:
按enter鍵進(jìn)入: 11
選擇游戲難度(簡單,、普通、困難、任意),,按enter鍵進(jìn)入: 簡單難度: 普通難度:
困難難度:
任意難度:
游戲界面,開始從鍵盤輸入數(shù)字,格式為(行數(shù)x,列數(shù)y),點(diǎn)擊enter鍵:
游戲結(jié)束頁面: 7.設(shè)計(jì)結(jié)論
一學(xué)期結(jié)束了,,對c語言也有了一些認(rèn)識,不過自我感覺學(xué)得不太好,好在還是學(xué)到了知識: 了解了c的發(fā)展以及編程的基本步驟,,學(xué)會了printf輸出語句,,c語言的運(yùn)算,知道了有哪幾種數(shù)據(jù)類型,,還有我覺得經(jīng)常用的if語句,,if--eles語句,for循環(huán),,while 語句,,do-while語句等等,,基本會用數(shù)組和指針,,還有字符串的處理,,對了還有才學(xué)的結(jié)構(gòu)體,。
還有許多知識點(diǎn),不一羅列了,,總之c語言要學(xué)的東西太多了,,聽大三的都說c很簡單,但我并不認(rèn)為他像人們說的那樣簡單,,c是最基礎(chǔ)的,,基礎(chǔ)不代表簡單,也可能是我沒學(xué)好才有這樣的感受。
在這次設(shè)計(jì)過程中,,不僅復(fù)習(xí)課本上所學(xué)知識,,還通過查資料、問同學(xué)學(xué)到了課本上沒有的知識,。從而啟發(fā)我,,要想寫好程序,在寫好課本知識的同時還需要多讀和專業(yè)有關(guān)的一些書籍,,同時還需要多動腦子,,盡量把所學(xué)的知識綜合起來應(yīng)用,力爭寫出完美的程序,。除此之外,,我還得到了一些有用的教訓(xùn):寫程序時必須要細(xì)心,不能輸錯一個字符標(biāo)點(diǎn),,就連全角半角也得注意,。在修改時要有耐心,編譯出錯后必須逐個錯誤去改正,,絕不能心急浮躁,,否則修改之后還會有新的錯誤。
8.參考文獻(xiàn)
郭翠英主編的《c語言課程設(shè)計(jì)實(shí)例精編》,; 張芳妮 呂波 譯《c語言編程常見問題解答》,; 譚浩強(qiáng)《c程序設(shè)計(jì)題解與上機(jī)指導(dǎo)(第二版)》。課程設(shè)計(jì)與系統(tǒng)開發(fā)案例[m].北京
附錄:
#include
#include “stdlib.h” 17 #include“time.h” # define s 20 int x;/*棋盤行數(shù)*/ int y;/*棋盤列數(shù)*/ int b;/*選擇游戲難度 1簡單2普通3困難4 自定義*/ int h;/*雷的個數(shù)*/ struct games g;struct games { int game_int[s][s];char game_char[s][s];};
main(){ int i,j;/*定義i,j變量*/ int no;int begin=1;int h;/*確定雷的個數(shù)*/ while(begin){ printf(“nnnnnnn” “ttt=================================n” “ttt 歡迎進(jìn)入掃雷 nnn” “ttt 按回車鍵繼續(xù) n” “ttt=================================n” “ttt n”);getchar();/*游戲開始界面*/ system(“cls”);printf(“ nnnnnnnnn”);printf(“ 請選擇游戲難度:nn”);printf(“ 1簡單難度nn”);printf(“ 2普通難度nn”);printf(“ 3困難難度nn”);printf(“ 4自定義難度nn”);scanf(“%d”,&h);getchar();/*確定游戲難度*/ if(0void initialvalue_game(struct games *g){ int i,j;for(i=0;i
initialmine_game(struct games *g){ int i,j,next1,next2;int sum=0;srand((unsigned)time(null));while(1){ i=rand()%x;j=rand()%y;if((*g).game_int[i][j]==9)continue;(*g).game_int[i][j]=9;++sum;for(next1=-1;next1<2;next1++){ for(next2=-1;next2<2;next2++){ if(-1
void print_game(struct games *g,int logo){ int i,j;int a[s];for(i=0;i
int judge_game(struct games *g){ int sum=0;int i,j;for(i=0;i
C語言課程設(shè)計(jì)掃雷代碼 掃雷游戲課程設(shè)計(jì)報告篇四
中南大學(xué)
程序設(shè)計(jì)基礎(chǔ)實(shí)踐報告
學(xué)生姓名 張?zhí)m蘭 學(xué) 院 信息科學(xué)與工程學(xué)院 專業(yè)班級 物聯(lián)網(wǎng)工程1301班 完成時間 2014.1 題 目 設(shè)計(jì)一個和window系統(tǒng)類似的小游戲【挖地雷】
《計(jì)算機(jī)程序設(shè)計(jì)實(shí)踐》 目錄
1.課程設(shè)計(jì)內(nèi)容.............................................................................................3 2.課程設(shè)計(jì)目的.............................................................................................3 3.背景知識....................................................................................................3 4.工具/準(zhǔn)備工作............................................................................................5 5.設(shè)計(jì)步驟,、方法.........................................................................................5
5.1.步驟1:步驟名稱(二級標(biāo)題).......................................................錯誤,!未定義書簽。
步驟1.1:步驟名稱(三級標(biāo)題)..............................................................................5 5.1.1.5.2.5.3.步驟2:步驟名稱..........................................................................錯誤,!未定義書簽,。步驟n:步驟名稱..........................................................................錯誤!未定義書簽,。
6.設(shè)計(jì)結(jié)果及分析.........................................................................................5 7.設(shè)計(jì)結(jié)論..................................................................................................15 8.問題及心得體會.......................................................................................16 9.對本設(shè)計(jì)過程及方法,、手段的改進(jìn)建議....................................................17 10.參考文獻(xiàn)..................................................................................................17
《計(jì)算機(jī)程序設(shè)計(jì)實(shí)踐》
printf(“請輸入棋盤行列數(shù)(小于20且用逗號隔開):”);
scanf(“%d,%d”,&x,&y);
getchar();
printf(“請輸入雷的個數(shù):”);
scanf(“%d”,&b);
getchar();
break;
}
break;
}
else
{
printf(“輸入錯誤請重新輸n”);
}
} while(begin){
system(“cls”);
initialvalue_game(&g);
initialmine_game(&g);
print_game(&g,2);
no=1;
while(no)
{
printf(“please choose:”);
scanf(“%d,%d”,&i,&j);getchar();if(-1
{
switch(openmap(&g,i-1,j-1))
{
case 1:
print_game(&g,1);
printf(“游戲結(jié)束!按回車鍵再來一局n”);
《計(jì)算機(jī)程序設(shè)計(jì)實(shí)踐》
if(getchar()=='n')begin=1;
else begin=0;
no=0;
break;
case 2:
if(judge_game(&g)==b)
{
printf(“win,!n”);
print_game(&g,1);
printf(“按回車鍵再來一局n”);
if(getchar()=='n')begin=1;
else begin=0;
no=0;
break;
}
else print_game(&g,2);no=1;break;
default:break;
}
}
else
{
printf(“你輸入錯誤!請重新輸入n”);
} } } }