面向对象程序设计试卷作业答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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;