大整数运算·字串对象版

大整数运算·字串对象版

ID:39556127

大小:46.54 KB

页数:5页

时间:2019-07-06

大整数运算·字串对象版_第1页
大整数运算·字串对象版_第2页
大整数运算·字串对象版_第3页
大整数运算·字串对象版_第4页
大整数运算·字串对象版_第5页
资源描述:

《大整数运算·字串对象版》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、大整数运算·字串对象版一·实验名称:大整数运算·字串对象版二·实验目的:有一些整数,其位数可能上百位。在功能上对这些整数做加、减、乘、整除以及取余运算。在程序组织上要求通过大整数类型的设计,来体现更好的可读性和可维护性,并且对错误采用异常方法处理。输入数据有若干组,每组数据由一个运算符(+、-、*、/、%)和两个整数构成,整数的范围在-10^150~10^150之间,如果遇到运算符‘@’,则表示运算结束。对于每组数据,输出其运算序号和运算结果,以‘/’为例,每个结果单独成行。1)如果结果超过200位,则输出“TooLargeNumber.”;2)如果结果为空,或者前导为0,

2、则输出“IllegalNumber.”;3)如果运算符不为上面5种,则输出“IllegalOperator.”,跳过后续的2个操作数;4)如果除0,则输出“DivideByZero.”。三·实验内容与步骤:本实验主要包括四个模块——StrInt.hMyExcept.hStrIntApp.cppStrInt.cpp(一)界面设计根据实验要求,设计类strint,该类型以string串作为存储数据的主体,再加上符号属性。同时满足能进行大整数的四则运算,应该将5种运算设计为该类的普通友元函数。根据功能要求,大整数类型一共要进行加、减、乘、除、取余五种操作,而大整数无法用内部数据类

3、型来描述,所以采用string类型,然后构造函数将其计算结果转化成大整数类型。由于考虑到类型功能的扩从,最终应能自然地允许字串表示的大整数参与大整数对象的四则运算,所以这五种运算都要设计成为该类型友元的普通函数。classStrInt{string_sign;string_num;public:friendStrIntadd(constStrInt&a,constStrInt&b);friendStrIntsub(constStrInt&a,StrInt&b);friendStrIntmul(constStrInt&a,constStrInt&b);friendStrInt

4、div(constStrInt&a,constStrInt&b);friendStrIntmod(constStrInt&a,constStrInt&b);};当默认创建一个对象时,为了使对象有意义,赋以0值。StrInt(conststring&a="0");又要完成流设备对其对象进行输入输出操作。friendistream&operator>>(istream&in,StrInt&a);friendostream&operator<<(ostream&out,constStrInt&a);位数的上限值常量BYTENUM只用于大整数类型,所以应在类型中说明。但是为了避免在

5、实现代码中专门定义和初始化,可以使用枚举的技巧。enum{BYTENUM=200};(一)异常类设计在strint实现中须判断出错,错误来自乘法超大溢出,除0以及输入非法数字表示。我们设计一个异常类。classMyExcept{public:virtualstringgetwhat()=0;};classMyDivideZero:publicMyExcept{public:stringgetwhat(){return"........";}};classMyTooLarge:publicMyExcept{public:stringgetwhat(){return".....

6、.....";}};classMyIllegal:publicMyExcept{public:stringgetwhat(){return"..........";}};classMyIlleagalop:publicMyExcept{public:stringgetwhat(){return"..........";}};(三)应用框架设计在应用框架设计中涉及大整数类型和异常类型的使用。所以要包括:#include"StrInt.h"#include"MyExcept.h"根据输入的运算符号选择运算类型:StrInta,b;for(charch;cin>>ch&&ch!=

7、'@';){cin>>a>>b;switch(ch){case'-':cout<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。