一元二次方程的类

2014-11-24 02:02:59 · 作者: · 浏览: 1

[cpp] view plaincopyprint /*
* Copyright (c) 2013, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作者:邱学伟
* 完成日期:2013 年 5 月 20 日
* 版本号:v1.0
* 输入描述:无
* 问题描述:一元二次方程类
* 程序输出:
* 问题分析:
* 算法设计:略
*/

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

#include
using namespace std;
class CEquation
{
public:
CEquation(double a1=0,double b1=0);
friend istream & operator>>(istream &in,CEquation &c);
friend ostream & operator<<(ostream &output,CEquation &c);
double solve();
char getx();
private:
double a,b;
double x;
char s;
};
CEquation::CEquation(double a1,double b1)
{
a=a1;
b=b1;
}
istream & operator>>(istream &in,CEquation &c)
{
char ac,bc,xc,l;//ac="+/-",xc="a-z的符号",bc="=";
cin>>c.a>>xc>>ac>>c.b>>bc>>l;//ax+b=0
if((ac!='+' && ac!='-') || bc!='=' )//逻辑或是“||” 逻辑与是“&&”
{
if(xc<'a' || xc>'z' || l!='0')
cout<<"格式不正确!";
}
if(ac=='-')
{
c.b=-c.b;
}
c.s=xc;
return in;
}
ostream & operator<<(ostream &output,CEquation &c)
{
cout< if(c.b>0)cout<<"+";
cout< return output;
}
double CEquation::solve()
{
double x;
if(a==0)
{
cout<<"方程无解"< return 0;
}
x=-b/a;
return x;
}
char CEquation::getx()
{
return s;
}
int main()
{
CEquation e;
cout<<"请输入一元一次方程(输入格式:3x-8=0/5s+18=0):";
cin>>e; //在两次测试中,分别输入3x-8=0和5s+18=0
cout<<"方程为:"< cout<<"方程的解是:"< return 0;
}

/*
* Copyright (c) 2013, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作者:邱学伟
* 完成日期:2013 年 5 月 20 日
* 版本号:v1.0
* 输入描述:无
* 问题描述:一元二次方程类
* 程序输出:
* 问题分析:
* 算法设计:略
*/

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

#include
using namespace std;
class CEquation
{
public:
CEquation(double a1=0,double b1=0);
friend istream & operator>>(istream &in,CEquation &c);
friend ostream & operator<<(ostream &output,CEquation &c);
double solve();
char getx();
private:
double a,b;
double x;
char s;
};
CEquation::CEquation(double a1,double b1)
{
a=a1;
b=b1;
}
istream & operator>>(istream &in,CEquation &c)
{
char ac,bc,xc,l;//ac="+/-",xc="a-z的符号",bc="=";
cin>>c.a>>xc>>ac>>c.b>>bc>>l;//ax+b=0
if((ac!='+' && ac!='-') || bc!='=' )//逻辑或是“||” 逻辑与是“&&”
{
if(xc<'a' || xc>'z' || l!='0')
cout<<"格式不正确!";
}
if(ac=='-')
{
c.b=-c.b;
}
c.s=xc;
return in;
}
ostream & operator<<(ostream &output,CEquation &c)
{
cout< if(c.b>0)cout<<"+";
cout< return output;
}
double CEquation::solve()
{
double x;
if(a==0)
{
cout<<"方程无解"< return 0;
}
x=-b/a;
return x;
}
char CEquation::getx()
{
return s;
}
int main()
{
CEquation e;
cout<<"请输入一元一次方程(输入格式:3x-8=0/5s+18=0):";
cin>>e; //在两次测试中,分别输入3x-8=0和5s+18=0
cout<<"方程为:"< cout<<"方程的解是:"< return 0;
}

\

\