C++简单的应用方程类极其成员函数
2013-11-03 12:31
555 查看
学了很多了没有一个可以连起来的例子下面设计一个简单的一元二次方程的函数,以ax²+bx+c=0 的
1、设计方程类
2、设计成员函数
(1)设计构造函数
(2)设计成员函数
函数Find可以根据d大于、等于或小于零来决定求解方法
二、编程实现
(1)设计一个工程名为equation的工程
(2)为工程设计一个头文件equation.h声明class FindRoot类并切包含需要的头文件
(3)为工程设计equation.cpp的文件,在这个文件中实现FindRoot的类。
(4)在equation.cpp的文件中包含头文件equation.h
(5)在Find.cpp文件中设计主函数对方程求解
三、主函数求解的思想如下
(1)首先使用接受的系数创建该类的一个对象为obj即 FindRoot obj(a,b,c);
(2)构造函数自动计算d的值
(3)对象obj调用成员函数Find求方程的根,然后将根存入相应的属性中,即obj.find();
(4)对象obj调用成员函数Display输出自己的跟即obj.Display();
下面是整个完整的程序代码
1、设计方程类
2、设计成员函数
(1)设计构造函数
[code]FindRoot::FindRoot(float x,float y,float z) { a=x; b=y; c=z; d=b*b-4*a*c; }
(2)设计成员函数
函数Find可以根据d大于、等于或小于零来决定求解方法
if(d>0){ } else if(d == 0){ }else{ }
二、编程实现
(1)设计一个工程名为equation的工程
(2)为工程设计一个头文件equation.h声明class FindRoot类并切包含需要的头文件
(3)为工程设计equation.cpp的文件,在这个文件中实现FindRoot的类。
(4)在equation.cpp的文件中包含头文件equation.h
(5)在Find.cpp文件中设计主函数对方程求解
三、主函数求解的思想如下
(1)首先使用接受的系数创建该类的一个对象为obj即 FindRoot obj(a,b,c);
(2)构造函数自动计算d的值
(3)对象obj调用成员函数Find求方程的根,然后将根存入相应的属性中,即obj.find();
(4)对象obj调用成员函数Display输出自己的跟即obj.Display();
下面是整个完整的程序代码
#ifndef EQUATION_ #define EQUATION_H #include <iostream> #include <cmath> using namespace std; class FindRoot{ private : float a,b,c,d; double x1,x2; public : FindRoot(float a1,float b1,float c1); void Find(); void Display(); }; #endif
#include "equation.h" //*********************** //* 实现FindRoot类 //*********************** FindRoot::FindRoot(float a1,float b1,float c1){ a=a1; b=b1; c=c1; d=b*b-4*a*c; } void FindRoot::Find() { if(d>0){ x1=(-b+sqrt(d)/2*a); x2=(-b-sqrt(d)/2*a); return; }else if(d == 0){ x1=x2=(-b)/(2*a); return; }else{ x1=(-b)/(2*a); x2=sqrt(-d)/2*a; return; } } void FindRoot::Display(){ if(d>0){ cout<<"X1="<<x1<<","<<"X2="<<x2<<endl; return; }else if(d == 0){ cout<<"X1="<<x1<<","<<"X2="<<x2<<endl; return; }else{ cout<<"X1="<<x1<<"+"<<x2<<endl; cout<<"X1="<<x1<<"-"<<x2<<endl; return; } }
#include <iostream> #include "equation.h" /* run this program using the console pauser or add your own getch, system("pause") or input loop */ void Read(float &a,float &b,float &c); int main(int argc, char** argv) { float a,b,c; cout<<"这是一个求方程ax2+bx+c=0的根的程序"<<endl; for(;;){ Read(a,b,c); if(a == 0){ return 0; } FindRoot obj(a,b,c); obj.Find(); obj.Display(); } return 0; } void Read(float &a,float &b,float &c){ cout<<"请输入方程式系数a:"; cin>>a; if(a == 0){ return; } cout<<"输入方程系数b:"; cin>>b; cout<<"输入方程系数c:"; cin>>c; }
相关文章推荐
- C++成员函数指针的应用
- c++成员函数指针的应用
- C++成员函数指针的应用
- C++第3次实验-静态成员函数的应用
- C++成员函数指针的应用
- C++定义的时钟类(主要是类的定义、数据成员、成员函数的定义,类对象的定义及对象之间的赋值的简单例子)
- 【c++】函数模板的简单应用
- C++成员函数指针的应用
- C++成员函数指针的应用
- C++成员函数指针的应用
- C++成员函数指针的应用
- 【转载】C++成员函数指针的应用,可作为回调函数实参
- C++调用C文件函数简单应用
- C++中成员函数指针的应用
- 简单的C++委托 —— 用模板类实现类成员函数的回调
- C++成员函数指针的应用
- C++成员函数指针的应用(学习收录)
- C++成员函数指针的应用(学习收录)
- C++日记_17.5.11 静态成员函数的小应用一则
- C++成员函数指针的应用