求程序设计源代码:大整数加减法程序~~~拜托~~~

来源:百度知道 编辑:UC知道 时间:2024/06/16 11:40:20
【问题描述】
该系统要求实现一个简单的计算程序。主要功能计算两个大整数(³20位)的加法和减法,且要按指定的格式输出结果。通过此课题,熟练掌握字符传、数组、格式输出、文件的各种操作,以及基本的计算算法思想的应用。
【功能要求】
(1)用户从键盘任意输入一个算式,程序能计算并按格式输出结果。
(2)输入格式如下:
12345678901234567890 + 1234567890 =
输出格式如下:
12345678901234567890 + 1234567890 = 12345678902469135780
12345678901234567890
+ 1234567890
---------------------------------------------
12345678902469135780
(3)需要实现的功能
1) 能实现任意两个正大整数(³20位)的加、减法。
2) 竖式输出要求各位数字对齐。
3) 支持减法结果为负整数的情况。
4) 支持从一个文本文件读入批量算式,并将计算结果输出到另一个文件中。文件输入、输出的格式和上面(2)中要求的格式相同。
(4)界面功能要求:
1) 采用友好的字符界面。
2) 利用循环结构使得一次运行程序可进行多次计算操作。
【程序设计的具体说明】
(1)由于大整数的位数已超出了long型整数的范围,因此不能用系统提供的加、减操作。必须一位一位自己编程处理。
(2)根据题目要求,设计合适的数据结构。例如:用字符串接收用户输入的算式,再对该字符串逐个字符分析,取出两个运算数以及运算符。每个运算数可用一维整数数组存放,再根据数组计算结果。(本题也很适合用类和运算符重载来实现)
(3)采用自顶向下的设计方法,设计系统的总体模块组成和数据结构。
(4)对于每项功能,设计一个函数(方法、子模块)进行实现,要明确函数原型。
(5)根据设计结果分步开发实现各模块,最后

储存大整数很容易 用一个int数组就可以了

例如 array[0] = 1234567890
array[1] = 1234567890
合起来就是 12345678901234567890

运算的时候有点麻烦

不过有个取巧的办法

你读取 12345678901234567890 + 1234567890 的时候 截获 "+"

然后 用 后面的那个1234567890 和 a[0] 相加 如果a[0]超过10位 就把第11位 加到 a[1]里面 做为进位

减法相反即可。

如果是C# msdn 里面有 加减乘除