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

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

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

Вывод результата работы программы ввиде таблицы - C++

05.06.2012, 20:24. Просмотров 958. Ответов 8
Метки нет (Все метки)

Я сделал вывод работы программы ввиде таблицы с помощью setw. Но при выводе длинных слов или больших чисел вся таблица сбивается. Подскажите как лучше сделать.

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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
# include<string.h>
# include<iomanip.h>
# include <stdio.h>
# include <conio.h>
# include <iostream.h>
 
FILE *f; int i; int z,q,A,B,min,X;int k; const n=3; char S;  char h[1000];
 
struct magazine
    {
     char name[10];
     char strana[30];
     int chena;
     int kolvo;
     int vothrast_ot;
     int vothrast_do;
    };
 
magazine shop[n];
 
int FF;
 
void outputmenu();
 
void vvod_dannix() ;
 
void ot_1_do_3();
void deh_igr();
void poisk();
void dannie();
 
void main()
{
do{
outputmenu();
gotoxy(5,8);
cout<<" ‚лЎЁаЁвҐ Їг*Єв: ";
cin>>FF;
 clrscr();
  switch(FF)
     { case 1: vvod_dannix();  break;
       case 2: ot_1_do_3(); break;
       case 3: deh_igr(); break;
       case 4: poisk(); break;
       case 5: dannie(); break;
       default: ;
} } while(FF!=6);
 
 
}
 
 
void outputmenu()
{ int ff; char gg;
textcolor(GREEN);
textbackground(GREEN);
window(1,1,80,24);
 clrscr();
 window(2,3,79,23);
 textbackground(0);
 clrscr();
 gotoxy(5,2);
printf("1) ‚ўҐ¤ЁвҐ ¤***лҐ ®Ў *б®авЁ¬Ґ*вҐ");
gotoxy(5,3);
printf("2) ?ЈагиЄЁ ¤«п ¤ҐвҐ© ®в 1 ¤® 3 «Ґв ");
gotoxy(5,4);
printf("3) ‘*¬*п ¤ҐиҐў*п ЁЈагиЄ*");
gotoxy(5,5);
printf("4) Џ®ЁбЄ ®ЇаҐ¤Ґ«Ґ**®© ЁЈагиЄЁ");
gotoxy(5,6);
printf("5) ‚뢥бвЁ ** нЄа** ўҐбм *бб®авЁ¬Ґ*в");
gotoxy(5,7);
printf("6) ‚л室");
}
 
 
void vvod_dannix()
{
printf("‚ўҐ¤ЁвҐ **§ў**ЁҐ д*©«*: "); scanf("%s",h);
if((f=fopen("h.txt","w"))==NULL)
{puts("ЌҐ¬®Јг ®вЄалвм д*Ё«!\n"); return;}
clrscr();
 
for(i=0; i<n; i++)
{   gotoxy(5,2);
    printf("¤«п ўл室* ў Ј«*ў*®Ґ ¬Ґ*о  **¦¬ЁвҐ ESC ¤«п Їа®¤®«¦Ґ*Ёп  **¦¬ЁвҐ Enter");
    if(getch()==27)  {i=n;outputmenu();}
    else
    {gotoxy(5,4);
    printf("Ќ*§ў**ЁҐ:"); scanf("%s", &shop[i].name);
    gotoxy(5,5);
    printf("‘ва***:"); scanf("%s", &shop[i].strana);
    gotoxy(5,6);
    printf("–Ґ**:"); scanf("%d", &shop[i].chena);
    gotoxy(5,7);
    printf("Љ®«ЁзҐбвў®:"); scanf("%d", &shop[i].kolvo);
    gotoxy(5,8);
    printf("‚®§а*бв_®в:"); scanf("%d", &shop[i].vothrast_ot);
    gotoxy(5,9);
    printf("‚®§а*бв_¤®:"); scanf("%d", &shop[i].vothrast_do);
    clrscr();
fwrite(&shop,sizeof(struct magazine),1,f);}}
fclose(f);
 }
 
 
 
 
void ot_1_do_3()
{
f=fopen("h.txt","r");
while(1){if(!fread(&shop,sizeof(struct magazine),1,f)){printf("end");break;}
}
q=0;
printf("\n\n\n ?ЈагиЄЁ ᮮ⢥вбвўгойЁҐ ў®§а*бвг ®в 1 ¤® 3 : \n");
for (i=0;  i<n; i++)
{if((shop[i].vothrast_ot>=1)&&(shop[i].vothrast_do<=3))
      printf("**§ў**ЁҐ:%s,бва***:%s,жҐ**:%d,Є®«ЁзҐбвў®:%d,ў®§а*бв ®в:%d, ў®§а*бв ¤®:%d\n",shop[i].name,shop[i].strana,shop[i].chena,shop[i].kolvo,shop[i].vothrast_ot, shop[i].vothrast_do);
  else q++; }
if(q==n) printf(" *Ґв ЁЈагиЄЁ ᮮ⢥вбвўго饩 ¤***®¬г ў®§а*бвг");
 
getch();
}
 
 
void deh_igr()
{
min=32766;
q=0;
for (i=0; i<n; i++)
{if(shop[i].chena<min) {min=shop[i].chena; q=i;}}
printf("\n\n б*¬*п ¤ҐиҐў*п ЁЈагиЄ* **§ў**ЁҐ: %s, бва***: %s, жҐ**: %d",shop[q].name,shop[q].strana,min);
getch();
}
 
 
void poisk()
{
printf ("\nЏ®ЁбЄ ЁЈагиЄЁ\n\n");
printf(" ўўҐ¤ЁвҐ **з*«м*®Ґ §**зҐ*ЁҐ ў®§а*бв*:");
scanf("%d",&A);
printf(" \nўўҐ¤ЁвҐ Є®*Ґз*®Ґ §**зҐ*ЁҐ ў®§а*бв*:");
scanf("%d",&B);
printf(" \nўўҐ¤ЁвҐ жҐ*г X:");
scanf("%d",&X);
printf(" ўўҐ¤ЁвҐ бва**г:");
scanf("%s",&S);
printf("\n\n१г«мв*в Ї®ЁбЄ*:\n");
clrscr();
for (q=i=0; i<n; i++)
{ if ((shop[i].vothrast_ot>=A)&&(shop[i].vothrast_do<=B ) &&(shop[i].chena<X)&&(strcmp(shop[i].strana,&S)==0))
    printf("\t**§ў**ЁҐ:%s\n",shop[i].name);
    else   q++;
    }
    if(i==q) printf("?ЈагиЄ* *Ґ **©¤Ґ**");
getch();
}
 
 
 
void dannie()
{q=1;z=4;
 f=fopen("h.txt","rt");
while(1){if(!fread(&shop,sizeof(struct magazine),1,f)){printf(" ");break; }
 }
gotoxy(2,1);
printf("**¦¬ЁвҐ ENTER ¤«п Їа®б¬®ва* б«Ґ¤го饩 з*бвЁ бЇЁбЄ* ЁЈаг襪");
gotoxy(2,2);
cout<<setw(11)<<"Ќ*§ў**ЁҐ"<<setw(13)<<"‘ва***"<<setw(13)<<"–Ґ**"<<setw(13)<<"Љ®«-ў®"<<setw(16)<<"‚®§а*бв ®в"<<setw(11)<<"‚®§а*бв ¤®";
gotoxy(2,3);
cout<<"----------------------------------------------------------------------------";
for(i=0; i<n; i++)
{
 
gotoxy(2,z);
cout<<setw(7)<<shop[i].name;
cout<<setw(7)<<"|";
cout<<setw(8)<<shop[i].strana;
cout<<setw(8)<<"|";
cout<<setw(7)<<shop[i].chena;
cout<<setw(6)<<"|";
cout<<setw(7)<<shop[i].kolvo;
cout<<setw(6)<<"|";
cout<<setw(6)<<shop[i].vothrast_ot;
cout<<setw(5)<<"|";
cout<<setw(5)<<shop[i].vothrast_do<<endl;
gotoxy(2,++z);
cout<<"----------------------------------------------------------------------------";
if(q%5==0)
{
  getch()==13;
  clrscr();
  z=3;
  gotoxy(2,1);
  printf("**¦¬ЁвҐ ENTER ¤«п Їа®б¬®ва* б«Ґ¤го饩 з*бвЁ бЇЁбЄ* ЁЈаг襪");
  gotoxy(2,2);
  cout<<setw(11)<<"Название"<<setw(14)<<"Страна"<<setw(11)<<"Цена"<<setw(11)<<"Кол-во"<<setw(14)<<"Возраст от"<<setw(14)<<"Возраст до";
  gotoxy(2,3);
  cout<<"----------------------------------------------------------------------------";
} q++; z+=2;
}
fclose(f);
getch();
 
 }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2012, 20:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод результата работы программы ввиде таблицы (C++):

Вывод результата работы программы - C++
Всем добрый вечер., столкнулся со след проблемой: #include &lt;io.h&gt; #include&lt;iostream&gt; #include &lt;stdio.h&gt; int main(){ ...

Вывод данных ввиде таблицы - C++
Здраствуйте! Подскажите, пожалуйтса, как лучше реализовать вывод данных в виде таблицы на С++. З.Ы. безусловно можно допустим...

Вывод данных ввиде таблицы - C++
подскажите как вывести данные в виде таблицы? допустим пользователь вводит число х , программа вычисляет значения: t=pow(x,2); s=x*1000;...

Вывод результата в виде таблицы - C++
Задача: Задан коэффициенты многочлена Рn = a0+ a1*x1+ a2*x2+…an*xn . Найти К-тую производную многчлена Решение: #include &lt;iostream&gt; ...

При выводе результата работы программы пишет #QNAN0 - C++
При выводе результатов все члены равны 1.#QNAN0 В чем может быть причина такого результат?

Вывести на экран числа ввиде следующей таблицы - C++
Вывести на экран числа ввиде следующей таблицы 6 6 6 6 6 7 7 7 7 8 8 8 9 9 10

8
Alt_Shift
50 / 50 / 2
Регистрация: 28.05.2012
Сообщений: 161
05.06.2012, 20:30 #2
Код бы заключили в тег [ CPP][/CPP] аитабельнее же будет. Кнопочка [IMG]http://s019.***********/i637/1206/6c/c8d4b5b75cb6.jpg[/IMG]
1
DU
1483 / 1129 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
06.06.2012, 15:35 #3
как вариант можно посмотреть на это:
Вывести текст в виде таблицы
http://liveworkspace.org/code/e53f12577a916301f227a9627817c09d
1
Ironhide7
0 / 0 / 0
Регистрация: 01.06.2012
Сообщений: 17
06.06.2012, 15:52  [ТС] #4
конечно спасибо толька код гиганский , сразу не разберешься. А можно уточнить где именно производится вывод и прорисовка таблицы
0
DU
1483 / 1129 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
06.06.2012, 16:00 #5
функция PrintTable получает список колонок и стрим, куда все нужно вывести.
внутри идет расчет ширыни колонки в зависимости от длин строк. ширина колонки равна длинне максимальной строки в колонке + еще пробелы по краям + возможно еще что-то. я не помню. все что нужно сделать - это заполнить колонки строками и вызвать эту функцию. в main как раз и идет такое формирование колонок и в конце - вызов PrintTable
0
BF_KARATEL
11 / 11 / 0
Регистрация: 01.06.2012
Сообщений: 114
06.06.2012, 16:03 #6
А не подскажите где про нее можно почитать что то не на гуглил
0
DU
1483 / 1129 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
06.06.2012, 16:05 #7
сходите по ссылке, которую я запостил. она начинается на 33 строке и заканчивается на 84
0
BF_KARATEL
11 / 11 / 0
Регистрация: 01.06.2012
Сообщений: 114
06.06.2012, 16:19 #8
Блин компилятор ругается библиотек нет(( пытался запустить у себя вашу программу
0
DU
1483 / 1129 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
06.06.2012, 16:24 #9
хз что у вас за компилятор и какие ошибки. вот ссылка говорит о том, что все корректно:
http://liveworkspace.org/code/e53f12577a916301f227a9627817c09d
кстати, попробуйте оттуда код скопировать. возможно он немного отличается от того, что здесь на форуме.
0
06.06.2012, 16:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2012, 16:24
Привет! Вот еще темы с ответами:

Вычислить и вывести на экран ввиде таблицы значения функции F на интервале от Хнач. до Хкон. с шагом dX - C++
прошу помощи,ума не приложу как это сделать,по профессии не программист, но требуется для зачета Вычислить и вывести на экран ввиде...

Вывести на экран ввиде таблицы значения заданной функции на указанном интервале с заданным шагом - C++
Помогите решить задачу, в консоли. не могу понять что за Aц, Вц, Сц.....

Исправить задачу (Вычислить и вывести на экран ввиде таблицы значения функции F на интервале от Хнач. до Хкон. с шагом dX) - C++
подскажите где и что мне надо изменить, что бы получилась данная задача. Вычислить и вывести на экран ввиде таблицы значения функции F на...

Составить программу для вычисления значений функции F(x) на отрезке [A,B] с шагом Н.Результат представить ввиде таблицы, первый столбец которой—з - C++
Составить программу для вычисления значений функции F(x) на отрезке с шагом Н .Результат представить ввиде таблицы, первый столбец...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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