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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
Snowlife
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 41
24.10.2011, 14:32     Чтение данных из файла и работа с ними #1
Может ли кто нибудь помочь?
Нужно в Visual Studio 2010 написать программу, которая будет из файла читать определённые значения переменных. А потом на основании этих данных будет строить график, подставляя эти данные в формулу для графика, желательно используя OpenGl.
Но было бы круто чтоб кто-либо помог хотя бы с первой частью-чтением из файла

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



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

C++ Чтение данных из файла
C++ Чтение данных из файла
Чтение данных из файла C++
C++ чтение данных с файла.
чтение данных из файла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
24.10.2011, 14:40     Чтение данных из файла и работа с ними #2
Цитата Сообщение от Snowlife Посмотреть сообщение
для графика, желательно используя OpenGl.
- а если так график постороить Построение графиков элементарных функций ? Тогда проблем ноль за сегодня накатаю
-=ЮрА=-
Заблокирован
Автор 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)));
}
Миниатюры
Чтение данных из файла и работа с ними  
Вложения
Тип файла: 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;
}
Snowlife
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 41
25.10.2011, 17:25  [ТС]     Чтение данных из файла и работа с ними #5
в вордовском файле формула
Вложения
Тип файла: 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 построю график чтобы у Вас была возможность сравнить с тем который моя программа строит...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2011, 18:56     Чтение данных из файла и работа с ними
Еще ссылки по теме:

C++ чтение данных из файла
C++ Чтение данных из файла
Чтение данных из файла C++

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

Или воспользуйтесь поиском по форуму:
Snowlife
0 / 0 / 0
Регистрация: 21.11.2010
Сообщений: 41
25.10.2011, 18:56  [ТС]     Чтение данных из файла и работа с ними #7
мне самому ещё не дали пока что эти цифры.
Yandex
Объявления
25.10.2011, 18:56     Чтение данных из файла и работа с ними
Ответ Создать тему
Опции темы

Текущее время: 04:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru