C++大作業(yè)阿拉伯與羅馬數(shù)的轉(zhuǎn)換.doc_第1頁
C++大作業(yè)阿拉伯與羅馬數(shù)的轉(zhuǎn)換.doc_第2頁
C++大作業(yè)阿拉伯與羅馬數(shù)的轉(zhuǎn)換.doc_第3頁
C++大作業(yè)阿拉伯與羅馬數(shù)的轉(zhuǎn)換.doc_第4頁
C++大作業(yè)阿拉伯與羅馬數(shù)的轉(zhuǎn)換.doc_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

阿拉伯?dāng)?shù)字和羅馬數(shù)字的相互轉(zhuǎn)換大作業(yè)說明書學(xué)生姓名 董勛凱 學(xué) 號 2412332 所屬學(xué)院 電信工程學(xué)院 專 業(yè) 電氣工程及其自動化 班 級 電氣123 組 長 董勛凱 電信工程學(xué)院制目錄1.概述21.1開發(fā)環(huán)境21.2已知設(shè)計參數(shù)或設(shè)計前提21.2.1開發(fā)平臺:21.2.2已知:21.3設(shè)計內(nèi)容及要求21.4課程設(shè)計小組人員22.程序概要設(shè)計22.2計數(shù)規(guī)則32.3組合規(guī)則32.4分析32.5流程圖43.程序詳細(xì)設(shè)計53.1關(guān)鍵代碼分析53.11羅馬數(shù)據(jù)轉(zhuǎn)換成十進(jìn)制數(shù)53.12將十進(jìn)制數(shù)轉(zhuǎn)換為羅馬數(shù)據(jù)63.2疑難問題解決64.使用情況74.1展示各種的功能運行情況75.總結(jié)75.1程序的優(yōu)點和缺點75.2遇到的困難及解決的問題75.3收獲總結(jié)86.參考文獻(xiàn)81.概述 1.1開發(fā)環(huán)境:本檔案利用DEV c+編譯流程,可根據(jù)所需目標(biāo)簡單迅速的實現(xiàn)阿 拉伯?dāng)?shù)字和羅馬數(shù)字的相互轉(zhuǎn)換,準(zhǔn)確高效。主要的功能有信息錄入,轉(zhuǎn)換通道的選擇,數(shù)字的正確轉(zhuǎn)換,多次進(jìn)行數(shù)字轉(zhuǎn)換等。本程序?qū)iT為阿拉伯?dāng)?shù)字和羅馬數(shù)字的相互轉(zhuǎn)化而設(shè)計,為了方便操作程序簡化了界面的操作,使信息的錄入更加方便,達(dá)到事半功倍的效果。此程序采用面向?qū)ο蟮腄EV c+編寫,兼容性好,準(zhǔn)確度高。運用了c+程序數(shù)組的專業(yè)知識。 1.2已知設(shè)計參數(shù)或設(shè)計前提 1.2.1開發(fā)平臺:DEV c+ 1.2.2已知:用已知的十進(jìn)制數(shù)字根據(jù)對照表將其轉(zhuǎn)換為羅馬數(shù)字,用已知的羅馬數(shù)字根據(jù)字母的前后判斷,對照表將其轉(zhuǎn)換為羅馬數(shù)字 1.3設(shè)計內(nèi)容及要求 1.3.1提供十進(jìn)制轉(zhuǎn)換羅馬數(shù)字或者羅馬數(shù)字轉(zhuǎn)換十進(jìn)制的選擇通道 1.3.2對于需要轉(zhuǎn)換的數(shù)字進(jìn)行全面正確的錄入 1.3.3實現(xiàn)十進(jìn)制轉(zhuǎn)換羅馬數(shù)字或者羅馬數(shù)字轉(zhuǎn)換十進(jìn)制 1.3.4實現(xiàn)轉(zhuǎn)換后數(shù)字的正確輸出 1.3.5第一次轉(zhuǎn)換完成后還可以繼續(xù)進(jìn)行第二次轉(zhuǎn)換,滿足重新選擇通道 1.4課程設(shè)計小組人員 組長:劉良 成員:劉良 劉偉 周豪 2.程序概要設(shè)計本程序為一個翻譯程序,將一種表達(dá)形式換算成另一種表達(dá)形式。該題是把羅馬數(shù)字轉(zhuǎn)換成十進(jìn)制數(shù)或者把一個十進(jìn)制數(shù)字轉(zhuǎn)換成羅馬數(shù)字。初步設(shè)想:輸入一個字符數(shù)組,即一個羅馬數(shù)字,然后按照其位數(shù)上的權(quán)值展開后輸出,即輸出一個十進(jìn)制數(shù)。羅馬數(shù)字有如下符號:I(1),V(5),X(10),L(50),C(100),D(500),M(1000)。反之,輸入一個十進(jìn)制數(shù)字,根據(jù)對照表將其轉(zhuǎn)換為羅馬數(shù)字 2.2計數(shù)規(guī)則 2.2.1若干相同數(shù)字連寫表示的數(shù)是這些羅馬數(shù)字的和,如III=3。 2.2.2小數(shù)字在大數(shù)字前面表示的數(shù)是用大數(shù)字減去小數(shù)字,如IV4。 2.2.3小數(shù)字在大數(shù)字后面表示的數(shù)是用大數(shù)字加上小數(shù)字,如VI=6。 2.3組合規(guī)則 2.3.1基本數(shù)字、X 、C 中的任何一個,自身連用構(gòu)成數(shù)目,或者放在大數(shù)的右邊連用構(gòu)成數(shù)目,都不能超過三個,放在大數(shù)的左邊只能用一個。 2.3.2不能把基本數(shù)字 V 、L 、D 中的任何一個作為小數(shù)放在大數(shù)的左邊采用相減的方法構(gòu)成數(shù)目,放在大數(shù)的右邊采用相加的方式構(gòu)成數(shù)目,只能使用一個。 2.3.3 V 和 X 左邊的小數(shù)字只能用。 2.3.4 L 和 C 左邊的小數(shù)字只能用X。 2.3.5 D 和 M 左邊的小數(shù)字只能用 C 。 2.4分析 2.4.1羅馬數(shù)字轉(zhuǎn)阿拉伯?dāng)?shù)字 從前往后遍歷羅馬數(shù)字,如果某個數(shù)比前一個數(shù)小,則把該數(shù)加入到結(jié)果中,反之,則在結(jié)果中兩次減去前一個數(shù)并加上當(dāng)前這個數(shù)。 比如XVIII=18,其對應(yīng)的阿拉伯?dāng)?shù)字表示為10_5_1_1_1,因此結(jié)果為10+5+1+1+1=18。 XIX=19,其對應(yīng)的阿拉伯?dāng)?shù)字表示為10_1_10,因此結(jié)果為10+1+10-2*1=19。 2.4.2阿拉伯?dāng)?shù)字轉(zhuǎn)羅馬數(shù)字 把所有小數(shù)字在前的組合也作為基本數(shù)字,做一個對應(yīng)的數(shù)值映射表。 例如:4=1-5=IV, 9=1-10=IX, 40=10-50=XL, 90=10-100=XC, 400=100-500=CD, 900=100-1000=CM。2.5流程圖 結(jié)束是否繼續(xù)轉(zhuǎn)換 開始選擇是否將羅馬數(shù)字轉(zhuǎn)換為十進(jìn)制數(shù)輸出轉(zhuǎn)換后的數(shù)字到屏幕輸入所要轉(zhuǎn)換的十進(jìn)制數(shù)字進(jìn)行將十進(jìn)制轉(zhuǎn)化為羅馬數(shù)字通道輸入所要轉(zhuǎn)換的羅馬數(shù)字(大寫)NYN3.程序詳細(xì)設(shè)計 3.1關(guān)鍵代碼分析cout10進(jìn)制數(shù)(按1)endl; cout羅馬數(shù)據(jù)(按2)select; coutendl;/選擇模式以上步驟為選擇是否將羅馬數(shù)字轉(zhuǎn)換成十進(jìn)制數(shù),即選擇模式。引用if條件選擇模式,如圖1 圖1 3.11羅馬數(shù)據(jù)轉(zhuǎn)換成十進(jìn)制數(shù) coutrome; d=0; int i=0; for(i=0;romei!=0;i+) if(romei=M) d=d+1000; if(romei=D) d=d+500; if(romei=C) d=d+100; if(romei=L) d=d+50; if(romei+1=X&romei=I) d=d+9;i=i+2; else if(romei=X)d=d+10; if(romei+1=V&romei=I) d=d+4;i=i+2; else if(romei=V) d=d+5; if(romei=I) d=d+1; coutn轉(zhuǎn)化成十進(jìn)制數(shù)為:dendl;選擇通道1,將羅馬數(shù)字轉(zhuǎn)換為十進(jìn)制數(shù),如圖2 圖23.12將十進(jìn)制數(shù)轉(zhuǎn)換為羅馬數(shù)據(jù)if(select=2) char M,D,C,L,X,I; int n; coutn; coutn轉(zhuǎn)化成羅馬數(shù)據(jù)為:; covert2Roman(n); coutendl;與上述情況一致,選擇通道2輸入十進(jìn)制數(shù)將之轉(zhuǎn)換為羅馬數(shù)據(jù),如圖3圖3需要指出,程序中多次使用選擇結(jié)構(gòu),可見掌握好基本結(jié)構(gòu)的重要性,3.2疑難問題解決輸入代碼時不注意細(xì)節(jié)問題,比如大小寫問題,代碼源問題,造成代碼錯誤,進(jìn)而程序運行失敗,4.使用情況 4.1展示各種的功能運行情況選擇是否將羅馬數(shù)字轉(zhuǎn)換成十進(jìn)制數(shù) 圖4羅馬數(shù)據(jù)轉(zhuǎn)換成十進(jìn)制數(shù) 圖5將十進(jìn)制數(shù)轉(zhuǎn)換為羅馬數(shù)據(jù)圖65.總結(jié) 5.1程序的優(yōu)點和缺點該程序可準(zhǔn)確迅速實現(xiàn)羅馬數(shù)據(jù)與十進(jìn)制數(shù)據(jù)間的轉(zhuǎn)換,但相比于c語言及java相比稍微復(fù)雜。但c+可以制作很多c語言及java實現(xiàn)不了的東西。本程序可以任意結(jié)束,應(yīng)用方便。 5.2遇到的困難及解決的問題輸入代碼時粗心的忘記某些符號,導(dǎo)致程序錯誤很多,之后又費勁改回來,運行程序時不知道如何操作,最終翻開課本,與同學(xué)交流得知方法。 5.3收獲總結(jié)C+語言課程設(shè)計和現(xiàn)代計算機技術(shù)的實際應(yīng)用相結(jié)合,在本階段學(xué)完理論課程之后對自己該方面的能力的一次很好的檢驗,從開始的算法思路到運行調(diào)試后的美觀的圖形界面以及另人興奮的可用程序,都是一個很好的學(xué)習(xí)和鍛煉的過程。使我們鞏固了原有的理論知識,培養(yǎng)了我們靈活運用和組合集成所學(xué)過知識及技能來分析、解決實際問題的能力。使我們體會到自身知識和能力能在實際中的應(yīng)用和發(fā)揮。不但可以激發(fā)創(chuàng)新意識,還可以開發(fā)創(chuàng)造能力、培養(yǎng)溝通能力。這次學(xué)習(xí)時間雖然僅有一個星期,但確實使我受益非淺。通過實習(xí)我豐富了計算機操作經(jīng)驗,更加深了對C語言的了解,熟悉了其環(huán)境,更增強了對c+的使用技巧。另外,學(xué)習(xí)中馮老師對我們進(jìn)行了細(xì)心、耐心的指導(dǎo),鼓勵我們對程序進(jìn)行合理改進(jìn),培養(yǎng)了我們的創(chuàng)新意識和創(chuàng)新能力。原來是我認(rèn)為可怕的課程設(shè)計,就在種種輔助條件下完成了,心里有說不出的高興。雖說捧著自己的成果很高興,但成果背后總是付出很大的努力。一個多禮拜中,我們有過山窮水盡的困惑;有過柳暗花明的驚喜;有過唇槍舌劍的辯論;有過相互鼓勵的安慰。一個多禮拜的時間我們經(jīng)歷了很多,也收獲了很多。與其說它是體力與腦力的作業(yè),不如說它是合作精神和毅力的考驗。經(jīng)過這次課程設(shè)計,我不僅學(xué)到了很多知識和技能,更重要的是我們學(xué)會了如何運用所學(xué)知識去解決實際問題.一個多禮拜的掙扎,絞盡腦汁終于帶著麻木的手指和大腦脫出那堆“泥潭”。現(xiàn)在的心情是如魚得水,干澀的眼睛前方是萬里晴空。終于,所有的努力即將化成了一個個鉛字,打印機“滋滋”的

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論