第四周项目2-分数类的雏形
来源:互联网 发布:js面向对象思想 编辑:程序博客网 时间:2024/04/30 05:51
/* *Copyright (c) 2014, 烟台大学计算机学院 *All rights reserved. *文件名称:week4-2.cpp *作者:高赞 *完成日期:2015年 3 月 30 日 *版本号:v1.0 * * */#include <iostream>#include <cstdlib>using namespace std;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();//按照"nu/de"的格式,如"5/2"的形式输入 void simplify();//化简(使分子分母没有公因子) void amplify(int n);//放大n倍,如2/3放大5倍为10/3 void output(int style=0);//输出:以8/6为例,style为0时,原样输出8/6; //style为1时,输出化简后形式4/3; //style为2时,输出1(1/3)形式,表示一又三分之一; //style为3时,用小数形式输出,如1.3333; //默认方式0};CFraction::CFraction(int nu,int de){ if(de==0) { cout<<"初始化失败,分母不能为零。"<<endl; exit(0); } else { nume=nu; deno=de; }}void CFraction::set(int nu,int de){ if(de==0) cout<<"赋值失败,分母不能为零。"<<endl; else { nume=nu; deno=de; }}void CFraction::input(){ char ch; cin>>nume>>ch>>deno; while(ch!='/') { cout<<"格式错误!重新输入"<<endl; cin>>nume>>ch>>deno; }}void CFraction::simplify(){ int a=nume,b=deno,c; while (b!=0) { c=a%b; a=b; b=c; } nume=nume/a; deno=deno/a;}void CFraction::amplify(int n){ nume*=n; deno*=n;}void CFraction::output(int style){ switch(style) { case 0: cout<<nume<<"/"<<deno<<endl; break; case 1: simplify(); cout<<nume<<"/"<<deno<<endl; break; case 2: simplify(); cout<<nume/deno<<"("<<nume%deno<<"/"<<deno<<")"<<endl; break; case 3: cout<<(nume*1.0/deno)<<endl; break; }}int main(){ CFraction c1(1,3),c2(4,6),c3(1/2),c4; c3.set(5,2); cout<<"输入c4的值"<<endl; c4.input(); c1.amplify(5); cout<<"c1: "; c1.output(0); cout<<endl <<"c2: "; c2.output(1); cout<<endl <<"c3: "; c3.output(2); cout<<endl <<"c4: "; c4.output(3); cout<<endl; return 0;}
差点忘了实参是不能被赋值的... ...
0 0
- 第四周项目2 分数的雏形
- 第四周 项目2-分数类雏形
- 第四周 项目2-分数类的雏形(2)
- 第四周项目2 分数类的雏形
- 第四周上机项目2分数类的雏形
- 第四周 【项目2-分数类的雏形】
- 第四周 项目2-分数类的雏形(1)
- 第四周项目2-分数类的雏形
- 第四周项目2-分数类的雏形
- 第四周【项目2-分数类的雏形】
- 第四周上机实践项目2-分数类的雏形
- 第四周项目2-分数类的雏形
- 第四周 项目2 分数类的雏形
- 第四周项目2-分数类的雏形
- 第四周项目2分数类的雏形
- 第四周上机项目2 分数类的雏形
- 第四周项目2 分数类的雏形
- 第四周 项目二 分数的雏形
- 十五、Linux系统编程-信号(二)信号分类、可靠信号与不可靠信号、信号发送 pause
- LeetCode 35 Search Insert Position
- 第四周 项目二 分数的雏形
- 修改WampServer的默认端口
- MT7620a+OpenWRT路由系统
- 第四周项目2-分数类的雏形
- js+checkbox +ashx处理前台接收的值
- GitHub 优秀的 Android 开源项目
- MVVM
- Magento 后台订单详情页Items Ordered列表处 增加产品图片显示
- Spark应用连接HBase报NullPointerException
- linux mmap 详解
- String s=new String("abc")创建了几个对象?
- C++札记--01