Форум: Форум C++Разное
Новые темы: 00
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Структуры в C++
 
 автор: ols   (27.09.2007 в 23:21)   письмо автору
 
 


#include <iostream>
using namespace std;
struct TRAIN { 
char name[20]; //переменная для имени
char date[50]; //переменная для времени отправления
char A[10]; //переменная для пункта назначений
char B[10]; // переменная для пункта прибытия
int number; // переменная для номера поезда
char cena; //переменная для определения стоимости билета
};

int main(){
TRAIN array[10]; // объявление массива структур array типа CHILD 
int k=0,n;
char C[10];
cout << "nazvanie punkta pribytiya="; cin>>C;
cout<<"n=";cin>>n; // ввод количества поездов
for(int i=0;i<n;i++){ 
cout<<"name: ";cin>>array[i].name; 
cout<<"date ";cin>>array[i].date; 
cout<<"A: ";cin>>array[i].A; 
cout<<"B: ";cin>>array[i].B;
cout<<"number: ";cin>>array[i].number;
cout<<"cena: ";cin>>array[i].cena;
}



for(i=0;i<n;i++){
if (array[i].B==C){ 
cout<<array[i].name<<" "<<array[i].date<<" "<<array[i].number<<endl,"\n";
}
else 
{

cout<<"Takih poezdov net!!!"<<endl;
}
}
 
return 0;}



С клавиатуры вожу данные в массив, состоящий из шести элементов типа TRAIN;
Затем на экран вывод информации о поездах, только тех, которые совпадают с названием маршрута введенного с клавиатуры.
Название пункта прибытия вводится здесь
char C[10];
cout << "nazvanie punkta pribytiya="; cin>>C;


А затем сравнивается в условии:

if (array[i].B==C){ 
cout<<array[i].name<<" "<<array[i].date<<" "<<array[i].number<<endl,"\n";
}
else 
{

cout<<"Takih poezdov net!!!"<<endl;

Только вот это условие не работает. Объясните как следует поступить?

  Ответить  
 
 автор: dima_s_d_s   (29.09.2007 в 11:58)   письмо автору
 
   для: ols   (27.09.2007 в 23:21)
 

Попробуй так


#include <iostream>
using namespace std;
struct TRAIN { 
char name[20]; //переменная для имени
char date[50]; //переменная для времени отправления
char A[10]; //переменная для пункта назначений
char B[10]; // переменная для пункта прибытия
int number; // переменная для номера поезда
char cena; //переменная для определения стоимости билета
};

int main(){
TRAIN array[10]; // объявление массива структур array типа CHILD 
int k=0,n;
char C[10];

cout<<"n=";cin>>n; // ввод количества поездов
for(int i=0;i<n;i++){ 
cout<<"name: ";cin>>array[i].name; 
cout<<"date ";cin>>array[i].date; 
cout<<"A: ";cin>>array[i].A; 
cout<<"B: ";cin>>array[i].B;
cout<<"number: ";cin>>array[i].number;
cout<<"cena: ";cin>>array[i].cena;
}
bool s=0;

cout << "nazvanie punkta pribytiya="; cin>>C;
for(i=0;i<n;i++){if (!strcmp(C,array[i].B))
{cout<<array[i].name<<" "<<array[i].date<<" "<<array[i].number<<endl,"\n"; s=1;}}
if (s==0) {cout<<"Таких пунктов нет";}
return 0;}

  Ответить  
 
 автор: ols   (01.10.2007 в 19:51)   письмо автору
 
   для: dima_s_d_s   (29.09.2007 в 11:58)
 

Странно. Когда выбриаю в переменую n больше 1,то когда второй раз(и.т.д) когда, следует в переменуу name ввеси значение, программа сразу перескакивает на date.
Потом еще после ввода всех значений сразу выводит что мол нет таких поездов вместо того чтобы предложить ввести это -
cout << "nazvanie punkta pribytiya="; cin>>C;

  Ответить  
 
 автор: dima_s_d_s   (01.10.2007 в 23:04)   письмо автору
 
   для: ols   (01.10.2007 в 19:51)
 

Всё должно работать, я проверял.

А ошибка может вызвана не соответствием типов данных что ты вводишь и что должны приниматься.

Напиши данные что ты ввёл.

  Ответить  
 
 автор: ols   (02.10.2007 в 19:30)   письмо автору
 
   для: dima_s_d_s   (01.10.2007 в 23:04)
 

Все работает. Спасибо!

//Подключаем необходимые библиотеки
#include <iostream>
#include <windows.h>
using namespace std;

// Функция для определения русской кодировки
char strdos[100];
char *dos (char strw[])
{
CharToOem (strw,strdos);
return strdos;
}

//Описываем структуру с именем TRAIN
struct TRAIN { 
char name[20];        //  переменная для имени
char date[50];       //   переменная для времени отправления
char A[10];         //    переменная для пункта назначений
char B[10];        //     переменная для пункта прибытия
int number;       //      переменная для номера поезда
int cena;        //       переменная для определения стоимости билета
};

int main(){
TRAIN array[10]; // объявление массива структур array типа TRAIN 
int k=0,n;
char C[10];

cout<<dos("Введите количесво поездов:");cin>>n; // ввод количества поездов
for(int i=0;i<n;i++){ 
cout<<dos("Название маршрута:");cin>>array[i].name; 
cout<<dos("Время отправления поезда:");cin>>array[i].date; 
cout<<dos("Место отправления:");cin>>array[i].A; 
cout<<dos("Пункт прибытия:");cin>>array[i].B;
cout<<dos("Номер маршрута поезда");cin>>array[i].number;
cout<<dos("Цена билета (в рублях)");cin>>array[i].cena;
}
bool s=0;

cout << dos("Название пункта прибытия="); cin>>C;
for(i=0;i<n;i++){if (!strcmp(C,array[i].B))
{cout<<array[i].name<<" "<<array[i].date<<" "<<array[i].number<<endl,"\n"; s=1;}}
if (s==0) {cout<<dos("Таких пунктов нет")<<endl;}
return 0;}

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования