|
|
面向对象程序设计结课作业(线上)
一、分析程序题 ( 每题20分, 共2道小题, 总分值40分 )
1.#include <iostream>
void main()
{
// test1 char str[] = "world";
cout << sizeof(str) << ": ";
char *p = str;
cout << sizeof(p) << ": ";
char i = 10;
cout << sizeof(i) << ": ";
void *pp = malloc(10);
cout << sizeof(pp) << endl;
}
(20分)
2.#include "stdafx.h"#define SQR(X) X*X
int main(int argc, char* argv[]){ int a = 10; int k = 2; int m = 1;
a /= SQR(k+m)/SQR(k+m); printf("%d/n",a);
return 0;}
(20分)
二、编写程序实现算法 ( 每题20分, 共1道小题, 总分值20分 )
1.A,B 为两个整数,不使用第三者变量,交换A与B的值(20分)
三、程序设计 ( 每题20分, 共2道小题, 总分值40分 )
1.有理数是一个可以化为一个分数的数,例如2/3,533/920,-12/49都是有理数,否则就为无理数。在C++中,并没有预先定义有理数,需要时可以定义一个有理数类,将有理数的分子和分母分别存放在两个整型变量中。对有理数的各种操作都可以用重载运算符来实现。
基本要求:定义并实现一个有理数类,通过重载运算符+、-、*、/对有理数进行算术运算。写一个优化函数,它的作用是使有理数约去公分母,也即是使保存的有理数分子和分母之间没有公约数(除去1以外)。
实现提示:
设有两个有理数a/b和c/d,则有:
(1)有理数相加 分子=a*d+b*c;分母=b*d (2)有理数相减 分子=a*d-b*c;分母=b*d (3)有理数相乘 分子=a*c; 分母=b*d (4)有理数相除 分子=a*d; 分母=b*c
优化函数在创建有理数对象时应执行,在执行其它各种运算之后也需执行它,这样可保证所存储的有理数随时都是最优的。
(20分)
2.商品数据描述: 商品号、名称、价格、生产厂家、生产日期、现存量,
设计一个程序完成下属功能:按名称或(和)生产厂家查询商品数据并输出结果。
(20分)
|
|