影音先锋男人资源在线观看,精品国产日韩亚洲一区91,中文字幕日韩国产,2018av男人天堂,青青伊人精品,久久久久久久综合日本亚洲,国产日韩欧美一区二区三区在线

數(shù)制轉(zhuǎn)換 C 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計

上傳人:仙*** 文檔編號:28101362 上傳時間:2021-08-23 格式:DOC 頁數(shù):19 大小:248.63KB
收藏 版權(quán)申訴 舉報 下載
數(shù)制轉(zhuǎn)換 C 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_第1頁
第1頁 / 共19頁
數(shù)制轉(zhuǎn)換 C 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_第2頁
第2頁 / 共19頁
數(shù)制轉(zhuǎn)換 C 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計_第3頁
第3頁 / 共19頁

下載文檔到電腦,查找使用更方便

15 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《數(shù)制轉(zhuǎn)換 C 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計》由會員分享,可在線閱讀,更多相關(guān)《數(shù)制轉(zhuǎn)換 C 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(19頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、 福建農(nóng)林大學(xué)計算機與信息學(xué)院 計算機類 課程設(shè)計報告 課程名稱: 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 課程設(shè)計題目: 數(shù)制轉(zhuǎn)換問題 姓 名: XIA 系: 計算機科學(xué)與技術(shù) 專 業(yè): 計算機科學(xué)與技術(shù) 年 級: 2011級 學(xué) 號: 3116013131 指導(dǎo)教師: 劉必雄 職 稱: 講師 2011年 12月 24日 福建農(nóng)林大學(xué)計算機與信息學(xué)院計算機類 課程設(shè)計結(jié)果評定 評語: 評分項目 分值 得分 綜合運用知識能力和實踐動手能力強,設(shè)計方案合理,計算、分析正確,設(shè)計成

2、果質(zhì)量高; 40 設(shè)計態(tài)度認(rèn)真,獨立工作能力強,有獨到見解,水平較高,并具有良好的團隊協(xié)作精神; 40 設(shè)計報告條理清晰、論述充分、文字通順、圖表規(guī)范課程設(shè)計報告符合規(guī)范要求。 20 成績: 指導(dǎo)教師簽字: 任務(wù)下達(dá)日期: 評定日期: - 16 - 目 錄 1. 設(shè)計目的 - 1 - 2. 設(shè)計要求 - 1 - 3. 設(shè)計方案 - 1 - 4. 設(shè)計內(nèi)容 - 1 - 4.1 需求分析 - 1 - 4.1.1 輸入的形式和輸入值的范圍 - 1 - 4.1.2 輸出的形式 - 1 - 4.1.3 程序所能達(dá)到的功能 - 1 -

3、 4.1.4 測試數(shù)據(jù): - 2 - 4.2 概要設(shè)計 - 3 - 4.2.1 抽象數(shù)據(jù)類型的定義 - 3 - 4.2.2 主控程序的流程 - 3 - 4.2.3 各程序模塊之間的層次關(guān)系 - 3 - 4.3 詳細(xì)設(shè)計 - 4 - 4.3.1 流程圖 - 4 - 4.3.2 偽代碼 - 5 - 4.4 調(diào)試分析 - 7 - 4.5 測試結(jié)果 - 9 - 4.5.1 鍵盤輸入輸出結(jié)果 - 9 - ? 整數(shù)轉(zhuǎn)換測試 - 9 - ? 小數(shù)轉(zhuǎn)換測試 - 9 - ? 輸入出錯測試 - 10 - 4.5.2 文本輸入輸出結(jié)果 - 11 - 5. 總結(jié) - 14 - 參考文

4、獻(xiàn) - 14 - 數(shù)制轉(zhuǎn)換問題 1. 設(shè)計目的 實現(xiàn)二、八、十和十六進(jìn)制不同數(shù)制數(shù)據(jù)之間的相互轉(zhuǎn)換。 2. 設(shè)計要求 ? 輸入一種數(shù)的數(shù)據(jù)及數(shù)制,輸出這個數(shù)的其他三種數(shù)制的表示。 ? 輸入的數(shù)包括整數(shù)和小數(shù)。 ? 基于vc++6.0平臺,用C語言實現(xiàn)程序設(shè)計。 3. 設(shè)計方案 用順序棧實現(xiàn)數(shù)據(jù)的存入和讀取 4. 設(shè)計內(nèi)容 4.1 需求分析 1) 輸入的形式和輸入值的范圍 ? 先輸入未轉(zhuǎn)換前數(shù)的進(jìn)制: 取值范圍只能是2、8、10、16,輸入其他數(shù)據(jù)則提示出錯重輸。 ? 再輸入該進(jìn)制的數(shù): 取值范圍可以是原進(jìn)制的整數(shù)或小數(shù),根據(jù)提供的原數(shù)據(jù)的數(shù)制,通過ASCII碼

5、判斷每次輸入的各個字符是否正確,如: 2進(jìn)制只能輸入1,0和小數(shù)點; 8進(jìn)制只能輸入0到7的數(shù)和小數(shù)點; 10進(jìn)制只能輸入0到9的數(shù)和小數(shù)點; 16進(jìn)制只能輸入輸入0到9的數(shù),A到F的字母和小數(shù)點; 輸入其他字符則提示出錯重輸。 2) 輸出的形式 ? 分三行分別輸出該數(shù)其他進(jìn)制的表示。 3) 程序所能達(dá)到的功能 ? 通過鍵盤輸入、文本讀取數(shù)據(jù),檢測輸入的數(shù)與原進(jìn)制是否有誤; ? 將輸入的數(shù)(可以是整數(shù)或小數(shù)),轉(zhuǎn)換成除本身的進(jìn)制數(shù)外其他3種進(jìn)制的數(shù)并輸出; ? 可以在數(shù)據(jù)轉(zhuǎn)換后,選擇是否退出或繼續(xù)輸入數(shù)據(jù)進(jìn)行轉(zhuǎn)換。 4) 測試數(shù)據(jù): 正確的輸入及其輸出,示例整數(shù):

6、 正確的輸入及其輸出,示例小數(shù): 含錯誤的輸入及其輸出: 4.2 概要設(shè)計 1) 抽象數(shù)據(jù)類型的定義 typedef struct{int *b,*top; int size;}Stack;Stack S;//定義棧 int InitS(Stack &S) //構(gòu)造空棧 int ClearS(Stack &S) //釋放棧S int IsEmpty(Stack S) //判斷棧是否為空,若空返回1,否則返回0 int Push(Stack &S , int e) //插入元素e為新的棧頂元素 int Pop(Stack &S, int &e) //刪除S的棧頂元素,

7、用e返回其值 char c[1000];//c[]存入未轉(zhuǎn)換的數(shù) int e,m,n,r,i,j; //定義全局變量 //e為棧頂元素臨時變量,m為要轉(zhuǎn)的進(jìn)制數(shù), n為轉(zhuǎn)換前數(shù)的個數(shù) //r是十進(jìn)制轉(zhuǎn)M進(jìn)制的余數(shù),i為自增變量,j存小數(shù)點后有幾位小數(shù)用 float x,y,z;//定義全局變量 //x為要轉(zhuǎn)換的十進(jìn)制,y是轉(zhuǎn)后的10進(jìn)制數(shù),z是十進(jìn)制的小數(shù)部分 2) 主控程序的流程 ? 首先接收未轉(zhuǎn)換前數(shù)的進(jìn)制m及數(shù)據(jù),判斷是否非法做出提示; ? 用c[]數(shù)組接收數(shù)據(jù),有小數(shù)得記下小數(shù)位數(shù)j。 當(dāng)接收的數(shù)據(jù)為十進(jìn)制則用float(atof(c))轉(zhuǎn)成小數(shù)給全局變量x;

8、若接收的數(shù)據(jù)為其他進(jìn)制數(shù)則逐個讀取Push(S,c[i])入棧。 ? 根據(jù)全局變量m判斷要調(diào)用的函數(shù): DtoM(float a,int b) 十進(jìn)制轉(zhuǎn)換成其他進(jìn)制的函數(shù), MtoD()其他進(jìn)制轉(zhuǎn)換為十進(jìn)制的函數(shù)。 ? 在DtoM(float,int)函數(shù)中,接收形參為要轉(zhuǎn)換的十進(jìn)制數(shù)和要轉(zhuǎn)成的數(shù)制。先判斷數(shù)據(jù)是否有小數(shù),有小數(shù)則先轉(zhuǎn)換小數(shù)部分的存入zz[]。輸出時先輸出轉(zhuǎn)換的整數(shù)部分,有小數(shù)再讀取zz[]逐個輸出小數(shù)部分。 ? 在MtoD()函數(shù)中,由j判斷數(shù)據(jù)是否有小數(shù),若有小數(shù)先轉(zhuǎn)換小數(shù)部分。輸出時將轉(zhuǎn)后的小數(shù)部分(若有)累加上整數(shù)部分輸出。 ? 轉(zhuǎn)換完成后,清除棧,由用戶選

9、擇是否繼續(xù)輸入數(shù)據(jù)轉(zhuǎn)換或退出。 3) 各程序模塊之間的層次關(guān)系 void DtoM(float a,int b) //十進(jìn)制轉(zhuǎn)換成其他進(jìn)制的函數(shù) void MtoD()//其他進(jìn)制轉(zhuǎn)換為十進(jìn)制的函數(shù) void main()//根據(jù)輸入數(shù)據(jù)調(diào)用MtoD()和DtoM()函數(shù)對數(shù)據(jù)轉(zhuǎn)換 注:其他非十進(jìn)制的數(shù)轉(zhuǎn)換時,都先調(diào)用MtoD()轉(zhuǎn)成十進(jìn)制,得到float類型數(shù)存入全局變量y,再調(diào)用DtoM(y,m)轉(zhuǎn)成需要的進(jìn)制。 4.3 詳細(xì)設(shè)計 ? 流程圖: m=16 m=8 m=10 m=2 N Y Y Y N N 開始 m->未轉(zhuǎn)換前數(shù)的進(jìn)制 合法 c[]-

10、>要轉(zhuǎn)換的數(shù) 合法 switch(m) x=float(atof(c)) DtoM(x,2) DtoM(x,8) DtoM(x,16) MtoD() DtoM(y,8) DtoM(y,16) 繼續(xù) 退出 MtoD() DtoM(y,2) DtoM(y,16) MtoD() DtoM(y,2) DtoM(y,8) ? 偽代碼: //十進(jìn)制轉(zhuǎn)換成其他進(jìn)制的函數(shù)DtoM()// void DtoM(float a,int b) { z=a-(in

11、t)a;//取小數(shù)部分 int zz[20];//存轉(zhuǎn)后的小數(shù)部分 i=0; if(z)//有小數(shù) { while(z) { zz[i]=int(z*b); i++; z=z*b-int(z*b); } n=i; } while((int)a) { r=(int)a%b; if(r>9) r=r+55; Push(S,r); //壓入棧 a=a/b; //轉(zhuǎn)換成b進(jìn)制 } printf("\t該數(shù)<%d>進(jìn)制的結(jié)果是:",b); while(!IsEmpty(S))

12、 { Pop(S,e); //彈出棧 if(e>=65) printf("%c",e); else printf("%d",e); } if(i)//有小數(shù) { printf(".");//小數(shù)點 for(i=0;i

13、op(S,e); if(e>=65) e=e-55;//轉(zhuǎn)字母 else e=e-48;//轉(zhuǎn)數(shù)字 y+=1/((float)pow(m,j))*e; //1除(e乘(m的j次方)) j--; } Pop(S,e);//小數(shù)點拋出 } while(!IsEmpty(S)) { Pop(S,e); if(e>=65) e=e-55;//轉(zhuǎn)字母 else e=e-48;//轉(zhuǎn)數(shù)字 y+=(int)pow(m,i)*e; //e乘(m的i次方) i++; }

14、 printf("\t該數(shù)<10>進(jìn)制的結(jié)果是:"); if((int)y==y) printf("%.0f \n",y); else printf("%f \n",y);//有小數(shù) return; } //-------主函數(shù)main()-----// void main() { freopen("DS1.in", "r", stdin); freopen("DS1.out", "w", stdout); //界面功能說明 printf("\n");printf("\n"); printf("\t▉▊▊▋▍▎▏=數(shù)

15、制轉(zhuǎn)換器= ▏▎▍▋▊▊▉\n"); printf("\n"); printf(" -[實現(xiàn) 2 \\8 \\10 \\16 進(jìn)制數(shù)據(jù)之間的轉(zhuǎn)換]-\n"); printf("\t| ◆先輸入未轉(zhuǎn)換前數(shù)的數(shù)制類型 |\n"); printf("\t| ◆再輸入未轉(zhuǎn)換的數(shù) |\n"); printf("\t| <該數(shù)可以是整數(shù)或小數(shù)> |\n"); printf("\t| ●程序?qū)⑤敵鲈摂?shù)的其他進(jìn)制形式 |\n"); printf("\t|

16、 |\n"); printf(" -----------========"); printf("========------------\n"); printf("\n"); printf("\n"); First: int f=1; //判斷標(biāo)識 InitS(S); //構(gòu)造一個空棧 printf("\t請輸入未轉(zhuǎn)換前數(shù)的進(jìn)制:"); while(f) { if(scanf("%d",&m)==EOF||m!=2&&m!=8&&m!=10&&m!=16) pri

17、ntf("\t▲輸入有誤,請重新輸入<2 or 8 or 10 or 16>:"); else f=0; } printf("\t請輸入該數(shù):"); Second: scanf("%s",c); n=strlen(c); f=0; //判斷標(biāo)識 for(i=0;i49||c[i]<46||c[i]==47)f=1;break;} case 8: {if(c[i]>55||c[i]<46||c[i]==47)f=1;br

18、eak;} case 10: {if(c[i]>57||c[i]<46||c[i]==47)f=1;break;} case 16: {if(c[i]>70||(c[i]>57&&c[i]<65)||c[i]<46||c[i]==47) f=1;break;} default:break; }//有錯f=1; } if(f)//檢查輸入格式是否有誤 { printf("\t▲輸入有誤,請重新輸入:"); goto Second; } if(m!=10) //其他進(jìn)制轉(zhuǎn)換成十進(jìn)制 { j=0; for(i=0;

19、i

20、y,16);break;} case 16: {MtoD();DtoM(y,2);DtoM(y,8);break;} default:break; } ClearS(S); //釋放棧S printf("\n"); printf(" -----------========"); printf("========------------\n"); printf("\t是否繼續(xù)? 繼續(xù)【1】or 退出【0】:"); scanf("%d",&f); if(f) { printf("\n");goto First; } }

21、 4.4 調(diào)試分析 n 難點:檢查輸入格式是否有誤 n 解決: 通過ASCII碼判斷每次輸入的各個字符是否正確,如: 2進(jìn)制只能輸入1,0和小數(shù)點; 8進(jìn)制只能輸入0到7的數(shù)和小數(shù)點; 10進(jìn)制只能輸入0到9的數(shù)和小數(shù)點; 16進(jìn)制只能輸入0到9的數(shù),A到F的字母和小數(shù)點; 用f判斷標(biāo)識,輸入其他字符則將f=1提示出錯重輸。 n 代碼示例: main() { …… f=0; for(i=0;i49||c[i]<46||c[i]==47)

22、f=1;break;} case 8: {if(c[i]>55||c[i]<46||c[i]==47)f=1;break;} case 10:{if(c[i]>57||c[i]<46||c[i]==47)f=1;break;} case 16:{if(c[i]>70||(c[i]>57&&c[i]<65)||c[i]<46||c[i]==47) f=1;break;} default:break; }//有錯f=1; } …… } n 難點:取未轉(zhuǎn)換十進(jìn)制的小數(shù)部分,并輸出轉(zhuǎn)換后的相應(yīng)的進(jìn)制格式 n 解決:使用強制轉(zhuǎn)換,轉(zhuǎn)義符號

23、 %X、%.0f n 代碼示例: void DtoM(float a,int b) //十進(jìn)制轉(zhuǎn)換成其他進(jìn)制的函數(shù) { …… z=a-(int)a;// 用強制轉(zhuǎn)換取小數(shù)部分 int zz[10];//存轉(zhuǎn)后的小數(shù)部分 i=0; if(i)//有小數(shù) { printf(".");//小數(shù)點 for(i=0;i

24、該數(shù)<10>進(jìn)制的結(jié)果是:"); if((int)y==y) printf("%.0f \n",y); //小數(shù)部分沒有有效數(shù)字,用%.0f去除小數(shù)點后的0 else printf("%f \n",y);//有小數(shù) return; } n 難點:求輸入數(shù)據(jù)小數(shù)點后有幾位 n 解決:用scanf("%s",c)將輸入數(shù)存入數(shù)組中, 用n=strlen(c)得到長度, 用j存小數(shù)位數(shù):for(i=0;i

25、 ? 小數(shù)轉(zhuǎn)換測試 ? 輸入出錯測試 l 文本輸入輸出結(jié)果: ? //DS1.in 整數(shù)轉(zhuǎn)換測試 DS1.in DS1.out 2 1101 1 8 765 1 10 11 1 16 4A3 0 ▉▊▊▋▍▎▏=數(shù)制轉(zhuǎn)換器= ▏▎▍▋▊▊▉ -[實現(xiàn) 2 \8 \10 \16 進(jìn)制數(shù)據(jù)之間的轉(zhuǎn)換]- | | | ◆先輸入未轉(zhuǎn)

26、換前數(shù)的數(shù)制類型 | | ◆再輸入未轉(zhuǎn)換的數(shù) | | <該數(shù)可以是整數(shù)或小數(shù)> | | ●程序?qū)⑤敵鲈摂?shù)的其他進(jìn)制形式 | | | -----------================------------ 請輸入未轉(zhuǎn)換前數(shù)的進(jìn)制: 請輸入該數(shù): 該數(shù)<10>進(jìn)制的結(jié)果是:13 該數(shù)<8>進(jìn)制的結(jié)果是:15 該數(shù)<16>進(jìn)制的結(jié)果是:D --

27、---------================------------ 是否繼續(xù)? 繼續(xù)【1】or 退出【0】: 請輸入未轉(zhuǎn)換前數(shù)的進(jìn)制: 請輸入該數(shù): 該數(shù)<10>進(jìn)制的結(jié)果是:501 該數(shù)<2>進(jìn)制的結(jié)果是:111110101 該數(shù)<16>進(jìn)制的結(jié)果是:1F5 -----------================------------ 是否繼續(xù)? 繼續(xù)【1】or 退出【0】: 請輸入未轉(zhuǎn)換前數(shù)的進(jìn)制: 請輸入該數(shù): 該數(shù)<2>進(jìn)制的結(jié)果是:1011 該數(shù)<8>進(jìn)制的結(jié)果是:13 該數(shù)<16>進(jìn)制的結(jié)果是:B

28、 -----------================------------ 是否繼續(xù)? 繼續(xù)【1】or 退出【0】: 請輸入未轉(zhuǎn)換前數(shù)的進(jìn)制: 請輸入該數(shù): 該數(shù)<10>進(jìn)制的結(jié)果是:1187 該數(shù)<2>進(jìn)制的結(jié)果是:10010100011 該數(shù)<8>進(jìn)制的結(jié)果是:2243 -----------================------------ 是否繼續(xù)? 繼續(xù)【1】or 退出【0】: ? //DS2.in 小數(shù)轉(zhuǎn)換測試 DS2.in DS2.out 2 1101.1011 1 8 765.2 1

29、 10 11.125 1 16 4A3.2 0 ▉▊▊▋▍▎▏=數(shù)制轉(zhuǎn)換器= ▏▎▍▋▊▊▉ -[實現(xiàn) 2 \8 \10 \16 進(jìn)制數(shù)據(jù)之間的轉(zhuǎn)換]- | | | ◆先輸入未轉(zhuǎn)換前數(shù)的數(shù)制類型 | | ◆再輸入未轉(zhuǎn)換的數(shù) | | <該數(shù)可以是整數(shù)或小數(shù)> | | ●程序?qū)⑤敵鲈摂?shù)的其他進(jìn)制形式 | |

30、 | -----------================------------ 請輸入未轉(zhuǎn)換前數(shù)的進(jìn)制: 請輸入該數(shù): 該數(shù)<10>進(jìn)制的結(jié)果是:13.687500 該數(shù)<8>進(jìn)制的結(jié)果是:15.54 該數(shù)<16>進(jìn)制的結(jié)果是:D.B -----------================------------ 是否繼續(xù)? 繼續(xù)【1】or 退出【0】: 請輸入未轉(zhuǎn)換前數(shù)的進(jìn)制: 請輸入該數(shù): 該數(shù)<10>進(jìn)制的結(jié)果是:501.250000 該數(shù)<2>進(jìn)制的結(jié)果是:111110101

31、.01 該數(shù)<16>進(jìn)制的結(jié)果是:1F5.4 -----------================------------ 是否繼續(xù)? 繼續(xù)【1】or 退出【0】: 請輸入未轉(zhuǎn)換前數(shù)的進(jìn)制: 請輸入該數(shù): 該數(shù)<2>進(jìn)制的結(jié)果是:1011.001 該數(shù)<8>進(jìn)制的結(jié)果是:13.1 該數(shù)<16>進(jìn)制的結(jié)果是:B.2 -----------================------------ 是否繼續(xù)? 繼續(xù)【1】or 退出【0】: 請輸入未轉(zhuǎn)換前數(shù)的進(jìn)制: 請輸入該數(shù): 該數(shù)<10>進(jìn)制的結(jié)果是:1187.

32、125000 該數(shù)<2>進(jìn)制的結(jié)果是:10010100011.001 該數(shù)<8>進(jìn)制的結(jié)果是:2243.1 -----------================------------ 是否繼續(xù)? 繼續(xù)【1】or 退出【0】: ? //DS3.in 輸入出錯測試 DS3.in DS3.out 9 2 b 12 110 1 8 z.2 8 67 1 10 11.a wd 90.25 1 16 89G A6.5 0 ▉▊▊▋▍▎▏=數(shù)制轉(zhuǎn)換器= ▏▎▍▋▊▊▉ -[實現(xiàn) 2 \

33、8 \10 \16 進(jìn)制數(shù)據(jù)之間的轉(zhuǎn)換]- | | | ◆先輸入未轉(zhuǎn)換前數(shù)的數(shù)制類型 | | ◆再輸入未轉(zhuǎn)換的數(shù) | | <該數(shù)可以是整數(shù)或小數(shù)> | | ●程序?qū)⑤敵鲈摂?shù)的其他進(jìn)制形式 | | | -----------================------------ 請輸入未轉(zhuǎn)換前數(shù)

34、的進(jìn)制: ▲輸入有誤,請重新輸入<2 or 8 or 10 or 16>: 請輸入該數(shù): ▲輸入有誤,請重新輸入: ▲輸入有誤,請重新輸入: 該數(shù)<10>進(jìn)制的結(jié)果是:6 該數(shù)<8>進(jìn)制的結(jié)果是:6 該數(shù)<16>進(jìn)制的結(jié)果是:6 -----------================------------ 是否繼續(xù)? 繼續(xù)【1】or 退出【0】: 請輸入未轉(zhuǎn)換前數(shù)的進(jìn)制: 請輸入該數(shù): ▲輸入有誤,請重新輸入: ▲輸入有誤,請重新輸入: 該數(shù)<10>進(jìn)制的結(jié)果是:55 該數(shù)<2>進(jìn)制的結(jié)果是:110111 該數(shù)<16>進(jìn)制的結(jié)果是:

35、37 -----------================------------ 是否繼續(xù)? 繼續(xù)【1】or 退出【0】: 請輸入未轉(zhuǎn)換前數(shù)的進(jìn)制: 請輸入該數(shù): ▲輸入有誤,請重新輸入: ▲輸入有誤,請重新輸入: 該數(shù)<2>進(jìn)制的結(jié)果是:1011010.01 該數(shù)<8>進(jìn)制的結(jié)果是:132.2 該數(shù)<16>進(jìn)制的結(jié)果是:5A.4 -----------================------------ 是否繼續(xù)? 繼續(xù)【1】or 退出【0】: 請輸入未轉(zhuǎn)換前數(shù)的進(jìn)制: 請輸入該數(shù): ▲輸入有誤,請重新輸入:

36、 該數(shù)<10>進(jìn)制的結(jié)果是:166.312500 該數(shù)<2>進(jìn)制的結(jié)果是:10100110.0101 該數(shù)<8>進(jìn)制的結(jié)果是:246.24 -----------================------------ 是否繼續(xù)? 繼續(xù)【1】or 退出【0】: 4.6 用戶使用說明 ? 第一次輸入:未轉(zhuǎn)換前數(shù)的進(jìn)制 (只能輸入2或8或10或16,輸入其他數(shù)據(jù)則提示出錯重輸) ? 第二次輸入:該進(jìn)制的數(shù) (取值范圍應(yīng)當(dāng)是原進(jìn)制的整數(shù)或小數(shù)。如:2進(jìn)制只能輸入1,0和小數(shù)點;8進(jìn)制只能輸入0到7的數(shù)和小數(shù)點;10進(jìn)制只能輸入0到9的數(shù)和小數(shù)點;1

37、6進(jìn)制只能輸入0到9的數(shù),A到F的字母和小數(shù)點;輸入其他字符則提示出錯重輸。) ? 程序?qū)⒆詣臃秩蟹謩e輸出該數(shù)其他進(jìn)制的表示。 【注】: 小數(shù)轉(zhuǎn)換的算法不是互逆的。 輸入非十進(jìn)制(2、8、16進(jìn)制)的小數(shù)可以成功轉(zhuǎn)成其他進(jìn)制的小數(shù); 但不是任意的十進(jìn)制的小數(shù)能完全轉(zhuǎn)成非十進(jìn)制(2、8、16進(jìn)制)的小數(shù)。 程序目前仍然有Bug,對輸入十進(jìn)制的小數(shù)的判斷還未完成。 5. 總結(jié) 通過本次課程設(shè)計,我認(rèn)識到熟練掌握基礎(chǔ)算法的重要性,對棧的含義及其基本算法有了更好的理解和應(yīng)用。?!跋冗M(jìn)后出”的算法加上Push()和Pop() 方便了對要轉(zhuǎn)換的數(shù)進(jìn)行讀取,和對轉(zhuǎn)換后數(shù)倒置的輸出。

38、 在編寫過程中常遇到的不少問題,例如:變量類型的轉(zhuǎn)換和ASCII碼轉(zhuǎn)義字符的應(yīng)用,變量的定義和范圍,算法循環(huán)語句的退出條件等,我通過不斷調(diào)試,翻閱課本和網(wǎng)上搜索材料得到了解決,也認(rèn)識到這些細(xì)節(jié)上的處理更當(dāng)注意。在調(diào)試時,學(xué)會了在有問題的地方注釋并能經(jīng)常使用printf()函數(shù)測試輸出結(jié)果。在測試時,對測試數(shù)據(jù)的選取更當(dāng)考慮全面,能檢測錯誤輸入并進(jìn)行提示。 通過這次實驗,我學(xué)會運用課本和老師平時講授知識進(jìn)行切身實踐,通過網(wǎng)絡(luò)搜索學(xué)到了新的庫函數(shù),提高了我實際編寫程序的能力。 參考文獻(xiàn) [1] 寧正元,王秀麗.算法與數(shù)據(jù)結(jié)構(gòu)[M].北京:清華大學(xué)出版社,2006.01. [2] 寧正元,王秀麗,林大輝.算法與數(shù)據(jù)結(jié)構(gòu)習(xí)題精解和實驗指導(dǎo)[M].北京,2007.05.

展開閱讀全文
溫馨提示:
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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!