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

C++: COM, OLE, ActiveX

Войти
Регистрация
Восстановить пароль
 
Verger
0 / 0 / 0
Регистрация: 13.11.2015
Сообщений: 10
#1

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

15.05.2016, 15:54. Просмотров 438. Ответов 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 по данным из файла полученного в ходе выполнения программы
Посмотрите здесь:
Оставить после выполнения программы книгу Excel открытой C++ COM
C++ Builder построение графика по данным из файла
Pascal ABC Построение графика по данным из файла
Построение графика по данным из txt файла C#
Maple Построение графика по данным из текстового файла
Java SE Выполнение кода, полученного в ходе работы программы
Задание имени переменной в ходе выполнения программы C#
Изменение свойств компонентов в ходе выполнения программы C# WPF
C++ Builder как создать компонент в ходе выполнения программы
Связывание и развязывание таблиц в ходе выполнения программы Delphi БД
Можно ли в ходе выполнения программы загружать изображения в dll? C++ Builder
Создание описания записи в ходе выполнения программы, эмуляция Lazarus

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
3146 / 1948 / 214
Регистрация: 13.01.2012
Сообщений: 7,439
16.05.2016, 10:51     Построение графика в Exel по данным из файла полученного в ходе выполнения программы #2
Цитата Сообщение от Verger Посмотреть сообщение
Допустим
подготовьте файл - заполните его типичным данными, постройте и настройте графики и сохраните его как шаблон - программа создаст на его базе новый файл и заполнит его актуальными данными - графики построятся сами
Ответ Создать тему
Опции темы

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