main.cpp
来自「very good one math about computer orga」· C++ 代码 · 共 128 行
CPP
128 行
#include <iostream>
using std::cin;
using std::cout;
using std::endl;
#include "MyFloat.h"
void Display(); //显示主菜单
void InputData(MyFloat &data1,char * name);//以规定的格式输入操作数
void DisplayResult(MyFloat dataResult,int iResult);//显示运算结果
int main()
{
char cmd; //命令输入
MyFloat data1,data2,dataResult;
do
{
do
{
//clrsrc();
Display(); //显示主菜单
cin>>cmd; //选择菜单
}while((cmd!='a')&&(cmd!='A')&&(cmd!='s')&&(cmd!='S')&&(cmd!='m')&&(cmd!='M')&&(cmd!='d')&&(cmd!='D')&&(cmd!='q')&&(cmd!='Q'));
int iResult; //存放运算的执行情况
switch(cmd)
{
case 'a':
case 'A':
InputData(data1,"被加数");
InputData(data2,"加数");
iResult = data1.Add(data2,dataResult);
DisplayResult(dataResult,iResult);
break;
case 's':
case 'S':
InputData(data1,"被减数");
InputData(data2,"减数");
iResult = data1.Sub(data2,dataResult);
DisplayResult(dataResult,iResult);
break;
case 'm':
case 'M':
InputData(data1,"被乘数");
InputData(data2,"乘数");
iResult = data1.Mul(data2,dataResult);
DisplayResult(dataResult,iResult);
break;
case 'd':
case 'D':
InputData(data1,"被除数");
InputData(data2,"除数");
iResult = data1.Div(data2,dataResult);
DisplayResult(dataResult,iResult);
break;
default:
break;
}
} while( (cmd != 'q')&&(cmd != 'Q') );
system("PAUSE");
return 0;
}
void Display() // 显示主菜单
{
system("cls");
cout<<"\n\n\n";
cout<<" 定点运算摸拟浮点运算\n";
cout<<" *********************************************\n";
cout<<" * a/A...............................加法运算*\n";
cout<<" * s/S...............................减法运算*\n";
cout<<" * m/M...............................乘法运算*\n";
cout<<" * d/D...............................除法运算*\n";
cout<<" * q/Q...............................退出 *\n";
cout<<" *********************************************\n";
cout<<" * (说明:本程序使用十进制格式(基数亦为10)) *\n";
cout<<" *********************************************\n";
cout<<"\n请输入您要做的运算的符号的代码:"<<endl;
}
void InputData(MyFloat &data1,char * name)
{
do
{ //以规定的格式输入左操作数
cout<<"请输入"<<name<<":"<<endl;
cout<<"尾数部分(纯小数的形式):";
cin>>data1.s;
if(data1.s >=1 || data1.s <= -1)
{
cout<<"尾数请用纯小数的形式输入,请您重新输入:"<<endl;
continue;
}
cout<<"阶码部分(在-32768和+32767之间):";
cin>>data1.j;
cout<<endl;
if (data1.s == 0)
{
data1.j = 0;
}
} while(data1.s >=1 ||data1.s <= -1);
}
void DisplayResult(MyFloat dataResult,int iResult)
{
if (iResult == 0)
{
cout<<"运算结果为"<<dataResult.s<<"E"<<dataResult.j<<endl;
}
else if (iResult == -1)
{
cout<<"运算结果下溢,结果约等于零"<<endl;
}
else if (iResult == 1)
{
cout<<"运算结果上溢"<<endl;
}
else if (iResult == -3)
{
cout<<"非法输入,除数不能为零,请重新输入:\n"<<endl;
}
cout<<"\n\n";
system("pause");
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?