Программа на Си база данных "касса автовокзала" - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Пожалуйста помогите с программой. Нужно создать базу данных касса автовокзала. В основном меню которого должно быть: 1)расписание автобусов(номер рейса,конечный промежуточный пункты,время отправления),2)количество свободных мест на каждом рейсе,3)ведомость(она включает в себя расписание автобусов,бронирование места по фамилии и по №места), 4)предворительная продажа и возврат билетов,5)удаление(удаление рейса и фамилии из бронированных),6)поиск(поиск по фамилии,поиск ближайшего рейса до заданного пункта при наличии свободных мест,по номеру рейса,по количеству свободных мест) 7)функция бронирования мест.Должна быть обязательно написана на СИ. Есть небольшие нароботки:
#include <stdio.h>
#include <string.h>
struct record
{int n;
int num;
char kon;
char nach;
char prom;
struct surname
 {char name[15];
  int u;}sur[50];
char bron[15];
char prod[15];
char time[5];
int free;
}reis[20];
int lastreis(void);
int lastmest(void);
int save(void);
int raspisanie(void);
int vedomost(void);
int input(void);
int redakt(void);
int udalenie(void);
int poisk(void);
int nom, i,k,l,m,j;
char pust[15];
 
FILE  *nach, *kon, *prom, *time, *free, *prod, *bron, *n, *num, *name;
 
void main()
{while(1)
{clrscr();
printf("1-ђ*бЇЁб**ЁҐ *ўв®Ўгб®ў\n");
printf("2-‚Ґ¤®¬®бвм\n");
printf("3-„®Ў*ў«Ґ*ЁҐ\n");
printf("4-ђҐ¤*ЄвЁа®ў**ЁҐ ўҐ¤®¬®бвЁ\n");
printf("5-“¤*«Ґ*ЁҐ\n");
printf("6-Ѓ«Ё¦*©иЁ© ३б\n");
printf("7-Џ®ЁбЄ\n");
printf("8-‚л室\n");
 
scanf("%d",&i);
switch(i)
{case 1:raspisanie();break;
case 2:vedomost();break;
case 3:input();break;
case 4:redakt();break;
case 5:udalenie();break;
case 6:blizh();break;
case 7: poisk();break;
case 8: return;
default: printf("ЌҐўҐа*® ўлЎа**® ¤Ґ©бвўЁҐ\n");
}
getch();
}}
 
lastreis()
{for(i=20;i>=0;i--)if(reis[i].n==0)k=i;}
lastmest()
{for(i=50;i>=0;i--)if(reis[nom].sur[i].n==0)l=i; }

raspisanie()
{printf("ђ*бЇЁб**ЁҐ *ўв®Ўгб®ў\n");
 lastreis();
 i=0;
 while(i<k)
 {printf("                              ђ*бЇЁб**ЁҐ *ўв®Ўгб®ў\n\n");
  printf("ЙНННЛНННННННННННЛННННННННННННННННННННЛНННННННННННННННННННЛННННННННННННННЛНННННННН»\n");
  printf("є N є*®¬Ґа ३б*є  Џг*Єв ®вЇа*ў«Ґ*Ёп єЏа®¬Ґ¦гв®з*л© Їг*ЄвєЉ®*Ґз*л© Їг*Євє  ‚аҐ¬п є\n");
  printf("МНННОНННННННННННОННННННННННННННННННННОНННННННННННННННННННОННННННННННННННОНННННННН№\n");
  printf("%d %d %s %s %s %s",reis[i].n, reis[i].num, reis[i].nach, reis[i].prom, reis[i].kon, reis[i].time);
 i++;
 }
getch();
}
 
vedomost()
{printf("‚Ґ¤®¬®бвм\n");
 lastreis();
 i=0;
 while(i<k)
 {printf("                            ‚Ґ¤®¬®бвм\n\n");
  printf("ЙНННЛНННННННННННЛННННННННННННННННННННЛНННННННННННННННННННЛННННННННННННННЛННННННННЛННННННННННННННННННННННЛНННННННННННЛННННННННННННННН»\n");
  printf("є N є*®¬Ґа ३б*є  Џг*Єв ®вЇа*ў«Ґ*Ёп єЏа®¬Ґ¦гв®з*л© Їг*ЄвєЉ®*Ґз*л© Їг*Євє  ‚аҐ¬п є Љ®«-ў® бў®Ў®¤*ле ¬Ґбвє  ”*¬Ё«Ёп  є  Ѓа®*Ёа®ў**ЁҐ є\n");
  printf("МНННОНННННННННННОННННННННННННННННННННОНННННННННННННННННННОННННННННННННННОННННННННОННННННННННННННННННННННОНННННННННННОННННННННННННННН№\n");
 printf("%d %d %s %s %s %s %d %s %s",reis[i].n, reis[i].num, reis[i].nach, reis[i].prom, reis[i].kon, reis[i].time, reis[i].free, reis[i].bron, reis[i].name);
lastmest();
 nom=i;
m=0;
while(m<l)
{printf("%d - %s", reis[nom].sur[m].n, reis[nom].sur[m].name);
m++;}
i++;
}
getch();}
 
save()
{lastreis();
clrscr();
printf("‘®еа**Ґ*®\n");
n=fopen("C:\\TC\\n.txt","wt");
num=fopen("C:\\TC\\num.txt","wt");
kon=fopen("C\\TC\\kon.txt","wt");
nach=fopen("C\\TC\\nach.txt", "wt");
prom=fopen("C:\\TC\\prom.txt","wt");
time=fopen("C:\\TC\\time.txt","wt");
free=fopen("C:\\TC\\free.txt","wt");
bron=fopen("C:\\TC\\bron.txt","wt");
name=fopen("C:\\TC\\name.txt","wt");
 
fprintf(num,"%d\n", reis[i].num);
fprintf(kon,"%s\n", reis[i].kon);
fprintf(nach,"%s\n", reis[i].nach);
fprintf(prom,"%s\n", reis[i].prom);
fprintf(time,"%d\n", reis[i].time);
fprintf(free,"%d\n", reis[i].free);
fprintf(bron,"%s\n", reis[i].bron);
fprintf(prod,"%s\n", reis[i].prod);
fprintf(name,"%s\n", reis[i].name);
 
fclose(FILE *n);
fclose(FILE *num);
fclose(FILE *kon);
fclose(FILE *nach, *prom, *time, *free, *bron, *name);

getch();
}
 
input()
{clrscr();
lastreis();
reis[k].n=reis[k-1].n+1; for(i=0;i<=k;i++)printf("*ҐўҐа*® §*¤** *®¬Ґа");
METKA1:
printf("‚ўҐ¤ЁвҐ *®¬Ґа ३б*\n");
scanf("%d",&reis[k].num);
if(reis[i].num==reis[k].num||reis[k].num<0){printf("ЌҐўҐа*л© *®¬Ґа ३б*\n"); goto METKA1;}
 
printf("‚ўҐ¤ЁвҐ Їг*Єв ®вЇа*ў«Ґ*Ёп");
scanf("%s",&reis[k].nach);
 
printf("‚ўҐ¤ЁвҐ Їа®¬Ґ¦гв®з*л© Їг*Єв");
scanf("%s",&reis[k].prom);
 
printf("‚ўҐ¤ЁвҐ Є®*Ґз*л© Їг*Єв");
scanf("%s",&reis[k].kon);
 
METKA2:
   j=0;
printf("‚ўҐ¤ЁвҐ ўаҐ¬п(а*§¤Ґ«пп ':')");
scanf("%s",&reis[k].time);
   if(reis[k].time[0]!='0'&&reis[k].time[0]!='1'&&reis[k].time[0]!='2')goto  METKA2;
   if(reis[k].time[0]=='0'||reis[k].time[0]=='1')
   {if(reis[k].time[1]!='0'&&reis[k].time[1]!='1'&&reis[k].time[1]!='2'&&reis[k].time[1]!='3'&&reis[k].time[1]!='4'&&reis[k].time[1]!='5'&&reis[k].time[1]!='6'&&reis[k].time[1]!='7'&&reis[k].time[1]!='8'&&reis[k].time[1]!='9')goto METKA2;}
   if(reis[k].time[0]=='2')
   {if(reis[k].time[1]!='0'&&reis[k].time[1]!='1'&&reis[k].time[1]!='2'&&reis[k].time[1]!='3')goto METKA2;}
   if(reis[k].time[2]!=':')goto METKA2;
   if(reis[k].time[3]!='0'&&reis[k].time[3]!='1'&&reis[k].time[3]!='2'&&reis[k].time[3]!='3'&&reis[k].time[3]!='4'&&reis[k].time[3]!='5')goto METKA2;
   if(reis[k].time[4]!='0'&&reis[k].time[4]!='1'&&reis[k].time[4]!='2'&&reis[k].time[4]!='3'&&reis[k].time[4]!='4'&&reis[k].time[4]!='5'&&reis[k].time[4]!='6'&&reis[k].time[4]!='7'&&reis[k].time[4]!='8'&&reis[k].time[4]!='9')goto METKA2;

METKA3:
printf ("‚ўҐ¤ЁвҐ Є®«ЁзҐбвў® бў®Ў®¤*ле ¬Ґбв");
scanf("%d",&reis[k].free);
if(reis[k].free<0){printf("‡*¤**® *ҐўҐа*®Ґ Є®«ЁзҐбвў® бў®Ў®¤*ле ¬Ґбв\n");goto METKA3;}
 
printf("Ѓа®*Ёа®ў*вм «Ё ¬Ґбв®?");
scanf("%s",&reis[k].bron);
 
nom=k;
l=0;
lastmest();
reis[k].sur[l].n=reis[k].sur[l-1].n+1;}

udalenie()
{lastreis();
 clrscr();
 printf("vvedite nomer reisa");
 scanf("%d",&i);
printf("%d %d %s %s %s %s %d %s %s",reis[i].n, reis[i].num, reis[i].nach, reis[i].prom, reis[i].kon, reis[i].time, reis[i].free, reis[i].bron, reis[i].name);
 printf("‚л ¤Ґ©б⢨⥫м*® е®вЁвҐ г¤*«Ёвм нв®в аҐ©б Ё§ бЇЁбЄ*? „*(1), ЌҐв(2)\n");
 scanf("%d",&l);
 switch(l)
{case 1:
 for(n=i;n<k;n++)
 {strcpy(reis[n].time,pust);
 strcpy(reis[n].nach,reis[n+1].nach);
 strcpy(reis[n].prom,reis[n+1].prom);
 strcpy(reis[n].kon,reis[n+1].kon);
 strcpy(reis[n].bron,reis[n+1].bron);
 reis[n].free=reis[n+1].free;
 reis[n].num=reis[n+1].num;
 reis[n].n=reis[n+1].n;
 for(l=0;l<50;l++)
 {reis[n].sur[l].n=reis[n+1].sur[l].n;
  strcpy(reis[n].sur[l].name,reis[n+1].sur[l].name);
 }
 }
 case 2:
 return 0;
 default:
 printf("ЌҐўҐа*® гЄ*§** *®¬Ґа ¤Ґ©бвўЁп\n");
}
printf("“¤*«Ґ*®\n");
getch();
}
 
poisk()
{char str[15];
 lastreis();
 clrscr();
 printf("by:\n *®¬Ґа ३б*(1), д*¬Ё«Ёп(2),ўаҐ¬п(3),**з*«м*л© Їг*Єв(4), Їа®¬Ґ¦гв®з*л© Їг*Єв(5), Є®*Ґз*л© Їг*Єв(6), бў®Ў®¤*ле ¬Ґбв(7),Ўа®*Ёа®ў**ЁҐ(8)\n");
 scanf("%d",&l);
 switch(l)
{case 1:
 {printf("*®¬Ґа ३б* "); scanf("%d",&m);
  for(i=0;i<k;i++)
  if(reis[i].num==m)
  printf("%d %d %s %s %s %s %d %s %s",reis[i].n, reis[i].num, reis[i].nach, reis[i].prom, reis[i].kon, reis[i].time, reis[i].free, reis[i].bron, reis[i].name);
 break;}
 
 case 2:
 {printf("”*¬Ё«Ёп: "); gets(str);
 
 for(i=0;i<k;i++)
 for(l=0;l<50;l++)
 if(strcmp(reis[i].sur[l].name,str)==0)
 printf("%d %d %s %s %s %s %d %s %s",reis[i].n, reis[i].num, reis[i].nach, reis[i].prom, reis[i].kon, reis[i].time, reis[i].free, reis[i].bron, reis[i].name);
break; }
case 3:
{printf("ўаҐ¬п: "); gets(str);
  for(i=0;i<k;i++)
  if(strcmp(reis[i].time,str)==0)
  printf("%d %d %s %s %s %s %d %s %s",reis[i].n, reis[i].num, reis[i].nach, reis[i].prom, reis[i].kon, reis[i].time, reis[i].free, reis[i].bron, reis[i].name);
 break;}
case 4:
 {printf("**з*«м*л© Їг*Єв: "); gets(str);
  for(i=0;i<k;i++)
  if(strcmp(reis[i].nach,str)==0)
  printf("%d %d %s %s %s %s %d %s %s",reis[i].n, reis[i].num, reis[i].nach, reis[i].prom, reis[i].kon, reis[i].time, reis[i].free, reis[i].bron, reis[i].name);
 break;}
 case 5:
 {printf("Їа®¬Ґ¦гв®з*л© Їг*Єв: "); gets(str);
  for(i=0;i<k;i++)
  if(strcmp(reis[i].prom,str)==0)
  printf("%d %d %s %s %s %s %d %s %s",reis[i].n, reis[i].num, reis[i].nach, reis[i].prom, reis[i].kon, reis[i].time, reis[i].free, reis[i].bron, reis[i].name);
 break;}
 case 6:
 {printf("Є®*Ґз*л© Їг*Єв: "); gets(str);
  for(i=0;i<k;i++)
  if(strcmp(reis[i].kon,str)==0)
  printf("%d %d %s %s %s %s %d %s %s",reis[i].n, reis[i].num, reis[i].nach, reis[i].prom, reis[i].kon, reis[i].time, reis[i].free, reis[i].bron, reis[i].name);
 break;}
 case 7:
 {printf("бў®Ў®¤*лҐ ¬Ґбв*: "); scanf("%d",&l);
  for(i=0;i<k;i++)
  if(reis[i].free==l)
  printf("%d %d %s %s %s %s %d %s %s",reis[i].n, reis[i].num, reis[i].nach, reis[i].prom, reis[i].kon, reis[i].time, reis[i].free, reis[i].bron, reis[i].name);
 break;}
 case 8:
 {printf("Ўа®*Ёа®ў**ЁҐ: "); gets(str);
  for(i=0;i<k;i++)
  if(strcmp(reis[i].bron,str)==0)
  printf("%d %d %s %s %s %s %d %s %s",reis[i].n, reis[i].num, reis[i].nach, reis[i].prom, reis[i].kon, reis[i].time, reis[i].free, reis[i].bron, reis[i].name);
 break;}
 case 9:
 return 0;
 default:
 printf("ЌҐўҐа*® гЄ*§** *®¬Ґа ¤Ґ©бвўЁп\n");
}
 getch();
}
 
redakt()
{char str[15];
 clrscr();
 printf("number reisa");
 scanf("%d",&i);
 printf("%d %d %s %s %s %s %d %s %s",reis[i].n, reis[i].num, reis[i].nach, reis[i].prom, reis[i].kon, reis[i].time, reis[i].free, reis[i].bron, reis[i].name);
 printf("familia(1), nach(2), kon(3), prom(4), time(5),free(6), bron(7),exit(8)\n");
 scanf("%d",&l);
 
switch(l)
{case 1:
 lastmest();
 printf("press old surname"); gets(str);
 for(j=0;j<l;j++)if(strcmp(reis[i].sur[j].name,str)==0)k=j;
 printf("press new surname\n"); gets(str);
 strcpy(reis[i].sur[j].name,pust);
 strcpy(reis[i].sur[j].name,str);
 
 case 2:
 printf("nach reis "); gets(str);
 strcpy(reis[i].nach,pust);
 strcpy(reis[i].nach,str);
 
 case 3:
 printf("prom reis"); gets(str);
 strcpy(reis[i].prom,pust);
 strcpy(reis[i].prom,str);
 
 case 4:
 printf("kon reis"); gets(str);
 strcpy(reis[i].kon,pust);
 strcpy(reis[i].kon,str);

 case 5:
 printf("time"); gets(str);
 strcpy(reis[i].time,pust);
 strcpy(reis[i].time,str);

 case 6:
 printf("free"); scanf("%d",&reis[i].free);
 case 7:
 printf("bron"); gets(str);
 strcpy(reis[i].bron,pust);
 strcpy(reis[i].bron,str);
 
 case 8:
 return 0;
 default:
 printf("ЌҐўҐа*® гЄ*§** *®¬Ґа ¤Ґ©бвўЁп\n");
}
printf("%d %d %s %s %s %s %d %s %s",reis[i].n, reis[i].num, reis[i].nach, reis[i].prom, reis[i].kon, reis[i].time, reis[i].free, reis[i].bron, reis[i].name);
getch();
}

Решение задачи: «Программа на Си база данных "касса автовокзала"»

textual
Листинг программы
lastreis()
{for(i=20;i>=0;i--)if(reis[i].n==0)k=i;}

Объяснение кода листинга программы

В данном коде выполняется поиск последнего элемента массива, у которого значение поля n равно нулю. Список действий:

  1. lastreis() - вызывает функцию с именем lastreis.
  2. for(i=20;i>=0;i--) - начинается цикл, который выполняется от i=20 до i=0 (в обратном порядке).
  3. if(reis[i].n==0) - выполняется проверка, равно ли значение поля n у элемента массива с индексом i нулю.
  4. k=i; - если условие выполняется, то переменной k присваивается значение i. В итоге, после выполнения всего цикла, в переменной k будет храниться индекс последнего элемента массива, у которого значение поля n равно нулю.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.25 из 5