




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、河南科技大學(xué)課 程 設(shè) 計 說 明 書課程名稱 軟件專題訓(xùn)練 題 目 羅密歐與朱麗葉迷宮求解問題院 系 電子信息工程學(xué)院計算機系班 級 計算機科學(xué)與技術(shù)103班學(xué)生姓名 指導(dǎo)教師 孫士保.冀治航 日 期 2012.5.212012.5.27河南科技大學(xué)課 程 設(shè) 計 任 務(wù) 書課程名稱 算法設(shè)計與分析 題 目 羅密歐與朱麗葉地迷宮問題 院 系 電子信息工程學(xué)院計算機系班 級 計算機103班學(xué)生姓名 魏 鵬 超指導(dǎo)教師 孫士保.冀治航 日 期 2012.5.212012.5.27 課程設(shè)計題目羅密歐與朱麗葉地迷宮問題姓名學(xué)號班級計算機10級系別計算機科學(xué)與技10級專業(yè)計算機科學(xué)與技術(shù)組別組長組員
2、指導(dǎo)教師姓名孫士保.冀治航課程設(shè)計目地進一步鞏固C程序設(shè)計和算法設(shè)計與分析地基礎(chǔ)知識,提升結(jié)構(gòu)化程序.模塊化程序設(shè)計地方法和能力,深入理解數(shù)據(jù)結(jié)構(gòu)地基本理論,掌握數(shù)據(jù)存儲結(jié)構(gòu)地設(shè)計方法,掌握基于數(shù)據(jù)結(jié)構(gòu)地各種操作地實現(xiàn)方法,訓(xùn)練對基礎(chǔ)知識和基本方法地綜合運用能力,增強對算法地理解能力,提高軟件設(shè)計能力.在實踐中培養(yǎng)獨立分析問題和解決問題地作風(fēng)和能力.設(shè)計環(huán)境1. PC兼容機 2Windows 2000/XP操作系統(tǒng)3TC集成開發(fā)環(huán)境或其他C語言開發(fā)環(huán)境課程設(shè)計要求和任務(wù)要求:1熟練掌握回溯法,能夠利用回溯法解決實際問題;2使用文件進行存儲和管理.程序啟動時可從文件中讀取信息,或從鍵盤輸入信息;
3、運行過程中也可對文件進行存??;退出前可選擇將部分信息保存到文件中;3不同地功能使用不同地函數(shù)實現(xiàn)(模塊化),對每個函數(shù)地功能和調(diào)用接口要注釋清楚.對程序其它部分也進行必要地注釋.4對系統(tǒng)進行功能模塊分析.畫出總流程圖和各模塊流程圖;5用戶界面要求使用方便.簡潔明了.美觀大方.格式統(tǒng)一.所有功能可以反復(fù)使用,最好使用菜單;6通過命令行相應(yīng)選項能直接進入某個相應(yīng)菜單選項地功能模塊;7所有程序需調(diào)試通過.任務(wù):完成羅密歐與朱麗葉地迷宮問題.設(shè)計內(nèi)容包括:1確定能對給定地任何位置地羅密歐都能夠找到一條通向朱麗葉地路線;2程序能夠演示一條羅密歐找到朱麗葉地路線過程等.課程設(shè)計工作進度計劃序 號起止日期工
4、 作 內(nèi) 容12012.5.21下發(fā)任務(wù)書,分組,選定課題,查閱相關(guān)資料22012.5.22總體設(shè)計,劃分模塊,編制源程序32012.5.23上機調(diào)試,修改.完善系統(tǒng)42012.5.25程序檢查,撰寫說明書,上交報告河南科技大學(xué)課程設(shè)計報告課程名稱 軟件專題訓(xùn)練 題 目 羅密歐與朱麗葉地迷宮問題 院 系: 電子信息工程學(xué)院計算機系 專 業(yè): 計算機科學(xué)與技術(shù) 班 級: 計算機10級 學(xué)生姓名: 學(xué) 號: 起止日期: 2012年5月21日 2012年5月27日 指導(dǎo)教師: 孫士保.冀治航 目錄第一章 需求分析41.1課程設(shè)計題目41.2 課程設(shè)計任務(wù)及要求41.3運行環(huán)境及開發(fā)工具4第二章 概要
5、設(shè)計 52.1系統(tǒng)流程圖 5第三章 詳細(xì)設(shè)計63.1函數(shù)劃分63.2函數(shù)之間地關(guān)系6第四章 系統(tǒng)調(diào)試與操作說明74.1系統(tǒng)調(diào)試及操作說明7第五章 課程設(shè)計總結(jié)體會85.1課程設(shè)計總結(jié)85.2致謝85.3參考文獻(xiàn)8第一章 需求分析1.1課程設(shè)計題目羅密歐與朱麗葉地迷宮問題1.2 課程設(shè)計任務(wù)及要求1. 對于給定地羅密歐與朱麗葉地迷宮,編程計算羅密歐通向朱麗葉地所有最少轉(zhuǎn)彎道路2.程序能夠演示一條羅密歐找到朱麗葉地路線過程等羅密歐與朱麗葉地迷宮.羅密歐與朱麗葉身處一個mn地迷宮中,如圖所示.每一個方格表示迷宮中地一個房間.這mn個房間中有一些房間是封閉地,不允許任何人進入.在迷宮中任何位置均可沿8
6、 個方向進入未封閉地房間.羅密歐位于迷宮地 (p,q)方格中,他必須找出一條通向朱麗葉所在地(r,s)方格地路.在抵達(dá)朱麗葉之前,他必須走遍所有未封閉地房間各一次,而且要使到達(dá)朱麗葉地轉(zhuǎn)彎次數(shù)為最少.每改變一次前進方向算作轉(zhuǎn)彎一次.請設(shè)計一個算法幫助羅密歐找出這樣一條路.1.3運行環(huán)境及開發(fā)工具硬件:裝有windows操作系統(tǒng)地計算機軟件:Visual C+6.0第二章 概要設(shè)計2.1系統(tǒng)流程圖輸入m,n,k,x,y,x1,y1-1-dirs best-1000 count-0dep=m*n-k&x=x1&y=y1&dirs=best是 否 否dirsi1-jbestbij=boardijj+
7、1-j直到j(luò)i直到icountreturndep=m*n-k|x=x1&y=y1|dirsbest是 否 1-ip=x+dxiq=y+dyix0&x0&ydirs直到 idirs boardpq=0;boardpq=dep+1di!=i dirs+1-dirs直到 i=8 輸出best,count*bestb第三章 詳細(xì)設(shè)計3.1函數(shù)劃分(1)函數(shù)1:bool stepok(int x,int y) 判斷是(x,y)否越界.(2)函數(shù)2:void save() 保存一條轉(zhuǎn)彎最少地路徑(3)函數(shù)3:void search(int dep,int x,int y,int di) 在當(dāng)前位置(x,y
8、)按照八個方向搜索,dep用于標(biāo)記已經(jīng)走過地房間數(shù),di表示八個方向.(4)函數(shù)4:void main() 主函數(shù)初始化迷宮數(shù)組,并調(diào)用search函數(shù)輸出一條迷宮路線.3.2函數(shù)之間地關(guān)系:主函數(shù)調(diào)用search函數(shù),search函數(shù)調(diào)用stepok和save函數(shù)完成搜索.如下圖: main函數(shù) save函數(shù) 調(diào)用search函數(shù) 遞歸調(diào)用search函數(shù) 調(diào)用stepok函數(shù) 輸出結(jié)果第四章 系統(tǒng)調(diào)試與操作說明4.1系統(tǒng)調(diào)試及操作說明先是輸入迷宮中地各個參數(shù): (1).迷宮地行列數(shù)及封閉房間個數(shù)m,n,k分別是3,4,2. (2).2個封閉房間地坐(p,q)分別是(1,2),(3,4).
9、(3).羅密歐與朱麗葉地坐標(biāo)(x,y),(x1,y1)分別是(1,1),(2,2). 輸出: 輸出一條迷宮路線:(1,1)(2,1) (3,1) (3,2) (2,3) (1,4) (1,3) (2,4) (3,3) (2,2) 1 -1 7 6 2 10 5 8 3 4 9 -1 第五章 課程設(shè)計總結(jié)體會5.1課程設(shè)計總結(jié)通過本次課程設(shè)計地訓(xùn)練,增加了我學(xué)習(xí)算法地興趣,雖然還不是很明確其中地具體內(nèi)容,但已發(fā)現(xiàn)算法分析與程序設(shè)計地樂趣.老師給了我們四個題目供選擇,從選題到完成程序一步步操作實驗不僅對題目有了深入地了解,還達(dá)到了熟練使用C語言編程地能力.雖然還有很多復(fù)雜地問題是我們地能力所不及地
10、,但我相信通過一次次實際地訓(xùn)練操作會使我們地解決問題地能力一步步有所提高.本次程序不是很復(fù)雜,只要對算法地有深入地認(rèn)識與掌握就可以得到輸出地結(jié)果.但程序中涉及到了多個參數(shù),在上機實驗過程中通過一次次實驗對算法一步步執(zhí)行中,徹底弄明白其中地各個參數(shù)及函數(shù)地作用及用法,特別是對回溯法有了更深地理解.在程序地編寫輸入輸出地過程中雖然其中遇到了很多錯誤與困難,但正是在解決這些錯誤與困難地過程中才會使我們地能力有所提高,知識有所更深入地理解,并進一步鞏固了C程序設(shè)計和算法設(shè)計與分析地基礎(chǔ)知識,增強對算法地理解能力,提高軟件設(shè)計能力,熟練掌握了回溯法,能夠利用回溯法解決實際問題.雖然只是短短一星期但同學(xué)們
11、都在努力學(xué)習(xí)與實踐,我知道只靠這些時間來練習(xí)遠(yuǎn)遠(yuǎn)不夠地,只有平時多練習(xí),才會達(dá)到老師對我們地要求.這次程序設(shè)計是讓我們學(xué)到了好多知識,但也暴露了我們在程序設(shè)計中地不足.讓我們更深一步體會到了上機實訓(xùn)地重要性.學(xué)校給我們安排實訓(xùn)是為培養(yǎng)學(xué)生在實踐中培養(yǎng)獨立分析問題和解決問題地作風(fēng)和能力,提高實際操作水.讓我們了解到除了學(xué)習(xí)基礎(chǔ)知識之外上機實驗也是必不可少地,只有通過多次地操作實驗才能夠提高自己地解決問題能力.5.2 致謝感謝本次試驗中給予技術(shù)等指導(dǎo)地孫士保.冀治航老師,因為他們地指導(dǎo),本次試驗中地部分問題都得到了解決,并且學(xué)到了很多東西.感謝張強,于文帥等同學(xué)地幫助,和他們探討問題,解決問題,不
12、但學(xué)會了更多地東西,更加深了同學(xué)之間地友誼.5.3參考文獻(xiàn)計算機算法設(shè)計與分析教材(第三版)C/C+程序設(shè)計教程(第二版)數(shù)據(jù)結(jié)構(gòu)(c語言)教材源碼#includeusing namespace std;int dir92=0,0,0,1,0,-1,1,0,-1,0,1,1,1,-1,-1,1,-1,-1;/行走地路線int count;int dirs,best;int board2020,bestw2020;int m,n,k;int lx,ly,zx,zy;bool comp(int x,int y) /判斷是坐標(biāo)是否越界if(x0&x0&y=m&boardxy=0) return tr
13、ue;else return false;static void save()/保存一條轉(zhuǎn)彎最少地路徑int i,j;for(i=1;i=n;i+) for(j=1;j=m;j+) bestwij=boardij;void search(int dep,int x,int y,int di)if(dep=m*n-k&x=zx&y=zy&dirs=best)/dep用于標(biāo)記已經(jīng)走過地房間數(shù) di表示八個方向 if(dirsbest) return; else for(int i=1;i=8;i+) if(comp(x+diri0,y+diri1) boardx+diri0y+diri1=dep+
14、1; if(di!=i) dirs+; search(dep+1,x+diri0,y+diri1,i); if(di!=i) dirs-; boardx+diri0y+diri1=0; int main() coutn; coutendl;coutm; coutendl;coutk;coutendl;int i,j;int c,d;memset(board,0,sizeof(board); for(i=0;ik;i+)/設(shè)置封鎖地房間位置cout請設(shè)置封鎖地第i+1cd; boardcd=-1;coutlxly;coutzxzy;boardlxly=1;best=m*n;dirs=-1;cout迷宮初始化如下:endl;cout其中0表示未到地房間,-1表示封閉地房間endl;for(i=0;in;i+) for(j=0;jm;j+) coutboardi+1j+1 ; coutendl;search(1,lx,ly,0); /輸出一條迷宮路線.cout最少轉(zhuǎn)彎次數(shù):best 次endl;cout有不同地最少轉(zhuǎn)彎次數(shù):count次endl;cout其中迷宮地一條最少轉(zhuǎn)彎道路如下:endl;for(i=1;i=n;i+) for(j=1;j=m;j+) coutbestwij ; coutendl;課
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療器械可行性分析報告模板
- 磐安縣生活垃圾焚燒發(fā)電項目
- 品牌傳播策略實施方案
- 公司內(nèi)網(wǎng)使用操作教程
- 藥品注冊與監(jiān)督管理作業(yè)指導(dǎo)書
- 英語專業(yè)翻譯理論與實踐試題集
- 工程成本控制實務(wù)作業(yè)指導(dǎo)書
- 航空航天行業(yè)產(chǎn)品設(shè)計指南
- 航空航天行業(yè)數(shù)字化設(shè)計與制造方案
- 農(nóng)村金融服務(wù)現(xiàn)金流量管理指南
- 預(yù)防性侵安全教育課件
- 《鋼鐵是怎樣煉成的》讀書分享課件
- 頸椎損傷的固定與搬運操作流程課件
- 中國戲曲 昆曲學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 消毒隔離課件教學(xué)課件
- 中國旅游地理項目一二測試題
- 涉外法治視角下國際經(jīng)貿(mào)規(guī)則形成研究
- 低空經(jīng)濟公司的投融資方案
- 城市停車規(guī)劃規(guī)范
- 2022年集團消防技能比賽項目、規(guī)則和評分標(biāo)準(zhǔn)
- 手機維修行業(yè)中的數(shù)字轉(zhuǎn)型
評論
0/150
提交評論