+ Ответить в теме
Показано с 1 по 2 из 2

Тема: Вывести информацию о рейсах, которыми можно воспользоваться для прибытия в пункт назн

  1. #1
    ПашаПетрович is on a distinguished road
    Регистрация
    26.12.2017
    Адрес
    Minsk
    Сообщений
    1
    Вес репутации
    0

    Question Вывести информацию о рейсах, которыми можно воспользоваться для прибытия в пункт назн

    Условие:
    В справочной автовокзала хранится расписание движения автобусов. Для каждого рейса указаны:
    - номер рейса;
    - тип автобуса;
    - пункт назначения; - время отправления;
    - время прибытия на конечный пункт;


    Вывести информацию о рейсах, которыми можно воспользоваться для прибытия в пункт назначения раньше заданного времени. .


    Мой код:

    Код :
    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. #include <string.h>
    4. #include <conio.h>
    5. //#include <iostream.h>
    6. #include  <locale.h>
    7. #include <iostream>
    8.  
    9. using namespace std;
    10.  
    11. struct Spisok
    12. {
    13.     char Nomer[20];
    14.     char Tip[10];
    15.     char punkt[20];
    16.     char timeO[20];
    17.     char timeP[20];
    18.  
    19. }*sved;
    20.  
    21. void Vvod(int nom, struct Spisok*sved)
    22. {
    23.     setlocale(LC_ALL, "RUS");
    24.     printf("\n Введите сведения %d", (nom + 1));
    25.     puts("\n Номер рейса  -");
    26.     fflush(stdin);
    27.     gets_s(sved->Nomer);
    28.     puts("Тип автобуса -");
    29.     fflush(stdin);
    30.     gets_s(sved->Tip);
    31.     puts("Пункт назначения: -");
    32.     fflush(stdin);
    33.     gets_s(sved->punkt);
    34.     puts("Время отправления -");
    35.     fflush(stdin);
    36.     gets_s(sved->timeO);
    37.     puts("Время прибытия на конечный пункт -");
    38.     fflush(stdin);
    39.     gets_s(sved->timeP);
    40.  
    41. }
    42. FILE *Fzap;
    43. int main(){
    44.     setlocale(LC_ALL, "RUS");
    45.     struct Spisok Avto[80];
    46.     int i, N, size = sizeof(Spisok);
    47.     char tr = sizeof(Spisok);
    48.     system("cls"); Fzap = fopen("myf.dat", "wb");
    49.     puts("\n Введите количество < 50");
    50.     scanf_s("%d", &N);
    51.     for (i = 0; i < N; i++){
    52.         Vvod(i, &Avto[i]);
    53.         fwrite(&sved, size, 1, Fzap);
    54.     }
    55.     /* END of FOR */
    56.     fclose(Fzap);
    57.     Fzap = fopen("myf.dat", "rb"); /*  читать из файла  */
    58.     if (!Fzap) { puts("can’t open it!"); exit(1); }
    59.  
    60.     puts("\n Список автобусов :");
    61.     for (i = 0; i < N; i++){
    62.         fread(&sved, 1, size, Fzap);
    63.         printf("\n %10s %10s %10s %10s %10s", Avto[i].Nomer, Avto[i].Tip, Avto[i].punkt, Avto[i].timeO, Avto[i].timeP);
    64.     }
    65.  
    66.  
    67.     puts("\n Vvedi vrema ");
    68.     fflush(stdin);
    69.     char tr;
    70.     cin >> tr;
    71.     if (tr > Avto[i].timeP){
    72.         for (i = 0; i < N; i++){
    73.             fread(&sved, 1, size, Fzap);
    74.             printf("\n %10s %10s %10s %10s %10s", Avto[i].Nomer, Avto[i].Tip, Avto[i].punkt, Avto[i].timeO, Avto[i].timeP);
    75.         }
    76.  
    77.         fclose(Fzap);
    78.         printf("\n");
    79.         system("pause");
    80.         return 0;
    81.     }

    Все вроде бы работает, а вот это не верно:
    Код :
    1. puts("\n Vvedi vrema ");
    2.     fflush(stdin);
    3.     char tr;
    4.     cin >> tr;
    5.     if (tr > Avto[i].timeP){
    6.         for (i = 0; i < N; i++){
    7.             fread(&sved, 1, size, Fzap);
    8.             printf("\n %10s %10s %10s %10s %10s", Avto[i].Nomer, Avto[i].Tip, Avto[i].punkt, Avto[i].timeO, Avto[i].timeP);
    9.         }
    10.  
    11.         fclose(Fzap);
    12.         printf("\n");
    13.         system("pause");
    14.         return 0;
    15.     }

    как быть, помогите исправить пожалуйста

  2. По умолчанию

     
    Хотите избавиться от рекламы? Зарегистрируйтесь
  3. #2
    Moderator Куратор
    system architect
    Romeo is on a distinguished road Аватар для Romeo
    Регистрация
    02.03.2004
    Адрес
    Крым, Севастополь
    Возраст
    36
    Сообщений
    3,089
    Вес репутации
    21

    По умолчанию Re: Вывести информацию о рейсах, которыми можно воспользоваться для прибытия в пункт

    Проблема у тебя начинает ещё раньше, при записи в файл. Переменная sved - это указатель на Spisok, правильно? Тогда &sved - это адрес указателя на список. Чего ты хочеть добиться, записывая адрес указателя (а не сами данные)? Более того, указатель ничем не инициализирован, так что он хранит просто ноль (все статические переменные инициализированы нулём по стандарту). Ты записываешь в файл ноль, а так же ещё какой-то мусор, который следует по памяти за переменной, так как sizeof(Spisok) однозначно больше, чем размер указателя.

    С чтением та же фигня.

    Я вообще не понимаю зачем тебе эта переменная-указатель. Ты читаешь данные в массив Auto, так и записывай/читай его элементы.

    И ещё совет. Обязательно записывай N, чтобы при чтении его не нужно было вводить снова, а можно было просто вычитать из файла. Ты что не понимаешь, что если первый и второй раз ввести разные N, то программа упадёт?
    Entites should not be multiplied beyond necessity @ William Occam
    ---
    Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
    ---
    Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.

+ Ответить в теме

Похожие темы

  1. Можно ли узнать информацию о системе исп. JS?
    Можно ли узнать информацию о системе исп. JS? исходя из, http://www.***.ru/.. можно ли используя JS узнать серийные номера( win OS ): 1. ...
    от mirat в разделе JScript, VBScript, DHTML...
  2. Помогите решить задачу.Вывести число A. Вывести его модуль.
    Помогите решить задачу на паскале: Вывести число A. Вывести его модуль. Заранее спасибо!
    от eSeth в разделе задачи на Паскале и Delphi
  3. Создать пункт меню
    Можно ли добавить в меню, вызываемое щелчком правой клавиши на ячейке, созданный в формах календарь?
    от Asya в разделе MS Office и VB(A).
  4. Пункт меню активный в опреденных документах
    Как сделать пункт меню (CommandBars.Item(...).Controls.Item.....) таким, чтобы он был доступен (Enable or Visible) только в определенных документах,...
    от Sokl в разделе MS Office и VB(A).
  5. Свой пункт в контекстном меню на папке...
    Поиогите! Как написать программу, чтобы в контекстном меню на любой папке появлялся новый пункт, при нажатии на который в этой папке создавался бы...
    от TimXP в разделе Win API, Shell..

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения