《C++面向对象程序设计》课程设计报告题目:分数计算器设置班级:K0312415专业:计算机科学与技术学号:K031241521K031241535姓名:周林指导教师:小组成员:周林,张齐满二O一三年10 月15 日一、课程设计问题描述分数计算器设计是高等学校教务管理的重要组成部分,其内容较多,为了简化计论,要求设计的管理系统能够完成以下功能:(1)定义整数类和分数类。
其中,包括构造函数、析构函数、显示函数等。
(2)输入/输出:对流提取和流插入运算符进行重载。
(3)计算功能:可进行分数的加、减、乘和除法运算。
(4)化简功能:将分数化简为最简分数。
(5)异常处理功能:分数中分母不能为零。
(6)菜单功能:每种功能的操作都是在菜单中进行相应选择。
二、课程设计目的和要求:经过一个学期的《C++面向对象程序设计》课程的学习,已经有了一定地程序设计基础,但是要学好C++面向对象程序设计这门课程,不仅要认真阅读课本知识和从事课堂学习,更重要的是要进行上机实践,通过上机实践才能增强和巩固知识。
三、系统设计(算法分析)1、系统由5功能,可分别执分数的.加法运算,减法运算,.乘法运算和除法运算,还可以将分数化简。
1.加法运算可计算两个分数相加。
2.减法运算可计算两个分数相减。
3.乘法运算可计算两个分数相乘。
4.除法运算可计算两个分数相除。
5.化简运算可计算一个分数化简。
2、流程图3、分数计算器设置各函数的功能和实现的相关功能由对应的函数来实现。
(1)函数jia()实现分数加法运算。
(2)函数jian()实现分数减法运算。
(3)函数cheng()实现分数乘法运算。
(4)函数chu()实现分数除法运算。
(5)函数shuchu()实现分数的输出和化简。
四、程序源代码// 分数管理系统.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "fenshu.h "#include "zhengshu.h"int main(int argc, char* argv[]){fenshu aa;return 0;}// zhengshu.h: interface for the zhengshu class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_ZHENGSHU_H__254BB13E_9F27_4785_BDEE_6 37C9445F651__INCLUDED_)#defineAFX_ZHENGSHU_H__254BB13E_9F27_4785_BDEE_637C9445F6 51__INCLUDED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000class zhengshu{public:zhengshu();virtual ~zhengshu();};#endif// !defined(AFX_ZHENGSHU_H__254BB13E_9F27_4785_BDEE_63 7C9445F651__INCLUDED_)// zhengshu.cpp: implementation of the zhengshu class. ////////////////////////////////////////////////////////////////////////#include "stdafx.h"#include "zhengshu.h"//////////////////////////////////////////////////////////////////////// Construction/Destruction////////////////////////////////////////////////////////////////////// zhengshu::zhengshu(){}zhengshu::~zhengshu(){}// fenshu.h: interface for the fenshu class.////////////////////////////////////////////////////////////////////////#if !defined(AFX_FENSHU_H__6E3E6A1A_943D_4CB4_87D1_758 261F44F66__INCLUDED_)#defineAFX_FENSHU_H__6E3E6A1A_943D_4CB4_87D1_758261F44F66_ _INCLUDED_#if _MSC_VER > 1000#pragma once#endif // _MSC_VER > 1000#include "zhengshu.h"class fenshu : public zhengshu{public:fenshu();int disply();int jia();int jian();int cheng();int chu();int a,s,d,f;int k,l;//0 int q,w;int shuchu(int q,int w);virtual ~fenshu();};#endif// !defined(AFX_FENSHU_H__6E3E6A1A_943D_4CB4_87D1_75826 1F44F66__INCLUDED_)// fenshu.cpp: implementation of the fenshu class.////////////////////////////////////////////////////////////////////////#include "stdafx.h"#include "fenshu.h"#include "iostream"using namespace std;//////////////////////////////////////////////////////////////////////// Construction/Destruction//////////////////////////////////////////////////////////////////////fenshu::fenshu(){disply();}fenshu::~fenshu(){}int fenshu::disply(){while(!0){int i;system("pause");system("cls");cout<<"_______________ 分数计算器__________\n"<<endl; cout<<" 1.加法运算 2.减法运算"<<endl;cout<<" 3.乘法运算 4.除法运算"<<endl; cout<<" 5.化简 6.结束\n"<<endl; cout<<"______________________________________"<<endl; cin>>i;if(i==5){cout<<"请输入两个数,分子在前"<<endl;cin>>a>>s;shuchu(a,s);}else{cout<<"请输入四个数,分子在前"<<endl;if(i>0 && i<7)cin>>a>>s>>d>>f;if(s==0||f==0)cout<<"输入错误"<<endl;elseswitch(i){case 1:jia();break;case 2:jian();break; case 3:cheng();break; case 4:chu();break; case 6:return 0;}}}return 0;}fenshu::jia(){k=a+d;l=s+f;shuchu(k,l);return 0;}fenshu::jian(){k=a+d;l=s+f;shuchu(k,l);return 0;}fenshu::cheng(){k=a*d;l=s*f;shuchu(k,l);return 0;}fenshu::chu(){if(f=0){ cout<<"输入错误"<<endl; return 0;} k=a*d;l=s*d;shuchu(k,l);return 0;return 0;}fenshu::shuchu(int q,int w){int p;if(q>w)p=w;elsep=q;for(int i=p;i>1;i--){if(q%i==0 && w%i==0){q=q/i;w=w/i;}}cout<<"结果为"<<q<<"/"<<w<<endl;return 0;}五、总结和体会虽然写了很多次,总算是功夫不负有心人。
但是在写的时候遇到了很多问题,本来,这个小组只有我一个人。
张齐满加入,他找了资料,找到很多有用的我写程序,共同完成了这一个实验。
通过这一次的实践,我明白了合作的力量。
同学之间应该多多交流思想。
六、参考文献1 、C++面向对象设计第二版23。