课程实践实验04:线性表应用-长整数运算
问题描述及要求
输入:俩个长整型(long)的数字。
要求:
(1)将输入的俩个长整型数字用顺序存储结构的线性表存放;
(2)最终设计并实现两个长整数的加、减、乘运算;
(3)以上数据和主要操作都封装到一个类中。
概要设计
(1) 对实验内容的理解和二次概括。
定义两个线性表,每位数字占一位,利用加减进退位关系完成运算,乘法则需要两个循环嵌套相加。
(2) 给出系统的功能列表(可以用图示或清单的形式)
加,减,乘
(3) 程序运行的界面设计 (可以用图示等方式,如:首先出现屏幕提示,请用户选择输入配置的方式,1从键盘输入活单元坐标2……3….然后用户)
请输入第一个数:12345
请输入第二个数:23456
相加结果为:35801
0 11 12 13 14 1相减结果为:11111
相乘结果为:0289564320
详细设计
附代码:
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
class calculator
{
int p[201];
int q[201];
int r[201];
int s[201];
int t[402];
string n1, n2;
int n;
public:
calculator(const string &a, const string &b);
~calculator();
void CreateList();
void Plus();
void Minus();
void Multiply();
};
calculator::calculator(const string &a, const string &b)
{
n1 = a;
n2 = b;
memset(p, 0, sizeof(p));
memset(q, 0, sizeof(q));
memset(r, 0, sizeof(r));
memset(s, 0, sizeof(s));
memset(t, 0, sizeof(t));
}
calculator::~calculator()
{
memset(p, 0, sizeof(p));
memset(q, 0, sizeof(q));
memset(r, 0, sizeof(r));
memset(s, 0, sizeo