01./*
02.* 程序的版权和版本声明部分:
03.* Copyright (c) 2011, 烟台大学计算机学院
04.* All rights reserved.
05.* 文件名称:test.cpp
06.* 作 者:刘芳
07.* 完成日期:2014 年05 月04 日
08.* 版 本 号:v1.0
09.* 对任务及求解方法的描述部分:
10.* 输入描述:无
11.* 问题描述: 输入方程
12.* 程序输出: 输出计算结果
13.* 问题分析:略
14.* 算法设计:略
15.*/
#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)
{
in>>e.a>>e.b>>e.unknown;
return in;
}
ostream &operator << (ostream &out,CEquation &e)
{
out<<e.a<<e.unknown;
if(e.b>0)
out<<"+"<<e.b<<"=0"<<endl;
return out;
}
double CEquation:: Solve()
{
double d;
d=b/a;
return d;
}
char CEquation::getUnknown()
{
char m;
m='x';
return m;
}
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();
}