方程也是类

输入代码:

/*
*Copyright (c)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:sum123.cpp
*作    者:林海云
*完成日期:2015年5月25日
*版 本 号:v2.0
*
*问题描述:设计一元一次方程类,求形如ax+b=0的方程的解。
例如:输入3x-8=0时,输出的方程的解为x=2.66667;
再如:输入5s+18=0时,输出的方程的解为s=-3.6;
*程序输入:一个一元一次方程
*程序输出:方程的解
*/
#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 &in,CEquation &e)
{
    char ch1,ch2,ch3,ch4;
    while(1)
    {
        cin>>e.a>>ch1>>ch2>>e.b>>ch3>>ch4;
        if(ch1>='a'&&ch2<='z')
            if((ch2=='+'||ch2=='-')&&ch3=='='&&ch4=='0')
                break;
                cout<<"输入方程格式错误,请重新输入"<<endl;
    }
    if(ch2=='-')
        e.b=-e.b;
    e.unknown=ch1;
    return in;
}
ostream &operator << (ostream &out,CEquation &e)
{
    cout<<e.a<<e.unknown;
    if(e.b>=0)
        cout<<"+"<<e.b<<"=0"<<endl;
    return out;
}
double CEquation::Solve()
{
    double x;
    if(a==0)
    {
        if(b==0)
            cout<<"任意一个实数均可为方程的解"<<endl;
        else
            cout<<"方程无实根"<<endl;
        return 0;
    }
    else
        x=-b/a;
    return x;
}
char CEquation::getUnknown()
{
    return unknown;
}
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();
}

运行结果:

时间: 2024-09-28 22:53:28

方程也是类的相关文章

OpenCASCADE Conic to BSpline Curves-Parabola

OpenCASCADE Conic to BSpline Curves-Parabola [email protected] Abstract. Rational Bezier Curve can represent conic curves such as circle, ellipse, hyperbola, .etc. But how to convert a conic curve to BSpline curve is still question, i.e. Represent a

趣题——三类背包问题

引言 背包问题作为一个经典问题在动态规划中是很基础的一个部分,而以0-1背包问题为原题,衍生出来的各类题目千变万化,解法也不同. 本文以三道背包问题的变体着手讲解,希望能够做到触类旁通. 0-1背包 给定n件物品和一个背包.物品i的价值是Wi,体积为Vi,背包的容量为C.可以任意选择装入背包的物品,求装入背包中的物品最大总价值.(Vi,C均为正整数) 在选择装入背包的物品时,有这样一个隐性条件:对每件物品i来说,要么全都放入背包,要么不放.不能将物品i多次装入(有切仅有一个),也不能部分装入.因

机器学习技法——第1-2讲.Linear Support Vector Machine

本栏目(机器学习)下机器学习技法专题是个人对Coursera公开课机器学习技法(2015)的学习心得与笔记.所有内容均来自Coursera公开课Machine Learning Techniques中Hsuan-Tien Lin林轩田老师的讲解.(https://class.coursera.org/ntumltwo-001/lecture) 第1讲-------Linear Support Vector Machine 在机器学习基石介绍的基本工具(主要围绕特征转换Feature Transf

OpenCASCADE Conic to BSpline Curves-Hyperbola

OpenCASCADE Conic to BSpline Curves-Hyperbola [email protected] Abstract. Rational Bezier Curve can represent conic curves such as circle, ellipse, hyperbola, .etc. But how to convert a conic curve to BSpline curve is still question, i.e. Represent a

第九周 项目五-我的方程类

  设计一元一次方程类,求形如ax+b=0的方程的解. 例如:输入3x-8=0时,输出的方程的解为x=2.66667: 再如:输入5s+18=0时,输出的方程的解为s=-3.6: 参考界面如下: 参考代码为: class CEquation { private: double a; // 未知数系数 double b; // 常数项 char unknown; // 代表未知数的符号 public: CEquation(double aa=0,double bb=0); friend istre

[转]100个经典C语言程序(益智类问题)

目录: 1.绘制余弦曲线 2.绘制余弦曲线和直线 3.绘制圆 4.歌星大奖赛 5.求最大数 6.高次方数的尾数 8.借书方案知多少 9.杨辉三角形 10.数制转换 11.打鱼还是晒网 12.抓交通肇事犯 13.该存多少钱 14.怎样存钱利最大 15.捕鱼和分鱼 16.出售金鱼 1.7 分数四则运算 17.平分七筐鱼 18.有限5位数 19. 8 除不尽的数 21.4位反序数 22.求车速 23.阿姆斯特朗数 24.完全数 26.亲密数 27.自守数 28.回文数 29.求具有abcd=(ab+c

全局照明算法基础(一)——从辐射亮度到渲染方程

全局照明(Global Illumination)问题上已经有很多著名的算法,如路径追踪(Path Tracing),辐照度(Radiosity)等.绝大部分书籍/教材都直接介绍了做法,在理论方面有所欠缺(比如算法的正确性).这段时间在看<Advanced Global Illumination>,大呼爽快,所以做了这些笔记. 一.方向和立体角 立体角(Solid Angle)是平面角的推广.如上图,考虑一块不规则的曲面,其在单位球体(球心在原点,半径)上的投影为曲面,则的面积为该曲面对应的立

为何高于四次的方程没有根式解?

转载知乎上的回答. 可能不少人上学的时候都曾对这个问题感兴趣,至少我是一个.无意间在知乎上看到这个问题,又勾起了自己的兴趣,然后就上网.找书钻研了一番.我不是学数学的,我对问题的理解肯定有不准确的地方,所以这里算不上回答了这个问题,只是把自己的心得和大家分享一下.虽然里面有比较多的公式和概念,希望是比较好懂的,能对同样感兴趣的人有点启发. 先来一个简单的说明.整数通过加减乘除得到有理数,有理数没有填满实数轴,其中还有间隙,即存在着无理数.将有理数进行扩展,四项运算之外,再加上开方运算,经过这样计

java 导入自定义类

eclipse导入很容易,昨天上课学了一下用记事本写java,导入自定义类,这就麻烦了. 代码贴一下,方便操作: package tom.jiafei; public class SquareEquation { double a,b,c; double root1,root2; boolean boo; public SquareEquation (double a,double b,double c) { this.a = a; this.b = b; this.c = c; if(a!=0