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 + -
显示快捷键?