课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接

【项目5】设计一元一次方程类。求形如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 istream &operator >> (istream &in,CEquation &e);
friend ostream &operator << (ostream &out,CEquation &e);
double Solve();
char getUnknown();
};
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();
}

參考解答:

#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' && ch1<='z')
if ((ch2=='+' || ch2=='-') && ch3=='=' && ch4=='0') break;
cout<<"输入的方程格式不符合规范。请又一次输入\n";
}
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<<"+";
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;
}
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();
}

==================== 迂者 贺利坚 CSDN博客专栏=================
|== IT学子成长指导专栏 专栏文章的分类文件夹(不定期更新) ==|
|== C++ 课堂在线专栏  贺利坚课程教学链接(分课程年级) ==|
|== 我写的书——《逆袭大学——传给IT学子的正能量》    ==|
===== 为IT菜鸟起飞铺跑道。和学生一起享受快乐和激情的大学 =====
==================== 迂者 贺利坚 CSDN博客专栏=================
|== IT学子成长指导专栏 专栏文章的分类文件夹(不定期更新) ==|
|== C++ 课堂在线专栏  贺利坚课程教学链接(分课程年级) ==|
|== 我写的书——《逆袭大学——传给IT学子的正能量》    ==|
===== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =====

C++第9周(春)项目5 - 一元一次方程类的更多相关文章

  1. C++第11周(春)项目2 - 职员有薪水了

    课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [项目2 - 职员有薪水了]定义一个名为CPe ...

  2. 2013级C++第15周(春)项目——输入输出流及文件文件操作

    课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759.内有完整教学方案及资源链接 本周程序阅读及程序调试中须要的文件,请到htt ...

  3. C++第15周(春)项目3 - OOP版电子词典(一)

    课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759.内有完整教学方案及资源链接 [项目3-OOP版电子词典](本程序中须要的相 ...

  4. C++第13周(春)项目1 - 点、圆的关系

    课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759.内有完整教学方案及资源链接 [项目1 - 点.圆的关系](1)先建立一个P ...

  5. C++第11周(春)项目1 - 存储班长信息的学生类

    课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [项目1 - 存储班长信息的学生类] clas ...

  6. 2013级C++第13周(春)项目——继承的进一步话题与GUI应用开发

    课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 第一部分 程序阅读:阅读以下类的定义,请说出在 ...

  7. 2013级C++第14周(春)项目——多态性、虚函数和抽象类

    课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 第一部分 阅读程序1.阅读.改动和执行关于交通 ...

  8. C++第15周(春)项目2 - 用文件保存的学生名单

    课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759.内有完整教学方案及资源链接 本程序中须要的相关文件.请到http://pa ...

  9. C++第12周(春)项目2 - &quot;双肩挑&quot;教师

    课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [项目2 - 教师兼干部类](第11章习题9) ...

随机推荐

  1. sleep 和wait的差别

    基本的差别 1.sleep 是Thread 类的方法,wait 是Object类中定义的方法 2.sleep()方法可以在任何地方使用 3.wait()方法只能在synchronized方法中使用,或 ...

  2. Ubuntu 开机出现 "Your system is running in low-graphics mode"

    Ubuntu 开机出现 "Your system is running in low-graphics mode" 可能是权限问题 按网上的方法发现sudo命令无法使用,且系统变为 ...

  3. Linux 特殊指令总结(持续更新)

    Linux 命令 1. 查看系统信息 1.uname uname (1) - print system information uname (2) - get name and information ...

  4. HDU-4791-Alice‘s Print Service

    分析: 1.由于价格是递减的,所以可能出现si*pi>sj*pj(j>i).所以要有一个数组来储存当前端点的最小值. 2.然后二分查找当前的si,比较q*p[i]和M[i+1].不过在这之 ...

  5. (6) openssl passwd(生成加密的密码)

    该伪命令用于生成加密的密码 [root@docker121 ssl]# man -f passwd passwd (1) - update user's authentication tokens p ...

  6. 不同子系统采用不同MySQL编码LATIN1和UTF8的兼容

    程序处理 这是一个历史遗留系统, 旧的系统是C++开发的, 插入数据的时候, 没有统一MYSQL各个层次(服务器, 数据库, 表, 列)的编码, 这个情况基本上是MYSQL的默认安装导致的, 实际的数 ...

  7. Django之web本质

    Django之web本质 Web的本质,是基于socket玩的. 在我们上网的过程中,一个访问请求是如何工作的. Web的框架: 网络的连接都是基于Socket 在连接中有TCP/UDP 和HTTP协 ...

  8. LeetCode(73)Set Matrix Zeroes

    题目 Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. cli ...

  9. 数据结构实验7:实现二分查找、二叉排序(查找)树和AVL树

    实验7 学号:      姓名:     专业: 7.1实验目的 (1) 掌握顺序表的查找方法,尤其是二分查找方法. (2) 掌握二叉排序树的建立及查找. 查找是软件设计中的最常用的运算,查找所涉及到 ...

  10. xtu DP Training B. Collecting Bugs

    B. Collecting Bugs Time Limit: 10000ms Memory Limit: 64000KB 64-bit integer IO format: %lld      Jav ...