Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.01.2012, 23:45   #1
Vally
Пользователь
 
Регистрация: 28.12.2011
Сообщений: 11
По умолчанию описание структуры(С++)

Всем привет! Есть вот такое задание:
1. Описать структуру с именем , содержащую
следующие поля:
NAZN — название пункта назначения;
NUMR — номер поезда;
TIME — время отправления.
2. Написать программу, выполняющую следующие
действия:
ввод с клавиатуры данных в массив , состоящий
из восьми элементов типа TRAIN; записи должны быть
размещены в алфавитном порядке по названиям пунктов
назначения;
вывод на экран информации о поездах,
отправляющихся после введенного с клавиатуры времени;
если таких поездов нет, выдать на дисплеи
соответствующее сообщение.

Вот что у меня получилось,но с ошибками(( Выводит на экран странные знаки в некоторых частях и сообщает об ошибке.Пожалуйста, помогите разобраться в этих ошибках,буду очень признательна и благодарна)))Заранее спасибо!)
Код:

#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <string.h>
#include <locale.h>

using namespace std;

const int n = 3;  //Число элементов массива
 
struct TRAIN { //Структура
 char NAZN [21];
 unsigned int NUMR;
 char TIME [2];
};
 
void Copy (TRAIN &pest, TRAIN bust)  //Вспомогательная функция для сортировки (копирование данных из src в dest)
{
	
 strcpy (pest.NAZN, bust.NAZN);
 strcpy (pest.TIME, bust.TIME);
 pest.NUMR = bust.NUMR;
}
 
int main(void)
{
 setlocale(LC_ALL,"Russian");
 TRAIN RASP[n];
 int i = 0;
 for (i=0; i<n; i++) { //Ввод данных
  cout << "Введите название пункта: ";
  cin >> RASP[i].NAZN;
  cout << "Введите номер поезда: ";
  cin >> RASP[i].NUMR;
  cout << "Введите время отправки: ";
  cin >> RASP[i].TIME;

  cout<<"----\n";
 };
 
 
 TRAIN buf;
 int k; 
 for (i=0; i<n-1; i++)
  for (k=0; k<n-1; k++)
   if (strcmp (RASP[k].NAZN, RASP[k+1].NAZN)>0) 
   {
    Copy (buf, RASP[k]);
    Copy (RASP[k], RASP[k+1]);
    Copy (RASP[k+1], buf);
   }
 
 char vremay [2]; 
 cout << "Введите время: ";
 cin >> vremay;
 bool f = false; //Флаг (найден ли хоть один)
 for (i=0; i<n; i++)

  if (strcmp (RASP[i].TIME, vremay)>0) { //Вывод информации при совпадениях
   cout <<'\n'<< "Поезд "<< RASP[i].NAZN <<" № " << RASP[i].NUMR << " время " << RASP[i].TIME;
   f = true;
  };
 if (!f) cout << "Таких поездов нет"; //Сообщение при отсутствии необходимых данных
 

 _getch();
 return 0;

 }
Vally вне форума Ответить с цитированием
Старый 06.01.2012, 11:38   #2
MooNDeaR
В стагнации
Участник клуба
 
Аватар для MooNDeaR
 
Регистрация: 29.07.2011
Сообщений: 1,303
По умолчанию

Код:
 if (strcmp (RASP[i].TIME, vremay)>0) { //Вывод информации при совпадениях
   cout <<'\n'<< "Поезд "<< RASP[i].NAZN <<" № " << RASP[i].NUMR << " время " << RASP[i].TIME;
   f = true;
  };
Насколько мне помнится, strcmp() выдает 0, когда строки равны.

Код:
setlocale(LC_ALL,"Russian");
скорей всего вся беда с каракулями из-за этого. Эта функция позволяет выводить в консоль символы Win-1251, но когда вы считываете названия с помощью cin в массив забиваются символы в кодировке ASCII. Рекомендую написать маленькую ф-ю по переводу кодировок. (хотя вроде бы где-то и стандартная была, но я не помню как называется)
E-mail: pashaworking@gmail.com | ICQ: 479914426 | Skype: moondearr
Понять, чего от тебя требует заказчик – это уже половина всей работы, а иногда и полностью выполненное задание.

Последний раз редактировалось MooNDeaR; 06.01.2012 в 11:40.
MooNDeaR вне форума Ответить с цитированием
Старый 08.01.2012, 23:59   #3
Vally
Пользователь
 
Регистрация: 28.12.2011
Сообщений: 11
По умолчанию

Спасибо большое за подсказку!)) Программу исправила,работает. А вот за разную кодировку как-то не подумала сразу,ну да ладно что-нибудь придумаю)
Vally вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Описание куба Godsmack2007 Паскаль, Turbo Pascal, PascalABC.NET 0 16.06.2011 20:16
Описание структуры данных n-арного (k-ичного) дерева Gonzo Общие вопросы Delphi 10 23.09.2010 08:05
СИ. Списки. Описание структуры односвязного списка Jane-sad Помощь студентам 9 17.05.2010 14:40
Описание к программе May7768 Помощь студентам 0 12.05.2010 17:52
[C++] Описание структуры TORT sasha20666 Помощь студентам 3 31.10.2009 17:52