#include
#include
#include
using namespace std;
ofstream outFile("final.txt");//写到.txt文件中。
int CountLines(char *filename)//获取文件的行数
{
ifstream ReadFile;
int n=0;
string temp;
ReadFile.open(filename,ios::in);//ios::in 表示以只读的方式读取文件
if(ReadFile.fail())//文件打开失败:返回0
{
return 0;
}
else//文件存在,返回文件行数
{
while(getline(ReadFile,temp))
{
n++;
}
return n;
}
ReadFile.close();
}
int f1(double a[][2])//读取起点距,河底高程构成的二维数组
{
ifstream file;
int m=2,n;
char filename[512];
n=CountLines(filename);
int i,j;
//动态申请二维数组
a=new double*[n];
for(i=0;i
a[i]=new int[m];
cout
cin>>filename;
file.open(filename,ios::in);
if(file.fail())
{
cout<<"文件不存在."<
file.close();
cin.get();
cin.get();
}
else//文件存在
{
//读入数字
for(i=0;i
for(j=0;j
file>>a[i][j];
file.close();
//输出刚刚读入的数据
for(i=0;i<n;i++,cout<<endl)
for(j=0;j<m;j++) cout<<a[i][j];
//释放申请的空间
for(i=0;i<n;i++)
delete []a[i];
delete []a;
cin.get();
cin.get();
}
}
int max, min;//筛选河底高程最大值最小值并取整
{
ifstream file;
int n,a;
char filename[512];
n=CountLines(filename);
int f[n][2]=a
double l,i;
F[n][0]=&l;
F[n][1]=&i;
int max, min, x;
for (a = 0; a < n; ++a)
printf("请输入数组的第%d个元素:", x+1);
scanf("%d", &l[a]);
max = a[0];
min = a[0];
for (x = 0; x < LENGTH; ++x)
{
if (a[i] > max)
max = a[i];
else if (a[i] < min)
min = a[i];
}
printf("最大值:%d,最小值:%d\n", max, min);
}
int s;//计算水位断面面积
{
int a,b,h;
double A[n][15];
double l[n],i[n];
double s[]={0};
printf("请输入起点距,河底高程:");
scanf("%f %f ",&l[n],&i[n])
for(h=min,h<=max,h++);
{
for(b=0,b
{
if(h
A[b]=0;
else if(h>=i[a],h>=i[b+1])
A[b]=(l[b+1]-l[b])*(2*h-i[b]-i[b+1])/2;
else if(h<=i[b])
A[b]=(l[b+1]-l[b])*(h-i[b+1])*(h-i[b+1])/(i[b]-i[b+1])/2;
else
A[b]=(l[b+1]-l[b])*(h-i[b])*(h-i[b])/(i[b+1]-i[b])/2;
s[a]=s[a]+A[b];
}
printf("过水断面面积s=%8.2f\n",s[a]);
}
}