面向对象程序设计试卷作业答案

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

《面向对象程序设计》作业答案

作业一:

编写程序,将从键盘读入的所有大小写字母写入名为a.txt的文件中(遇EOF结束)。(本题总分10分,fopen函数使用妥当4分,读入过程正确4分,关闭文件2分。程序结构完整,有不妥之处,酌情扣分。)

#include

main ( )

{

FILE *fptr;

fptr = fopen("a.txt","w");

if (fptr==NULL)

return 0;

char a;

a=getchar( );

while(a!=EOF )

{

if(a>=’a’ && a<=’z’|| a>=’A’ && a<=’Z’) fputc(a,fptr);

a = getchar();

}

fclose(fptr);

return 0;

}

作业二

定义一个矩形类Rectangle,并在main函数中用它声明一个矩形对象,然后利用接口

设置该矩形对象的长和宽、计算面积并输出。(本题总分10分,类结构2分,设置矩阵对象的长与高各1分,计算面积函数2分,输出函数2分,主函数2分。程序结构完整,有不妥之处,酌情扣分。)

#include

#include

class Rectangle

{

public:

int getArea();

void setWidth(int w);

void setLength(int l);

private:

int Length;

int Width;

};

int Rectangle::getArea()

{

return Length*Width;

}

void Rectangle::setLength(int l)

{

Length=l;

}

void Rectangle::setWidth(int w)

{

Width=w;

}

main()

{

int len,wid;

Rectangle r1;

cout<<"Input the Rectangle's Information"<

cout<<"Lentgh:"<

cin>>len;

cout<<"Width:"<

cin>>wid;

r1.setLength(len);

r1.setWidth(wid);

cout<<"Rectangle's Area:"<

return 0;

}

作业三

定义一个整数栈类IStack,并用该类声明一个整数栈对象istack,往该对象压入整数

6、7、8,然后逐一弹栈输出。(本题总分10分,类结构2分,构造、析构函数各1分,压栈、出栈函数实现2分,主函数2分。程序结构完整,有不妥之处,酌情扣分。)

#include

#include

struct Node {

int item;

struct Node *next;

};

class IStack {

public:

IStack();

~IStack();

void push(int item);

int pop();

int getItemNum();

private:

Node *head;

int size;

};

IStack::IStack()

{

head = NULL;

size = 0;

}

IStack::~IStack()

{

Node *temp = head;

while (temp != NULL) {

temp = head->next;

delete head;

head = temp;

}

}

void IStack::push(int item)

{

Node *temp = new Node;

temp->item = item;

temp->next = head;

head = temp;

size++;

}

int IStack::pop()

{

if (size == 0) {

cout<<"No Item in the stack!\n";

return 0;

}

Node *temp = head;

head = head->next;

int i = temp->item;

delete temp;

return i;

}

int IStack::getItemNum() {

return size;

}

main()

{ IStack istack;

istack .push(6);

istack .push(7);

istack .push(8);

cout<

cout<

cout<

return 0;

}

作业四

定义分数类Rational,要求在private部分用整数表示分子和分母,分子和分母以简化形式表示,即24/36应该以2/3的形式表示,并实现如下功能:

(1)两个分数对象可以用*相乘,结果表示为简化形式;

(2)按a/b的形式输出分数的值,a、b为整数。

最后在main函数中对上述功能进行测试。

(本题总分10分,类结构2分,分数相乘实现函数2分,化简函数实现2分,输出格式转化函数2分,主函数2分。程序结构完整,有不妥之处,酌情扣分。)

#include

#include

class Rational

{

public:

Rational(int num1=1,int num2=1);

Rational operator*(Rational r1);

void showNomal();

private:

int up;

int down;

int Minmultiple(int a,int b); //最小公倍数

int Maxdivisor(int a,int b);//最大公约数

};

Rational::Rational(int num1,int num2)

{

up=num1;

down=(num2==0)?1:num2;

相关文档
最新文档