return0;
}
3、(必做题)第5章第18题(增加重载字符型)。
3:
(20分)
编写一个函数,将某个字符串中所有非字母和数字字符均用*替代。
例如:
字符串“Iamagentlman_18!
”,形成字符串为“I*am*a*gentlman*18*”其原型为:
char*mycode(char*string);
其中参数string为字符串,返回值为指向string的指针。
并编出主函数进行验证。
编程要求和评分标准:
(20分)
(1)子函数头设计正确;(5分)
(2)子函数功能正确;(5分)
(3)主函数调用的方法正确;(5分)
(4)输出结果正确;(5分)
#include
#include
usingnamespacestd;
char*mycode(char*string)
{
while(*string!
=0)
{
if(*string>='a'&&*string<='z')
*string=*string;
elseif(*string>='0'&&*string<='9')
*string=*string;
else
*string='*';
string++;
}
returnstring;
}
intmain()
{
charstr[50];
cout<<"请输入一段字符串:
"<<"";
cin.getline(str,50);
char*p;
p=str;
*mycode(p);
cout<<"转换后得字符串:
"<<"";
cout<
return0;
}
4、定义长方体类cuboid,应有两个构造函数(即cuboid()和cuboid(int,int,int))、计算体积函数、计算长方体总面积函数、运算符+重载函数(注意:
对应长宽高相加,仍然形成长方体),运算符==重载函数。
编程要求和评分标准:
(20分)
(1)给出满足要求的完整的长方体类的定义及其成员函数;(5分)
(2)+和==运算符重载函数编写正确;(5分)
(3)计算体积和总面积函数正确;(5分)
(4)编写主函数,测试输出正确(5分)
#include
#include
usingnamespacestd;
classcuboid
{
intlength,width,height;
public:
cuboid()
{
length=width=height=1;
}
cuboid(inta,intb,intc)
{
length=a;
width=b;
height=c;
}
intarea()
{return2*(length*width+length*height+width*height);}
intv()
{returnlength*width*height;}
cuboidoperator+(cuboid&c)
{
length=length+c.length;
width=width+c.width;
height=height+c.height;
return*this;
}
intoperator==(cuboid&a)
{
if(length==a.length&&width==a.width&&height==a.height)
return1;
else
return0;
}
voidshow()
{
cout<<"************************************************"<cout<<"长、宽、高依次为:
"<}
};
intmain()
{
cuboida(1,3,5);
cout<<"a的信息"<a.show();
cuboidb(2,5,7);
cuboidc(1,3,5);
cout<<"输出判断结果:
"<<"";
if(a==b)
cout<<"a==b"<<"\t";
else
cout<<"a!
=b"<<"\t";
if(a==c)
cout<<"a==c"<<"\t";
else
cout<<"a!
=c"<<"\t";
cout<cout<<"输出计算长方体的面积:
"<<"";
cout<cout<<"输出计算长方体的体积:
"<<"";
cout<cout<<"a+b后的信息:
"<a+b;
a.show();
return0;
}
5、5:
(20分)
编写一个程序,可以读入一个数据文件s_data中以N×N二维数组排列的数据(N不小于3),将二维数组置逆,然后写入另一个文件t_data中。
假设s_data文件中数据如下:
45873234
54567678
46788723
12324456
则t_data文件中的数据如下:
45544612
87567832
32768744
34782356
编程要求和评分标准:
(20分)
(1)程序开始执行时提示:
“Pleaseinputfilename:
”,能正确输入文件名;(5分)
(2)文件打开和关闭正确;(5分)
(3)能正确读取文件数据;(5分)
(4)能正确产生输出文件。
(5分)
#include
#include
#include
#include
usingnamespacestd;
intmain()
{
charname[15];
ifstreamfin("F:
\\s-data.txt");
ofstreamfout;
cin>>name;
fout.open(name,ios:
:
app|ios:
:
out);
if(!
fin||!
fout)
{
cout<<"读取失败"<return1;
}
intn;
inti=0;
inta[50];
while(fin)
{
fin>>n;
if(fin)
{
a[i]=n;
i++;
}
}
intj=sqrt(i);
intb[10][10];
for(intk=0;k
{
b[k/j][k%j]=a[k];
}
for(k=0;k{
for(intm=0;mfout<
fout<}
fin.close();
fout.close();
return0;
}