C++第9周(春)项目5 - 一元一次方程类
课程首页在: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博客专栏================= |
==================== 迂者 贺利坚 CSDN博客专栏================= |
C++第9周(春)项目5 - 一元一次方程类的更多相关文章
- C++第11周(春)项目2 - 职员有薪水了
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [项目2 - 职员有薪水了]定义一个名为CPe ...
- 2013级C++第15周(春)项目——输入输出流及文件文件操作
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759.内有完整教学方案及资源链接 本周程序阅读及程序调试中须要的文件,请到htt ...
- C++第15周(春)项目3 - OOP版电子词典(一)
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759.内有完整教学方案及资源链接 [项目3-OOP版电子词典](本程序中须要的相 ...
- C++第13周(春)项目1 - 点、圆的关系
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759.内有完整教学方案及资源链接 [项目1 - 点.圆的关系](1)先建立一个P ...
- C++第11周(春)项目1 - 存储班长信息的学生类
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [项目1 - 存储班长信息的学生类] clas ...
- 2013级C++第13周(春)项目——继承的进一步话题与GUI应用开发
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 第一部分 程序阅读:阅读以下类的定义,请说出在 ...
- 2013级C++第14周(春)项目——多态性、虚函数和抽象类
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 第一部分 阅读程序1.阅读.改动和执行关于交通 ...
- C++第15周(春)项目2 - 用文件保存的学生名单
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759.内有完整教学方案及资源链接 本程序中须要的相关文件.请到http://pa ...
- C++第12周(春)项目2 - "双肩挑"教师
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [项目2 - 教师兼干部类](第11章习题9) ...
随机推荐
- SQL Prompt 格式化SQL会自动插入分号的问题
一.问题 安装新版SQL Prompt,格式化SQL都会自动在SQL末端插入分号 格式化前 格式化后 二.解决方法 选择SQL Prompt下的Options... 选择左侧的Format下Style ...
- 自定义tableView通用MVC设计
- composer 插件安装
https://packagist.org/?q=phpmyadmin&p=0 Github:笔记 https://github.com/13431/php 类库包下载地址:packagist ...
- mysql两种常用备份工具
一.mysqldump备份: 在开启GTID模式时,在master上执行的备份: --set-gtid-purged=OFF 在开启GTID模式时,要在slave上执行,想重新搭建一套slave环境. ...
- CSS3---圆角设置
1.border-radius是向元素添加圆角边框.border-radius:10px; /* 所有角都使用半径为10px的圆角 */ border-radius: 5px 4px 3px ...
- tiles框架的definition讲解
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE tiles-definitions PUBL ...
- luogu2468 [SDOI2010]粟粟的书架
二合一-- #include <iostream> #include <cstdio> using namespace std; int r, c, m, a[205][205 ...
- 把以100000+4位随机码的登录账号(比如1000001234),赋予制单页面的权限,怎么写sql啊
insert into sys_user_role (user_id,role_id,office_id) select id,'000101100000000004UP',company_id f ...
- Food Delivery (区间DP)
When we are focusing on solving problems, we usually prefer to stay in front of computers rather tha ...
- POJ 1379 (随机算法)模拟退火
题目大意: 给定一堆点,找到一个点的位置使这个点到所有点中的最小距离最大 这里数据范围很小,精度要求也不高,我们这里可以利用模拟退火的方法,随机找到下一个点,如果下一个点比当前点优秀就更新当前点 参考 ...