}
triangle&operator+(triangle&c)
{
A=A+c.A;
B=B+c.B;
H=H+c.H;
return*this;
}
intoperator=(triangle&c)
{
if(A==c.A&&B==c.B&&H==c.H)
return1;
else
return0;
}
triangle&operator==(triangle&c)
{
A=c.A;
B=c.B;
H=c.H;
return*this;
}
};
voidmain()
{
cout<<"请输入一组勾股数:
"<inta,b,c;
cin>>a>>b>>c;
cout<<"请输入另外一组勾股数:
"<inta1,b1,c1;
cin>>a1>>b1>>c1;
trianglet1(a,b,c),t2(a1,b1,c1),t;
cout<<"第一组勾股数为:
"<t1.showme();
cout<<"面积为:
"<cout<<"第二组勾股数为:
"<t2.showme();
cout<<"面积为:
"<t==t1;
t1+t2;
cout<<"t1+t2=";
t1.showme();
cout<<"t1+t2的面积为:
"<if(t=t2)
cout<<"两组勾股数相等!
"<else
cout<<"两组勾股数不相等!
"<}
2、实验结果
(五)实验题目五:
编写一个程序,可以读入一个数据文件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分)
1、程序源代码
#include
#include
usingnamespacestd;
intmain()
{
constintM=20;
constintm=4;
constintn=4;
intc;
cout<<"pleaseinputfilename:
"<chara[M];
cin.get(a,M);
ifstreaminfile;
infile.open("s_data.txt");
if(!
infile)
{
cout<<"Cannotopenfile!
"<return1;
}
ofstreamfile("t_date.txt");
if(!
file)
{
cout<<"Cannotopenfile!
"<return1;
}
intb[m][n];
inti=0,j=0;
while(infile)
{
infile>>c;
if(c!
='\n')
{
b[i][j]=c;
j++;
}
else
{
i++;
j=0;
}
}
for(inti=0;i{
for(intj=0;j{
file<
}
file<}
infile.close();
file.close();
return0;
}
2、实验结果
三.个人小结
这次实验内容是这学期期末考试前第一次模拟测验。
这次实验的主要目的是熟悉一下考试中常考的点,并对这学期学的内容做一个复习。
我发现本次模拟试题比我们平时做的题的要简单,从程序的长度上就可以看出来。
平时的实验题目,有时候一道题可以达到两三百行。
这次模拟测试的第一题的主要考点是if语句的运用和一个整数各位数字的提取,比较简单。
第二题是关于数组的,控制结构部分主要是一个判断大小,也不难。
第三题是主要考指针,这道题考得也不难。
第四题是类的题,主要是重载的时候出了点小问题,其他也没难点。
第五题的文件处理结果正确,但有DebugError。
本来想问老师,后来老师不在。
希望老师给我检查一下,能把DebugError去除。
这次看的是刘建超的实验报告。
他的第一题没有将除的结果进行强制类型转换,测试时也不全。
测试部分程序也有待改进。
第二题,我用了动态存储分配,感觉比他的好。
第三题的信息比较详尽。
第四题的测试,我感觉还得加一个测试读入任意文件。