您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 软件工程 > 计算机专业学期三课程设计
《面向对象程序设计》课程设计报告姓名小精灵学号20080808指导教师徐嘉斌目录任务一..............................................................................................................................................1一、任务内容:...............................................................................................................1二、设计思路...................................................................................................................2三、实现代码...................................................................................................................2四、运行结果及分析.......................................................................................................3任务二..............................................................................................................................................4一、任务内容:...............................................................................................................4二、设计思路...................................................................................................................4三、实现代码...................................................................................................................5四、运行结果及分析.......................................................................................................7任务三..............................................................................................................................................8一、任务内容:...............................................................................................................8二、设计思路...................................................................................................................8三、实现代码...................................................................................................................9四、运行结果及分析.....................................................................................................12浙江理工大学科技与艺术学院机电系课程设计报告1任务一一、任务内容:完成内容:按照要求设计类(根据输出设计类)设计类就是根据数据封装的要求,抽象出适合的类。有如下测试程序和测试程序的输出结果,要求设计类Welcome。(1)测试程序如下:voidmain(){Welcomewe;Welcomeyou(we);you.Display();you.Set(“Thankyou.”);coutyou.Get()endl;you.talk();you.Display();}(2)测试程序的输出结果如下:Welcome!Thankyou.输入:Howaboutyou?输出:Howaboutyou?输入:Fine,thankyou.输出:Fine,thankyou.输入:OKAllrightGoodbye!OKGoodbye!Goodbye!注:后面5行为倒数第6行输出后接下去的输出内容。(3)设计类Welcome的原则:1)在头文件welcome.h中声明类2)在welcome.cpp中实现类3)使用内联函数定义Display()函数4)演示文件名用学号作主名。浙江理工大学科技与艺术学院机电系课程设计报告2二、设计思路由给出的代码来构造此程序。开头部分,由Display输出Welcome,再用Get输出被Set存进的Thankyou。利用循环函数While建立主体部分,输入OK时跳出循环。结尾部分,因为给出的代码中建立了两个对象,所以调用析构函数时可直接输出两个Goodbye。三、实现代码//Welcome.h#includeiostream#includestringusingnamespacestd;classWelcome{private:chard[100];public:inlinevoidDisplay(){coutdendl;};voidSet(chara[]){strcpy(d,a);};char*Get(){returnd;};voidtalk();Welcome(){};Welcome(constWelcome&a);~Welcome(){coutGoodbye!endl;};};//121-2.cpp#includeiostream#includestring#includeWelcome.husingnamespacestd;voidmain(){Welcomewe;Welcomeyou(we);you.Display();you.Set(Thankyou.);coutyou.Get()endl;you.talk();you.Display();}N开始输入OK输出输出“AllrightGoodbye”结束YWelcomedinlinevoidDisplay()voidSet(chara[])char*Get()voidtalk()Welcome()Welcome(constWelcome&w)~Welcome()浙江理工大学科技与艺术学院机电系课程设计报告3//121-1.cpp#includeiostream#includestring#includeWelcome.hvoidWelcome::talk(){cout输入:;cin.getline(d,100);while(strcmp(d,OK)!=0){cout输出:dendl;cout输入:;cin.getline(d,100);};strcpy(d,OK);coutAllrightendl;coutGoodbye!endl;}Welcome::Welcome(constWelcome&a){strcpy(d,a.d);strcpy(d,Welcome!);}四、运行结果及分析图1分析:前面先自动输出Welcome!和Thankyou.,然后利用循环While函数重复用户的输入。采用了多文件结构,利用构造函数、析构函数和拷贝构造函数将结果输出。最后调用析构函数输出“Goodbye!”浙江理工大学科技与艺术学院机电系课程设计报告4任务二一、任务内容:要求:为分数定义一个类。分数定义为两个整数之比。将分数表示为int类型的两个值:一个表示分子,一个表示分母。重载输入和输出运算符,分数以1/2、-15/29这样的形式来输入和输出,注意分子、分母可能包含负号。在分数类中,还应重载+、-、*、/运算符。应有一个函数,对分数进行约分与规格化,在规格化之后,分母一定是正的,并且分子分母的最大分约数为1,如对4/-8正规化之后表示成-1/2。仿照计算器的运算过程,采用计算器方式进行有关分数运算。二、设计思路(1)约分的关键是求分子分母的最大公约数,用Gcm(m,n)表示求m与n的最大公约数:当n=0时,Gcm(m,n)=m当n≠0时,Gcm(m,n)=Gcm(n,m%n)可用递归编程实现Gcm(m,n)。(2)分数的四则运算可按如下方式进行:(3)利用Reduction函数将负号全都归到分子身上。(4)Operation函数来实现当运算符输入错误时的提示。(5)当除数为0时,main函数中有实现显示除数不能为0的设置。NY开始输入除数、被除数和除号分母为0输出输出“不能为除数,请重新输入。结束分数计算器分数加法运算分数减法运算分数除法运算分数乘法运算异常处理报告自行约分负号转到分子为负数加括号浙江理工大学科技与艺术学院机电系课程设计报告5三、实现代码#includeiostream#includecmathvoidOperation(char&index);usingnamespacestd;classFraction{private:intfz;intfm;intGcm(intm,intn);public:Fraction(intn=1,intd=1);~Fraction(){};voidReduction();intGetFz(){returnfz;};intGetFm(){returnfm;};voidSetFz(intn);voidSetFm(intd);Fractionoperator+(Fraction&a);Fractionoperator-(Fraction&a);Fractionoperator*(Fraction&a);Fractionoperator/(Fraction&a);friendostream&operator(ostream&os,Fraction&s);friendistream&operator(istream&is,Fraction&s);};intFraction::Gcm(intm,intn){if(n==0)returnm;elsereturnGcm(n,m%n);}voidFraction::Reduction(){if(fm0){fz=-fz;fm=-fm;}intf=Gcm(abs(fz),fm);fz=fz/f;fm=fm/f;}voidOperation(char&index){for(;;){cout请输入运算符:;cinindex;if(index=='+'||index=='-'||index=='*'||index=='/')break;elsecout请输入正确的运算符:;}}Fraction::Fraction(intn,in
本文标题:计算机专业学期三课程设计
链接地址:https://www.777doc.com/doc-2041915 .html