1、西北工业大学C++实验课选考习题
例9.1有两个长方体,其长,宽,高分别为1,2,3和10,20,30。分别求它们的体积。设计一个类表示长方体,在类中用带参数的构造函数。
#include
2、int l,int h,int d)
{
length=1,height=h,depth=d;
cout<<"Cuboid:"<<"L="< 3、0,0和1,2。编成显示坐标值。设计一个类表示平面上的点,三和积两个带参数的和不带参数版本的构造函数。
#include 4、splay();
Point n(1,2);
n.display();
return 0;
}
例9.3用带默认参数的构造函数改进例9.2。
#include 5、1,2);
k.display();m.display();n.display();
return 0;
}
例9.4设计一个类表示字符串,长度可以动态变化。
#include 6、 p=new char [strlen(str)+1];
strcpy(p,str);
cout<<"构造:"< 7、include 8、< 9、c,argv[1]);
if(argc<3)cin>>dest;
else strcpy(dest,argv[2]);
ifstream inf(src,ios_base::out|ios_base::binary);
if(!inf.fail()){
ofstream outf(dest,ios_base::out|ios_base::binary);
while(!inf.eof()){
inf.read(buff,inf.gcount());
out 10、f.write(buff,inf.gcount());
}
outf.close();
inf.close();
}
return 0;
}
例14.3已知文件book,dat中有100个书籍销售记录,每个销售记录由代码(char c[5]),书名单价和数量4个部分组成。文件每哈国包含代码书名单价数量数据,用Tab间隔,格式如下;
1001 软件世界 5 100
1002 计算机工程 6 120
…….
读取这100个销售记录,将每个销售记录的内存数据写 11、入out.dat文件;然后将out.dat的第一个记录(0位头文件)覆盖到最后的记录中。
#include 12、m|ios_base::trunc|ios_base::binary);
if(inf.fail()||iof.fail())return-1;
while(!inf.eof()){
inf>>a.c>>a.n>>a.p>>a.q;
iof.write((char*)&a,sizeof(BOOK));
}
inf.close();
iof.seekg(1*sizeof(BOOK),ios_base::beg);
iof.read((char*)&a,sizeof(BOOK));
iof. 13、seekg(1*sizeof(BOOK),ios_base::end);
iof.write((char*)&a,sizeof(BOOK));
iof.close();return 0;
}
例14.4输入加减运算的表达式(如1000+200-30+4+0.4),计算其值。
#include 14、gstream iss(istringstream::in);
char c1='+',c2;
double val,sum=0.0;
cin>>s2;
iss.str(s2);
while(c1!=' '){
iss>>val>>c2;
if(c1=='+')sum=sum+val;
else if(c1=='-')sum=sum-val;
c1=c2,c2=' ';
}
oss<






