四、綜合應(yīng)用題(18分)43請(qǐng)使用VC6或使用【答題】菜單打開考生目錄proj3下的工程文件proj3,此工程中包含一個(gè)源程序文件proj3.cpp,補(bǔ)充編制c++程序proj3.cpp,其功能是讀取文本文件in.dat中的全部內(nèi)容,將文本存放到doc類的對(duì)象myDoc中。然后將myDoc中的字符序列反轉(zhuǎn),并輸出到文件out.dat中。文件in.dat的長度不大于1000字節(jié)。
要求:
補(bǔ)充編制的內(nèi)容寫在“//**********”與“//**********”兩行之間。實(shí)現(xiàn)將myDoc中的字符序列反轉(zhuǎn),并將反轉(zhuǎn)后的序列在屏幕上輸出。不得修改程序的其他部分。
注意:程序最后已將結(jié)果輸出到文件0ut.dat中,輸出函數(shù)writeToFile已經(jīng)給出并且調(diào)用。
//proj3.cpp
#include
#include
#include
using namespace std;
class doc
{
private:
char*sir;//文本字符串首地址
int length;//文本字符個(gè)數(shù)
public:
//構(gòu)造函數(shù),讀取文件內(nèi)容,用于初始化新對(duì)象,filename是文件名字符串首地址
doc(char*filename);
void reverse();//將字符序列反轉(zhuǎn)
一doc();
void writeToFile(char*filename);
};
doc::doc(char}filename)
{
ifstream myFile(filename);
int len=1001,tmp;
atr=new char[1en];
length=0;
while((trap=myFile.get())!=EOF)
{
str[1ength++]=trap;
}
str[1ength]=‘\0’;
myFile.close();
}
void doc::reverse(){
//將數(shù)組atr中的length個(gè)字符中的第一個(gè)字符與最后一個(gè)字符交換,第二個(gè)字符與倒數(shù)第二個(gè)
//字符交換……
//*************333*************
//*************666*************
}
doc::~doe()
{
delete[]str;
}
void doc::writeToFile(char*filename)
{
Ofstream outFile(filename);
outFile<< p>
outFile.close();
}
void main()
{
doc myDoc(”in.dat”);
myDoc.reveme();
myDoc.writeToFile(”out.dat”);
}
本題共18分,參考答案::int j,J;//定義兩個(gè)整數(shù)l臨時(shí)變量i.j.
for(i=0,j=length一1;i< p>
chartemp=str[i];
//把str[i]中的值保存在臨時(shí)變量temp
str[i]=str[j];
//把Str[j]值賦給Str[i],實(shí)現(xiàn)字符前后替換
str[j]=temp;
//把保存在臨時(shí)變量temp中的值再賦值給Str[j]
}
【考點(diǎn)分析】
本題主要考查的是doc類、構(gòu)造函數(shù)、成員函數(shù)和析構(gòu)函數(shù)。
【解題思路】
題目要求將myDoc中的字符序列反轉(zhuǎn),在main函數(shù)中我們看到myDoc是doc類,根據(jù)doc類的定義可以知道它是把讀取文件的字符串存到str動(dòng)態(tài)數(shù)組中。reverse函數(shù)實(shí)現(xiàn)將數(shù)組str中的length個(gè)字符中的第一個(gè)字符與最后一個(gè)字符交換,第二個(gè)字符與倒數(shù)第二個(gè)字符交換,依次類推。使用變量i和J,分別表示第一個(gè)字符和最后一個(gè)字符的下標(biāo),定義temp作為中間變量進(jìn)行交換。
相關(guān)推薦:
各地2014成人英語三級(jí)報(bào)名時(shí)間匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |