补二

本文介绍了一个简单的分数类的设计与实现过程,包括分数的基本操作如设置、输入、化简、放大以及不同形式的输出。通过具体示例展示了该类的功能。

一、问题及代码

/*    
文件名称:program2    
作者:贺南鹏    
完成时间:2017年5月8日 
版本号:v1.0    
对任务及求解方法的描述部分:    
*输入描述:无     
*程序输出:无   
*问题分析:无    
*算法设计:无 
#include<iostream>  
#include<cstdlib>  
using namespace std;  
class CFraction    
{    
private:    
    int nume;  // 分子    
    int deno;  // 分母    
public:    
    CFraction(int nu=0,int de=1):nume(nu),deno(de){if(de==0)exit(0);};   //构造函数,初始化用    
    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    
};   
int main()  
{  
    CFraction num1;  
    num1.output(0);  
    num1.set(8,5);  
    num1.output(0);  
    num1.output(1);  
    num1.output(2);  
    num1.output(3);  
    num1.set(15,25);  
    num1.output(0);  
    num1.output(1);  
    num1.output(2);  
    num1.output(3);  
    return 0;  
}  
void CFraction::set(int nu,int de) //置值,改变值时用  
{  
    nume=nu;  
    deno=de;  
}    
void CFraction::input()               //按照"nu/de"的格式,如"5/2"的形式输入  
{  
    int a,b;  
    char op;  
    cout<<"请输入数据:";  
    cin>>a>>op>>b;  
    if(op!='/')  
    {  
        cout<<"输入错误!"<<endl;  
        exit(0);  
    }  
    else  
    {  
        nume=a;  
        deno=b;  
    }  
}    
void CFraction::simplify()            //化简(使分子分母没有公因子)  
{  
    int m,nu,de;  
    nu=nume;  
    de=deno;  
    while(m)  
    {  
        m=de%nu;  
        de=nu;  
        nu=m;  
    }  
    cout<<nume/de<<'/'<<deno/de<<endl;  
}   
void CFraction::amplify(int n)        //放大n倍,如2/3放大5倍为10/3  
{  
    nume*=n;  
}  
void CFraction::output(int style)   //输出:以8/6为例,style为0时,原样输出8/6;style为1时,输出化简后形式4/3;    
                            //style为2时,输出1(1/3)形式,表示一又三分之一;    
                            //style为3时,用小数形式输出,如1.3333;    
                            //默认方式0    
{  
    switch(style)  
    {  
    case 0:  
        cout<<nume<<'/'<<deno<<endl;break;  
    case 1:  
        simplify();break;  
    case 2:  
        if(nume/deno>0)  
        {  
            cout<<nume/deno<<'('<<nume%deno<<'/'<<deno<<')'<<endl;  
            break;  
        }  
        else  
        {  
            cout<<nume<<'/'<<deno<<endl;  
            break;  
        }  
    case 3:  
        cout<<0.1*nume/deno<<endl;break;  
    }  
} 
二、运行结果:

下载方式:https://renmaiwang.cn/s/t0445 在时序发生器设计实验中,如何达成T4至T1的生成? 时序发生器的构建可以通过运用一个4循环移寄存器来达成T4至T1的输出。 具体而言:- **CLR(清除)**: 作为全局清零信号,当CLR呈现低电平状态时,所有输出(涵盖T1至T4)皆会被清除。 - **STOP**: 在T4脉冲的下降沿时刻,若STOP信号处于低电平状态,则T1至T4会被重置。 - **启动流程**: 当启动信号START处于高电平,并且STOP为高电平时,移寄存器将在每个时钟的上升沿向左移动一。 移寄存器的输出端对应了T4、T3、T2、T1。 #### 2. 时序发生器如何调控T1至T4的波形形态? 时序发生器通过以下几个信号调控T1至T4的波形形态:- **CLR**: 当CLR处于低电平状态时,所有输出均会被清零。 - **STOP**: 若STOP信号为低电平,且在T4脉冲的下降沿时刻,所有输出同样会被清零。 - **START**: 在START信号有效(通常为高电平),并且STOP为高电平时,移寄存器启动,从而产生环形脉冲输出。 ### 微程序控制器实验#### 3. 微程序控制器实验中的四条机器指令及其对应的微程序段指定的机器指令及其关联的微程序段如下:- **NOP**: 00- **R0->B**: 04- **A+B->R0**: 05- **P<1>**: 30- **IN->R0**: 32- **R0->OUT**: 33- **HLT**: 35#### 4. 微程序段中的微操作/微命令序列针对每条微指令,其对应的微操作或微命令序列如下:- **IN->R0**: 输入(IN)单元的数据被...
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值