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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.88
azat20
0 / 0 / 0
Регистрация: 19.02.2009
Сообщений: 4
#1

Работа с базой данных - C++

19.02.2009, 22:52. Просмотров 1199. Ответов 1
Метки нет (Все метки)

Добрый день! Прошу совета! Задание было, написать БД по билетам вокзала. Так вот, все процедуры работают, кроме одной, не могу догнать, что надо написать, чтобы работала процедура покупки билета. Т.е. когда выбираем п.5 в меню, то покупается билет на поезд,название которого мы ввели.И соответственно, кол-во билетов на данный поезд уменьшается на 1. Прошу помочь с процедурой Buying. Всем заранее спасибо за ответы! На всякий случай, выкладываю весь код:
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <time.h>
struct Ticket{
  int Nomer;
  char Nameoftrain[10];
  char Endstation[10];
  int Freeplace;
  float Price;
  char Servicetype[10];
  float Starttime;
  float Goingtime;
       };
FILE *cfPtr;
int choise;
int enterChoise(void);
void textFile(FILE*);
void newRecord(FILE*);
int  Output(FILE*);
void Buying(FILE*);
void Calculation(FILE*);
 
int enterChoise(void)
{
  int menuChoice;
  printf("\nEnter your choise:\n"
     "1-Print data in text file Tickets.txt\n"
     "2-Print to screen all ticket\n"
     "3-Add new ticket\n"
     "4-Print trains to input city\n"
     "5-Ticket buying\n"
     "6-Exit\n? " );
  scanf("%d",&menuChoice);
  return menuChoice;
}
 
int main()
{
   clrscr();
   if ((cfPtr=fopen("Spisok.txt","r+"))==NULL)
       printf("File can not open\n");
   else {
     while ((choise=enterChoise())!=6){
          switch (choise) {
        case 1:
          textFile(cfPtr);
          break;
        case 2:
          Output(cfPtr);
          break;
        case 3:
          newRecord(cfPtr);
          break;
        case 4:
      Calculation(cfPtr);
          break;
        case 5:
          Buying(cfPtr);
          break;
          }
      }
      fclose(cfPtr);
   }
   return 0;
}
 
int Output(FILE*fPtr)
{ struct Ticket Train={0,"","",0,0.0,"",0.0,0.0};
  int i=0;
 
  printf("%-6s%-13s%-13s%-10s%-6s%-13s%-10s%-5s\n",
           "Nomer","Nameoftrain","Endstation","Freeplace","Price","Servicetype","Starttime","Goingtime");
  while(Train.Nomer!=-1) {
       fseek(fPtr,(i++)*sizeof(struct Ticket),SEEK_SET);
       fread(&Train,sizeof(struct Ticket),1,fPtr);
       if(Train.Nomer==0) break;
       if(Train.Nomer!=-1)
       printf("%-6d%-13s%-13s%-10d%-6.1f%-13s%-10.2f%-5.2f\n", Train.Nomer,
           Train.Nameoftrain,Train.Endstation,Train.Freeplace,Train.Price,
           Train.Servicetype,Train.Starttime,Train.Goingtime);
  }
  return i;
}
 
void textFile(FILE*readPtr)
{
  FILE *writePtr;
  struct Ticket Train={0,"","",0,0.0,"",0.0,0.0};
  int i=0;
  if ((writePtr=fopen("Train.txt","w"))==NULL)
       printf("File not found\n");
  else {
    fprintf(writePtr,"%-6s%-13s%-13s%-10s%-6s%-13s%-10s%-5s\n",
           "Nomer","Nameoftrain","Endstation","Freeplace","Price","Servicetype","Starttime","Goingtime");
   while(Train.Nomer!=-1) {
    fseek(readPtr,(i++)*sizeof(struct Ticket),SEEK_SET);
    fread(&Train,sizeof(struct Ticket),1,readPtr);
    if (Train.Nomer!=-1)
    fprintf(writePtr,"%-6d%-13s%-13s%-10d%-6.1f%-13s%-10.2f%-5.2f\n", Train.Nomer,
           Train.Nameoftrain,Train.Endstation,Train.Freeplace,Train.Price,
           Train.Servicetype,Train.Starttime,Train.Goingtime);
  }
  fclose(writePtr);
  }
}
 
void newRecord(FILE *fPtr)
{ struct Ticket Train={0,"","",0,0.0,"",0.0,0.0};
  struct Ticket Marker={-1,"","",0,0.0,"",0.0,0.0};
  int Nomer;
  Nomer= Output(fPtr);
  printf("Enter Train Name= ");
  scanf("%s", &Train.Nameoftrain);
  printf("Enter Purpose Station= ");
  scanf("%s",&Train.Endstation);
  printf("Enter Free Place count= ");
  scanf("%d",(int)&Train.Freeplace);
  printf("Enter Ticket Price= ");
  scanf("%f",&Train.Price);
  printf("Enter Service Type= ");
  scanf("%s",&Train.Servicetype);
  printf("Enter Trains Start Time= ");
  scanf("%f",&Train.Starttime);
  printf("Enter Trains Going Time= ");
  scanf("%f",&Train.Goingtime);
  Train.Nomer=Nomer;
  fseek(fPtr,(Nomer-1)*sizeof(struct Ticket),SEEK_SET);
  fwrite(&Train,sizeof(struct Ticket),1,fPtr);
  fwrite(&Marker,sizeof(struct Ticket),1,fPtr);
}
 
 
[B]void Buying(FILE*fPtr)
{
  int i=0;
  int j=-1;
  char Nameoftrain[10];
  struct Ticket Train={0,"","",0,0.0,"",0.0,0.0};
  printf("Input Trains Name:");
  scanf("%s",Nameoftrain);
  while(Train.Nomer!=-1) {
       fseek(fPtr,(i)*sizeof(struct Ticket),SEEK_SET);
       fread(&Train,sizeof(struct Ticket),1,fPtr);
       if(Train.Nomer!=-1)
    if(strcmp(Train.Nameoftrain,Nameoftrain)==0)
    j=i;
       i++;
       }
  if(j!=-1)
    fseek(fPtr,(j)*sizeof(struct Ticket),SEEK_SET);
    Train.Freeplace=Train.Freeplace-1;
    fwrite(&Train,(j)*sizeof(struct Ticket),1,fPtr);
}[/B]
 
void Calculation(FILE *fPtr)
{
  int i=0;
  char Endstation[10];
  struct Ticket Train={0,"","",0,0.0,"",0.0,0.0};
  printf("Input Purpose Station:");
  scanf("%s",Endstation);
  printf("%-13s%-13s%-10s%-6s\n","Nameoftrain","Endstation","Freeplace","Price");
    while(Train.Nomer!=-1) {
       fseek(fPtr,(i++)*sizeof(struct Ticket),SEEK_SET);
       fread(&Train,sizeof(struct Ticket),1,fPtr);
       if(Train.Nomer!=-1)
    if(strcmp(Train.Endstation,Endstation)==0)
    printf("%-13s%-13s%-10d%-6.1f\n",Train.Nameoftrain,Train.Endstation,Train.Freeplace,Train.Price);
       }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2009, 22:52
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с базой данных (C++):

работа с базой данных - C++
Написать программу работы с базой данных. База хранится в оперативной памяти в виде структуры. Структура содержит набор переменных разного...

Работа с базой данных из консоли - C++
Доброго времени суток. Раньше никогда с БД не работал, а тут интересно стало, как все это работает. С обычным приложение все...

Работа с базой данных web - C++
Здравствуйте, уважаемые пользователи форума. Очень нужна ваша помощь. Требуется реализовать программу, работа которой по идее очень...

Работа с файлом и базой данных в C++ - C++
Нужно написать программу на C++, которая построчно берет информацию из текстового файла, после чего помещает ее в базу данных. Если у...

Работа с базой данных SQLITE3 [Русские символы] - C++
Здравствуйте. Есть программа: #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &quot;sqlite3.h&quot; int main() { sqlite3* db; ...

Работа с базой данных. Как заполнить таблицу? - C++
Добрый день. Как заполнить таблицу в бд(она уже создана.) Если не сложно приведите какой-нибудь исходник для наглядности. И литературу,...

1
Alexiski
Любитель давать советы
339 / 131 / 2
Регистрация: 12.01.2009
Сообщений: 511
19.02.2009, 23:37 #2
В этой строчке
C++
1
     fwrite(&Train,(j)*sizeof(struct Ticket),1,fPtr);
надо написать так:
C++
1
     fwrite(&Train,sizeof(struct Ticket),1,fPtr);
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2009, 23:37
Привет! Вот еще темы с ответами:

Работа с текстовым файлом как с базой данных - C++
привет всем. возник вот такой вопрос: есть некая база данных в текстовичке. нужно что бы с помощью программы по части известного,...

Работа с базой данных, содержащей записи со сведениями о студентах - C++
#include &quot;stdafx.h&quot; #include &lt;ctime&gt; #include &lt;stdlib.h&gt; #include &lt;fstream&gt; #include &lt;iostream&gt; using namespace std; ...

Работа с базой данных фильмов в виде текстового файла - C++
Нужна помощь!!!Создать программу для работы с базой данных фильмов в виде текстового файла. Записи в файле должны быть упорядочены в виде...

Работа с базой - C++
Всем привет мужики, сам я являюсь PHP программистом, но тут у меня возникла потребность написать прогу на Сях, именно его выбрал потому что...


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

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

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