Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
Snowlife
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 41
#1

Чтение данных из файла и работа с ними - C++

24.10.2011, 14:32. Просмотров 1653. Ответов 6
Метки нет (Все метки)

Может ли кто нибудь помочь?
Нужно в Visual Studio 2010 написать программу, которая будет из файла читать определённые значения переменных. А потом на основании этих данных будет строить график, подставляя эти данные в формулу для графика, желательно используя OpenGl.
Но было бы круто чтоб кто-либо помог хотя бы с первой частью-чтением из файла

Буду очень благодарен! Возможен вариант если кто-то поможет платно с более большой задачей



(админы, если можн-удалите пожалуйста эту тему в другом разделе)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.10.2011, 14:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чтение данных из файла и работа с ними (C++):

Хранение данных пользователя и работа с ними - C++
Здравствуйте. Есть игровой сервер. При входе на сервер игроку автоматически выдается ID игрока (0-1000) и происходит запрос к БД и...

Преобразование текстового файла в двоичный и чтение исходных данных из двоичного файла. - C++
#include<iostream> #include<fstream> #include<locale.h> #include<iomanip> #include <cstdlib> using namespace std; struct...

Чтение из файла определённого места и сортировка данных исходя из этих данных - C++
Есть некий текстовый документ, содержащий информацию о посещении сайта в формате: Например 12.5.76.200 04:23 Mon Цель:...

Работа с файлами. Чтение из файла.Поиск. - C++
Нужно создать программу, которая считывает слова с одного файла (словарь) и находит эти слова в другом файле (текст) и выводит на экран эти...

Чтение и работа с данными из файла WAV - C++
Передо мной стоит задача встроить скрытую информацию в WAV файл, с помощью определенных методов (НЗБ, фазовое кодирование, эхо-метод). Я...

Чтение данных из файла - C++
здравствуйте. суть проблемы: у меня есть некий файл, в котором записаны в 2 столбика данные,данные пазделены табуляцией. В программе...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
-=ЮрА=-
Заблокирован
Автор FAQ
24.10.2011, 14:40 #2
Цитата Сообщение от Snowlife Посмотреть сообщение
для графика, желательно используя OpenGl.
- а если так график постороить Построение графиков элементарных функций ? Тогда проблем ноль за сегодня накатаю
0
-=ЮрА=-
Заблокирован
Автор FAQ
25.10.2011, 14:03 #3
Вобщем как и обещал скрин, экзешник и файл данных. Я понимаю что наверное нужно что-то добавить будет, может сетку, может координаты точек, поэтому жду замечаний для дальнейшего выполнения.
data.txt файл данных, можно менять значения данных(притом можно сразу всех величин) после =, только не менять последовательность имён и их названия(я посчитал это излишеством)
Пояню исходный файл данных
N0 = 1024
a = -25
b = -0.25
tn = 0
tk = 12
dt = 0.1
Допустим нужно NO сделать 1500
Вот так изменять данные нужно
N0 = 1500
a = -25
b = -0.25
tn = 0
tk = 12
dt = 0.1
Строил график вот этой функции:
C++
1
2
3
4
double N(double N0, double a, double b, double t)
{
    return N0*exp(-a*(1 - exp(-b*t)));
}
0
Миниатюры
Чтение данных из файла и работа с ними  
Вложения
Тип файла: rar plotter.exe.rar (27.7 Кб, 38 просмотров)
Тип файла: txt data.txt (58 байт, 42 просмотров)
-=ЮрА=-
Заблокирован
Автор FAQ
25.10.2011, 16:00 #4
Snowlife, вот код на Си, будут вопросы с радостью на них отвечу
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#include <windows.h>
#include <stdio.h>
#include <math.h>
 
#define RED RGB(255,0,0)
#define GRN RGB(0,255,0)
#define BLU RGB(0,0,255)
 
#define BLK RGB(0,0,0)
#define WHT RGB(255,255,255)
 
HPEN  getPen(int iPEN_STYLE, int iPEN_SIZE, int iCOLORREF);
BOOL  SetPoint(HDC hDC, HPEN hPen, COORD PNT);
BOOL  PlotLine(HDC hDC, HPEN hPen, COORD BGN, COORD END);
//Функция график которой строим
double N(double N0, double a, double b, double t);
//Функция считывает соответсвующие параметры из потока f
//Возвращаемое значение число считанных параметров
int getParams(FILE * f, 
              double &N0, double &a, double &b, 
              double &tn, double &tk, double &dt); 
 
int main()
{
    double N0, a, b, tn, tk, t, dt;
    double CX, CY;//Масштабные коэффициенты
    FILE * f = fopen("data.txt","rb+");  
    //Получаем дискриптор окна кончоли
    HWND    hWnd = GetForegroundWindow();
    //Создаём PEN-ы для рисования
    HPEN    RPEN = getPen(PS_SOLID, 2, RED);
    HPEN    GPEN = getPen(PS_SOLID, 2, GRN);
    HPEN    BPEN = getPen(PS_SOLID, 2, BLU);
    HPEN    WPEN = getPen(PS_SOLID, 2, WHT);
 
    RECT    pRECT= {0};
    COORD   BGN  = {0};
    COORD   END  = {0};
    //Получаем размеры Client-области окна консоли
    GetClientRect(hWnd,&pRECT);
    
    //Получаем HDC
    HDC hDC = GetWindowDC(hWnd);
    long nParams = getParams(f, N0, a, b, tn, tk, dt);
    fclose(f);
    if(nParams == 0)
        printf("Error reading input data file\n");
    else
    {
        printf("\tPloting N(t) = %.0f*exp(-(%.0f)*(1 - exp(-(%0.2f)*t)))\r\n",N0,a,b);
        if(hDC)
        {
            CX = (tk - tn)/(pRECT.right - pRECT.left);
            CY = (N(N0,a,b,tn) - N(N0,a,b,tk))/(pRECT.bottom - pRECT.top);
                
            t = tn;
            BGN.X = t   /CX;
            BGN.Y = N(N0,a,b,t)/CY + (pRECT.bottom - pRECT.top)/2;
            SetBkMode(hDC,TRANSPARENT);
            SetPoint (hDC, WPEN, BGN);
            while(t < tk)
            {
                END.X = t   /CX;
                END.Y = N(N0,a,b,t)/CY + (pRECT.bottom - pRECT.top)/2;
                SetPoint (hDC,WPEN, END);
                PlotLine(hDC, RPEN, BGN, END);
                BGN = END;
                t += dt;
            }
            BGN.X = 0;
            BGN.Y = 0/CY + (pRECT.bottom - pRECT.top)/2;
            END.X = (pRECT.right - pRECT.left);
            PlotLine(hDC, GPEN, BGN, END);
        }
    }
    system("pause");
    return 0;
}
 
HPEN getPen(int iPEN_STYLE, int iPEN_SIZE, int iCOLORREF)
{
        return CreatePen(iPEN_STYLE, iPEN_SIZE, iCOLORREF);
}
 
BOOL SetPoint(HDC hDC, HPEN hPen, COORD PNT)
{
        EXTLOGPEN pINFO;
        GetObject(hPen,sizeof(EXTLOGPEN),&pINFO);
        SelectObject(hDC,hPen);
        return Ellipse
        (
                hDC,
                PNT.X - pINFO.elpWidth,
                PNT.Y + pINFO.elpWidth, 
                PNT.X + pINFO.elpWidth,
                PNT.Y - pINFO.elpWidth
        );
}
 
BOOL PlotLine(HDC hDC, HPEN hPen, COORD BGN, COORD END)
{
        SelectObject(hDC,hPen);
        MoveToEx(hDC,BGN.X,BGN.Y,NULL);
        return LineTo(  hDC,END.X,END.Y);
}
 
double N(double N0, double a, double b, double t)
{
    return N0*exp(-a*(1 - exp(-b*t)));
}
 
int getParams(FILE * f, 
              double &N0, double &a, double &b, 
              double &tn, double &tk, double &dt)
{
    int nParams = 0;
    char ch1, ch2;//Будет содержать в себе данные файла
    if(!f)
        printf("Error open input data file\n");
    else
    {
        if(!feof(f))
        if(fscanf(f,"%c%c = %lf\r\n",&ch1,&ch2,&N0))
            nParams++;
        if(!feof(f))
        if(fscanf(f,"%c%c = %lf\r\n",&ch1,&ch2,&a))
            nParams++;
        if(!feof(f))
        if(fscanf(f,"%c%c = %lf\r\n",&ch1,&ch2,&b))
            nParams++;
        if(!feof(f))
        if(fscanf(f,"%c%c = %lf\r\n",&ch1,&ch2,&tn))
            nParams++;
        if(!feof(f))
        if(fscanf(f,"%c%c = %lf\r\n",&ch1,&ch2,&tk))
            nParams++;
        if(!feof(f))
        if(fscanf(f,"%c%c = %lf\r\n",&ch1,&ch2,&dt))
            nParams++;
    }
    return nParams;
}
0
Snowlife
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 41
25.10.2011, 17:25  [ТС] #5
в вордовском файле формула
0
Вложения
Тип файла: docx Документ Microsoft Office Word.docx (10.2 Кб, 25 просмотров)
-=ЮрА=-
Заблокирован
Автор FAQ
25.10.2011, 17:34 #6
Snowlife, я как раз эту функцию и строил N0*exp(-a*(1 - exp(-b*t)));, а каковы значения переменных N0,a и b используемых Вами в задании???
Хочу в MathCAD построю график чтобы у Вас была возможность сравнить с тем который моя программа строит...
0
Snowlife
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 41
25.10.2011, 18:56  [ТС] #7
мне самому ещё не дали пока что эти цифры.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2011, 18:56
Привет! Вот еще темы с ответами:

Чтение данных из файла - C++
Здравствуйте, в программе нужно прочитать данные из файла и записать результат в ассоциативный массив всё работает, только не понятно...

Чтение данных из файла - C++
в общем у меня есть файл. в нем с начала идет строка указывающая путь к некому файлу. потом разношерстные циферки, каким образом мне...

Чтение данных из файла - C++
Вот программа запись и чтение из файла. Сначала записываем данные о студенте(фамилия, год рождения, пол), а потом нужно считать из файла...

Чтение данных из файла - C++
У меня такая проблема, мне дан бинарный файл, где записаны числа типа float. Мне необходимо их оттуда прочитать. Но никак не получается((...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.10.2011, 18:56
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru