计算机专业学期三课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《面向对象程序设计》

姓名小精灵

学号20080808

指导教师徐嘉斌

目录

任务一 (1)

一、任务内容: (1)

二、设计思路 (2)

三、实现代码 (2)

四、运行结果及分析 (3)

任务二 (4)

一、任务内容: (4)

二、设计思路 (4)

三、实现代码 (5)

四、运行结果及分析 (7)

任务三 (8)

一、任务内容: (8)

二、设计思路 (8)

三、实现代码 (9)

四、运行结果及分析 (12)

任务一

一、任务内容:

完成内容:按照要求设计类(根据输出设计类)

设计类就是根据数据封装的要求,抽象出适合的类。

有如下测试程序和测试程序的输出结果,要求设计类Welcome。(1)测试程序如下:

void main(){

Welcome we;

Welcome you(we);

you.Display();

you.Set(“Thank you.”);

cout<

you.talk();

you.Display();

}

(2)测试程序的输出结果如下:

Welcome!

Thank you.

输入:How about you?

输出:How about you?

输入:Fine,thank you.

输出:Fine,thank you.

输入:OK

All right

Goodbye!

OK

Goodbye!

Goodbye!

注:后面5行为倒数第6行输出后接下去的输出内容。

(3)设计类Welcome 的原则:

1)在头文件welcome.h 中声明类

2)在welcome.cpp中实现类

3)使用内联函数定义Display()函数

4)演示文件名用学号作主名。

二、设计思路

由给出的代码来构造此程序。开头部分,由Display输出Welcome,再用Get 输出被Set存进的Thank you。利用循环函数While建立主体部分,输入OK时跳出循环。结尾部分,因为给出的代码中建立了两个对象,所以调用析构函数时可直接输出两个Goodbye。

三、实现代码

//Welcome.h

#include

#include

using namespace std;

class Welcome{

private:

char d[100];

public:

inline void Display(){cout<

void Set(char a[]){strcpy(d,a);};

char *Get(){return d;};

void talk();

Welcome(){};

Welcome(const Welcome &a);

~Welcome(){cout<<"Goodbye!"<

}; //121-2.cpp

#include

#include

#include"Welcome.h"

using namespace std;

void main()

{

Welcome we;

Welcome you(we);

you.Display();

you.Set("Thank you.");

cout<

you.talk();

you.Display();

}

//121-1.cpp

#include

#include

#include"Welcome.h"

void Welcome::talk()

{

cout<<"输入:";

cin.getline(d,100);

while(strcmp(d,"OK")!=0)

{

cout<<"输出:"<

cout<<"输入:";

cin.getline(d,100);

};

strcpy(d,"OK");

cout<<"All right"<

cout<<"Goodbye!"<

}

Welcome:: Welcome(const Welcome &a) {

strcpy(d,a.d);

strcpy(d,"Welcome!");

}

四、运行结果及分析

图 1

分析:前面先自动输出Welcome!和Thank you.,然后利用循环While函数重复用户的输入。采用了多文件结构,利用构造函数、析构函数和拷贝构造函数将结果输出。最后调用析构函数输出“Goodbye!”

任务二

一、任务内容:

要求:为分数定义一个类。分数定义为两个整数之比。将分数表示为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的设置。

相关文档
最新文档