C++大作业阿拉伯与罗马数的转换 联系客服

发布时间 : 星期日 文章C++大作业阿拉伯与罗马数的转换更新完毕开始阅读31e431abe3bd960590c69ec3d5bbfd0a7956d5df

《阿拉伯数字和罗马数字的相互转换》

大作业说明书

学生姓名 董勋凯 学 号 2412332 所属学院 电信工程学院 专 业 电气工程及其自动化 班 级 电气123 组 长 董勋凯

电信工程学院制

目录

1.概述 ............................................................................................................................................... 3 1.1开发环境 ..................................................................................................................................... 3 1.2已知设计参数或设计前提 ......................................................................................................... 3

1.2.1开发平台: ...................................................................................................................... 3 1.2.2已知: .............................................................................................................................. 3 1.3设计内容及要求 ......................................................................................................................... 3 1.4课程设计小组人员 ..................................................................................................................... 3 2.程序概要设计 ................................................................................................................................ 3 2.2计数规则 ..................................................................................................................................... 3 2.3组合规则 ..................................................................................................................................... 4 2.4分析............................................................................................................................................. 4 2.5流程图......................................................................................................................................... 5 3.程序详细设计 ................................................................................................................................ 6 3.1关键代码分析 ............................................................................................................................. 6

3.11罗马数据转换成十进制数 ............................................................................................... 6 3.12将十进制数转换为罗马数据 ........................................................................................... 7 3.2疑难问题解决 ............................................................................................................................. 7 4.使用情况........................................................................................................................................ 8 4.1展示各种的功能运行情况 ........................................................................................................ 8 5.总结 ............................................................................................................................................... 8 5.1程序的优点和缺点 ..................................................................................................................... 8 5.2遇到的困难及解决的问题 ........................................................................................................ 9 5.3收获总结 ..................................................................................................................................... 9 6.参考文献........................................................................................................................................ 9

1.概述

1.1开发环境:本档案利用DEV c++编译流程,可根据所需目标简单迅速的实现阿

拉伯数字和罗马数字的相互转换,准确高效。主要的功能有信息录入,转换通道的选择,数字的正确转换,多次进行数字转换等。本程序专门为阿拉伯数字和罗马数字的相互转化而设计,为了方便操作程序简化了界面的操作,使信息的录入更加方便,达到事半功倍的效果。此程序采用面向对象的DEV c++编写,兼容性好,准确度高。运用了c++程序数组的专业知识。

1.2已知设计参数或设计前提

1.2.1开发平台:DEV c++

1.2.2已知:用已知的十进制数字根据对照表将其转换为罗马数字,用已知的罗马数字根

据字母的前后判断,对照表将其转换为罗马数字

1.3设计内容及要求

1.3.1提供十进制转换罗马数字或者罗马数字转换十进制的选择通道 1.3.2对于需要转换的数字进行全面正确的录入

1.3.3实现十进制转换罗马数字或者罗马数字转换十进制 1.3.4实现转换后数字的正确输出

1.3.5第一次转换完成后还可以继续进行第二次转换,满足重新选择通道

1.4课程设计小组人员

组长:刘良 成员:刘良 刘伟 周豪

2.程序概要设计

本程序为一个翻译程序,将一种表达形式换算成另一种表达形式。该题是把罗马数字转换成十进制数或者把一个十进制数字转换成罗马数字。

初步设想:输入一个字符数组,即一个罗马数字,然后按照其位数上的权值展开后输出,即输出一个十进制数。罗马数字有如下符号:I(1),V(5),X(10),L(50),C(100),D(500),M(1000)。反之,输入一个十进制数字,根据对照表将其转换为罗马数字

2.2计数规则

2.2.1若干相同数字连写表示的数是这些罗马数字的和,如III=3。 2.2.2小数字在大数字前面表示的数是用大数字减去小数字,如IV=4。 2.2.3小数字在大数字后面表示的数是用大数字加上小数字,如VI=6。

2.3组合规则

2.3.1基本数字Ⅰ、X 、C 中的任何一个,自身连用构成数目,或者放在大数的右边连用构成数目,都不能超过三个,放在大数的左边只能用一个。

2.3.2不能把基本数字 V 、L 、D 中的任何一个作为小数放在大数的左边采用相减的方法构成数目,放在大数的右边采用相加的方式构成数目,只能使用一个。 2.3.3 V 和 X 左边的小数字只能用Ⅰ。 2.3.4 L 和 C 左边的小数字只能用X。 2.3.5 D 和 M 左边的小数字只能用 C 。

2.4分析

2.4.1罗马数字转阿拉伯数字

从前往后遍历罗马数字,如果某个数比前一个数小,则把该数加入到结果中,反之,则在结果中两次减去前一个数并加上当前这个数。 比如XVIII=18,其对应的阿拉伯数字表示为10_5_1_1_1,因此结果为10+5+1+1+1=18。 XIX=19,其对应的阿拉伯数字表示为10_1_10,因此结果为10+1+10-2*1=19。 2.4.2阿拉伯数字转罗马数字

把所有小数字在前的组合也作为基本数字,做一个对应的数值映射表。

例如:4=1-5=IV, 9=1-10=IX, 40=10-50=XL, 90=10-100=XC, 400=100-500=CD, 900=100-1000=CM。