zoukankan      html  css  js  c++  java
  • 第九周项目5-方程也是类

    设计一元一次方程类,求形如ax+b=0的方程的解。
    例如:输入3x-8=0时,输出的方程的解为x=2.66667;

    再如:输入5s+18=0时,输出的方程的解为s=-3.6;

    /*
    * Copyright (c) 2015,烟台大学计算机学院
    * All right reserved.
    * 作者:邵帅
    * 文件:Demo.cpp
    * 完成时间:2015年05月15日
    * 版本号:v1.0
    */
    #include <iostream>
    #include <cstring>
    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 &in,CEquation &e)
    {
        char c1,c2,c3,c4;
        while (1)
        {
            cin>>e.a>>c1>>c2>>e.b>>c3>>c4;
            if ((c2!='+'||c2!='-')&&c3!='='&&c4!='0')
            {
                cout<<"格式输入错误,请重新输入!"<<endl;
                continue;
            }
            e.unknown=c1;
            if (c2=='-')
                e.b=-e.b;
            break;
        }
        return in;
    }
    ostream &operator << (ostream &out,CEquation &e)
    {
        cout<<e.a<<e.unknown;
        if (e.b>=0)
            cout<<"+";
        cout<<e.b<<"=0"<<endl;
        return out;
    }
    char CEquation::getUnknown()
    {
        return unknown;
    }
    double CEquation::Solve()
    {
        double n;
        if (a==0)
        {
            if (b==0)
                cout<<"方程解为任意实数"<<endl;
            else
                cout<<"方程无解";
        }
        n=-b/a;
        return n;
    }
    
    int main()
    {
        CEquation e;
        cout<<"请输入方程(格式:ax-b=0,a、b为常数,x处是代表未知数的字母):";
        cin>>e;   //在两次测试中,分别输入3x-8=0和50s+180=0
        cout<<"方程为:"<<e;
        cout<<"方程的解为:"<<e.getUnknown()<<"="<<e.Solve()<<endl; //对两次测试,分别输出x=...和s=...
        e.Solve();
    }
    
    运行结果:


    @ Mayuko

  • 相关阅读:
    线程 详解
    登录时,添加图片验证码
    String、StringBuffer、StringBuilder详解
    Random 生成随机数
    down
    九九归一
    小R与手机
    coins
    noip注意事项
    小W计树
  • 原文地址:https://www.cnblogs.com/mayuko/p/4567493.html
Copyright © 2011-2022 走看看