第9周-运算符重载(二)-方程也是类
来源:互联网 发布:虚拟婚纱照软件下载 编辑:程序博客网 时间:2024/06/07 16:53
/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:刘畅 * 完成日期:2015 年 5 月 7 日 * 版 本 号:v1.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 s1,s2,s3,s4; do { cin>>e.a>>s1>>s2>>e.b>>s3>>s4; if (s1>='a' && s1<='z') if ((s2=='+' || s2=='-') && s3=='=' && s4=='0') break; cout<<"输入的方程格式不符合规范,请重新输入:"; } while(1); if (s2=='-') e.b=-e.b; e.unknown=s1; 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; while (1) { 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(); cout<<endl; } return 0;}
运行结果:
学习心得:
这个类编辑得不够完善,如果输入不按照要求cin>>e.a>>s1>>s2>>e.b>>s3>>s4每一个都输出的话,它会无限循环输出格式不规范。
0 0
- 第9周-运算符重载(二)-方程也是类
- 第九周——运算符重载——项目五方程也是类
- 第9周-运算符重载(二)-复数类中的运算符重载(续)
- 第9周-运算符重载(二)-Time类中运算符重载(续)
- 第9周-运算符重载(二)-分数类中的运算符重载(续)
- 第9周项目5 方程也是类
- 第9周项目5-方程也是类
- 第9周项目5 方程也是类
- 第9周项目5-方程也是类
- 第9周-运算符重载(二)-我的向量类
- 第12周项目二—Time类的运算符重载9
- 第8周-项目5-方程也是类
- C++程序设计-第9周 运算符的重载(之二)
- 2013级C++第9周(春)项目——运算符重载(二)
- 2-9-5 方程也是类
- 第九周项目五:方程也是类
- 第九周项目五 方程也是类
- 第九周项目5-方程也是类
- Ubuntu 15.04 Gogs(git 版本库) 二进制安装
- Java 缓存之 Ehcache 配置详解
- 柱状图
- (3332)ZOJ
- 在eclipse中集成maven及第一个maven项目
- 第9周-运算符重载(二)-方程也是类
- STM32电路板调试Could not power up debug port
- 关于各种无法解析的外部符号问题的相应解决方案
- mysql 存储表情问题
- mysql数据库库推荐书籍
- JAVA TCP通信
- compareTo()方法返回值 String java
- Java switch-case语句用法
- Web Service