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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Порядок объявления библиотек? http://www.cyberforum.ru/cpp-beginners/thread23743.html
Начал изучать С++ и столкнулся с такой проблемой: в книгах пишут, что при использовании класса string его надо явно объявлять, но у меня все работает и без объявления :scratch: Залез на...
C++ Двумерные массивы : найти сумму 1ого и 2ого массивов и записать их в третий Даны два двумерных массива(различных между собой) размерностью N*M, найти сумму 1ого и 2ого массивов и записать их в третий. Третий массив упорядочить по строкам по возрастанию. (третий массив... http://www.cyberforum.ru/cpp-beginners/thread23738.html
директива препроцессора C++
Не получается запустить простенькую программу на С++ Borland,вроде сделал все как надо,но выдает ошибку что не может подключиться к библиотеке.В программе используется директива...
C++ Генератор 2D кодов
Помогите написать генератор на С++, который формирует 2D коды.:help::help:
C++ Дано натуральное число. Найти сумму последних "n" цифр "n" числа, не применяя переменых значений http://www.cyberforum.ru/cpp-beginners/thread23715.html
Здравствуйте, помогите написать две программы. 1) Дано натуральное число. Найти сумму последних "n" цифр "n" числа, не применяя переменых значений. 2) Дано два натуральных числа "m" и "n". Найти...
C++ Функции с переменным числом параметров функции с переменным числом параметров в качестве параметра форматная строка,как задать это дело в Cи и что можно сказать преподу подробнее

Показать сообщение отдельно
azat20
0 / 0 / 0
Регистрация: 19.02.2009
Сообщений: 4

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

19.02.2009, 22:52. Просмотров 1201. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru