Реализовать расписание авиарейсов. Доработать программу - C (СИ)
Формулировка задачи:
Реализовать расписание авиарейсов, в котором для каждого рейса указаны: пункт назначения, время вылета, продолжительность полета, количество свободных мест. Обеспечить сортировку записей по времени прибытия и поиск записей по наличию свободных мест.
Необходимо дополнять данные, вводимые раньше (здесь они затираются, при повторном вводе)
HEEEEELLLLLPPPP
#include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> #include <math.h> struct rasp { char punkt[20]; int time; int polet; int mest; }; void input(struct rasp *a); void output(struct rasp *a); void sortprib(struct rasp *a,int f); void poisk(struct rasp *a,int f); int vvod(struct rasp *a); void vivod(struct rasp *a,int f); void input(struct rasp *a) { printf("vvedite punkt naznachenia -> "); scanf("%s",&a->punkt); printf("vvedite vrema vileta -> "); scanf("%d",&a->time); printf("vvedite prodolzitelnost poleta -> "); scanf("%d",&a->polet); printf("vvedite kolichestvo cvobodnix mest ->"); scanf("%d",&a->mest); return; } void output(struct rasp *a) { printf("%s\t\t%d\t\t%d\t\t%d\n",a->punkt,a->time,a->polet,a->mest); return; } void sortprib(struct rasp *a,int f) { int i; struct rasp t; printf("\sortirovano po t pribitia\n"); for(i=1;i<f;i++) { while((a[i].time+a[i].polet)<(a[i-1].time+a[i-1].polet)) { t=a[i-1]; a[i-1]=a[i]; a[i]=t; if (i>1) i--; } } return; } void poisk(struct rasp *a,int f) { int i,j; printf("\npoisk cvobodnix mest\n"); printf("vvedite kol-vo cvobodnyx mest -> "); scanf("%d",&j); for(i=0;i<f;i++) { if (j<=a[i].mest) output(&a[i]); } return; } int vvod(struct rasp *a) { int i,f,c; f=1; for(i=0;i<f;i++) {input(&a[i]); printf("\nprodolzit ? 1-yes 0-no\n"); scanf("%d",&c); if (c==1) f++;} return f; } void vivod(struct rasp *a,int f) { int i; printf("Punkt Naznnia\tt vileta\tt poleta\tkolvo svobx mest\n"); for(i=0;i<f;i++) output(&a[i]); return; } void main(void) { struct rasp s[10]; int n,v; clrscr(); while(1) { printf("\n1. vvod dannih\n"); printf("2. sortirovka po t pribitia\n"); printf("3. poisk po nalichiy cvobodnix mest\n"); printf("4. vivod dannih\n"); printf("5. VIHOD\n"); printf("\n viberete deistvie:"); scanf("%d",&v); switch (v) { case 1:{n=vvod(s);break;} case 2:{sortprib(s,n);break;} case 3:{poisk(s,n);break;}; case 4:{vivod(s,n);break;}; case 5:{exit(1);} } } }
Решение задачи: «Реализовать расписание авиарейсов. Доработать программу»
textual
Листинг программы
#include "stdafx.h" #include <iostream> #include <string.h> using namespace std; class TCity{ public: char NameCity[50]; char NameCountry[50]; int KodCity; int KodCountry; TCity(); ~TCity(); }; class TFlight{ private: TCity* Avia; int n; int N; TCity Set1; TCity Set2; public: void PrintInfo(); bool IsLocal(); TCity* SetCity(); TCity* SetCity1(char* namecity1, char* country1, int kodcity1, int kodcountry1); TCity* SetCity2(char* namecity2, char* country2, int kodcity2, int kodcountry2); bool Check(char* namecity1, char* namecity2); TFlight(); TFlight(int a); ~TFlight(); }; TFlight::TFlight(){ n=0; N=100; Avia = new TCity[N]; } TFlight::TFlight(int a){ n=0; N=a; Avia = new TCity[N]; } TFlight::~TFlight(){ delete [] Avia; } TCity* TFlight::SetCity(){ if (n<N) { n++; return &(Avia[n-1]); } else return NULL; } TCity* TFlight::SetCity1(char* namecity1, char* namecountry1, int kodcity1, int kodcountry1){ TCity* e = SetCity(); if(e) { strcpy(e->NameCity, namecity1); strcpy(e->NameCountry, namecountry1); e->KodCity = kodcity1; e->KodCountry = kodcountry1; } return e; } TCity* TFlight::SetCity2(char* namecity2, char* namecountry2, int kodcity2, int kodcountry2){ TCity* f = SetCity(); if(f) { strcpy(f->NameCity, namecity2); strcpy(f->NameCountry, namecountry2); f->KodCity = kodcity2; f->KodCountry = kodcountry2; } return f; } bool TFlight::Check(char* namecity1, char* namecity2){ if((namecity1 = "\0") && (namecity2 = "\0")) return 0; else return 1; }
Объяснение кода листинга программы
- Создается класс TCity с полями NameCity, NameCountry, KodCity и KodCountry.
- Создается класс TFlight с полями Avia, n, N, Set1, Set2, а также методы PrintInfo, IsLocal, SetCity, SetCity1, SetCity2, Check и конструкторы TFlight и TFlight(int a).
- В конструкторе TFlight инициализируются поля n и N, а также выделяется память под массив Avia.
- В методе SetCity1(char namecity1, char namecountry1, int kodcity1, int kodcountry1) создается новый объект TCity и заполняются его поля.
- В методе SetCity2(char namecity2, char namecountry2, int kodcity2, int kodcountry2) создается новый объект TCity и заполняются его поля.
- В методе Check(char namecity1, char namecity2) проверяется пустота строк namecity1 и namecity2.
- Если оба строковых параметра пусты, то возвращается 0, иначе возвращается 1.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д