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

2019-04-21 15:47

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

作业一:

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

#include main ( ) { FILE *fptr; fptr = fopen(\ 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<<\ cout<<\ cin>>len;

cout<<\ cin>>wid;

r1.setLength(len); r1.setWidth(wid);

cout<<\ 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<<\ 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<

作业四

定义分数类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;

int i;

i=Maxdivisor(up,down); up=up/i;

down=down/i; }

int Rational::Maxdivisor(int a,int b) {

int temp;

int remainder;

if(a

temp=a; a=b; b=temp; }

remainder=a%b;

while(remainder!=0) {

a=b;

b=remainder; remainder=a%b; }

return b; }

int Rational::Minmultiple(int x,int y) {

return x*y/Maxdivisor(x,y); }

Rational Rational::operator*(Rational r1) {

int Ndown,Nup,i;

Ndown=down*r1.down;


面向对象程序设计试卷作业答案.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:数学与统计学学院中期报告模板

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: