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

Вывести данные в виде таблицы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 32, средняя оценка - 4.97
_andrew_
22 / 22 / 3
Регистрация: 14.11.2012
Сообщений: 64
14.11.2012, 18:41     Вывести данные в виде таблицы #1
Доброго времени суток!
Необходимо данные вывести в виде таблицы. Я нарисовал таблицу и выровнял все столбики, кроме последнего( Может кто-нибудь посоветует как проще это сделать?


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
#include<iostream>
#include<conio.h>
#include<cmath>
using namespace std;
int main()
{
    int V_v,V_s;
    float t;
     cout<<"|Скорость ветра|Скорость Самолета| Время полета |\n";
    double L=700000;
    V_v=0;
    V_s=100;
   do{
      for(V_s=100;V_s<=600;V_s+=100 ) {
                          t=(L*(V_s-V_v)+L*(V_s+V_v))/(V_s*V_s-V_v*V_v);
                          
   //  последнем столбце необходимо выровнять границу таблицы, а то получается ерунда
  // Может задать количество знаков после запятой для t ???
                            
                  if(V_v<=9)cout<<"| "<<V_v<<"            |"<<V_s<<"              |"<<t/60<<"          |"<<"\n";
          if(V_v>9&&V_v<100)cout<<"|  "<<V_v<<"          |"<<V_s<<"              |"<<t/60<<"          |"<<"\n";
                  if(V_v>99)cout<<"|   "<<V_v<<"        |"<<V_s<<"              |"<<t/60<<"          |"<<"\n";                           
                              }                              
                              V_v+=10;
                              cout<<"\n";
                              }
                              while(V_v<=100);  
                              
                              getch();
                              return 0;
                              }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mrmaster88
42 / 42 / 3
Регистрация: 13.04.2012
Сообщений: 112
14.11.2012, 18:49     Вывести данные в виде таблицы #2
Цитата Сообщение от _andrew_ Посмотреть сообщение
как проще это сделать?
установка флагов в setf() или манипуляторами
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
14.11.2012, 18:53     Вывести данные в виде таблицы #3
Используй символы табуляции \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
#include<iostream>
#include<conio.h>
#include<cmath>
using namespace std;
int main()
{
    int V_v,V_s;
    float t;
    
     cout<<"|Скорость ветра\t|Скорость Самолета\t| Время полета\t|\n";
    double L=700000;
    V_v=0;
    V_s=100;
   do{
      for(V_s=100;V_s<=600;V_s+=100 ) {
                          t=(L*(V_s-V_v)+L*(V_s+V_v))/(V_s*V_s-V_v*V_v);
                          
   //  последнем столбце необходимо выровнять границу таблицы, а то получается ерунда
  // Может задать количество знаков после запятой для t ???
                            
                  if(V_v<=9)cout<<"|\t"<<V_v<<"|\t"<<V_s<<"|\t"<<t/60<<"|\t"<<"\n";
          if(V_v>9&&V_v<100)cout<<"|\t"<<V_v<<"|\t"<<V_s<<"|\t"<<t/60<<"|\t"<<"\n";
                  if(V_v>99)cout<<"|\t"<<V_v<<"|\t"<<V_s<<"|\t"<<t/60<<"|\t"<<"\n";                           
                              }                              
                              V_v+=10;
                              cout<<"\n";
                              }
                              while(V_v<=100);  
                              
                              getch();
                              return 0;
                              }
_andrew_
22 / 22 / 3
Регистрация: 14.11.2012
Сообщений: 64
15.11.2012, 01:41  [ТС]     Вывести данные в виде таблицы #4
Цитата Сообщение от mrmaster88 Посмотреть сообщение
установка флагов в setf() или манипуляторами
с помощью флагов попробовал, но одна беда: в итоге получаются разные по длине результаты (Пр:77.8643 и 245.3455 )и
надо переменную ограничить по количеству выводимых символов (включая точку), а не цифр после плавающей точки.
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
#include<iostream>
#include <iomanip>
#include<conio.h>
#include<cmath>
using namespace std;
int main()
{
    int V_v,V_s;
    float t;
     cout<<"|Скорость ветра|Скорость Самолета| Время полета |\n\n";
    double L=700000;
    V_v=0;
    V_s=100;
   do{
      for(V_s=100;V_s<=600;V_s+=100 ) {
                          t=(L*(V_s-V_v)+L*(V_s+V_v))/(V_s*V_s-V_v*V_v);
                          
cout.setf(ios::fixed);
cout << setprecision(4);
 
              
                            
                  if(V_v<=9)cout<<"| "<<V_v<<"            |"<<V_s<<"              |"<<t/60<<"         |"<<"\n";
          if(V_v>9&&V_v<100)cout<<"|  "<<V_v<<"          |"<<V_s<<"              |"<<t/60<<"         |"<<"\n";
                  if(V_v>99)cout<<"|   "<<V_v<<"        |"<<V_s<<"              |"<<t/60<<"         |"<<"\n";  
                                      
                              }                              
                              V_v+=10;
                              cout<<"\n";
                              }
                              while(V_v<=100);  
                              
                              getch();
                              return 0;
                              }
Миниатюры
Вывести данные в виде таблицы  
mrmaster88
42 / 42 / 3
Регистрация: 13.04.2012
Сообщений: 112
15.11.2012, 13:11     Вывести данные в виде таблицы #5
Цитата Сообщение от _andrew_ Посмотреть сообщение
по количеству выводимых символов
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
#include<iostream>
#include <iomanip>
#include<conio.h>
#include<cmath>
using namespace std;
int main()
{
    int V_v,V_s;
    float t;
     cout<<"|Скорость ветра|Скорость Самолета| Время полета |\n\n";
    double L=700000;
    V_v=0;
    V_s=100;
   do{
      for(V_s=100;V_s<=600;V_s+=100 ) {
                          t=(L*(V_s-V_v)+L*(V_s+V_v))/(V_s*V_s-V_v*V_v);
 
cout.setf(ios::fixed);
cout << setprecision(4);
//cout<<(ios::right);
 
 
    if(V_v<=9)cout<<"|"<<setw(8)<<V_v<<setw(7)<<"|"<<setw(10)<<V_s<<setw(8)<<"|"<<setw(11)<<t/60<<setw(4)<<"|"<<"\n";
    if(V_v>9&&V_v<100)cout<<"|"<<setw(8)<<V_v<<setw(7)<<"|"<<setw(10)<<V_s<<setw(8)<<"|"<<setw(11)<<t/60<<setw(4)<<"|"<<"\n";
    if(V_v>99)cout<<"|"<<setw(8)<<V_v<<setw(7)<<"|"<<setw(10)<<V_s<<setw(8)<<"|"<<setw(11)<<t/60<<setw(4)<<"|"<<"\n";
    }
    //  cout<<(ios::left);
    V_v+=10;
    cout<<"\n";
    }  while(V_v<=100);
 
     getch();
    return 0;
    }
Добавлено через 8 минут
там у вас в одном месте печатается inf, проверьте условие
_andrew_
22 / 22 / 3
Регистрация: 14.11.2012
Сообщений: 64
15.11.2012, 14:16  [ТС]     Вывести данные в виде таблицы #6
mrmaster88, спасибо огромное, все вышло, только вот почему-то появилось число 32??? Откуда, непонятно).
См. скриншот
а #inf пишет, потому, что скорость самолета и ветра одинакова)) он никогда не прилетит)
Миниатюры
Вывести данные в виде таблицы  
_andrew_
22 / 22 / 3
Регистрация: 14.11.2012
Сообщений: 64
15.11.2012, 14:34  [ТС]     Вывести данные в виде таблицы #7
mrmaster88, извиняюсь, все ОК) Убрал
C++
1
2
 cout<<(ios::right);
cout<<(ios::left);
и все работает) Спасибо !!! Только вот не пойму, откуда появляются числа 128 и 32 когда вставляешь строки
C++
1
2
cout<<(ios::right);
cout<<(ios::left);
(скрин)???
mrmaster88
42 / 42 / 3
Регистрация: 13.04.2012
Сообщений: 112
15.11.2012, 14:48     Вывести данные в виде таблицы #8
Цитата Сообщение от _andrew_ Посмотреть сообщение
когда вставляешь строки
они уже не нужны, я их закомментировал

Добавлено через 8 минут
Цитата Сообщение от _andrew_ Посмотреть сообщение
а #inf пишет
это не хорошо, пересмотрите алгоритм
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2012, 16:22     Вывести данные в виде таблицы
Еще ссылки по теме:

Вывести данные из файла в виде таблицы C++
Считать данные из текстового файла, переписать в бинарный, и вывести в виде выровненной таблицы C++
Найти объём пирамиды, и вывести данные в виде таблицы C++

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

Или воспользуйтесь поиском по форуму:
_andrew_
22 / 22 / 3
Регистрация: 14.11.2012
Сообщений: 64
15.11.2012, 16:22  [ТС]     Вывести данные в виде таблицы #9
mrmaster88, спасибо, посмотрю
Yandex
Объявления
15.11.2012, 16:22     Вывести данные в виде таблицы
Ответ Создать тему
Опции темы

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