Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder и базы данных
Войти
Регистрация
Восстановить пароль
 
mrskylines
0 / 0 / 0
Регистрация: 26.04.2015
Сообщений: 5
#1

Cannot convert 'production *' to 'st *' - C++ Builder БД

07.05.2015, 18:16. Просмотров 218. Ответов 0
Метки нет (Все метки)

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
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
//---------------------------------------------------------------------------
 
#include<conio.h>
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<stdlib.h>
#include<windows.h>
 
//---------------------------------------------------------------------------
struct production
{int count;             //счетчик
char name[15];         //имя
int day;                //день
char seria[15];              //серия
int episode;            //эпизод
char character[15];    //персонаж
float stage;            //стадия
struct st *prior;       //указатель на предыдущий элемент
struct st *next;        //указатель на следующий элемент
}st[25];                  //количество строк в Базе Данных
//--------------------------Управляющие переменные---------------------------
const int M=25;         //число элементов в массиве структур
struct control
{int nb;                //число занятых элементов
 int nf;                //число свободных элементов
struct production *bbeg;//начало списка занятых элементов
struct production *bend;//конец списка занятых элементов
struct production *fbeg;//начало списка свободных элементов
struct production *fend;//конец списка свободных элементов
}ctrl;
int init(void);         //инициализация базы данных
int input(void);        //ввод данных
int delet(void);       //удаление строки
int find(void);         //поиск
struct production *find(char *nam);//поиск по фамилии,struct production возвр указ на структ типа production
int fr(struct production *ptr);//возвратить освобожденный элемент в список свободных элементов
int print(void);         //печать данных
int save(void);          //сохранение в файл
int load(void);          //чтение из файла
 
//--------------------------Меню(Главная функция)----------------------------
void main(void)
 {SetConsoleOutputCP(1251);
SetConsoleCP(1251);//Добавляет возможность просмотра на русском
{char numb[11];    //номер работы из меню
{   printf ("1 - Ввод данных\n");              //1
    printf ("2 - Печать данных\n");            //3
    printf ("3 - Добавление строки\n");        //нет
    printf ("4 - Удаление строки\n");          //2
    printf ("5 - Поиск по любому столбцу \n"); //нет
    printf ("6 - Сохранение в файл\n");        //4
    printf ("7 - Чтение из Файла\n");          //5
    printf ("8 - Сортировка\n");               //
    printf ("9 - Инициализация Базы Данных\n");//6
    printf ("e - Выход из Базы Данных\n");     //7
    printf ("\n\n Выберите варианты действия \n");
    scanf("%s",numb);
    switch( numb[0] )
    {
        case '1':
          input( ); //ввод данных
          break;
        case '2':
          print( ); //печать данных
          break;
        case '3':
          input( ); //?? добавление строки ??
          break;
        case '4':
          delet( );//удаление строки
          break;
        case '5':
          find( );  //?? поиск по любому столбцу ??
          break;
        case '6':
          save( );  //сохранение в файл
          break;
        case '7':
          load( );  //чтение из файла
          break;
        case '8':
          print( ); //?? сортировка ??
          break;
        case '9':
          init( );  //инициализировать базу данных
          break;
        case 'e':
          return;  //выход
        default:
          printf("Нет такого действия\n");
    }
} //конец цикла работы с базой данных
}
}
//--------------------------Инициализация БД---------------------------------
int init(void)
{struct production *point=st;//указатель на текущий элемент
 int i;
 ctrl.nb=0;//число занятых элементов
 ctrl.nf=0;//число свободных элементов
 ctrl.bbeg=NULL;
 ctrl.bend=NULL;//списка занятых элементов нет
 ctrl.fbeg=st;//st- адрес начала массива структур
 ctrl.fend=st;
 point=st;
 printf("\n\n Инициализация массива \n");
 for (i=0;i<M-1;i++)
     {if (ctrl.nf!=0)         //если не первый элемент
        {point->prior=point-1;
         point->next=point+1;}
      else                    //если элемент первый
      {point->prior=NULL;
       point->next=point+1;}
     point++;
     ctrl.nf++;
     ctrl.fend++;
     }//конец цикла инициализации
ctrl.nf++;//инициализация последнего элемента в массиве
point->prior=point-1;
point->next=NULL;
return 0;
}
//--------------------------Удаление строки----------------------------------
struct production *find(char *nam)//поиск нужного элемента в списке занятых элементов
{int i;
 struct production *ptf;//вспомогательный указатель на нач списка занят элементов
 ctrl.ptf=bbeg;
 for (i = 0; i < ctrl.nb; i++)//nb-число занятых элементов
 {if ((strcmp(nam,ptf->name))==0)//strcmp в библотеке string.h
      return ptf;
 ptf=ptf->next;//перемещаем указатель на следующий элемент списка
 }//просмотрен весь список занятых элементов
 return NULL;
}
int delet(void)
{char nam[20];//фамилия
 int i;
 struct production *ptr;//указатель на удаляемый элемент
 printf("\n\n Функция удаления элемента \n");
  if (ctrl.nb==0)
  {printf("Список занятых элементов пуст \n");
  return -1;
  }
printf("Введите ФИО \n");
scanf("%s",nam);
 if ((ptr==find(nam))==0)
 {printf("Фамилия не найдена \n");
  return -1;
 }
 if (ptr==ctrl.bbeg)//если это первый элемент
  {if (ctrl.nb==1)   //если это единственный элемент в списке занятых
   {ctrl.bend=ptr=NULL;
    fr(ptr);
    return 0;
   }
   else              //это не единственный элемент
   {ctrl.bbeg=ptr->next;
    ctrl.bbeg->prior=NULL;
    fr(ptr);
    return 0;
   }
  }
 else                //это не первый элемент
 {if (ptr==ctrl.bend)
   {ptr->prior->next=NULL;//это последний элемент(не единственный)
    ctrl.bend=ptr->prior;
    fr(ptr);
    return 0;
   }
  else               //элемент в середине
  {(ptr->prior)->next=ptr->next;
   (ptr->next)->prior=ptr->prior;
   fr(ptr);
   return 0;
  }
 }
}
//--------------------------Освобождение удаляемого элемента:----------------
int fr (struct  production *ptr)
{
if (ctrl.nb==M) /* Были заняты все элементы массива */
{
ptr->prior = NULL;
ptr->next = NULL;
ctrl.fbeg->prior = ptr;
ctrl.fbeg = ptr;
}
else
{
ptr->prior = NULL;
ptr->next  = ctrl.fbeg;
ctrl.fbeg->prior = ptr;
ctrl.fbeg = ptr;
}
ctrl.nb--;
ctrl.nf++;
return 0;
}
//--------------------------Ввод данных--------------------------------------
int input (void)
{struct production *ptr; /* Вспомогательный указатель */
printf("\n\n Функция вставки элемента \n ");
if (ctrl.nf == 0)
{
printf (" Свободных элементов нет\n");
return -1;
}
ptr = fbeg;
/* Запрос Ф.И.О. */
printf (" Введите: Ф.И.О. \n");
scanf("%s", fbeg->name);
printf ("Введите название серии \n");
scanf ("%s", &ptr->seria);
printf ("Введите номер эпизода: \n");
scanf ("%d", ptr->episode);
printf ("На какой стадии запись \n");
scanf ("%f", &ptr->stage);
printf ("Введите дату получения материалов: \n");
printf ("по формату: ДЦ. ММ. ГГ\n");
scanf ("%s", ptr->day);
/*Подключение элемента к списку занятых элементов */
if (ctrl.nf==1) /* 'Занимаем последнее место */
{
ctrl.fbeg = NULL;
ptr->next = NULL;
ptr->prior = ctrl.bend;
ctrl. bend->next=ptr;
ctrl.bend = ptr;
ctrl.fend = NULL;
}
else
{
if (ctrl.nb == 0)
ctrl.bbeg = ptr;
ctrl.fbeg = ptr->next;
ptr->next = NULL;
ptr->prior = ctrl.bend;
ctrl.bend->next = ptr;
ctrl, bend = ptr;
ctrl.fbeg->prior = NULL; /* Новый первый в списке свободных элементов */
}
ctrl.nb++;
ctrl.nf--;
return 0;
}
при компиляции возникают ошибки типа [C++ Error] Unit1.cpp(110): E2034 Cannot convert 'production *' to 'st *'
Кликните здесь для просмотра всего текста
[C++ Error] Unit1.cpp(110): E2034 Cannot convert 'production *' to 'st *'
[C++ Error] Unit1.cpp(111): E2034 Cannot convert 'production *' to 'st *'
[C++ Error] Unit1.cpp(114): E2034 Cannot convert 'production *' to 'st *'
[C++ Error] Unit1.cpp(120): E2034 Cannot convert 'production *' to 'st *'

и еще такого рода [C++ Error] Unit1.cpp(128): E2316 'ptf' is not a member of 'control'
[C++ Error] Unit1.cpp(128): E2451 Undefined symbol 'bbeg'
Делаю БД по книжке, чтобы понять что к чему, но вопросов становится все еще больше.
Буду благодарен, если подскажете, что и как нужно исправить
http://www.cyberforum.ru/cpp-beginners/thread1364785.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2015, 18:16
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Cannot convert 'production *' to 'st *' (C++ Builder БД):

Компьютер для Music Production
Всем привет. Собираю компьютер для Music Production, то есть мне важен в...

В production не видит файлы стилей и js
Сделал прекомпиляцию, RAILS_ENV=production bundle exec rake assets:precompile...

Ошибки при развертывании в production
Только начал изучать RoR и при развертыванием в production возникли проблемы. ...

Production обновление кода без перезагрузки
Многие знают онлайн платформу магазинов shopify, очень популярная и не всем по...

Ошибки: Cannot implicitly convert type 'string' to 'int' и Argument 1: cannot convert from 'int' to 'string'
youtube.com_Пишем парсер на Csharp. Ошибка Пытаюсь написать парсер. Вроде...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2015, 18:16
Привет! Вот еще темы с решениями:

Convert or NOT Convert !!!
вoпрoс тaкoй кaк мне перевести char(10) в smalldatetime если учестъ, чтo...

convert
как преобразовать uintmax_t в string либо char*

Cannot convert
Прошу прощения за столь ламерский вопрос. При попытке запустить прогу вылетает...

Cannot convert
void MainWindow::on_pushButton_clicked() { QList&lt;QHostAddress&gt;* myData =...


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

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

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