/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称:设计三角形类,通过增加构造函数,使对象在定义时能够进行初始化
* 作 者:雷恒鑫
* 完成日期:2012 年 03 月 19日
* 版 本 号: V1.3
* 对任务及求解方法的描述部分
* 输入描述:
* 问题描述:
* 程序输出:
* 程序头部的注释结束
*/
#include<iostream>
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(int n); //化简(使分子分母没有公因子)
void amplify(int n); //放大n倍,如2/3放大5倍为10/3
void output(int style=0); //输出:以8/6为例,style为0时,输出8/6;CFraction(int nu=0,int de=1); //构造函数,初始化用
};
int main ()
{
CFraction t1;
t1.Set(0,1); //置值,改变值时用
t1.input(); //按照"nu/de"的格式,如"5/2"的形式输入
t1.Simplify(1); //化简(使分子分母没有公因子)
t1.amplify(2); //放大n倍,如2/3放大5倍为10/3
t1.output(2);
cout<<endl;
system("PAUSE");
return 0; //输出:以8/6为例,style为0时,输出8/6;CFraction(int nu=0,int de=1); //构造函数,初始化用
}
CFraction::CFraction(int nu,int de)
{
nume = nu;
deno = de;
}
void CFraction::Set(int nu,int de) //置值,改变值时用
{
nume = nu;
deno = de;
}
void CFraction::input() //按照"nu/de"的格式,如"5/2"的形式输入
{
char h;
cout<<"请按照“nu/de”的格式输入一个分数:";
while(1)
{
cin>>nume>>h>>deno;
if(h!='/')
{
cout<<"格式不正确,请重新输入"<<endl;
}
else
{
break;
}
}
}
void CFraction::Simplify(int n) //化简(使分子分母没有公因子)
{
int a,b,min;
if(nume>deno)
{
min=deno;
}
else
{
min=nume;
}
for (int i=1;i<=min;++i)
{
b=nume%i;
a=deno%i;
if(a==0 && b==0)
{
nume=nume/i;
deno=deno/i;
if(nume>deno)
min=deno;
else
min=nume;
}
}
if(n==1)
{
cout<<"化简后的结果为:"<<nume<<'/'<<deno<<endl;
}
}
void CFraction::amplify(int n) //放大n倍,如2/3放大5倍为10/3
{
//int a,b;
cout<<"请输入您想放大的倍数n:";
cin>>n;
nume=nume*n;
//b=nume;
//a=deno;
Simplify(0);
cout<<"放大"<<n<<"倍的结果为"<<nume<<'/'<<deno<<endl;
//nume=b;
//deno=a;
}
void CFraction::output(int style) //输出:以8/6为例,style为0时,输出8/6;CFraction(int nu=0,int de=1); //构造函数,初始化用
{
int a,b;
if (style==0)
{
cout<<"您想求的值为:"<<nume<<'/'<<deno;
}
else if(style==1)
{
Simplify(0);
cout<<"您想求的值为:"<<nume<<'/'<<deno;
}
else if (style==2)
{
Simplify(0);
if(nume>deno)
{
a=nume/deno;
b=nume%deno;
}
cout<<"您想求的值为:"<<a<<'('<<b<<'/'<<deno<<')';
}
}
运行结果:
分享到:
相关推荐
在主程序中定义一个Computer的对象,调用其成员函数,观察类对象及其成员变量的构造与析构顺序,以及成员函数的调用。程序名:lab4_2.cpp. 使用debug调试功能观察lab4_2.cpp程序的运行流程,跟踪观察类的构造函数、...
在main()函数中定义vehicle、bicycle、motorcar、motorcycle的对象,调用其Run()、Stop()函数,观察其执行情况。再分别用vehicle类型的指针来调用这几个对象的成员函数,看看能否成功;把Run、Stop定义为虚函数,再...
基类构造函数的调用顺序是按照派生类定义时的顺序,而内嵌对象的构造函数调用顺序是按照成员在类C++上机实验报告-实验五全文共7页,当前为第2页。C++上机实验报告-实验五全文共7页,当前为第2页。中声明的顺序。 C++...
当可运行对象排在事件派发队列的队首时,就调用其run方法 public void run() { try { final Test1 frame = new Test1();//捕获异常 frame.setVisible(true); } catch (final Exception e) { e.printStackTrace...
2、 针对带附加头结点的单链表,试编写下列函数: A. 定位函数Locate:在单链表中寻找第i个结点。若找到,则函数返回第i个结点的地址;若找不到,则函数返回NULL; B. 球最大值函数max:通过单链表的一...
因此,C程序的执行总是从main函数开始, 完成对其它函数的调用后再返回到main函数,最后由main函数结束整个程序。一个C源程序必须有,也只能有一个主函数main。 函数定义的一般形式 1.无参函数的一般形式 ...
在main()函数中定义vehicle、bicycle、motorcar、mot orcycle的对象,调用其Run()、Stop()函数,观察其执行情况。再分别用vehicle类型的 指针来调用这几个对象的成员函数,看看能否成功;把Run、Stop定义为虚函数,...
为了方便,把代码放在Word里面了,每次上机实验的题目代码都在。 第一次: 对如下多项式编写类定义: + + +…+ 其中,n为多项式的次数。完成如下功能: (1) 可存储任意大的多项式(提示:可用动态数组实现)。 ...
第5章 数组 5.1 数组的概念 5.2 一维数组的定义和引用 5.2.1 定义一维数组 5.2.2 引用一维数组的元素 5.2.3 一维数组的初始化 5.2.4 一维数组程序举例 5.3 二维数组的定义和引用 5.3.1 定义二维数组 5.3.2 二维数组...
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #include <stdio.h> double fun ( int n ) { double result = 1.0 ; /************found************/ if (n = = 0 ) return ...
第5章 数组 5.1 数组的概念 5.2 一维数组的定义和引用 5.2.1 定义一维数组 5.2.2 引用一维数组的元素 5.2.3 一维数组的初始化 5.2.4 一维数组程序举例 5.3 二维数组的定义和引用 5.3.1 定义二维数组 5.3.2 二维数组...
在编程的过程中加深函数调用的设计思想。 实验内容 输入一个数值,计算并输出该数值以内最大的10个素数以及它们的和. 要求: (1) 在程序内部加必要的注释. (2)要对小于该数以内不够10个素数的情况进行处理. (3)输出的...
程序中除了main函数用于测试外,还定义了三个函数: symbol()函数,接收每个字符串的首个字符,判断是正负数; islegal()判断传入的字符串是否符合题目要求的进制数(二、八、十、十六进制) ; atoi()函数用于...
计算机二级C上机题库,含标准答案,绝对真实!!例如:第1套 给定程序的功能是调用fun函数建立班级通讯录。通讯录中记录每位学生的编号、姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作为一个...
在提高篇中完成完整的语法、算法、程序设计思想等教学目的的学习任务。由于学生对语言已具有了初步的了解并掌握了最基本的语法和程序设计思想,能设计较简单的程序,所以在提高篇的学习中,不论对灵活语法的学习和...
现在要你设计一个程序,返回一个3 * 5 的二维数组各元素的地址,并由此说明二维数组中各元素是按什么顺序存诸的。 4、为一个起泡排序程序设计测试用例,并测试之。 [分析讨论] 通过实验,分析定义与引用数组的区别。...
求各学生计算机平均分、最高和最低分成绩的函数 注:(2)—(13)为自定义功能函数,通过main()主函数调用实现其功能。 6. 程序流程设计: 根据《学生成绩管理系统》功能分析绘制流程图: 注:其他功能的流程图可参照...
以委托对象作为方法的参数,对学生类对象分别按照姓名、年龄和...(4) 在Main函数中通过选择排序方式(A姓名、B年龄、C年级)确定SortPrint方法调用的第2个参数(CompareFunction委托类型),以实现不同的排序方式。
包括停车场管理最小生成树单链表等等经典问题的源程序