1、 面向对象程序设计课程设计报告书 课题名称: 面向对象程序设计 学生学号: 班 级: 学生姓名: 指导老师: 二一二年七月八日 1 目目 录录 一、课程设计目标错误错误! !未定义未定义 书签。书签。 二、任务描述错误错误! !未定义未定义 书签。书签。 三、程序总体结构错误错误! !未定义未定义 书签。书签。 四、实验形式与分工错误错误! !未定义未定义 书签。书签。 五、程序的详细设计错误错误! !未定义未定义 书签。书签。 六、程序清单错误错误! !未定义未定义 书签。书签。 七、系统测试错误错误! !未定义未定义 书签。书签。 八、分析与讨论错误错误! !未定义未定义 书签。书签。 2
2、 一、课程设计目标 1、学会用面向对象程序设计的思想编程。尤其是抽象、封装、继承和多态 性等要素。 2 、注重综合训练。在实际编程中,要求程序具有可读性、实用性、可维护 性、可重用性和健壮性,尽量运用异常处理机制来处理程序中的错误。 3、掌握多文件编程和使用文件。 二、任务描述 分数计算器,进行分数的算术运算和逻辑运算。实现以下功能: (1) 能够像使用基本数据那样,对分数进行算术运算和比较分数的大小; (2 )以 a/b 的形式输入输出分数,允许输入输出整数这种特殊形式; (3 )对不是约化型的分数进行约化,避免分母为负数。 (4 )如果分数的分母为 0、除数为 0 或输入是格式有误,采用异
3、常处理机制解决。 三、程序总体结构 1、 以下为循环计算二元分数计算式的流程图: 输入运算符 输入第二个分数 计算结果 输入第一个分数 输入判断符号 若为“; ” 3 在实验中还需要面对六个运算符重载, 通过运算符重载, 我们可以简单的使用分数计算, 而不需要关心它的结构,运算符重载,我们根据基本的数学定理,将加减乘除包装,并重载 了输入输出运算符,这样,在输入输出时便可直接输出用户方便接收的格式。 2、函数功能的实现 函数名 功能说明 Gcf(int m,int n) 辅助函数,返回 m 和 n 最大公因数 void Reduction() 约分 int GetNume() constret
4、urn nume; 返回分子 int GetDeno() constreturn deno; 返回分母 void SetNume(int n) 设置分子 void SetDeno(int d) 设置分母 Fraction operator+(const Fraction /-创建分数类- class Fraction private: int nume; /分子 int deno; /分母 int Gcf(int m,int n); /辅助函数,返回 m和 n最大公因数 输入第一个分数 + / * 输入第二个分数 计算结果 保存结果到 output.txt 中 输入判断符号 若为“; ” 若为
5、“=” 结束本次运算 5 public: Fraction(int n=1,int d=1); virtualFraction() void Reduction(); /约分 int GetNume() constreturn nume; /返回分子 int GetDeno() constreturn deno; /返回分母 void SetNume(int n); /设置分子 void SetDeno(int d); /设置分母 Fraction operator+(const Fraction /重载加法符+ Fraction operator-(const Fraction /重载加法符- Fraction operator*(const Fraction /