📄 main.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 + -