2 / 2 / 1
Регистрация: 12.10.2014
Сообщений: 77
1

Выскакивают ошибки конвертации одного типа в другой, как возможно это исправить?

22.12.2014, 19:35. Показов 556. Ответов 14
Метки нет (Все метки)

Задача:
Составить программу, которая содержит динамическую информацию о наличии автобусов в автобусном парке.
Сведения о каждом автобусе содержат:
• номер автобуса;
• фамилию и инициалы водителя;
• номер маршрута;
• признак того, где находится автобус — на маршруте или в парке.
Программа должна обеспечивать:
• начальное формирование данных о всех автобусах в виде списка;
• при выезде каждого автобуса из парка вводится номер автобуса, и программа устанавливает зна-чение признака «автобус на маршруте»;
• при въезде каждого автобуса в парк вводится номер автобуса, и программа устанавливает значе-ние признака «автобус в парке»;
• по запросу выдаются сведения об автобусах, находящихся в парке, или об автобусах, находящих-ся на маршруте.

Код:
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fstream.h>
#include <conio.h>
 
const int l_bus_number=31;
struct bus
{
        int bus_number[l_bus_number];
        char FIO_voditel;
        int route_number;
        char raspolojenie;
        bus *next;
        };
     bus *beg;
 
    int edit(bus* beg);
    bus* find(bus* beg, int* bus_number, bus** prev);
    void get_bus_number(int* bus_number);
    int menu();
    void cout_park(bus* beg);
    bus* read_park(char* filename);
    bus read_bus();
    int write_park(char* filename, bus* beg);
    void find_bus(bus* beg);
    void get_bus_number(int* bus_number);
 
 
    int main()
{
 bus* beg=read_park("park.txt");
    if (!beg)
 
 return 1;
 
     while(menu()!=5)
{
     switch (menu())
{
     case 1: find_bus(beg); break;
     case 2: edit(beg); break;
     case 3: cout_park(beg); break;
     case 4: write_park("park.txt", beg); break;
     case 5: break;
     default: puts("Nado vvodit chislo ot 1 do 5"); break;
}
}
getch();
return 0;
}
 
 
 
 
         int edit(bus* beg)
{
int bus_number[l_bus_number], buf[80];
     get_bus_number(bus_number);
 
     bus* prev;
     bus* pv=find(beg, bus_number, &prev);
     if (!pv) return 1;
     do
{
    puts("Vvedite noviy nomer ");
    gets(buf);
}
 
    while (!(pv->raspolojenie=(char)atof(buf)));
    getch();
    return 0;
}
 
 
 
 
        bus* find(bus* pv, int bus_number, bus** prev)
{
     *prev=0;
     while (pv)
{
if (strstr(pv->bus_number,bus_number))
if(pv->bus_number[strlen(bus_number)]==' ')
{
 cout<<pv->bus_number<<pv->FIO_voditel<<pv->raspolojenie);
 getch();
 return pv;
}
     *prev=pv;
     pv=pv->next;
}
puts("Takogo nomera net\n");
getch();
return 0;
}
 
 
 
 
 
 
 
             void get_bus_number(int* bus_number)
{
puts("Vvedite nomer");
gets(bus_number);
}
 
 
 
 
 
     int menu()
{
     char buf[10];
     int option;
     do
{
        puts("-----------------------------------------------------");
        puts("1- poisk nomera avtobusa\t 3-vivod bazi na ekran");
        puts("2-korrektirovka svedeniy\t 4-vivod bazi v file");
        puts("\t\t\t 5- vihod");
    gets(buf);
    option=atoi(buf);
}
    while (!option);
    getch();
    return option;
}
 
 
 
 
 
 
      void cout_park(bus* beg)
{
   bus* pv=beg;
   while (pv)
{
   cout<<pv->bus_number<<pv->FIO_voditel<<pv->raspolojenie;
   pv=pv->next;
}
}
 
 
 
 
 
 
      bus* read_park(char* filename)
{
   FILE* fin;
   bus Bus, *beg=0;
 
   if ((fin=fopen(filename. "r"))==0)
{
 cout<<"Net fila"<<filename;
 getch();
 return 0;
}
     while (!feof(fin))
{
  fgets(Bus, bus_number, l_bus_number, fin);
  cin<<fin<<&Bus.FIO_voditel, &Bus.raspolojenie);
  beg=add9beg, Bus);
}
   fclose(fin);
   getch();
   return beg;
}
 
 
 
 
 
 
              int write_park(char *filename, bus *pv)
{
   FILE *fout;
     if ((fout=fopen(filename, "w"))==NULL)
{
   puts("Osibka otkritiya fila");
   getch();
   return 1;
}
    while (pv)
{
   cout<<fout<<pv->bus_number<<pv->FIO_voditel<<pv->raspolojenie;
   pv=pv->next;
}
fclose(fout);
getch();
return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.12.2014, 19:35
Ответы с готовыми решениями:

Нельзя сравнивать два типа (Т1 и Т1), как это исправить?
Вот код public void Search(Т1 a) { for (int i = 0; i &lt; this.size; i++) ...

При редактировании одного запроса редактирует все как это исправить подскажите
Там не запросы редактирует а записи в таблице con.Open(); OleDbCommand...

Открываю PDF - терминал выдает ошибки, что это и как исправить?
Открываю файл: xdg-open file.pdf и всё вроде хорошо, но в терминале следующие сообщения:...

Как исправить ошибку '{' : отсутствует Заголовок функции (возможно, используется формальный список старого типа)
Помогите пожалуйста начинающему программисту) VS2017 выдают такую ошибку - '{' : отсутствует...

14
7167 / 6142 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
22.12.2014, 19:37 2
Какая ошибка и в какой строке?
0
2 / 2 / 1
Регистрация: 12.10.2014
Сообщений: 77
22.12.2014, 19:40  [ТС] 3
nmcf, выскакивает 17 ошибок одного типа: cannot convert 'int *' to 'char *' в строках 67, 70, 83, 84, 107,
0
lss
939 / 867 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
22.12.2014, 19:51 4
Цитата Сообщение от Anna_Stiking Посмотреть сообщение
в строках 67
Цитата Сообщение от Anna_Stiking Посмотреть сообщение
gets(buf);
gets() читает в массив char, у вас int buf[80], и т.д.
0
2 / 2 / 1
Регистрация: 12.10.2014
Сообщений: 77
22.12.2014, 20:17  [ТС] 5
lss, нужно объявлять так: int bus_number[l_bus_number], char buf[80]; ?
0
lss
939 / 867 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
22.12.2014, 20:42 6
Цитата Сообщение от Anna_Stiking Посмотреть сообщение
lss, нужно объявлять так: int bus_number[l_bus_number], char buf[80]; ?
Проще попробовать, чем вопросы задавать.

Добавлено через 4 минуты
Цитата Сообщение от lss Посмотреть сообщение
и т.д.
Означает, что я написал про ошибку в 67 строке, соответствие других типов не смотрел.
0
2 / 2 / 1
Регистрация: 12.10.2014
Сообщений: 77
22.12.2014, 20:44  [ТС] 7
lss, хоть я и попробовала, но, к сожалению, все равно ошибки вылезают declaration terminated incorrectly в этой 58 строке
0
lss
939 / 867 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
22.12.2014, 20:46 8
Цитата Сообщение от Anna_Stiking Посмотреть сообщение
все равно ошибки вылезают declaration terminated incorrectly в этой 58 строке
Это ответ на ваш вопрос:
Цитата Сообщение от Anna_Stiking Посмотреть сообщение
нужно объявлять так: int bus_number[l_bus_number], char buf[80]; ?
0
2 / 2 / 1
Регистрация: 12.10.2014
Сообщений: 77
22.12.2014, 20:56  [ТС] 9
lss, как раз после этого объявления и стала вылезать такая ошибка
0
lss
939 / 867 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
22.12.2014, 20:59 10
Цитата Сообщение от Anna_Stiking Посмотреть сообщение
как раз после этого объявления и стала вылезать такая ошибка
И вывод из этого какой? Наверное, объявление неправильное. Вы переменные только через запятую умеете объявлять?
0
2 / 2 / 1
Регистрация: 12.10.2014
Сообщений: 77
22.12.2014, 21:10  [ТС] 11
lss, я не помню, как это ещё можно сделать.
0
lss
939 / 867 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
22.12.2014, 21:23 12
Цитата Сообщение от Anna_Stiking Посмотреть сообщение
я не помню, как это ещё можно сделать.
Как так? А 116, 117 строки кода? Ведь этот код вы писали?
0
2 / 2 / 1
Регистрация: 12.10.2014
Сообщений: 77
22.12.2014, 22:04  [ТС] 13
lss, так вы имеете в виду просто через точку с запятой, а не через запятую? Спасибо, помогло Только вот с 84 строкой не лады, тоже ошибка конвертации
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
22.12.2014, 22:19 14
Цитата Сообщение от Anna_Stiking Посмотреть сообщение
Только вот с 84 строкой не лады, тоже ошибка конвертации
Приведите итоговый вариант.
0
lss
939 / 867 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
22.12.2014, 22:25 15
Цитата Сообщение от Anna_Stiking Посмотреть сообщение
Только вот с 84 строкой не лады, тоже ошибка конвертации
Там тоже самое:
Цитата Сообщение от lss Посмотреть сообщение
, и т.д.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.12.2014, 22:25
Помогаю со студенческими работами здесь

Как в переменной строкового типа заменить все вхождения одного символа на другой?
Подскажите как в переменной строкового типа заменить все вхождения одного символа на другой. Очень...

Как скопировать все свойства из одного класса в другой класс такого же типа
Здравствуйте. Представим, что есть класс со множеством свойств. Как скопировать все свойства из...

Возможно ли это? приведение типа
для избавления себя и проверяющих от хлама в коде мною было решено создать свои уникальные функции,...

Исправить ошибки в коде, возможно, только синтаксические
Помогите исправить двумерный массив string ss; Random b = new random(); Ss = &quot;&quot;; int ar = new...

Подскажите, "Код ошибки: 0x0000007e (..." что это такое и как исправить?
Код ошибки: 0x0000007e (0xc0000005, 0x82ebc4ae, 0x9bcc1ba8, 0x9bcc1780). Просходит это постоянно,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru