c++读取txt文件里的数据,然后保存在二维数组中进行处理

问题描述

c++读取txt文件里的数据,然后保存在二维数组中进行处理

我写的程序是把数据自己输入在主函数里,但是如果想实际的应用应该是有一个数据文件,然后提取出数据文件的数据保存在二维数组中才对,而且这个二维数组要根据具体文件的大小定数组的行列数,有谁能帮我做一下吗,谢谢!
#include
#include
#include
using namespace std;
#define M 10//二维数组的行
#define N 6//二维数组的列
class Data
{
double a[M][N];//声明数组
double Max;
double Min;
double r;
public:
Data(double b[M][N])//构造函数
{
int i, j;
for (i = 0; i < M; i++)
for (j = 0; j < N; j++)
a[i][j] = b[i][j];
}
void Chuzhi();//初值化
void get_Max_Min();//根据公式求出求差序列的两级最大差、最小差
void get_r();//求出各列关联度
void show_Max_Min()
{
cout << "求差序列的两级的最大差是:" << Max << endl << endl;
cout<<"求差序列的两级的最小差是:"<< Min << endl<<endl;

}
void show()//输出数组
{
    int i, j;
    for (i = 0; i < M; i++)
    {
        for (j = 0; j < N; j++)
            cout << a[i][j] << 't';
        cout << endl;
    }
}

};

void Data::Chuzhi()//量纲不同时化为无量纲
{
for (int i = M - 1; i >= 0; i--)
for (int j = N - 1; j >= 0; j--)
a[i][j] = a[i][j] / a[0][j];
}

void Data::get_Max_Min()
{
double c[M][N - 1];
double t = c[0][0];
for (int i = 0; i < M; i++)
for (int j = 1; j < N; j++)
c[i][j - 1] = fabs(a[i][0] - a[i][j]);//求差序列
//下面的代码可用于输出求差序列
cout << endl;
cout << "求差序列为:" << endl;
int i, j;
for (i = 0; i < M; i++)
{
for (j = 0; j < N - 1; j++)
cout << c[i][j] << 't';
cout << endl;
}
for (int i = 0; i < M; i++)
{
for (int j = 0; j < N - 1; j++)
{
if (c[i][j]>t)
t = c[i][j];
}
}
Max = t;
for (int i = 0; i < M; i++)
{
for (int j = 0; j < N - 1; j++)
{
if (c[i][j] < t)
t = c[i][j];
}
}
Min = t;
}

void Data::get_r()
{
double f[M][N];
for (int j = 0; j < N; j++)
for (int i = 0; i < M;i++)
f[i][j] = (Min + 0.5*Max) / (fabs(a[i][0] - a[i][j]) + 0.5*Max);
for (int i = 0; i < M; i++)//输出关联系数序列
{
for (int j = 0; j < N; j++)
cout << f[i][j] << 't';
cout << endl;
}
cout << "下面求出各列的关联度:" << endl<<endl;
double r[N] = { 0 };
double sum[M] = { 0 };
for (int j = 0; j < N; j++)
{
for (int i = 0; i < M; i++)
sum[j] += f[i][j];
}

    for (int j = 0; j < N; j++)
    {
        r[j] = sum[j] / M;
        cout << "第" << j + 1 << "列与第一列的关联度为:" << r[j] << endl << endl;
    }

}

int main()
{//将要处理的数据
double b[M][N] = { { 44,5, 35, 60, 110, 130}, { 45,6, 40, 67, 120, 140}, {54, 7, 50, 72, 122, 150},
{ 49,8, 50, 80, 124, 160}, { 43,9, 60, 79, 121, 170}, {54, 20, 60, 90, 122, 156}, { 39,13, 40, 70, 111, 157},
{ 37,27, 65, 83, 130, 189}, { 43,35, 80, 72, 145, 165}, { 34,67, 70, 69, 123, 157} };
Data data(b);//建立对象data
cout << "最初的数据为:" << endl;
data.show();
cout << endl;
data.Chuzhi();
cout << "初始化后数据:" << endl;
data.show();
cout << endl;
data.get_Max_Min();
data.show_Max_Min();
data.get_r();
system("pause");
return 0;
}

解决方案

http://bbs.csdn.net/topics/390189030

解决方案二:

http://tieba.baidu.com/p/2910676684

解决方案三:

http://lzh0859.blog.sohu.com/43892352.html

时间: 2025-01-18 18:07:24

c++读取txt文件里的数据,然后保存在二维数组中进行处理的相关文章

界面设计-从txt文件里查找数据,然后放在界面上

问题描述 从txt文件里查找数据,然后放在界面上 界面设计和txt文件已经上传到ssoil2015@163.com 邮箱的文件中心里,密码:nft123456 点击了Load之后打开对话框,把txt文件中数据显示在界面上,数据时=后面 "!"前面的数据,和日期,点击了OK之后将修改的数据 解决方案 没看到测试数据 解决方案二: 这是经过调用txt文件之后的界面效果. 点了OK保存在txt中,和之前调用txt文件格式一样,只是某些数据变化了 解决方案三: 这是经过调用txt文件之后的界面

c++程序-我用vector里resize函数创建了一个二维数组,怎么给它排序?代码如下,哪里错了呢?

问题描述 我用vector里resize函数创建了一个二维数组,怎么给它排序?代码如下,哪里错了呢? #include #include #include #include #include using namespace std; int main() { int n, m; cout << "input the row:n and the column:m" << endl; cin >> n >> m; vector< vec

php读取txt文件并将数据插入到数据库_php技巧

今天测试一个功能,需要往数据库中插入一些原始数据,PM给了一个txt文件,如何快速的将这个txt文件的内容拆分为所要的数组,然后再插入到数据库中? serial_number.txt的示例内容: serial_number.txt: DM00001A11 0116, SN00002A11 0116, AB00003A11 0116, PV00004A11 0116, OC00005A11 0116, IX00006A11 0116, 创建数据表: create table serial_numb

二维数组存储数据-如何定义一个二维数组和赋值,数组里面需要放【String】【List】

问题描述 如何定义一个二维数组和赋值,数组里面需要放[String][List] 我现在用多个线程处理一个List 每个线程取List里面的50条数据进行处理返回一个List.然后把线程名和返回的List放入二维数组里面. 解决方案 不用数组用map怎么样map.key=线程ID,val=处理数据集合,如果非要数组的话,你用object类型数组

silverlight动态读取txt文件/解析json数据/调用wcf示例

终于开始正式学习silverlight,虽然有点晚,但总算开始了,今天看了一下sdk,主要是想看下silverlight中如何动态调用数据,对于数据库的访问,sdk中的官方示例多用的是Ado.Net数据服务,方便到是方便,就是感觉Ado.Net数据服务返回的xml太啰嗦了,一点也不精简,数据通讯量太大(N多无用的标签导致客户端与服务端之间传输数据增加了不少),于是想到能否直接用wcf返回json格式, 何况sdk中提到silverlight中System.Json已经完成了对json的解析 经实

ArrayList中取出二维数组中的数据呢?

问题描述 PBEEQPePBEEQP=newPBEEQP();ePBEEQP.EQPNAME=txtEQPNAME.Text.Trim().ToString();ePBEEQP.EQPTYPE=txtEQPTYPE.Text.Trim().ToString();ePBEEQP.EQPCAP=double.Parse(txtEQPCAP.Text.Trim().ToString());ePBEEQP.EQPQUTY=int.Parse(txtEQPQUTY.Text.Trim().ToString

快速读取图片文件每一像素点颜色到二维数组!不要GetPixel!

问题描述 目前代码:DoUntily=jpgimage.Height'把图片读取到ptoall二维数组里DoUntilx=jpgimage.Widthptoall(x,y)=jpgimage.GetPixel(x,y)x=x+1Loopx=0y=y+1Loop jpgimage是bitmap类型,这样getpixel太慢了..有谁有更加快速的算法读取每一像素点rgb颜色到二维数组.. 解决方案 本帖最后由 gcyzzz 于 2014-12-28 22:01:41 编辑解决方案二:怎么破!!!解决

jxl 读取xls,并转为二维数组可进行保存

jxl.jar: 通过java操作excel表格的工具类库 支持Excel 95-2000的所有版本 生成Excel 2000标准格式 支持字体.数字.日期操作 能够修饰单元格属性 支持图像和图表 应该说以上功能已经能够大致满足我们的需要.最关键的是这套API是纯Java的,并不依赖Windows系统,即使运行在Linux下,它同样能够正确的处理Excel文件.另外需要说明的是,这套API对图形和图表的支持很有限,而且仅仅识别PNG格式. 直接上代码:jxl操作xls其实很简单 import j

C#中读取txt文件列数据并存入int数组中

问题描述 C#中读取txt文件列数据并存入int数组中 我有一个空间绘图的C#程序,txt文件中有三列点的坐标,每行数据由空格隔开,现在需要定义三个x,y,z 一维int数组并将txt文件中列数据赋给x,y,z,txt数据量很大,可能有上千组,希望能够得到代码并在程序中直接调用x[i],y[i],z[i] 解决方案 streamreader一行行读取,然后split按空格分割为数组,你就可以操作数组,转化为你要的数据了 解决方案二: 一行代码就够了: var data = File.ReadAl