1、东南大学08级C+(下)上机试卷A-答案一、改错题(50分)本题共10个错误,每个错误5分#include #includeusing namespace std;class Arrayint *p;int last; /最后一个元素下标public:Array(int=20); /创建一定长度的空表,给定长度缺省值为20Array();void insertOrder(int); /在升序表中插入一个元素,使之仍然升序void print();Array:Array(int max) /去掉 voidlast=-1;p=new intmax; /初始化为给定长度 /增加maxArray:Ar
2、ray()delete p; /p位置错void Array:print() /增加Array:for(int i=0;i=last;i+) coutsetw(4)pi; cout=0&keypi)pi+1=pi;i-;pi+1=key; /pilast+;void main()Array a; /创建数组 /去掉()int t;for(int i=0;it;a.insertOrder(t); /去掉 inta.print(); /输出数组 /少了a.二、编程题(50分)程序结构及完整性10分,读文件操作15分,写文件10分,文件分别放在构造析构函数中5分,运算符重载10分。红字为要求设计的部
3、分。#include #includeusing namespace std;class Array;ostream& operator(ostream &os,Array &a);class Arrayint v30;int last; /最后一个元素下标public:Array(); /创建表,从文件中读取数据进行初始化Array(); /数据保存到文件中void insertAfter(int); /在当前表的最后添加一个元素friend ostream& operatort; if(!file.eof()last+;vlast=t;file.close();file.clear(0);
4、Array:Array()ofstream file(vdata.txt);for(int i=0;i=last;i+) filevi ;file.close();void Array:insertAfter(int t)last+;vlast=t;ostream& operator(ostream &os,Array &a)for(int i=0;i=a.last;i+) osa.vi ;osendl;return os;void main()Array vector; /创建数组int t;coutvector;cout向数组添加3个数:;for(int i=0;it;vector.insertAfter(t); cout当前数组内容:endl;coutvector;