补2 项目五--5
来源:互联网 发布:twitter关注推荐 知乎 编辑:程序博客网 时间:2024/05/21 22:25
一、问题及代码
#include<iostream>
#include<Cmath>
using namespace std;
int gcd(int m, int n);
class CFraction
{
private:
int nume; // 分子
int deno; // 分母
public:
CFraction(int nu = 0, int de = 1);
void set(int nu = 0, int de = 1);
void input();
void simplify();
void amplify(int n);
void output(int style = 0);
};
CFraction::CFraction(int nu, int de)
{
if (de != 0)
{
nume = nu;
deno = de;
}
else
{
cerr << "初始化中发生错误,程序退出\n";
system("pause");
exit(0);
}
}
void CFraction::set(int nu, int de)
{
if (de != 0)
{
nume = nu;
deno = de;
}
}
void CFraction::input()
{
int nu, de;
char c;
while (1)
{
cout << "输入分数(m/n): ";
cin >> nu >> c >> de;
if (c != '/')
cout << "输入格式错误!\n ";
else if (de == 0)
cout << "分母不能为零!\n ";
else
break;
}
nume = nu;
deno = de;
}
void CFraction::simplify()
{
int n = gcd(deno, nume);
deno /= n;
nume /= n;
}
int gcd(int m, int n)
{
int r;
if (m<n) { r = m; m = n; n = r; }
while (r = m%n)
{
m = n;
n = r;
}
return n;
}
void CFraction::amplify(int n)
{
nume *= n;
}
void CFraction::output(int style)
{
int n;
switch (style)
{
case 0:
cout << "原样:" << nume << '/' << deno << endl;break;
case 1:
n = gcd(deno, nume);
cout << "化简形式: " << nume / n << '/' << deno / n << endl;break;
case 2:
cout << "带分数形式:" << nume / deno << '(' << nume%deno << '/' << deno << ')' << endl;break;
case 3:
cout << "近似值:" << nume / double(deno) << endl;break;
default:
cout << "默认原样:" << nume << '/' << deno << endl;
}
}
int main()
{
CFraction c1, c2(8, 6);
cout << "关于c1: " << endl;
c1.output(0);
cout << "改变c1: " << endl;
c1.set(2, 7);
c1.output();
cout << "输入c1: " << endl;
c1.input();
c1.output(0);
cout << "关于c2: " << endl;
c2.output(0);
c2.output(1);
c2.output(3);
c2.output(3);
c2.output();
cout << "将c2化简: " << endl;
c2.simplify();
c2.output(0);
cout << "将c2放大倍: " << endl;
c2.amplify(5);
c2.output(0);
c2.output(1);
system("pause");
return 0;
}
二、运行结果
三、心得体会
四、知识点总结
- 补2 项目五--5
- 补做- 第五次实验-项目五
- 补3:实验五-项目四-成绩记录
- 项目 5 后缀表达式 (补)
- 补作业 第五次实验 项目5
- 5-5 补2
- java web开发(五) 接口开发补坑2
- 补第八周项目5---定期存款利息计算器
- 补 第二周 项目2- 有序的结构体数组.
- 项目 2 - 建立链队算法库(补)
- 第九周项目五2
- 补2
- 补2
- 补2
- 项目五
- 补 第二周 项目1
- 项目第二天(补)
- “四纠”“五补”战高温
- HTML学习笔记02
- 项目中如何使用solr(续)--高亮
- Grails WEB层 Web流(Flow)
- Hadoop渐进九:HBase配置及简单应用
- LS-GAN:把GAN建立在Lipschitz密度上
- 补2 项目五--5
- Grails WEB层 过滤器
- Cable master
- spark RDD算子(十三)之RDD 分区 HashPartitioner,RangePartitioner,自定义分区
- pandas学习笔记-重新索引
- Grails WEB层 AJAX
- .Net下RabbitMQ的使用(6) -- 消息的传输控制
- python知识点1
- Java8新特性