第九周实验报告4

/* (程序头部注释开始)

* 程序的版权和版本声明部分

* Copyright (c) 2011, 烟台大学计算机学院学生

* All rights reserved.

* 文件名称:复数类

* 作 者: 刘文英

* 完成日期: 2012年 04月 18日

* 版 本 号:

* 对任务及求解方法的描述部分

* 输入描述:

* 问题描述: 一元一次方程类

* 程序输出:

* 程序头部的注释结束*/
[cpp] view plaincopyprint?

    #include "iostream"  
    using namespace std;  
    class CEquation  
    {  
    private:  
        double a;     // 未知数系数  
        double b;     // 常数项  
        char unknown; // 未知数的符号  
    public:  
        CEquation(double aa=0,double bb=0);  
        friend istream &operator >> (istream &in,CEquation &e);  
        friend ostream &operator << (ostream &out,CEquation &e);  
        double Solve();  
        char getUnknown();  
    };  
      
    CEquation::CEquation(double aa,double bb):a(aa),b(bb){}  
      
    istream &operator >> (istream &input,CEquation &e)  
    {  
        char ch1,ch2,ch3,ch4;  
        while(1)  
        {  
            input>>e.a>>ch1>>ch2>>e.b>>ch3>>ch4;  
            if(ch1>='a'&&ch1<='z')  
                if((ch2=='+'||ch2=='-')&& ch3=='='&&ch4=='0') break;  
                cout<<"您输入的方程格式不规范,请重新输入!"<<endl;  
        }  
        if(ch2=='-') e.b=-e.b;  
        e.unknown=ch1;  
        return input;  
    }  
      
    ostream &operator << (ostream &output,CEquation &e)  
    {  
        cout<<e.a<<e.unknown;    
        if (e.b>=0) cout<<"+";    
        cout<<e.b<<"=0"<<endl;    
        return output;  
    }  
      
    double CEquation::Solve()    
    {    
        double x;    
        if (a==0)    
        {    
            if (b==0) cout<<"任意一个实数均为方程的解"<<endl;    
            else cout<<"方程无解。"<<endl;    
            return 0;    
        }    
        x=-b/a;    
        return x;    
    }    
      
    char CEquation::getUnknown()    
    {    
        return unknown;    
    }    
      
    int main()  
    {  
        CEquation e;  
        cout<<"请输入一元一次方程(输入格式:3x-8=0):";  
        cin>>e;   //在两次测试中,分别输入3x-8=0和5s+18=0  
        cout<<"方程为:"<<e;  
        cout<<"方程的解为:"<<e.getUnknown()<<"="<<e.Solve()<<endl;   
        e.Solve();  
        system("pause");  
        return 0;  
    }  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值