版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
河北聯(lián)合大學2012-2013第2學期《軟件設計基礎-C++》課程設計報告設計名稱:出圈游戲1姓名:張子超學號:201214670112專業(yè)班級:12軋一學院:冶金與能源學院設計時間:2013年5月10日至2013年7月1日設計地點:學校機房成績:75成績:75指導教師簽字:年月日《軟件設計基礎-C++》課程設計報告第2頁,共14頁目錄1.課程設計目的 32.課程設計任務與要求 33.課程設計說明書 54.課程設計成果 75.程序調(diào)試過程 116.設計問題的不足和改進方案 117.課程設計心得 128.參考文獻 13
1.課程設計目的《軟件設計基礎-C++》課程設計是這門課程的實踐性教學環(huán)節(jié)之一,本次設計結(jié)合實際應用的要求,使課程設計既覆蓋C++的知識點,又接近工程實際需要。目的是通過課程設計的綜合訓練,培養(yǎng)學生實際分析問題、解決問題的能力,以及編程和動手能力,最終目標是通過課程設計這種形式,幫助學生系統(tǒng)掌握C++這門課程的主要內(nèi)容,養(yǎng)成良好的編程習慣,更好的完成教學任務。2.課程設計任務與要求:要求:本次課程設計利用《軟件設計基礎-C++》課程中所學到的編程知識和編程技巧,完成具有一定難度和工作量的程序設計題目,幫助學生掌握編程、調(diào)試的基本技能,獨立完成所布置的任務。要求:1、對系統(tǒng)進行功能需求分析2、設計合理的數(shù)據(jù)結(jié)構(gòu)和系統(tǒng)框架3、編程簡練,程序功能齊全,能正確運行4、說明書、流程圖要清楚5、課題完成后必須按要求提交課程設計報告任務:問題描述:假設有n個人按順時針圍成一圈,一開始任選一個正整數(shù)作為報數(shù)上限值m,從第一個人開始按順時針方向自1開始報數(shù),報到m時停止報數(shù)。報到m的人出列,然后從他原來所在的順時針方向的下一個開始重新從1報數(shù),報到m時停止報數(shù)并出列。如此下去,直至所有的人全部出列為止。要求按他們出列的順序輸出他們原來的序號和名字。問題的解決方案:本課程設計任務描述中,要實現(xiàn)從鍵盤隨機輸入這兩個數(shù)據(jù)完成出圈游戲。因此,需要根據(jù)運行時的實際要求,分配適當大小的存儲區(qū)。當回答參加游戲的人數(shù)之后,即可為程序分配一塊內(nèi)存塊,用來存入游戲者的名字和序號。但在計算中,需要將點到的人出圈,這是通過將對象的序號均變?yōu)?實現(xiàn)的。基本要求:(1)在頭文件中聲明SeqList類。(2)源代碼程序要求必要的注釋。(3)每個模塊存入一個文件中,以多文件模式存儲并調(diào)試程序。創(chuàng)新要求在基本要求達到后,可以進行創(chuàng)新設計,如使用動態(tài)存儲管理(使用動態(tài)數(shù)組接收輸入,并且參加游戲的人數(shù)和間隔可變)。3.課程設計說明書=1\*GB2⑴概要設計模塊說明:在我設計的程序中一共包括SeqList聲明,接收模塊,檢查模塊,循環(huán)模塊,和輸出模塊。最終是通過Joseph函數(shù)實現(xiàn)出圈。模塊結(jié)構(gòu)圖:SeqListSeqList聲明接收模塊檢查模塊循環(huán)模塊循環(huán)模塊輸出模塊Joseph函數(shù)=2\*GB2⑵詳細設計1.總體流程圖:Main函數(shù)用SeqList類創(chuàng)建對象調(diào)用JosephMain函數(shù)用SeqList類創(chuàng)建對象調(diào)用Joseph函數(shù)實現(xiàn)出圈輸出提示要求鍵盤輸入數(shù)字用用game1()形成鏈表2.各功能模塊流程圖(1)調(diào)用Joseph實現(xiàn)出圈接收鍵盤上的數(shù)字接收鍵盤上的數(shù)字檢查輸入的人數(shù)和間隔數(shù)是否符合要求檢查輸入的人數(shù)和間隔數(shù)是否符合要求輸出相應的提示,并要求正確輸入輸出相應的提示,并要求正確輸入 不符合要求 符 依舊不符合 合 符合輸出最后一個的相關信息循環(huán)報數(shù)出圈直至留下一個人,并且每次出圈都輸出輸出最后一個的相關信息循環(huán)報數(shù)出圈直至留下一個人,并且每次出圈都輸出(2)其余模塊均為簡單語句,無需細分,只需注意語法和格式即可4.課程設計成果程序源代碼#include<iostream>#include<string.h>usingnamespacestd;//類聲明用的是雙鏈表classSeqList{ intnum;charname[10];public: SeqList*next;//對象的下一個對象的指針SeqList*pre;//對象的前一個對象的指針intGetNum();//得到私有數(shù)據(jù)序號voidDispName();//從鏈表中除去選中的那個人char*GetName();//得到私有數(shù)據(jù)姓名voidSetNum(inta);//設置私有數(shù)據(jù)序號voidSetName(charb[10]);//設置私有數(shù)據(jù)姓名~SeqList(){}//析構(gòu)函數(shù),其實在這里寫不寫都行};//類成員函數(shù)定義intSeqList::GetNum(){ returnnum;}//讀數(shù)據(jù)成員voidSeqList::DispName(){ pre->next=next;next->pre=pre;//printf("%d%s\n",num,name);}char*SeqList::GetName(){ returnname;}//讀數(shù)據(jù)成員voidSeqList::SetNum(inta){ num=a;}voidSeqList::SetName(charb[10]){ strncpy(name,b,10);}//主函數(shù)的定義voidgame1();voidJoseph(SeqList*p,intlength);intmain(){ game1();return0;}//建立成員的雙鏈表過程,輸入成員并將其鏈接成一個雙鏈表,便于刪除和添加對象voidgame1()//游戲的輸入成員工程{ intn,i,m;intnum1;chars[10];cout<<"請輸入總?cè)藬?shù)和出圈數(shù)"<<endl;cin>>n>>m;while(n<=0||m<=0){cout<<"請輸入正確的總?cè)藬?shù)和出圈數(shù)"<<endl;cin>>n>>m;}SeqList*head,*p,*q;//聲明鏈表所需的指針head=(SeqList*)newSeqList;//頭指針cout<<"請輸入序號和姓名"<<endl;cin>>num1>>s;head->SetNum(num1);//頭指針所指對象的建立過程head->SetName(s);head->pre=NULL;head->next=NULL;p=head;for(i=1;i<n;i++)//指針其余部分的建立 {q=(SeqList*)newSeqList;p->next=q;cin>>num1>>s;q->SetNum(num1);q->SetName(s);q->pre=p;q->next=NULL;p=q;}p->next=head;head->pre=p;Joseph(head,m);//函數(shù)調(diào)用刪除對象deleteq;}voidJoseph(SeqList*q,intlength)//游戲的剔除并輸出對象的過程{cout<<"出圈順序"<<endl; inti,j;SeqList*p=q;for(i=0;p->next!=p;i++){ if(i==0) j=1; else j=0; for(;j<length;j++)//遍歷對象 { p=p->next; } cout<<p->GetNum()<<""<<p->GetName()<<endl;//輸出所選擇的對象的信息 p->DispName();//刪除所選擇的對象 } deleteq;}運行過程5.程序調(diào)試過程寫出程序調(diào)試步驟,及遇到的問題。調(diào)試程序遇到的問題第一次:忘記兩個分號解決辦法:加分號第二次:變量num1未定義解決辦法:在變量聲明部分加intnum16.設計問題的不足和改進方案不足:(1)沒有出圈游戲者具體信息的輸出改進方案:類中加幾個屬性要求用戶輸入寫相關輸出方法出圈時輸出運行一次程序不能做多次游戲改進方案:main中加循環(huán),mian最開始要求輸入游戲次數(shù)t然后用for(intj=0;j<t;j++)循環(huán)7.課程設計心得回顧起此次課程設計,至今我仍感慨頗多,的確,自從拿到題目到完成整個編程,從理論到實踐,可以學到很多很多的的東西,同時不僅可以鞏固了以前所學過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次課程設計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,這畢竟獨立做的,難免會遇到過各種各樣的問題,同時在設計的過程中發(fā)現(xiàn)了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固,比如說結(jié)構(gòu)體,類和函數(shù)……通過這次課程設計之后,一定把以前所學過的知識重新溫故。此次,程序的設計和創(chuàng)建,經(jīng)歷了平時在課堂中和考試中,決不會有的重重難題和問題。而這些問題,又都是課本上很少提到的、更深一層的知識領域和應用領域。這些問題,并不是我們平時只靠課本,就可以輕易解決的?!皩嵺`是檢驗真理的唯一標準”。沒有實踐,就不會發(fā)現(xiàn)和深刻體會它的真實所在。只有通過檢驗的真理,在自己的心里,才會認可它的真實性。面向?qū)ο蟪绦蛟O計的完成,使我們懂得了真理的重要性,理論和實際的相結(jié)合,才能真正把握所學和所掌握的知識。整體地評價這次課程設計,我認為收獲很大,正如上面所說的那樣,通過課程設計,既復習了以前的舊知識,又學到了一些新的知識;設計增強了我們用所學知識去解決具體問題的能力,進一步培養(yǎng)了我們獨立思考問題和解決問題的能力。理論的擁有并不能代表我們的實力和能力,一切的事件和其成功都是理論和實踐的結(jié)合??傊覀儗W習和掌握的知識,只有通過實際應用,才能真正的理解和掌握,才能更好的去應用。這次課程設計終于順利完成了,在設計中遇到了很多編程問題,最后在同學的幫助下,終于游逆而解。同時,在其他同
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)法務部實習律師聘用合同
- 2024年大連建筑防雷接地系統(tǒng)工程監(jiān)理合同
- 珠寶公司辦公室租賃合同
- 智能養(yǎng)老用電合同管理規(guī)定
- 2024年企業(yè)間關于原材料長期供應合同
- 課程設計運動會管理系統(tǒng)
- 2024年塑料管材購銷合同
- 沿海防護工程粉噴樁施工合同
- 國防科技防雷施工合同
- 墻紙施工合同健身房動感氛圍
- 學生心理健康檔案表格
- (新版)金屬冶煉(鉛、鋅冶煉)主要負責人考試題庫(含答案)
- 月光下的中國 詩歌朗誦詞 作者:歐震
- 2023年神東煤炭集團招聘筆試題庫及答案解析
- 溶血性貧血病例討論
- 排便異常的護理課件
- 《八聲甘州》(柳永)(共47張PPT)
- GB/T 2550-1992焊接及切割用橡膠軟管氧氣橡膠軟管
- GB/T 25052-2010連續(xù)熱浸鍍層鋼板和鋼帶尺寸、外形、重量及允許偏差
- GA 1277.2-2020互聯(lián)網(wǎng)交互式服務安全管理要求第2部分:微博客服務
- 《幼兒攻擊行為研究開題報告》
評論
0/150
提交評論