第一篇:《數據結構》程序設計報告
《數據結構》 課程設計報告
課程名稱: 課程設計題目:姓
名:
院系: 專
業: 年
級: 學
號: 指導教師: 《數據結構》課程設計 約瑟夫環
俞曉沁 計算機學院
計算機科學與技術
大二
0905120
4王立波
2011年5月22日
1、課程設計的目的
(1)熟練使用C++語言編寫程序,解決實際問題;
(2)了解并掌握數據結構與算法的設計方法,具備初步的獨立分析和設計能力;(3)初步掌握軟件開發過程的問題分析、系統設計、程序編碼、測試等基本方法和技能;(4)提高綜合運用所學的理論知識和方法獨立分析和解決問題的能力;
2、需求分析
1、任務:編號是1,2,??,n的n個人按照順時針方向圍坐一圈,每個人只有一個密碼(正整數)。一開始任選一個正整數作為報數上限值m,從第一個仍開始順時針方向自1開始順序報數,報到m時停止報數。報m的人出列,將他的密碼作為新的m值,從他在順時針方向的下一個人開始重新從1報數,如此下去,直到所有人全部出列為止。設計一個程序來求出出列順序。
要求:利用不帶表頭結點的單向循環鏈表存儲結構模擬此過程,按照出列的順序輸出各個人的編號。
2、測試數據
m的初值為20,n=7 ,7個人的密碼依次為3,1,7,2,4,7,4,首先m=6,則正確的輸出是什么?
3、課程設計報告內容
概要設計
(1)在分析題目要求的基礎上,我首先設計了一個節點的結構體 struct LNode { int xuhao;int data;LNode *next;};
//存儲每個人的信息(序號,密碼)以及下個人的信息(2)然后構造了類LinkList class LinkList { public:
LinkList();
void Make_L(int n);
void GetXuhao(int m,int n);private:
LNode *tail;
};
(3)基本操作
Void LinkList::LinkList();
//構造函數
Void LinkList::Make_L(int n);//建立單向循環鏈表
Void LinkList::GetXuhao(int m,int n);//按照出列順序輸出各個人的編號(4)主函數
初始化
輸入人數n, 上限數m以及每個人的密碼.L.Make_L(n);
L.GetXuhao(m,n);
4、總結
一、這次課程設計的心得體會通過實踐我的收獲如下:
鞏固和加深了對線性表兩種存儲結構—順序存儲和鏈式存儲的理解,提高了綜合運用本章節所學知識的能力。
二、根據我在實習中遇到得問題,我將在以后的學習過程中注意以下幾點:
1、認真上好專業課,牢固掌握課本中的基本知識。
2、寫程序時多思考,克服不愿觸碰不懂地方的障礙,完善知識結構。
3、寫程序要嚴謹,多寫備注,方便檢查。
4、在課余時間多翻閱課外相關書籍,多看程序,吸取別人程序中好的方法,熟悉后多加利用。
5、程序清單:
#include
{ int xuhao;int data;
LNode *next;};class LinkList { public:
LinkList();void Make_L(int n);void GetXuhao(int m,int n);private:
};
LinkList::LinkList()
{ tail=new LNode;tail->next=NULL;
} void LinkList::Make_L(int n){
} LNode *p,*q;if(n!=0){
} tail->xuhao=1;cin>>tail->data;q=tail;for(int i=2;i } tail->next=q;p=new LNode;cin>>p->data;p->xuhao=i;tail->next=p;tail=p; LNode *tail;void LinkList:: GetXuhao(int m,int n){ } int main(){ int m,n; LinkList L; cout<<“請輸入人數n:”; cin>>n; cout<<“請輸入一個正整數作為報數的上限數m:”;cin>>m;cout<<“請輸入每個人的密碼:”;L.Make_L(n);cout<<“正確的出列順序為:”;L.GetXuhao(m,n);LNode *p=tail,*q;int i,j;for(i=0;i j=0;while(j } p=p->next;++j;cout << p->next->xuhao<<“ ”;m=p->next->data;q=p->next;p->next=q->next;delete q;} system(“pause”); return 0;} 6、參考文獻 [1] 萬健 主編 數據結構實用教程(C++版)——電子工業出版社.[2]網上搜索相關程序作為參考 7、程序運行結果 《數據結構》 課程設計報告 課程名稱: 課程設計題目:姓 名: 院系: 專 業: 年 級: 學 號: 指導教師: 《數據結構》課程設計 魔王語言解釋 俞曉沁 計算機學院 計算機科學與技術 大二 0905120 4王立波 2011年5月22日 1.課程設計的目的 (5)熟練使用C++語言編寫程序,解決實際問題; (6)了解并掌握數據結構與算法的設計方法,具備初步的獨立分析和設計能力;(7)初步掌握軟件開發過程的問題分析、系統設計、程序編碼、測試等基本方法和技能;(8)提高綜合運用所學的理論知識和方法獨立分析和解決問題的能力; 2.需求分析 1、[問題描述] 有一個魔王總是使用自己的一種非常精練而又抽象的語言講話,沒有人能聽得懂,但他的語言是可以逐步解釋成人能聽懂的語言,因為他的語言是由以下兩種形式的規則由人的語言逐步抽象上去的: (1)α -> β1β2?βm(2)(θδ1δ2?δn)->θδnθδn-1? θδ1θ 在這兩種形式中,從左到右均表示解釋。試寫一個魔王語言的解釋系統,把他的話解釋成人能聽得懂的話。[基本要求] 用下述兩條具體規則和上述規則形式(2)實現。設大寫字母表示魔王語言的詞匯;小寫字母表示人的語言詞匯;希臘字母表示可以用大寫字母或小寫字母代換的變量。魔王語言可含人的詞匯。 (1)B -> tAdA(2)A -> sae [測試數據] B(ehnxgz)B解釋成tsaedsaeezegexenehetsaedsae 若將小寫字母與漢字建立下表所示的對應關系,則魔王說的話是:“天上一只鵝地上一只鵝鵝追鵝趕鵝下鵝蛋鵝恨鵝天上一只鵝地上一只鵝”。[小寫字母與漢字對應關系] t d s a e z g x n h 天 地 上 一只 鵝 追 趕 下 蛋 恨 3、課程設計報告內容 概要設計 (1)建立了一個結構體,用來定義棧 struct SeqStack { char elem[Stack_Size]; int top;};(2)基本操作 void InitStack(SeqStack *s)//構建棧 void Push(SeqStack *s,char x) //入棧 void Pop(SeqStack *s,char *x) //出棧 int Empty(SeqStack *s) //判棧是否為空 (3)主函數 定義所需的棧并初始化 輸入要翻譯的魔王語言,入棧s 將tAdA入棧B,將sae入棧A 翻譯魔王語言:while(Empty(&s)) { …..if(ch=='B'){…} else if(ch=='A'){…} else if(ch==')'){…} else Push(&r,ch); } 輸出翻譯后的結果 選擇是否繼續翻譯為漢語: 輸入1-? 輸出翻譯后的漢語,然后結束程序 輸入0-? 結束程序 4、總結 一、這次課程設計的心得體會通過實踐我的收獲如下: 鞏固和加深了對棧的理解,熟練地掌握了棧的運用(棧的初始化,判棧空,入棧,出棧等)。 二、根據我在實習中遇到得問題,我將在以后的學習過程中注意以下幾點: 1、認真上好專業課,牢固掌握課本中的基本知識。 2、寫程序時多思考,克服不愿觸碰不懂地方的障礙,完善知識結構。 3、寫程序要嚴謹,多寫備注,方便檢查。 4、在課余時間多翻閱課外相關書籍,多看程序,吸取別人程序中好的方法,熟悉后多加利用。 5、程序清單: #include struct SeqStack //定義棧 { char elem[Stack_Size]; int top;}; void InitStack(SeqStack *s)//構建棧 { s->top=-1;} void Push(SeqStack *s,char x) //入棧 { if(s->top==Stack_Size-1) cout<<“棧已滿!”< else { s->top++;s->elem[s->top]=x; } } void Pop(SeqStack *s,char *x) //出棧 { if(s->top==-1) cout<<“棧為空!”< else { *x=s->elem[s->top]; s->top--; } } int Empty(SeqStack *s) //判棧是否為空 { if(s->top==-1) return(0); else return(1);} void main(){ SeqStack B,A,s,B1,A1,r,M,R; //定義棧 char ch,ch1,ch2,x; char aa[100]; int n; InitStack(&B);InitStack(&A);InitStack(&s);InitStack(&r);InitStack(&M); //對定義的棧初始化 cout< //輸入要翻譯的魔王語言 cin>>aa; Push(&B,'t');Push(&B,'A');Push(&B,'d');Push(&B,'A'); //進棧B→tAdA Push(&A,'s');Push(&A,'a');Push(&A,'e'); //進棧A→sae for(int i=0;aa[i]!='
主站蜘蛛池模板:
久久婷婷五夜综合色啪软件下|
欧美俄罗斯40老熟妇|
国产av丝袜旗袍无码网站|
国产成人一区二区三区免费|
国产av电影区二区三区曰曰骚网|
狠狠色狠狠色综合网|
中国免费看的片|
а√天堂资源中文在线官网|
亚洲精品国精品久久99热一|
内谢少妇xxxxx8老少交|
国产熟妇高潮呻吟喷水|
真人二十三式性视频(动)|
久久精品亚洲日本波多野结衣|
97久人人做人人妻人人玩精品|
久久国产午夜精品理论片|
欧美大屁股xxxxhd黑色|
中文国产成人精品久久不卡|
国产精品免费观看调教网|
在线不卡日本v一区二区|
国产亚洲精品久久久久久入口|
精品无码一区在线观看|
中文精品久久久久人妻不卡|
欧美性大战久久久久久|
人人爽久久涩噜噜噜丁香|
亚洲国产欧美一区三区成人|
亚洲韩欧美第25集完整版|
国产成人精品自在线导航|
亚洲色精品vr一区区三区|
日韩精品人妻系列一区二区三区|
国产男女猛烈无遮挡a片漫画|
青春草在线视频免费观看|
亚洲成av人片天堂网久久|
国产精品久久久久久无码|
成人亚洲区无码区在线点播|
国产精品久久久久电影网|
人妻少妇中文字幕乱码|
一区二区三区免费视频播放器|
中文无码精品一区二区三区|
99爱精品成人免费观看|
熟妇高潮喷沈阳45熟妇高潮喷|
尤物yw午夜国产精品大臿蕉|