1、湖南人文科技学院计算机系课程设计说明书 课 程 名 称: C+程序设计 课 程 代 码: 408025 题 目: 求解有理数分式方程 年级/专业/班:09 级计算机科学与技术系软件工程专业 2 班 学 生 姓 名: 谷其飞、王武娟、贺红军、艾准、周玉香 学 号: 09436210、09436211、9436212 09436213、09436214 指 导 教 师: 袁辉勇 开 题 时 间: 2010 年 9 月 16 日完 成 时 间: 2010 年 9 月 26 日湖南人文科技学院课程设计2目 录摘 要 .3一、引言 .2二、设计目的与任务 .21、本课程设计的目的 .22、本课程设计的任
2、务 .2三、设计方案 .31、总体设计 .3、详细设计 .43、程序清单 .54、程序调试与体会 .75、运行结果 .8四、结论 .8五、参考文献 .9湖南人文科技学院课程设计2摘 要 本课程设计的目的是通过定义分式类,在设计中我们采用多文件编程原理,利用#include命令来实现“文件包含”的操作,使程序更加清晰,明了。程序中我们将类的说明设计成.h头文件,类的实现、主函数分开在不同的.cpp源文件中,这样一来提高了程序代码的重用和编程效率。关键字:多文件编程、类、构造函数、继承、派生。Abstract This course is designed by defining point, l
3、ine, area. Through the derived and to realize thinherited other ways to reuse code for the triangle area. In the design, we adopt documents, include using the principle of programming commands to realize “#“ operation documents contain more clearly, procedures, and clear. In the process, we will poi
4、nt, line, area, separated in different. CPP source file, and each class has its header files, thus improving the program code reuse and programming efficiency.Key words:Many documents programming, kind, constructor, inheritance,derived.湖南人文科技学院课程设计3C+程序设计语言课程设计求解有理数分式方程一、引言随着人们生活水平的提高,计算机发展异常迅速。如今,计
5、算机已经深入到我们社会的各个领域,计算机的使用也已不再局限于科学计算,它已进入人类社会的各个领域并发挥着越来越重要的作用。通过计算机对各类问题求解已经成为一种高效、快捷的方式。本课程设计就是用类的继承,派生等问题和实现代码重用以及函数的调用等方式来提高编程效率的。二、设计目的与任务1、本课程设计的目的1)通过课程设计更进一步理解 C+的基础知识和面向对象的思想。2)训练用系统的观点和软件开发一般规范进行软件开发,并在此过程中培养严谨的科学态度和良好的工作作风。初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能。3)熟练掌握 C+中类及类所具备的功能在程序中的应用,并熟练了
6、解类中函数的调用。2、本课程设计的任务一、定义分式类,其中包含分子和分母。 二、实现功能:求解一元一次有理数分式方程三、要求:1、设计菜单实现功能选择2、输入功能:输入有理数分式方程3、计算并输出方程的根,并用最简分式表示bdfxace湖南人文科技学院课程设计44、使用多文件方式设计:1)类的说明设计成.h 头文件2)类的实现为一个.cpp 文件3)主函数为另一个.cpp 文件三、设计方案1、总体设计1)设计多个头文件:conio.h;math.h;iostream.h等。2)定义类Fraction 和FractionEquation ,对成员函数进行定义,并运用拷贝构造函数,析构函数,继承及
7、派生。3)设计多个函数并进行调用实现求解一元一次有理数分式方程、详细设计2.1类接口设计void print(); 输出函数void printX(); 输出函数,Fraction();无参构造函数Fraction(Fraction 析构函数void Simplify(); 分式简化运算bool IsInteger();判断分式是否表示一个整数(即分母是否为1)bool IsNegative();判断分式是否表示一个负数FractionEquation();无参构造函数FractionEquation(int a,int b,int c,int d,int e,int f); /含6个参数的构
8、造函数virtual FractionEquation();析构函数void DrawWarn():输入参数函数;void DrawMenu()设计菜单实现功能选择;湖南人文科技学院课程设计5Fraction Count(); 计算方程的根函数;void print();输出方程函数;void printAnswer();输出方程的根函数;switch();多分支语句;booll();判断分式;2.2主函数。main() 调用main() 调用DrawMenu(); print() ;IsNegative();FractionEquation (a,b,c,d,e,f);等等。3、程序清单#i
9、nclude #include using namespace std;#include /分式类,完成诸如(1/3+3/5这样的计算)class Fraction public:void print(); / 输出函数void printX(); / 输出函数,当分式作为参数时输出:/ 1/3应写作(1/3),即要加一个括号/ 1/1应不写/ -1/1应只写一个负号Fraction(); / 无参构造函数,必须保留Fraction(int n,int d); / 包含两个参数的构造(分子,分母)Fraction(Fraction / 拷贝构造函数virtual Fraction(); / 析
10、构函数void Simplify(); / 分式简化运算,如将18/(-4)化为(-9)/2湖南人文科技学院课程设计6Fraction operator +(Fraction / 分式加法运算Fraction operator -(Fraction / 分式减法运算Fraction operator *(Fraction / 分式乘法运算Fraction operator /(Fraction / 分式除法运算bool IsInteger(); / 判断分式是否表示一个整数(即分母是否为1)bool IsNegative(); / 判断分式是否表示一个负数private:int numerat
11、or; /分子int denominator; /分母;Fraction:Fraction()Fraction(0,1);Fraction:Fraction()Fraction:Fraction(int n, int d)numerator=n;denominator=d;Simplify();Fraction Fraction:operator +(Fraction ret.numerator=(this-numerator*other.denominator+this-denominator*other.numerator);ret.denominator=this-denominator
12、*other.denominator;湖南人文科技学院课程设计7ret.Simplify();return ret;Fraction Fraction:operator *(Fraction ret.numerator=this-numerator*other.numerator;ret.denominator=this-denominator*other.denominator;ret.Simplify();return ret;Fraction:Fraction(Fraction this-denominator=other.denominator;void Fraction:Simpli
13、fy()if(denominatornumerator*other.denominator-this-denominator*other.numerator);ret.denominator=this-denominator*other.denominator;ret.Simplify();return ret;Fraction Fraction:operator /(Fraction ret.numerator=this-numerator*other.denominator;ret.denominator=this-denominator*other.numerator;ret.Simpl
14、ify();return ret;void Fraction:print()if(denominator!=1 else if(denominator=1)coutnumerator;elsecout-numerator;bool Fraction:IsNegative()if (numerator0)return true;else湖南人文科技学院课程设计9return false;bool Fraction:IsInteger()if (denominator=1)return true;elsereturn false;void Fraction:printX()if(IsInteger()if(numerator=1)return;if(numerator=-1)cout“-“;return;print();elsecout“(“;print();cout“)“;class FractionEquation