资源描述:
《c╱c++语言实现高精度计算器》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Powderby易天下zhonyangxiaowei@qq.comC/C++语言实现高精度计算器不同于我们常用的计算器,高精度计算器指的是要能实现几百位甚至上千位不等的计算四则运算,那么算法原理肯定也不是简单的“a+b=c”这样的赋值了。因为是高精度长位的运算,我们就不能像简单的四则运算那样1+1=2,实际上,严格来说高精度运算不是计算,只能说是一种平凑,只不过数出来的结果,你看到的是一个运算后的结果,而其内部的运算并非如此。废话不多说直接上源码!首先是main函数:通过main函数大家可以直接的看到运算时调用了哪些
2、函数,步骤又是什么。#include#include"calculator.h"#includeusingnamespacestd;intmain(){intchoose;intn=5;//初始加减法每个结点存放5位数intprecision=50;//初始除法的有效数字为50个charex;SetConsoleTitle("高精度计算器");//设置标题system("color21");//改变控制台背景颜色和前景颜色while(1){system("cls");cout
3、<<"====WelcometouseHighPrecisionCalculatorRTM====";cout<<"___________________________*主菜单*_______________________________";cout<<"16(加法)1:addition16";cout<<"16(减法)2:subtraction16";cout<<"16(乘法)3:multiplication16";cout<<"16(除法)4:division16";c
4、out<<"16(精度)5:setprecision16";cout<<"16(退出)6:exit16";cout<<"____________________________________________________________________";cout<<"Choice(请选择):";Powderby易天下zhonyangxiaowei@qq.comcin>>choose;cout<<"________________________________________________
5、________________________________";getchar();node*head_1,*head_2,*result;//建立链表存放被加/减数、加/减数和结果的整数部分node*headFra_1,*headFra_2,*resultFra;//建立链表存放被加/减数、加/减数和结果的小数部分//整数部分和小数部分的算法有差异intsign=0,sign_1=0,sign_2=0;//标记两数与结果的符号switch(choose){case1:cout<<"您选择了加法运算——"
6、;inputInt(sign_1,head_1,headFra_1);inputInt(sign_2,head_2,headFra_2);chooseAdd(sign,sign_1,sign_2,head_1,head_2,result,headFra_1,headFra_2,resultFra,n);output(sign,result,resultFra,n);break;case2:cout<<"您选择了减法运算——";inputInt(sign_1,head_1,headFra_1);inputInt(s
7、ign_2,head_2,headFra_2);chooseMin(sign,sign_1,sign_2,head_1,head_2,result,headFra_1,headFra_2,resultFra,n);output(sign,result,resultFra,n);break;case3:cout<<"您选择了乘法运算——";multi(sign,result,resultFra);output(sign,result,resultFra,1);break;case4:cout<<"您选择了除法运算—
8、—";div(sign,result,resultFra,precision);result=changeDiv(result);resultFra=changeDiv(resultFra);if(resultFra!=NULL)output(sign,result,resultFra,1);else{Powderby易天下zhonyang