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

Построение графика в Exel по данным из файла полученного в ходе выполнения программы - C++ COM

Войти
Регистрация
Восстановить пароль
 
Verger
0 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 10
15.05.2016, 15:54     Построение графика в Exel по данным из файла полученного в ходе выполнения программы #1
Допустим есть программа которая вычисляет значения системы диф ур I(t) и U(t) , затем выводи их в файл xls который создается в папке проекта visual studio 2015 pro, в нем четыре графы i(порядковый номер) t I(t) U(t) выходит по 2000 значений каждого параметра, так вот как по этим значениям построить два графика в этом же файле , графики зависимости I(t) и U(t) , заранее весьма благодарен
Код
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
#include "stdafx.h"
 
 
#include <iostream>
#include <fstream>
#include <iomanip>
#include <math.h>
 
using namespace std;
 
int n;
double f, fi, R1, R2, R3, R4, R5, R6, t0, t1, t2, L, C, h, hz, E0, w, pi, D1, D2, D3, FI, FU, T1, T2, R7, B1, B2, B3, FIz, FUz;
double I[2000], U[2000], t[2000], tz[2000], Iz[2000], Uz[2000];
double E(double tl)
{
    if (tl>t1) { return 0; }
    else { return E0 + E0*sin(w*tl + fi); }
}
double fI(double tl, double Il, double Ul)
{
    return (1/(L*D1))*(L*D2*E(tl)+E(tl)*(D3*R4+((R2*(R6+R7))/(R7*(R1+R2))))- Il*(R6+D1*R4+((L*D2)/C)+((R6+R7)/R7)*(R3+((R1*R2)/(R1+R2))))- Ul*(D2*R4+((R7+R6)/R7)));
}
double fU(double tl, double Il, double Ul)
{
    return (1 / C)*(Il);
}
double fIz(double tzl, double Izl, double Uzl)
{
    return -Izl *(B1/B3)-Uzl*(B2/B3);
}
double fUz(double tzl, double Izl, double Uzl)
{
    return (1 / C)*(Izl);
}
int main()
{
    setlocale(LC_ALL, "Russian");
    int i;
    pi = acos(-1.0);
    f = 15;
    fi = 0;
    R1 = 32;
    R2 = 22;
    R3 = 48;
    R4 = 1.75;
    R5 = 16;
    R6 = 10;
    R7 = 25.6;
    t0 = 0;   t1 = 0.2;   t2 = 0.4;
    E0 = 30;     L = 10.3*pow(10.0, -3);    C = 28 * pow(10.0, -6);
    w = 2 * pi*f; n = 2000;    h = (t1 - t0) / n;
    cout << endl;
    cout << "h= " << h << endl;
    cout << endl;
    cout << "i=" << setw(15) << "t=" << setw(15) << "I(t)=" << setw(15) << "U(t)=" << endl;
    U[1] = 0; I[1] = 0; t[1] = 0;
    D1 = 1+((R3+R6)/R5)+((R1*R2)/((R1+R2)*R5))+((R5+R6)/(R5*R7))*(((R1*R2)/(R1+R2))+R3);  
    D2 = (1 / R5)+((R5-R6)/(R5*R7));  
    D3 = (R2*(R5+R6))/(R5*R7*(R1+R2))+((R2)/(R1*R5));
    ofstream f,fx;
    f.open("file.txt");
    fx.open("file.xls");
    f << "i" << setw(15) << "t[i]" << setw(15) << "I[i]" << setw(15) << "U[i]" << endl;
    fx << "i" << "\t" <<  "\t" << "t[i]" << "\t" << "\t"  << "I[i]" << "\t" << "\t" << "U[i]" << endl;
    
    for (i = 0; i <= n; i++)
    {
        t[i + 1] = t[i] + h;
        FI = fI(t[i], I[i], U[i]);
        FU = fU(t[i], I[i], U[i]);
        I[i + 1] = I[i] + h *( U[i]+ (h/2)*FI);
        U[i + 1] = U[i] +h*fI(t[i]+(h/2),I[i]+(h/2)*U[i],U[i]+(h/2)*FU) ;
        cout << i << setw(15) << t[i] << setw(15) << I[i] << setw(15) << U[i] << endl;
        f << i << setw(15) << t[i] << setw(15) << I[i] << setw(15) << U[i] << endl;
        fx << i << "\t" << "\t" << t[i] << "\t" << "\t" << I[i] << "\t" << "\t" << U[i] << endl;
    }
    f.close(); fx.close();
    ofstream z, zx;
    z.open("file2.txt");
    zx.open("file2.xls");
    cout << "Без учета E(t)" << endl;
    z << "Без учета E(t)" << endl;
    zx << "Без учета E(t)" << endl;
    cout<< "i" << setw(15) << "t[i]" << setw(15) << "I[i]" << setw(15) << "U[i]" << endl;
    z << "i" << setw(15) << "t[i]" << setw(15) << "I[i]" << setw(15) << "U[i]" << endl;
    zx << "i" << "\t" << "\t" << "t[i]" << "\t" << "\t" << "I[i]" << "\t" << "\t" << "U[i]" << endl;
    Uz[0] = U[2000]; Iz[0] = I[2000]; tz[0] = t[2000];
    B1 = (((R3 + R2)*R5) / (R5 + R6)) + (R4 + ((R5*R6) / (R5 + R6)))*(((R5 + R6)*(R7 + R3 + R2)) / (R5*R7) + ((R3 + R2) / R5)) + (L / C)*((R5 + R6 + R7) / (R5*R7));
    B2 = (R5 / (R5 + R6)) + (R4 + ((R5*R6) /( R5 + R6)))*((R5 + R6 + R7) / (R5*R7));
    B3 = L*(((R5 + R6)*(R7 + R3 + R2) + R7*(R3 + R2)) / (R5*R7));
    hz = (t2 - t1) / n;
    for (i = 0; i <= n; i++)
    {
        tz[i + 1] = tz[i] + hz;
        FIz = fIz(tz[i], Iz[i], Uz[i]);
        FUz = fUz(tz[i], Iz[i], Uz[i]);
        Iz[i + 1] = Iz[i] + hz *(Uz[i] + (hz / 2)*fIz(tz[i],Iz[i],Uz[i]));
        Uz[i + 1] = Uz[i] + hz*fIz(tz[i] + (hz / 2), Iz[i] + (hz / 2)*Uz[i], Uz[i] + (hz / 2)*fUz(tz[i],Iz[i],Uz[i]));
        cout << i << setw(15) << tz[i] << setw(15) << Iz[i] << setw(15) << Uz[i] << endl;
        z << i << setw(15) << tz[i] << setw(15) << Iz[i] << setw(15) << Uz[i] << endl;
        zx << i << "\t" << "\t" << tz[i] << "\t" << "\t" << Iz[i] << "\t" << "\t" << Uz[i] << endl;
    }
    z.close();
    zx.close();
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2016, 15:54     Построение графика в Exel по данным из файла полученного в ходе выполнения программы
Посмотрите здесь:

C++ Builder построение графика по данным из файла
Оставить после выполнения программы книгу Excel открытой C++ COM
Pascal ABC Построение графика по данным из файла
Ошибка выполнения CWnd::CreateControl в x64 системе C++ COM
Построение графика по данным из txt файла C#
C++ COM Перехват выполнения скрипта
Java SE Выполнение кода, полученного в ходе работы программы

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
 Аватар для vxg
2730 / 1741 / 174
Регистрация: 13.01.2012
Сообщений: 6,538
16.05.2016, 10:51     Построение графика в Exel по данным из файла полученного в ходе выполнения программы #2
Цитата Сообщение от Verger Посмотреть сообщение
Допустим
подготовьте файл - заполните его типичным данными, постройте и настройте графики и сохраните его как шаблон - программа создаст на его базе новый файл и заполнит его актуальными данными - графики построятся сами
Yandex
Объявления
16.05.2016, 10:51     Построение графика в Exel по данным из файла полученного в ходе выполнения программы
Ответ Создать тему
Опции темы

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