歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

數(shù)制轉(zhuǎn)換課程設(shè)計說明書

  • 資源ID:21898818       資源大?。?span id="i50jry0" class="font-tahoma">289KB        全文頁數(shù):22頁
  • 資源格式: DOC        下載積分:15積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要15積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

數(shù)制轉(zhuǎn)換課程設(shè)計說明書

專業(yè)基礎(chǔ)綜合課程設(shè)計設(shè)計說明書進制轉(zhuǎn)換的實現(xiàn)學(xué)生姓名學(xué)號班級成績指導(dǎo)教師數(shù)學(xué)與計算機科學(xué)學(xué)院2012 年6 月29日數(shù)據(jù)結(jié)構(gòu)課程設(shè)計評閱書題 目進制轉(zhuǎn)換的實現(xiàn)學(xué)生姓名學(xué)號指導(dǎo)教師評語及成績成績: 教師簽名: 年 月 日答辯教師評語及成績成績: 教師簽名: 年 月 日教研室意見總成績: 室主任簽名: 年 月 日注:指導(dǎo)教師成績60%,答辯成績40%,總成績合成后按五級制記入。課程設(shè)計任務(wù)書2011 2012 學(xué)年第 二 學(xué)期專業(yè):計算機應(yīng)用技術(shù) 學(xué)號: 姓名: 課程設(shè)計名稱: 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 設(shè)計題目: 進制轉(zhuǎn)換的實現(xiàn) 完成期限:自 2012 年 6 月 18 日至 2012 年 6 月 29 日共 2 周設(shè)計依據(jù)、要求及主要內(nèi)容(可另加附頁):計算機中數(shù)據(jù)的存儲形式是0,1代碼,也就是以二進制的形式進行存儲,運用c或vc+結(jié)合數(shù)據(jù)結(jié)構(gòu)等基礎(chǔ)知識,按以下要求實現(xiàn)各種進制的轉(zhuǎn)換。任務(wù)要求:1)闡述設(shè)計思想,畫出流程圖;2)能完成用戶輸入的十進制數(shù)轉(zhuǎn)換為二進制、八進制、十六進制及其他進制數(shù),以及將其他任意進制數(shù)轉(zhuǎn)換成十進制的功能;3)除十進制以為的其他進制之間的相互轉(zhuǎn)換功能的實現(xiàn);4)將用戶的輸入及要求的結(jié)果能對應(yīng)打印輸出;5)應(yīng)用較好的界面設(shè)計,說明程序測試方法;6)按照格式要求完成課設(shè)說明書。設(shè)計要求:1)問題分析和任務(wù)定義:根據(jù)設(shè)計題目的要求,充分地分析和理解問題,明確問題要求做什么?(而不是怎么做?)限制條件是什么?確定問題的輸入數(shù)據(jù)集合。2)邏輯設(shè)計:對問題描述中涉及的操作對象定義相應(yīng)的數(shù)據(jù)類型,并按照以數(shù)據(jù)結(jié)構(gòu)為中心的原則劃分模塊,定義主程序模塊和各抽象數(shù)據(jù)類型。邏輯設(shè)計的結(jié)果應(yīng)寫出每個抽象數(shù)據(jù)類型的定義(包括數(shù)據(jù)結(jié)構(gòu)的描述和每個基本操作的功能說明),各個主要模塊的算法,并畫出模塊之間的調(diào)用關(guān)系圖;3)詳細設(shè)計:定義相應(yīng)的存儲結(jié)構(gòu)并寫出各函數(shù)的偽碼算法。在這個過程中,要綜合考慮系統(tǒng)功能,使得系統(tǒng)結(jié)構(gòu)清晰、合理、簡單和易于調(diào)試,抽象數(shù)據(jù)類型的實現(xiàn)盡可能做到數(shù)據(jù)封裝,基本操作的規(guī)格說明盡可能明確具體。詳細設(shè)計的結(jié)果是對數(shù)據(jù)結(jié)構(gòu)和基本操作做出進一步的求精,寫出數(shù)據(jù)存儲結(jié)構(gòu)的類型定義,寫出函數(shù)形式的算法框架;4)程序編碼:把詳細設(shè)計的結(jié)果進一步求精為程序設(shè)計語言程序。同時加入一些注解和斷言,使程序中邏輯概念清楚;5)程序調(diào)試與測試:采用自底向上,分模塊進行,即先調(diào)試低層函數(shù)。能夠熟練掌握調(diào)試工具的各種功能,設(shè)計測試數(shù)據(jù)確定疑點,通過修改程序來證實它或繞過它。調(diào)試正確后,認(rèn)真整理源程序及其注釋,形成格式和風(fēng)格良好的源程序清單和結(jié)果;6)結(jié)果分析:程序運行結(jié)果包括正確的輸入及其輸出結(jié)果和含有錯誤的輸入及其輸出結(jié)果。算法的時間、空間復(fù)雜性分析;7)編寫課程設(shè)計報告;以上要求中前三個階段的任務(wù)完成后,先將設(shè)計說明數(shù)的草稿交指導(dǎo)老師面審,審查合格后方可進入后續(xù)階段的工作。設(shè)計工作結(jié)束后,經(jīng)指導(dǎo)老師驗收合格后將設(shè)計說明書打印裝訂,并進行答辯。指導(dǎo)教師(簽字): 教研室主任(簽字): 批準(zhǔn)日期: 年 月 日摘要: 本次課程設(shè)計設(shè)計了一個任意進制之間轉(zhuǎn)換的軟件程序系統(tǒng),開發(fā)本系統(tǒng),解決任意進制之間的相互轉(zhuǎn)換,系統(tǒng)主要有以下幾個模塊:任意進制轉(zhuǎn)換為十進制、十進制轉(zhuǎn)換為任意進制以及兩者組合實現(xiàn)任意進制間的相互轉(zhuǎn)換。本軟件程序系統(tǒng)在windows 2000/XP系統(tǒng)下,以Microsoft Visual C+ 6.0為運行軟件環(huán)境,采用C/C+語言進行編寫,操作簡單明了,實際解決各進制數(shù)之間的轉(zhuǎn)換。目錄1 課題描述12 問題分析和任務(wù)定義23 邏輯設(shè)計34 詳細設(shè)計75 程序調(diào)試與測試 10 5.1十進制轉(zhuǎn)換為任意進制 105.2任意進制轉(zhuǎn)化為十進制 115.3任意進制間的轉(zhuǎn)換 12總結(jié) 18參考文獻 191 課題描述在計算機內(nèi)部,數(shù)據(jù)是以二進制表示的,而人們習(xí)慣上使用的是十進制數(shù),所以計算機從我們這里接收到十進制數(shù)后,要經(jīng)過翻譯,把十進制數(shù)轉(zhuǎn)換為二進制數(shù)才能進行處理,該系統(tǒng)能夠根據(jù)用戶的要求,用C語言來編寫這個程序,實現(xiàn)二進制、八進制、十進制、十六進制之間的相互轉(zhuǎn)化,以及任意進制間的相互轉(zhuǎn)換。系統(tǒng)開發(fā)基于Windows2000/Xp平臺,以Visual C+6.0等作為開發(fā)工具。2 問題分析和任務(wù)定義數(shù)制轉(zhuǎn)換程序是要求任意兩種數(shù)間的相互轉(zhuǎn)化,本次課程設(shè)計以任意進制間轉(zhuǎn)換為中心實現(xiàn)二進制、八進制、十進制、十六進制、十八進制之間的相互轉(zhuǎn)化。其轉(zhuǎn)換方式大致相同,從低進制數(shù)向高進制數(shù)轉(zhuǎn)換進行乘數(shù)累加,反之則逐步求余,最終進行分布計算得到想要的結(jié)果。本次系統(tǒng)程序,主要有兩大模塊組成,即任意進制轉(zhuǎn)換為十進制、十進制轉(zhuǎn)換為任意進制,這兩部分共同組成了對任意進制數(shù)的轉(zhuǎn)換的實現(xiàn),通過菜單選擇,讓用戶實現(xiàn)自己想要的結(jié)果。最后打印輸出結(jié)果。3 邏輯設(shè)計數(shù)值轉(zhuǎn)換轉(zhuǎn)換系統(tǒng),包括八個子函數(shù)模塊,其中菜單函數(shù)模塊定義為整型,其余字符轉(zhuǎn)換函數(shù)處理模塊都根據(jù)函數(shù)所需定義數(shù)據(jù)類型。數(shù)制轉(zhuǎn)換處理系統(tǒng)中用棧來儲存處十進制以外的數(shù),將一個指定進制的數(shù),從低到高一位一位取出,并計算出每位的十進制值,然后乘以其數(shù)基的特定冪指數(shù),得出這一位數(shù)的十進制值,將所有各位的十進制值相加得出這個數(shù)的十進制值,然后再將該十進制數(shù)轉(zhuǎn)換為指定數(shù)制的數(shù),此過程采用求余法進行,用這個十進制數(shù)作為被除數(shù),用指定的數(shù)基作除數(shù),連續(xù)求余,得出的余數(shù)依由個位到十位等的順序組成新數(shù),即得指定數(shù)制的數(shù)。邏輯設(shè)計如圖3.1所示。 結(jié)束主菜單始開數(shù)函擇選退出程序進制轉(zhuǎn)換返回主菜單任意進制之間任意進制到十十到任意進制圖3.1設(shè)計思想流程圖31程序流程圖(1)主函數(shù)main()流程圖,如圖3.2所示主菜單始開作操擇選0操作1操作十到任意進制任意進制到十任意進制之間結(jié)束圖3.2 main函數(shù)流程圖(2)十進制轉(zhuǎn)換為任意進制流程圖,如圖3.3所示開始int q,i=0,b,c=0,n=0;傳的參數(shù)賦b,b>0?i+對b求余,賦給qq=q+48將q值轉(zhuǎn)換為十六進制補碼壓棧操作,調(diào)用入棧函數(shù)求商操作,將商賦給bi=ni>0輸出轉(zhuǎn)換結(jié)果i-結(jié)束nnnyyy判斷b是否為要轉(zhuǎn)換的數(shù)字類型y重新輸入n圖 3.3為十進制到任意進制轉(zhuǎn)換流程圖(3)任意進制到十進制的轉(zhuǎn)換,如圖3.4所示開始int i=0,j=0,y,d,c=-1; int v=0,r=0,sum=0;i+,n+,q=b%m傳的參數(shù)賦b,b>0?輸出轉(zhuǎn)換結(jié)果i=nnyi-結(jié)束i>0yy對b求余,賦給qq=q+48nn將q值轉(zhuǎn)換為十六進制補碼入棧操作,對棧頂元素操作圖 3.4為任意進制到十進制轉(zhuǎn)換流程圖4 詳細設(shè)計#include<stdio.h>#include<stdlib.h>#include<math.h>#include<ctype.h>#include<process.h>#include<malloc.h>#include<string.h>#define OK 1#define ERROR 0#define STACK_INIT_SIZE 100 #define STACKINCREMENT 10typedef char Status; typedef structint *base; int *top;int stacksize; /當(dāng)前已分配的存儲空間,以元素為單元 SqStack;char s120;char s210;int InitStack(SqStack &S) /構(gòu)造一個空棧 S.base=(int*)malloc(STACK_INIT_SIZE*sizeof(int);if(!S.base) /空棧的標(biāo)志 return(ERROR); S.top=S.base;S.stacksize=STACK_INIT_SIZE;return OK;Status clearstack(SqStack &S) /清空棧S.top=S.base;return OK; Status Push(SqStack &S,int e) /壓棧(插入元素e為新的棧頂元素) if(S.top-S.base>=S.stacksize)S.base=(int*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(int);if(!S.base)return(OVERFLOW); /存儲分配失敗S.top =S.base +S.stacksize ;S.stacksize+=STACKINCREMENT;S.top=S.base;S.top+;/先插入數(shù)據(jù)元素,再移動棧頂指針*S.top=e;return OK;char StackEmpty(SqStack *S) /判斷棧是否為空if(S->top=S->base)return OK;elsereturn ERROR;int ANY_TEN(int n) /任意進制轉(zhuǎn)化為十進制int i=0,j=0,y,d,c=-1; int v=0,r=0,sum=0;char t20; printf("請輸入您要轉(zhuǎn)化的數(shù):"); scanf("%s",&t); printf("n"); fflush(stdin);while(tj!=0)j+; for(i=0;ti!=0;i+) if(int)(ti)>=48&&(int)(ti)<=57|(ti)>=A&&(int)(ti)<=J); else printf("輸入有誤! 請輸入數(shù)字: n"); printf("請輸入您要轉(zhuǎn)化的數(shù):"); scanf("%s",&t); c+; y=j-i-1; if(ti<=9); else d=ti; ti=d-7; r=(int)(ti-48)*pow( n,y); sum=sum+r;return sum;void TEN_ANY(SqStack &S,int a,int m ) /十進制轉(zhuǎn)換為任意進制 int q,i=0,b,c=0,n=0; b=(int)a;if(isdigit(b) printf("輸入錯誤n");else while(b>0) i+; n+; q=b%m; if(q>9) q= toupper(q+55); else q=q+48; Push(S,q); b=b/m;s1i=*S.top;printf("最終轉(zhuǎn)換結(jié)果為:");for(i=n;i>0;i-)printf("%c",s1i);int ANY_ANY(SqStack &S) /任意進制間的轉(zhuǎn)換 int m,z,n,sum; printf("請輸入源進制和目標(biāo)進制(2,8,10,16):"); scanf("%d",&n); scanf("%d",&m); printf("n"); printf("將%d進制轉(zhuǎn)換為%d進制",n,m);printf("n"); printf("n");sum=ANY_TEN(n);InitStack(S);TEN_ANY( S, sum,m);return(OK); int menu_select()int c; do printf("n"); printf("tt 2、8、10、16進制間的互相轉(zhuǎn)換tnnn"); printf("tt 1.進制轉(zhuǎn)換 tnn"); printf("tt 0.謝謝使用tnn"); printf("tt 請輸入你需要進行的操作1/0:nnn "); fflush(stdin); scanf("%d",&c); while(c<0|c>1); return(c);void main() SqStack S; int n,m; float a; for(;) switch (menu_select() case 1: printf("ttt 進制轉(zhuǎn)換nn"); ANY_ANY(S); break; case 0: printf("ttt 謝謝使用!再見!:n"); printf("ttt"); exit(0); 5 程序調(diào)試與測試在vc+6.0運行界面如圖5.1所示:數(shù)制轉(zhuǎn)換函數(shù)調(diào)試結(jié)果截圖 圖5.1為數(shù)制轉(zhuǎn)換程序運行界面5.1十進制轉(zhuǎn)換為任意進制,結(jié)果如圖5.25.5所示:(1)輸入合法數(shù)據(jù):圖5.2為十進制到二進制的轉(zhuǎn)換圖5.3為十進制到八進制的轉(zhuǎn)換圖5.4為十進制到十六進制的轉(zhuǎn)換(2)輸入非法數(shù)據(jù):圖5.5 輸入非法數(shù)據(jù)5.2任意進制轉(zhuǎn)化為十進制,結(jié)果如圖5.65.9所示:(1)輸入合法數(shù)據(jù):圖5.6為二進制到十進制的轉(zhuǎn)換圖5.7為八進制到十進制的轉(zhuǎn)換圖5.8為十六進制到十進制的轉(zhuǎn)換(2)輸入非法數(shù)據(jù):圖5.9對小數(shù)不能正確轉(zhuǎn)換5.3任意進制間的轉(zhuǎn)換,結(jié)果如圖5.105.13所示:(1)輸入合法數(shù)據(jù):圖5.10為二進制到八進制的轉(zhuǎn)換圖5.11為八進制到十六進制的轉(zhuǎn)換圖5.12為十六進制到二進制的轉(zhuǎn)換(2)輸入非法數(shù)據(jù):圖 5.13 對非法數(shù)據(jù)不能正確判斷5.4 程序運行結(jié)束,如圖5.14所示:退出界面結(jié)果截圖:圖5.14為程序退出界面總結(jié)通過本次課程設(shè)計,提高了自己對于程序總體思路的把握,以及對程序的分析和理解。更能熟練的運用整型數(shù)組進行取整求余從而進行進制間的轉(zhuǎn)換。能通過switch語句進行判斷選擇處理,使自己通過程序設(shè)計,真正的在實踐中把課本所學(xué)的知識熟練的運用。所完成的數(shù)制轉(zhuǎn)換器系統(tǒng)實現(xiàn)的二進制、八進制十六進制和十進制之間轉(zhuǎn)換等功能,除此之外不能實現(xiàn)小數(shù)的轉(zhuǎn)化問題、判斷對輸入數(shù)字的判斷是符合要求和對輸入不合法字符檢驗并提示的功能。希望以后可以實現(xiàn)上述兩個問題,首先是改進程序,使其能實現(xiàn)小數(shù)的轉(zhuǎn)化,和和判斷對輸入數(shù)字的判斷是符合要求,對輸入不合法字符檢驗并提示的功能。這次課程設(shè)計是我對c語言知識進行了系統(tǒng)的、有條理的復(fù)習(xí),對許多知識點都加深了記憶。我了解到c語言的提高,通過編寫復(fù)雜的程序,這樣可以開闊思路,檢驗自己對各章節(jié)使用的靈活度,檢驗自己在學(xué)習(xí)中的漏洞。同時這次課程的制作,為我畢業(yè)設(shè)計的制作打下了堅定的基礎(chǔ)。參考文獻1嚴(yán)蔚敏 ,吳偉民 .數(shù)據(jù)結(jié)構(gòu)(c語言版)M 北京: 清華大學(xué)出版社 20072羅建軍,朱丹軍,顧剛.C+程序設(shè)計教程(第2版)M 北京: 高等教育出版社 20073李虹,楊靜麗.C語言程序設(shè)計 M 南京: 南京大學(xué)出版社 2010

注意事項

本文(數(shù)制轉(zhuǎn)換課程設(shè)計說明書)為本站會員(緣***)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(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)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!