Программа на Си база данных "касса автовокзала" - 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
равно нулю.
Список действий:
- lastreis() - вызывает функцию с именем
lastreis
. - for(i=20;i>=0;i--) - начинается цикл, который выполняется от i=20 до i=0 (в обратном порядке).
- if(reis[i].n==0) - выполняется проверка, равно ли значение поля
n
у элемента массива с индексом i нулю. - k=i; - если условие выполняется, то переменной
k
присваивается значение i. В итоге, после выполнения всего цикла, в переменнойk
будет храниться индекс последнего элемента массива, у которого значение поляn
равно нулю.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д