數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告40887_第1頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告40887_第2頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告40887_第3頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告40887_第4頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告40887_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、安徽工業(yè)大學(xué)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)指導(dǎo)老師:陳學(xué)進(jìn)姓名:陸俊賢學(xué)號(hào):139074382課程設(shè)計(jì)報(bào)告由封面和正文組成目錄課題一:進(jìn)制轉(zhuǎn)換3.數(shù)據(jù)結(jié)構(gòu):32 .算法:33 程序源代碼:34 測(cè)試數(shù)據(jù)與調(diào)試 7課題二一元多項(xiàng)式的計(jì)算 81 數(shù)據(jù)結(jié)構(gòu) 82 算法 83 程序源代碼 84 測(cè)試數(shù)據(jù)與調(diào)試 16課題三-大數(shù)相乘 171-數(shù)據(jù)結(jié)構(gòu) 172 算法 173 源程序代碼 174 測(cè)試數(shù)據(jù)與調(diào)試 193課題一:進(jìn)制轉(zhuǎn)換1 數(shù)據(jù)結(jié)構(gòu):棧和隊(duì)列;2 算法:將需要轉(zhuǎn)換的數(shù)據(jù)分為兩部分,整數(shù)部分和小數(shù)部分,將整數(shù)部分利用輾轉(zhuǎn)相除法取得的余數(shù)存入棧中,將小數(shù)部分乘以進(jìn)制取整后存入隊(duì)列中,然后順序出棧和出隊(duì)列,輸出轉(zhuǎn)

2、換后的數(shù)值,3 程序源代碼:#include<iostream> using namespace std; typedef int datatype;class Seqstackprivate:datatype *base;datatype *top;int size;public:SeqstackCint stacksize=100)base =new datatype stacksize;top二base;size二stacksize;);int Empty.stackO ;int Push_stack(datatype e);int Pop.stack(datatype &a

3、mp;e);課程設(shè)計(jì)報(bào)告由封面和正文組成);class SeqQueue private:datatype *base;int front,rear;int size;public:SeqQueue (int Queuesize=100) base =new datatype Queuesize;front=rear=0;size=Queuesize;);int Empty_Queue0;int In.Queue(datatype e);int Out_Queuc(datatype &e););int Seqstack::Empty.stack0 return top<=base

4、;)int Seqstack::Push_stack(datatype e) (if(top-base<size) top=e;top+;return 1;) elsereturn 0;)int Seqstack: :Pop_stack(datatype&e) if(top>base) (top-;e=*top;return 1;) elsereturn 0;)頁理內(nèi)容4課程設(shè)計(jì)報(bào)告由封面和正文組成int SeqQueue::Empty.Queue() return front=rcar; )int SeqQueue:In-Queue(datatype e) if(rear

5、+1)%size!=front) rear=(rear+1)%size;baserear=e;return 1; )elsereturn 0;)int SeqQueue:Out_Queue(datatype &e) (if(rear!=front) front=(front+1)%size;e=basefront;return 1;) else return 0;)void Calculatel(int Num, int r);void Calculate2(double Num, int r);int mainO int r;double Num;cout«"請(qǐng)輸

6、入一個(gè)任意十進(jìn)制數(shù)(輸入0結(jié)束)/«endl; while (1) cin»Num;if (Num=0) return 0; cout<<”請(qǐng)輸入轉(zhuǎn)換進(jìn)制:*«endl; cin»r;cout<<“轉(zhuǎn)換后的數(shù)為:/r«endl;if(Num<0) (Num="Num;cout<<"一")Calculate!(int)Num> r);if(Num-(int)Num)Calculate2(Num-(int)Num, r);)elsecout«endl;cout&

7、lt;<”請(qǐng)輸入一個(gè)任意十進(jìn)制數(shù)(輸入0結(jié)束):*«endl; )return 0;)void Calculatel(int Num, int r)Seqstack s;int e;char ch;while(Num)e=Num%r;Num =Num/r;s. Push.stack(e);)while(!s. Empty_stack0)(s. Pop_stack (e);if(e>=0&&e<10)cout«e;elsech=e+55;cout«ch;)void Calculate2(double Num, int r)(if(N

8、um!=0)int e;char ch;SeqQueue q;while(Num>0. 001)Num=Num*r;e=(int)Num;Num-=e;q. In.Queue (e);)while(!q. Empty_Queue0)q. Out_Queue (e);if(e<10&&e>-l)cout«e;else(ch=e+55;cout«ch;)cout«endl;)4測(cè)試數(shù)據(jù)與調(diào)試請(qǐng)輸入一個(gè)任意十進(jìn)制數(shù)(輸入o結(jié)束):20.3請(qǐng)輸入轉(zhuǎn)換進(jìn)制:2轉(zhuǎn)換后的數(shù)為:10100.0100110011001100110011001100

9、11001100110011001101請(qǐng)輸入一個(gè)任意十進(jìn)制數(shù)(輸入0結(jié)束):98.5請(qǐng)輸入轉(zhuǎn)換進(jìn)制:16轉(zhuǎn)換后的數(shù)為:62.8請(qǐng)輸入一個(gè)任意十進(jìn)制數(shù)(輸入0結(jié)束):65.3請(qǐng)輸入轉(zhuǎn)換進(jìn)制:16轉(zhuǎn)換后的數(shù)為:7課程設(shè)計(jì)報(bào)告由封面和正文組成41.4CCCCCCCCCCC011$曰$人卅而$1冏。&$日叩激據(jù)結(jié)構(gòu)程序設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)進(jìn)制或奐、Debug裝殯:回超 J請(qǐng)輸入一個(gè)任意十進(jìn)制數(shù)輸入0結(jié)束):20.3請(qǐng)輸入轉(zhuǎn)換進(jìn)制:2轉(zhuǎn)換后的數(shù)為:10100.010011001100110011001100110011001100110011001101請(qǐng)輸入一個(gè)任意十進(jìn)制數(shù)輸入。結(jié)束):98

10、 5請(qǐng)耐入轉(zhuǎn)換選制:16轉(zhuǎn)換后的數(shù)為:62 9請(qǐng)輸入一個(gè)任意十進(jìn)制數(shù)輸入。結(jié)束):65.3請(qǐng)輸入轉(zhuǎn)換迸制:轉(zhuǎn)換后的數(shù)為:41.4CCCCCCCCCCC請(qǐng)輸入一個(gè)任意十進(jìn)制數(shù)(輸入。結(jié)束”0Press any key to continue課題二一元多項(xiàng)式的計(jì)算1 數(shù)據(jù)結(jié)構(gòu)順序表2 算法將從設(shè)備中接收的字符串按照一元多項(xiàng)式的書寫規(guī)則寫入順序 表中,然后將兩個(gè)順序表按照用戶要求的運(yùn)算規(guī)則(加、減、乘) 將運(yùn)算結(jié)果存入順序表中并輸出。3程序源代碼#include<iostream>#include<cstring>using namespace std;"defin

11、e maxsize 100typedef int datatype;class a (public: int xishu; int cishu;char ch;char sign;);class Seqlist (public:a Itemmaxsize;int len;Seqlist ()len=0;void InitiateO ;void Output 0;void Sort 0;friend void Calculatel(Seqlist &11,Seqlist &12);friend void Calculate2(Seqlist &11,Seqlist &am

12、p;12);friend void Calculates(Seqlist &11,Seqlist &12 ,Seqlist &13); );void Add(Seqlist &13, a &l_flag);int mainO (Seqlist 11,12,13;char ch;cout<<”請(qǐng)輸入第一個(gè)一元多項(xiàng)式:"<<endl;11. InitiateO ;cout«endk< 請(qǐng)輸入運(yùn)算符/«endl;cin»ch;cout«end"請(qǐng)輸入第二個(gè)一元多項(xiàng)式:&q

13、uot;<Xendl;12. InitiateO ;cout«endl«,/ 計(jì)算結(jié)果:/z«endl;switch(ch)case * +' :Calculatel(11,12);break;case *:Calculate2(ll, 12);break;case ' *' :Calculates (11,12,13);break;)cout«endl;return 0;)void Seqlist:Initiate()(char a100;int i=0, j=0, str_len;cin»a;str_len=s

14、trlen(a);while(i<str_len) (ItemEj. xishu=0;if(i=0)(ItemEj. sign='一'i+;if(ai>='z )(ItemEj. ch=aLi;ItemLj. xishu=l;i+;)ifCaEi/o'&&aik=' 9')(whiled)(ifCaEi/0f&&ai<= 9')(ItemEj. xishu=ai-" O' +ItemLjl. xishu*10; i+;elsebreak;)ItemEj. ch=aLi;i

15、+;)二一)(*1;ItemEj. cishu=l;)else(i+;ItemEj. cishu=O'i+;j+;)else(ItemEj. xishu=O;ItemEj. sign=ai;i+;if(ai>= a &&ai<= z)(ItemEj. ch=ai;ItemEj. xishu=l;i+;else ifCaEi/0,&&ai<= 9*)(whiled)(if(ai>* O&atiK 9')(ItemEj. xishu=aEi-' O' +Itemj. xishu*10; i+; ) el

16、se break;)ItemEj. ch=ai;i+;)二一)11課程設(shè)計(jì)報(bào)告由封面和正文組成* 1;ItemEj. cishu=l;) else ( i+;ItemEj. cishu=ai-> O'i+; ) j+; ) ) len=j;for(i=0;i<len;i+)(ifsign二二'-')(ItemEi. xishu=-ItemiL xishu;)void Seqlist:Output 0 (int i=0;for(i=0;i<len;i+)(if(i>0) (if(ItemEi. xishu<O&&ItemEi.

17、 xishu!=-l) cout«Itemi. xishu;if (ItemEi. xishu>l) cout«' +'xishu;if (ItemEi. xishu=T) cout«,一';if (ItemEi. xishu=l) cout«,+'cout«Itemi. ch;if (ItemEi. cishu!=l) cout<<,"cishu;elseif (ItemEi. xishu=-l)cout«,一';if (ItemEi. xishu!=l&&

18、amp;Itemi. xishu!=-l) cout«Itemi. xishu;cout«Itemi. ch;if (ItemEi. cishu>l) cout«'cishu;)void Calculatel(Seqlist &11, Seqlist &12) (cout«,C ;11. Output 0 ;COUt«/Z) + cout«,('11. Output 0 ;COUt«,/)”;cout«,= ;int i, j, flag=O;for(j=0;j<12.

19、len;j+)(flag=O;for(i=0;i<ll. len;i+)(if(12. Itemj. cishu=ll. ItemEi. cishu)(11. ItemEi. xishu+=12. ItemEj. xishu; flag=l;break;)if(flag=0)(11. ItemEll. len=12. ItemEj;11.1 en+;)11. Sort 0 ;11. Output 0 ;void Calculate2(Seqlist &11,Seqlist &12)cout«,('#課程設(shè)計(jì)報(bào)告由封面和正文組成11.Output 0;CO

20、Ut«/Z)-cout«,C ;11.Output 0;COUt«/Z)cout< 二;int i, j, flag=O;for(j=0;j<12. len;j+) (flag=O;for(i=0;i<ll. len;i+)(if(12. Itemj. cishu=ll. Itemii. cishu) (11.xishu-=12. ItemEj. xishu;flag=l;break;)if(flag=0)(11. ItemEll. len=12. Itemtj;11.len+;)11. Sort 0 ;11.Output 0;void Seql

21、ist:Sort()(int i, j;a l_e;for(i=0;i<len;i+)for(j=0;j<len-i;j+)if(Itemj. cishu<Itemj+l. cishu) (l_e=Itemj;Itemj=Itemj+l;)void Calculates(Seqlist &11,Seqlist &12,Seqlist &13)cout«,C ;44課程設(shè)計(jì)報(bào)告由封面和正文組成11.Output 0;COUt«/Z) *cout«,('11.Output 0;cout<<")&q

22、uot;cout«"= ; a l.flag;int i, j;for(i=0;i<ll.len;i+)(for(j=0;j<12. len;j+) (l_flag. xishu=ll. Itemi. xishu*12. ItemLj. xishu;l_flag. cishu=ll. Itemi. cishu+12. ItemLj. cishu; l_flag. ch=ll. ItemEi. ch;Add (13, l.flag);)13. Sort 0 ;13. Output 0 ;)void Add(Seqlist &13, a &l_fla

23、g)(int i;int flag=0;for (i=0;i<13. len;i+)if(l_flag. cishu=13.cishu)(13. ItemEi. xishu+=l_flag. xishu;flag=l;)if(flag=0)(13. Item13. len=l_flag;13.1 en+;)4測(cè)試數(shù)據(jù)與調(diào)試輸入:23x-2+6x3+x6-21x 0 2+6x °3-8lx.5輸出:x * 6-81x * 5+12x * 3+2x * 2fiC:lke0Admini&t3torDesktop傲據(jù)結(jié)構(gòu)程序設(shè)計(jì)、數(shù)據(jù)結(jié)何課程設(shè)計(jì)請(qǐng)輸入運(yùn)算符:4-請(qǐng)輸入第二個(gè)一

24、元多項(xiàng)式:-21x2+6x3-81x5計(jì)算結(jié)果:(2 3 乂人2 $6乂八3)乂-6 >+( 23、人2 46乂人3乂-6 >= 乂入6-81乂入5 +12x3+2 乂人2Press any key to continuem 輸入:3x2+x3*x4+6x5輸出:6x8+19x7+3x6'C:U sersAd m inistrato rD e s ktop塌據(jù)結(jié)構(gòu)程序設(shè),.請(qǐng)輸入第一個(gè)一元多項(xiàng)式:3x人2-x人3請(qǐng)輸入運(yùn)算符二 *請(qǐng)輸入第二斤一元多項(xiàng)式=乂人46乂人5計(jì)算結(jié)果;<3x2+x3>*<3x 人 2+x 人3= 6x 人 819乂人?,3乂人 6

25、Press any key to continue.rn課題三大數(shù)相乘1 數(shù)據(jù)結(jié)構(gòu)線性表2 算法將從外接設(shè)備中接收的字符串存入整形線性表中,并且倒序存 入,每個(gè)數(shù)組元素存一個(gè),然后錯(cuò)位相乘,對(duì)應(yīng)相加。3-源程序代碼#include<iostream>#include<cstring>#include<cmath> using namespace std; typedef int datatype;#define maxsize 9999class Seqlist (private:datatype datamaxsize; int len;public:Seqlist () ( len=O;for(int i=0;i<maxsize;i+) datai=0;)void InitiateO ;void Output();void Reinitiate 0;friend void Calculate(Seqlist &11,Seqlist &12, Seqlist &13); );int mainO17課程設(shè)計(jì)報(bào)告由封面和正文組成S

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論