⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cpp

📁 这些程序是本人学习数据结构时编的
💻 CPP
字号:
#include<iostream.h>
#include<math.h>
#include"Fraction.hpp"
#include"time.h"

int choice,i;

void loop1()
{
   cout<<"\n"<<"分数类演示:"<<"\n";
   cout<<"1.分数运算"<<"\n";
   cout<<"2.小数转换为简分数"<<"\n";
   cout<<"3.比较两种分数化简方法的效率"<<"\n";
   cout<<"4.放弃操作"<<"\n";
   cout<<"请选择你想进行的操作(1-4):";
   cin>>choice;
}

void loop2()
{
	cout<<"\n"<<"分数运算:"<<"\n";
	cout<<"1.分数化简"<<"\n";
	cout<<"2.加法运算"<<"\n";
	cout<<"3.减法运算"<<"\n";
	cout<<"4.乘法运算"<<"\n";
	cout<<"5.除法运算"<<"\n";
	cout<<"6.比较分数"<<"\n";
	cout<<"7.返回上一步"<<"\n";
	cout<<"请输入你想进行的操作(1-7):";
	cin>>i;
}
void TimeSearch()
{
	const TIMES=500000;
	Fraction temp1,temp2;
	long start,stop,i,totalTime;float runTime;
	cout<<"Please input the fraction:";
	cin>>temp1;
	cout<<"利用辗转相除法化简:\n";
	cout<<" 运行次数    总耗时(单位:毫秒)   单次耗时(单位:毫秒)"<<endl;
	start=clock();
	for(i=1;i<=TIMES;i++)
	temp2=temp1.mins1();
	stop=clock();
	totalTime=stop-start;
	runTime=(float)(totalTime)/(float)(TIMES);
	cout<<" "<<TIMES<<"       "<<totalTime<<"                "<<runTime<<endl;
        cout<<"化简为:"<<temp2<<endl;
	cout<<"用分解因式化简:\n";
        cout<<" 运行次数    总耗时(单位:毫秒)   单次耗时(单位:毫秒)"<<endl;
	start=clock();
	for(i=1;i<=TIMES;i++)
	temp2=temp1.mins2();
	stop=clock();
	totalTime=stop-start;
	runTime=(float)(totalTime)/(float)(TIMES);
	cout<<" "<<TIMES<<"       "<<totalTime<<"                "<<runTime<<endl;
    cout<<"化简为:"<<temp2<<endl;
}

int main()
{
  Fraction fract1;
  Fraction fract2;
  loop1();
  switch(choice)
  {
	 case 1:
	 loop2();
     switch(i)
	 {
	  case 1:
		cout<<"请输入你想转换的分数(数字/数字):";
		cin>>fract1;
		fract1=fract1.mins1();
		cout<<"化简为:";
		cout<<fract1;
		cout<<"\n";
		cout<<"如果还要运算其它操作,请重新运行!"<<"\n";
		break;
      case 2:
		cout<<"\n"<<"请输入第一个操作数(数字/数字):";
		cin>>fract1;
		cout<<"\n"<<"请输入第二个操作数(数字/数字):";
		cin>>fract2;
		cout<<"\n";
		cout<<fract1;cout<<" + ";cout<<fract2;cout<<" = ";
		fract1=fract1+fract2;
		fract1=fract1.mins1();
		cout<<fract1;
		cout<<"\n";
		cout<<"如果还要运算其它操作,请重新运行!"<<"\n";
		break;
	  case 3:
		cout<<"\n"<<"请输入第一个操作数(数字/数字):";
		cin>>fract1;
		cout<<"\n"<<"请输入第二个操作数(数字/数字):";
		cin>>fract2;
		cout<<"\n";
		cout<<fract1;cout<<" - ";cout<<fract2;cout<<" = ";
		fract1=fract1-fract2;
		cout<<fract1;
		cout<<"\n";
		cout<<"如果还要运算其它操作,请重新运行!"<<"\n";
		break;
	  case 4:
		cout<<"\n"<<"请输入第一个操作数(数字/数字):";
		cin>>fract1;
		cout<<"\n"<<"请输入第二个操作数(数字/数字):";
		cin>>fract2;
		cout<<"\n";
		cout<<"("<<fract1;cout<<") * (";cout<<fract2<<")";cout<<" = ";
		fract1=fract1*fract2;
		fract1=fract1.mins1();
		cout<<fract1;
		cout<<"\n";
		cout<<"如果还要运算其它操作,请重新运行!"<<"\n";
		break;
	  case 5:
		cout<<"\n"<<"请输入第一个操作数(数字/数字):";
		cin>>fract1;
		cout<<"\n"<<"请输入第二个操作数(数字/数字):";
		cin>>fract1;
		cout<<"\n";
		cout<<"("<<fract1;cout<<") / (";cout<<fract2<<")";cout<<" = ";
		fract1=fract1/fract2;
		fract1=fract1.mins1();
		cout<<fract1;
		cout<<"\n";
		cout<<"如果还要运算其它操作,请重新运行!"<<"\n";
		break;
	  case 6:
        cout<<"\n"<<"请输入第一个操作数(数字/数字):";
		cin>>fract1;
		cout<<"\n"<<"请输入第二个操作数(数字/数字):";
		cin>>fract2;
		cout<<"\n";
		if(fract1==fract2) 
		{cout<<"("<<fract1<<") = ("<<fract2<<")"<<"\n";}
		else{if(fract1<fract2) cout<<"("<<fract1<<") < ("<<fract2<<")"<<"\n";
		     if(fract1>fract2) cout<<"("<<fract1<<") > ("<<fract2<<")";}
		cout<<"如果还要运算其它操作,请重新运行!"<<"\n";
		break;
       case 7:
	   default:
		   break;}
	   break;
	case 2:
		cout<<"\n"<<"小数转换为简分数:";
		double c;
		cin>>c;
		fract1.change(c);
		cout<<"\n\n";
		cout<<"如果还要运算其它操作,请重新运行!"<<"\n";
		break;
	case 3:
		cout<<"调用time函数比较两种化简方法的效率!"<<"\n";
		TimeSearch();
	case 4:
		cout<<"THANK YOU!"<<"\n";
		break;
	}
    return 1;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -