




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、課程設(shè)計題目數(shù)字旋轉(zhuǎn)方陣、問題描述設(shè)計一個能正確輸出 N X N (1=N=10 )數(shù)字旋轉(zhuǎn)方陣(如圖 1.1)116151413217242312318252211419202110578911615141321231141056?g圖1.15階旋轉(zhuǎn)方陣圖1.2逐層填數(shù),從最外層填起、基本要求(1) 設(shè)計數(shù)據(jù)結(jié)構(gòu)存儲;(2) 設(shè)計算法完成任意 N (1=N=10 )階數(shù)字旋轉(zhuǎn)方陣;(3) 分析時間復(fù)雜度和空間復(fù)雜度;三、概要設(shè)計1. 數(shù)據(jù)結(jié)構(gòu)的設(shè)計程序采取二維數(shù)組的存儲結(jié)構(gòu)進行數(shù)字旋轉(zhuǎn)方陣的存儲,因為數(shù)字旋轉(zhuǎn)方陣也是一個平面圖,采用二維數(shù)組的存儲結(jié)構(gòu)能更直觀反映方陣。2. 算法的設(shè)計每一層的
2、數(shù)字分作四個小組,每一組的數(shù)字個數(shù)為 N-1 ,通過設(shè)立一個標志來判斷轉(zhuǎn)換方向(如圖1.2) o算法結(jié)束的標志有兩種情況:一是N為1,則填入數(shù)字,結(jié)束;二是 N=0,直接結(jié)束。以上兩種分別對應(yīng)奇數(shù)階數(shù)字方陣和偶數(shù)階數(shù)字方陣。3. 時間復(fù)雜度和空間復(fù)雜度數(shù)字旋轉(zhuǎn)方陣是每進行一步填入一個數(shù),所以時間復(fù)雜度為0(n*n);二維數(shù)組所占用的空間是在聲明時所分配固定的,所以的空間復(fù)雜度為0(100)四、詳細設(shè)計算法偽代碼:聲明二維數(shù)組a1010 , size為需建立的 方陣階數(shù),初始化i, j,num為11. 若size=0,則循環(huán)結(jié)束;2. 若 size=1,則使 aij=num,循環(huán)結(jié) 束;3. 填
3、寫區(qū)域A,重復(fù)操作size-1次aij=num ; i+ ; num+ ;4. 填寫區(qū)域B,重復(fù)操作size-1次aij=num ; j+ ; num+ ;5. 填寫區(qū)域C,重復(fù)操作size-1次aij=num ; i- ; num+ ;6. 填寫區(qū)域D,重復(fù)操作size-1次aij=num ; j- ; num+ ;7. i+ ; j+ ; size=size-2;返回第 1 步;8. 循環(huán)結(jié)束后,輸出數(shù)組a;這是填寫逆時針數(shù)字方陣的算法,填寫順時針方陣只需把順序 ABCD改為BADC即可為了方便程序的使用,為其增加了一個菜單,使用的是switch-case作為選擇結(jié)構(gòu),while 作循環(huán)判
4、斷開始返回菜單size=0 ?size=1 ?功能0 退岀系統(tǒng)ij=num;循環(huán)結(jié)束輸入方陣階數(shù)n(1=n=10)顯示菜單功能1建立數(shù)字旋轉(zhuǎn)方陣建立二維數(shù)組進入循環(huán)結(jié)束輸岀數(shù)組是J循環(huán)結(jié)束nl丿程序詳細的流程圖如右圖所示:ik填充區(qū)域Aaij=num; i+; num+; flag+;否ag=size- 1 ?1?是否填充區(qū)域CAij=num;曰否填充區(qū)域Daij=num; j-; num+;、J flag+; /填充區(qū)域Baij=num; j+; num+;、flag+; 丿flag=size-1 ?是 ”否num+; flag+;i+; j+;size=size-21?flag=size-
5、五、運行與調(diào)試1.菜單界面如右圖所示:*歡迎便用數(shù)字旋轉(zhuǎn)方陣系統(tǒng)*L_峯咅轡字旋轉(zhuǎn)方陣d jR Jj 示 5.?C2.測試數(shù)據(jù)和結(jié)果5階的數(shù)字旋轉(zhuǎn)方陣:逆時針數(shù)字旋轉(zhuǎn)方陣主11&1S1413217242312319251141?2&211056?9?頗時針數(shù)字旅轉(zhuǎn)方陣;1234$1617181?615242520?11232221O121110六、總結(jié)和心得在老師的教導(dǎo)和書本的指引下,了解程序的運行方法,掌握其核心要領(lǐng),一步步進行思考、 編寫代碼。在填寫方陣部分,因為size不等于1或0的情況下填數(shù)的次數(shù)必然大于一,所以選用do-while這種先執(zhí)行后判斷的判斷語句。通過自己的思考和努力編寫出
6、這個小程序, 使我對數(shù)據(jù)結(jié)構(gòu)的運用有更好的認識,掌握不同的結(jié)構(gòu),靈活運用。七、程序代碼#in elude using n amespace std;/逆時針數(shù)字旋轉(zhuǎn)方陣實現(xiàn) void NFan gZhe n(i nt n)int size=n;int flag=0;設(shè)置轉(zhuǎn)換方向標志int a1010;/ 設(shè)置二維數(shù)組int i=0,j=0,num=1;while(1)if(size=0)break;else if(size=1)aij=num;break;elsedo/區(qū)域Aaij=num;i+;nu m+; flag+;while(flagsize-1); flag=0;do/區(qū)域Baij=
7、num;j+;nu m+; flag+;while(flagsize-1); flag=0;do/區(qū)域Caij=num;i-;nu m+; flag+;while(flagsize-1); flag=0;do區(qū)域D aij=num;j-;nu m+;flag+; while(flagsize-1); flag=0;/內(nèi)圈循環(huán)i+;j+;size=size-2;for(i=0;i n;i+)for(j=0;j n;j+)cout.width(4); coutaij; coute ndl;coute ndl;順時針數(shù)字旋轉(zhuǎn)方陣實現(xiàn)void SFan gZhe n(i nt n)int size=n
8、;int flag=0;設(shè)置轉(zhuǎn)換方向標志int a1010;/ 設(shè)置二維數(shù)組int i=0,j=0,num=1;while(1)if(size=0)break;else if(size=1)aij=num; break;elsedo區(qū)域Baij=num;j+;nu m+;flag+;while(flagsize-1);flag=0;do/區(qū)域Aaij=num;i+;nu m+; flag+;while(flagsize-1); flag=0;do/區(qū)域Daij=num;j-;nu m+; flag+;while(flagsize-1); flag=0;do/區(qū)域Caij=num;i-;nu m
9、+;flag+;while(flagsize-1);flag=0;/內(nèi)圈循環(huán)i+;j+;size=size-2;for(i=0;i n; i+)for(j=0;j n;j+) cout.width(4); coutaij; coute ndl;coute ndl; int mai n()int n;int choice;int con itue=1;cout*歡迎使用數(shù)字旋轉(zhuǎn)方陣系統(tǒng)*endl;coute ndl;while(c on itue=1)cout1-建立N階數(shù)字旋轉(zhuǎn)方陣endl; cout0-退出系統(tǒng)endl;cout choice;switch(choice)case 0:con
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能駕駛技術(shù)在電動汽車中的應(yīng)用能力分析試題及答案
- 應(yīng)急救援相關(guān)試題及答案
- 教書育人試題及答案高中
- 旋律創(chuàng)作中樂理知識的引導(dǎo)作用試題及答案
- 嬰幼兒教養(yǎng)試題及答案
- 施工安全事故案例考題及答案
- 云南災(zāi)害面試題及答案
- 化學教育的創(chuàng)新方法與策略試題及答案
- 焦作大學筆試題目及答案
- 二年級數(shù)學(上)計算題專項練習
- 2025年公共衛(wèi)生與預(yù)防醫(yī)學考試試卷及答案
- 網(wǎng)站聯(lián)盟廣告專題報告
- 2025年四川省成都市高新區(qū)中考數(shù)學二診試卷
- 高考數(shù)學總復(fù)習第九章概率9.1隨機事件的概率
- 中國證券金融股份有限公司招聘筆試真題2024
- 深圳市人才集團筆試題庫
- 反詐宣傳課件小學生版
- 2024年全國職業(yè)院校技能大賽高職組(環(huán)境檢測與監(jiān)測賽項)考試題庫(含答案)
- 舞蹈技巧培訓(xùn)課件
- 2025年形勢與政策-加快建設(shè)社會主義文化強國+第二講中國經(jīng)濟行穩(wěn)致遠
- 氣象防災(zāi)減災(zāi)知識科普
評論
0/150
提交評論