2007计算机英语A卷,2007级计算机科学系程序设计a卷

virtual void show()

{ cout << \ cout << \ }

PERSON operator =(const PERSON& other)

{ cout << \ cout << \ strcpy(name, other.name); salary = other.salary; return *this; }

~PERSON()

{ cout << \ protected:

char name[MAXLEN+1]; int salary; };

class EMPLOYEE: public PERSON { //雇员类 public:

EMPLOYEE(char* name = \ { cout << \ virtual void show()

{ cout << \ cout << \ }

~EMPLOYEE()

{ cout << \};

class PROFESSOR: public EMPLOYEE { //教授类,每位教授都是一个雇员 public:

PROFESSOR(char* name = \

EMPLOYEE(name, salary), assistant(\设当前教授对象雇用名为NULL的助教 { cout << \ virtual void show()

{ cout << \ cout << \ }

void setAssistant(PERSON ass)//指定该教授的助教是谁 { assistant = ass; } ~PROFESSOR()

{ cout << \ protected:

PERSON assistant; // 每位教授都雇用了一名助教,助教是PERSON类的对象 };

void main()

{ PERSON * personPtr[3]; PERSON person; EMPLOYEE employee; PROFESSOR professor;

cout<

for (int i = 0; i < 3; i++) personPtr[i]->show(); cout<

cout<

五、 程序设计(24分)

1. (8分)类属类ARRAY描述一个动态数组。数组中的元素记录在一个长度为n的数组X中,要求X

根据使用时的实际长度n动态分配。ARRAY提供如下操作: ? 赋值运算(将一个ARRAY数组赋给另一个ARRAY数组);

? 以友元形式重载了运算符+实现两个ARRAY数组对应位置上的元素相加; ? 求该ARRAY数组的最大值。

5

ARRAY的用法如以下主程序所示。要求根据主程序中的应用,考虑ARRAY类应该提供什么功能,并给出ARRAY类界面的声明(类中声明了什么成员),不必提供ARRAY的类实现(不必定义类的成员函数)。

提示:定义该类属类的操作,使其可以实现主程序中使用到该类的功能。 void main() { }

ARRAYs1; // ARRAY类如此使用,考虑它是否是一个普通的类? ARRAYs3(10); // 10是数组长度 int max1; …… s3 = s1 + s3; max1 = s3.max();

2. (16分)设计一个词典类Dic,每个单词包括英文单词及对应的中文含义,提供构造这个词典的

操作,并有一个英汉翻译成员函数,通过查词典的方式将一段英语翻译成对应的汉语。 提示:

? 例如;要把英语“I am a student”翻译为中文“我是一个学生”,则应先在词典类中添

加(\一个\、(\我\、(\是\、(\学生\中英文单词对。 ? 可考虑使用以下库函数:

? char* strcpy(char* str1, const char* str2);

将str2指向的字符串复制到str1指向的位置中并返回str1。注意为str1分配的存储空间必须能放得下str2指向的字符串。

? int strcmp(const char* str1, const char* str2);

比较两个字符串str1和str2的内容是否相同(按字典排序方法)。如果str1小于str2则返回负数,str1等于str2则返回零,str1大于str2则返回正数。

要求:

1). 从文本文件in.data中读入要翻译的英语,例如“I am a student”; 2). 从文本文件dic.data中读入中英文单词对,建立词典类; 3). 将翻译结果,例如“我是一个学生”,输出到文本文件out.data; 4). 上述指定文件名不得更改; 5). 不考虑程序效率问题; 6). 请尽量多提供注释。

《完》

6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值