求解有理数分式方程含代码,功能增强
. 海南大学海南大学 课程名称:课程名称: 课题名称:课题名称: 专专业:业: 学学号:号: 姓姓名:名: 指导教师:指导教师: 设计时间:设计时间: word 教育资料 信息科学技术学院信息科学技术学院 课程设计报告 《《C++C++程序设计》课程设计程序设计》课程设计 求解有理数分式方程求解有理数分式方程 信息与计算科学信息与计算科学 20151614310002 20151614310002 ti tie de jin se ti tie de jin se 2016~2017 2016~2017 学年第二学期学年第二学期 20172017 年年 6 6 月月 2929 日日 成绩:成绩: . 目录 1.设计内容 3 1.1 问题描述 3 1.2 设计思路 3 1.3 数据结构定义 3 2.总体设计 4 2.1 程序设计函数接口 4 2.2 程序功能说明 4 2.3 程序流程图 5 3.调试结果 5 3.1 程序运行 5 3.2 总结分析 9 4. 程序清单 9 头文件(类的定义): .9 类的实现: 10 主函数: 13 word 教育资料 . 1 1.设计内容.设计内容 1.11.1 问题描述问题描述 一、定义分式类,其中包含分子和分母。 二、实现功能:求解一元一次有理数分式方程 三、要求: 1、设计菜单实现功能选择 2、输入功能:输入有理数分式方程 3、计算并输出方程的根,并用最简分式表示 4、使用多文件方式设计: 1)类的说明设计成.h 头文件 2)类的实现为一个.cpp 文件 3)主函数为另一个.cpp 文件 bdf x ace 1.21.2 设计思路设计思路 1)定义类Fenshi和jisuan,对成员函数进行定义,并运用带默认形参值的 构造函数,拷贝构造函数,析构函数,类的组合,运算符的重载等方法。 2)设计多个函数并进行调用实现求解一元一次有理数分式方程。 3)设计一个对象数组存储运算结果。 4)提供查看历史结果功能。 5)提供按照指定规则查询结果功能。 1.31.3 数据结构定义数据结构定义 定义一 个类 jisuan 接受 参数 ,使 用类 Fenshi 类对运 算符进 行重载计 word 教育资料 . 算。 定义 一个 jisuan 类的动态数组 p 存储结果。 2 2.总体设计.总体设计 2.12.1 程序设计函数接口程序设计函数接口 1. Fenshi 类 1) Fenshi(int n=0,int d=1);//带默认形参值的构造函数 2)Fenshi(Fenshi //拷贝构造函数 3)~Fenshi();//析构函数 4) void simplify();//将分式化为最简形式 5)bool operator ==(Fenshi //运算符重载 6)Fenshi operator +(Fenshi 7)Fenshi operator -(Fenshi 8)Fenshi operator *(Fenshi 9)Fenshi operator /(Fenshi 10) void print();//输出分式 11) int Gcd(int a,int b);//辗转相除法求最大公因子 12) bool Isneg();//判断分式是否为正数 2. jisuan 类 1) jisuan();//默认构造函数 2) jisuan(int a,int b,int c,int d,int e,int f);//构造函数 3) ~jisuan();//析构函数 4) void cal();//计算有理分式的结果 5) void print();//以分数形式输出结果 6) Fenshi A;//待求解方程x的系数 3. 主函数 1) void DrawWarn();//输出警告界面 2) void DrawMenu();//输出菜单 2.22.2 程序功能说明程序功能说明 1) 输入参数:录入方程的参数并输出结果。 2) 历史结果:查询用户计算过的历史记录。 3) 查询结果:按系数或者次序查询计算过的结果。 4) 退出系统。 word 教育资料 . 2.32.3 程序流程图程序流程图 图 2-1 程序流程图 3 3.调试结果.调试结果 3.13.1 程序运行程序运行 1)程序启动输入存储结果个数界面 word 教育资料 . 2)主菜单 3)计算界面 4)历史结果界面 word 教育资料 . 5)查询结果界面 word 教育资料 . 6)警告界面 6.1)未存储数据时查询历史结果 6.2)超过给定的最大存储个数 word 教育资料 . 3.23.2 总结分析总结分析 本次设计让我对 C++有了更进一步的认识,特别是在类与对象这一块, 发现了以前很多 的知识漏洞。 这个设计过程最难的便是程序的调试了, 有时候程序明明看起来并没有任何的 错误,但是结果偏偏不对,实在是恼人,可能只是一个小小的错误比如将“= =”写成了“=”, 但是结果确实完全错误。 我相信在今后的学习真的我会更加努力,积累经验。使自己在编程等各方面得到提高。 4.4. 程序清单程序清单 头文件(类的定义)头文件(类的定义) :: class Fenshi { public: Fenshi(int n=0,int d=1); Fenshi(Fenshi ~Fenshi(); void simplify();//将分式化为最简形式,并检查分母是否为0 //进行运算符的重载 bool operator ==(Fenshi Fenshi operator +(Fenshi Fenshi operator -(Fenshi Fenshi operator *(Fenshi Fenshi operator /(Fenshi void print();//输出分式 int Gcd(int a,int b);//最大公因子 word 教育资料 . bool Isneg(); private: int fenmu,fenzi; }; class jisuan { public: jisuan(); jisuan(int a,int b,int c,int d,int e,int f); ~jisuan(); void cal();//计算 void print(); Fenshi A; private: Fenshi B; Fenshi C; Fenshi ans; }; 类的实现:类的实现: #include“dingyi.h“ #include #include using namespace std; #include Fenshi::Fenshi(int n,int d) { this-fenzi=n; this-fenmu=d; simplify(); } Fenshi::Fenshi(Fenshi this-fenzi=fen.fenzi; simplify(); } Fenshi:: ~Fenshi() {} word 教育资料 . bool Fenshi::operator==(Fenshi else return false; } Fenshi Fenshi::operator