C++课程设计实验报告——分数计算器学校:吉林大学学院:软件工程学号:54120825姓名:胡雪梅一,课程设计目的:1、熟悉利用面向对象的方法以及C++的编程思想来完成系统的设计;2、锻炼学生在设计的过程中,建立清晰的类层次,应用继承和多态等面向对象的编程思想;3、通过本课程设计,加深对面向对象程序设计课程所学知识的理解,熟练掌握和巩固C++语言的基本知识和语法规范,深刻体会面向对象的编程思想,掌握使用面向对象程序设计语言C++,学会编写结构清晰、风格良好的C++语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力。二,实验设计方案实验目的:设计一个分数计算器:1)实现输入>>,输出<<,+,-,*,/运算符的重载;2)实现分子分母的约分与规格化。在实验中还需要面对六个运算符重载,通过运算符重载,我们可以简单的使用分数计算,而不需要关心它的结构,运算符重载,我们根据基本的数学定理,将加减乘除包装,并重载了输入输出运算符,这样,在输入输出时便可直接输出用户方便接收的格式。三、实验步骤、测试与结果分析特色代码展示:cout<<"运算结果为:"<<endl;if(()==0)cout<<"0"<<endl;elseif(()==1)cout<<()<<endl;elsecout<<result<<endl;此处代码放在主函数最后,避免了当分子为0时输出例如0/2的情况和分母为1时输出2/1的情况,使设计更合理化。cout<<"continue?(Yes:y/Y,No:n/N)"<<endl;//供用户选择是否继续cin>>isContinue;此处的代码可供用户选择是否继续执行操作,避免了一次只能计算一次的情况,使设计更人性化测试结果如下:程序能够执行!能够进行准确的计算,输出结果为分数。当用户输入有误时能够提醒用户重新输入,设计比较人性化。最后的运算结果能够正常约分,且有负号的话能够正确显示在分子上。四、实验一总结:优点:1、试验中,我按照从简单到复杂的方法,一步一个脚印编写代码,使得程序不易发生错误,并且容易更正,编写出来的程序代码简洁明朗,便于阅读。2、注释写得清晰明了,便于他人和自己阅读。3、在能够完成基本功能的基础上,有一定提示用户信息输入的提示,能够自动检测一些用户输入错误的信息,并提示用户重新输入。缺点:1、分数的正负符号只能提示用户在输入分子之前输入,不能做到分子分母均可以输入分数,此处有待完善。2、编码的速度有一个从慢到快的过程,在本次试验中,我的速度依然比较慢,这看出我平时编码比较少,缺乏熟练度,并对算法了解不深入。代码展示:#include<iostream>#include<cmath>usingnamespacestd;/*************************类的定义***************************/classCounter{private:intfenzi;intfenmu;public:Counter();Counter(intm,intn);//构造函数Counteroperator+(constCounter&t);//重载运算符+Counteroperator-(constCounter&t);//重载运算符-Counteroperator*(constCounter&t);//重载运算符*Counteroperator/(constCounter&t);//重载运算符/intGetfenzi();intGetfenmu();voidSetfenzi(inta);voidSetfenmu(intb);voidhuajian();//化简分数friendstd::ostream&operator<<(std::ostream&out,constCounter&t);//重载<<friendstd::istream&operator>>(std::istream&in,constCounter&t);//重载>>};/**************************函数的实现***********************/Counter::Counter()//构造函数{fenzi=0;}Counter::Counter(intm,intn)//设置分子分母{fenzi=m;fenmu=n;}CounterCounter::operator+(constCounter&t)//重载+{Countersum;=fenzi*+*fenmu;=fenmu*;();retu
分数计算器 来自淘豆网m.daumloan.com转载请标明出处.