面向对象程序设计试卷A答案及评分标准.doc
《面向对象程序设计试卷A答案及评分标准.doc》由会员分享,可在线阅读,更多相关《面向对象程序设计试卷A答案及评分标准.doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面向对象程序设计试卷A答案及评分标准本试卷共10个题,分别按以下标准评分,最后根据整个答题的情况,从程序设计风格的角度给予0-5分的附加分。1、编写程序,将从键盘读入的所有大小写字母写入名为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=A & a=Z) fp
2、utc(a,fptr);a = getchar();fclose(fptr);return 0;2、定义一个矩形类Rectangle,并在main函数中用它声明一个矩形对象,然后利用接口设置该矩形对象的长和宽、计算面积并输出。(本题总分10分,类结构2分,设置矩阵对象的长与高各1分,计算面积函数2分,输出函数2分,主函数2分。程序结构完整,有不妥之处,酌情扣分。)#include #include class Rectanglepublic: int getArea(); void setWidth(int w); void setLength(int l); private:int Leng
3、th;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; coutInput the Rectangles Informationendl; coutLentgh:len; coutWidth:wid; r1.setLength(len); r1.setWidth(wid); coutRectangles Area
4、:r1.getArea()endl; return 0;3、定义一个整数栈类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
5、: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) coutnext;int i =
6、temp-item;delete temp;return i;int IStack:getItemNum() return size;main() IStack istack; istack .push(6); istack .push(7); istack .push(8); coutistack .pop( )endl; coutistack .pop( )endl; coutistack .pop( )endl; return 0;4、定义分数类Rational,要求在private部分用整数表示分子和分母,分子和分母以简化形式表示,即24/36应该以2/3的形式表示,并实现如下功能:(
7、1) 两个分数对象可以用*相乘,结果表示为简化形式;(2) 按a/b的形式输出分数的值,a、b为整数。最后在main函数中对上述功能进行测试。(本题总分10分,类结构2分,分数相乘实现函数2分,化简函数实现2分,输出格式转化函数2分,主函数2分。程序结构完整,有不妥之处,酌情扣分。)#include #include class Rationalpublic:Rational(int num1=1,int num2=1);Rational operator*(Rational r1); void showNomal();private:int up;int down;int Minmultip
8、le(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(ab) temp=a;a=b;b=temp; remainder=a%b; while(remainder!=0)
9、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; Nup=up*r1.up; i=Maxdivisor(Nup,Ndown); return Rational(Nup/i,Ndown/i);void Rational:showNomal() coutup/downendl;main(
10、) Rational r1(4,14); Rational r2(5,8); Rational r; coutThe r1 is:endl; r1.showNomal(); coutThe r2 is:endl; r2.showNomal(); r=r1*r2; coutThe r1*r2 is:endl; r.showNomal(); return 0;5、定义包含时、分、秒信息的时间类Time,并实现时间对象的流输入输出,格式为时:分:秒,如23:35:18。(本题总分10分,类结构4分,输入输出函数实现各2分,主函数2分。程序结构完整,有不妥之处,酌情扣分。)#include time.
11、h#include class Time friend ostream & operator(istream &input, Time &t);public:Time(int h=0, int m=0, int s=0);private:int hour, minute, second;Time:Time(int h, int m, int s)hour=h;minute=m;second=s;ostream & operator(ostream &output, Time &t)output t.hour : t.minute : t.second (istream &input, Time
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 试卷 答案 评分标准
限制150内