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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.09.2011, 22:34   #1
FelixXXI
Пользователь
 
Регистрация: 29.03.2010
Сообщений: 48
По умолчанию

Анннютик. Ты - лентяйка. У тебя уже всё есть, чтобы решить свою задачу, только желания нет. Наверное, не стоит поощрать такое отношение к программированию....впрочем, сам студентом был.
Код:
#include <windows.h>
#include <iostream>
#include <string.h>
using namespace std;

int main()
{
	SetConsoleCP (1251);
	SetConsoleOutputCP (1251);

	char kuda[30];//Промежуточные значения пунктов назначения
	int reis;     //при упорядочивании
	char airtype[10];

	int i,j;
	char punkt[30];//для ввода пункта назначения с клавиатуры

	struct AEROFLOT
	{
		char kudaletim[30];
		int nomerreisa;
		char planetype[10];
	};
	AEROFLOT Bort[7];

//вводим значения структуры AEROFLOT
	for (int i=0; i<=6; i++)
	{
		cout<<"Введите пункт назначения рейса "<<(i+1)<<" \n";
			cin>>Bort[i].kudaletim;
		cout<<"Введите номер рейса\n";
			cin>>Bort[i].nomerreisa;
		cout<<"Введите тип самолёта\n";
			cin>>Bort[i].planetype;
	}
//Упорядочивание по номерам рейса
	for( i=0; i<=5;i++)
		for( j=i+1; j<=6;j++)
			if(Bort[i].nomerreisa>Bort[j].nomerreisa)
			{
			    strcpy(kuda, Bort[i].kudaletim );//массивы строк сравниваются так!
				reis= Bort[i].nomerreisa;        //целые числа сравниваются так
				strcpy(airtype, Bort[i].planetype);
				strcpy(Bort[i].kudaletim, Bort[j].kudaletim);
				Bort[i].nomerreisa= Bort[j].nomerreisa;
				strcpy(Bort[i].planetype, Bort[j].planetype);
				strcpy(Bort[j].kudaletim, kuda);
				Bort[j].nomerreisa=reis;
				strcpy(Bort[j].planetype , airtype);
			}
//Вывод упорядоченных по номерам рейса данных
	cout<<"-Пункт назначения-    -№ рейса-   -тип самолёта-\n";
	for(int i=0; i<=6;i++)
         cout<<Bort[i].kudaletim<<"  "<<Bort[i].nomerreisa<<"  "<<Bort[i].planetype<<"\n";
//Вывод рейсов, летящих до введённого пункта назначения
	metka:int z;
	z=0;
	cout<<"Введите пункт назначения\n";
	cin>>punkt;
	for(int i=0; i<=6;i++)
		if(strcmp(Bort[i].kudaletim,punkt)==0)
		{
		cout<<Bort[i].kudaletim<<"  "<<Bort[i].nomerreisa<<"  "<<Bort[i].planetype<<"\n";
		z=1;	
		}	

	if(!z) cout<<"Рейсов по вашему запросу не найдено\n\n";

	cout<<"Хотите ввести другой Пункт назначения?\n";
	cout<<" Если да, введите - yes; если нет, введите - что угодно \n";
	char qwert[]="yes";
	char qwe[30];
	cin>>qwe;
	if(strcmp(qwe,qwert)==0) goto metka;

	return 0;
}
FelixXXI вне форума Ответить с цитированием
Старый 11.09.2011, 00:12   #2
Анннютик
Пользователь
 
Регистрация: 02.08.2011
Сообщений: 18
По умолчанию СТРУКТУРЫ

Всем привет! Надо чуть переделать код, у меня есть подобная задача с ответом, но там записи упорядочены по НАЗВАНИЯМ ПУНКТОВ и выводит на экран названия по ТИПУ РЕЙСА, а назо бы как этой задачке:
Описать структуру с именем AEROFLOT, содержащую следующие поля:
- название пункта назначения рейса;
- номер рейса;
- тип самолета.
Написать программу, выполняющую следующие действия:
- ввод с клавиатуры данных в массив, состоящий из семи элементов типа AEROFLOT; записи
должны быть упорядочены по возрастанию номера рейса;
- вывод на экран номеров рейсов и типов самолетов, вылетающих в пункт назначения, название
которого совпало с названием, введенным с клавиатуры;
- если таких рейсов нет, выдать на дисплей соответствующее сообщение.


Код:
#include <string.h>
#include <stdio.h>
#include <stdlib.h>

typedef struct
{
    char NameReice[30];
    int NumReice;
    int TypeSamolet;
} AEROFLOT;

AEROFLOT a[3];


int less(const void* a1,const void* a2)
{
    AEROFLOT * pa1=a1;
    AEROFLOT * pa2=a2;
    return strncmp((*pa1).NameReice, (*pa2).NameReice,30);

}

int main()
{


    int i,t,z;
    printf("Ввод 3 элементов массива \n");
    for(i=0; i<3; i++)
    {
        printf("%d. Ввод названия рейса: ",i+1);
        scanf("%s",&(a[i].NameReice));

        printf("%d. Ввод номера рейса: ",i+1);
        scanf("%d",&(a[i].NumReice));

        printf("%d. Ввод номер типа самолета: ",i+1);
        scanf("%d",&(a[i].TypeSamolet));

    }

    qsort(a,3,sizeof(AEROFLOT),less);

    printf("Вывод 3 элементов массива \n");
    for(i=0; i<3; i++)
    {
        printf("%d. Названия рейса: %s \n",i+1,a[i].NameReice) ;
        printf("%d. Номера рейса:%d  \n",i+1,a[i].NumReice);
        printf("%d. Номер типа самолета:%d \n",i+1, a[i].TypeSamolet);


    }

    printf("Введите номер типа  самолета: ");
    scanf("%d",&t);
    printf("Список самолетов типа %d : \n",t);
    z=0;
    for(i=0; i<3; i++)
    {
        if(t==a[i].TypeSamolet)
        {
            z=z+1;
            printf("%d. Названия рейса: %s \n",i+1,a[i].NameReice) ;
            printf("%d. Номера рейса:%d  \n",i+1,a[i].NumReice);
            printf("%d. Номер типа самолета:%d \n",i+1, a[i].TypeSamolet);

        }
    }

    if(z==0)
        printf("Нет рейсов с таким типом самолета");
    return 0;
}
Анннютик вне форума Ответить с цитированием
Старый 11.09.2011, 11:18   #3
Анннютик
Пользователь
 
Регистрация: 02.08.2011
Сообщений: 18
По умолчанию

Да, да..Совсем разленилась ((( Спасибочки=*
Анннютик вне форума Ответить с цитированием
Старый 19.02.2012, 17:41   #4
~Sл@\/яH~
Пользователь
 
Регистрация: 19.11.2011
Сообщений: 35
По умолчанию

Код:
strcpy(kuda, Bort[i].kudaletim );//массивы строк сравниваются так!
				reis= Bort[i].nomerreisa;        //целые числа сравниваются так
				strcpy(airtype, Bort[i].planetype);
				strcpy(Bort[i].kudaletim, Bort[j].kudaletim);
				Bort[i].nomerreisa= Bort[j].nomerreisa;
				strcpy(Bort[i].planetype, Bort[j].planetype);
				strcpy(Bort[j].kudaletim, kuda);
				Bort[j].nomerreisa=reis;
				strcpy(Bort[j].planetype , airtype);
Первые 2 строчки я понял, а остальные можно пояснить пожалуйста. Я понял что тут строки копируются, понять не могу как оно работает.
~Sл@\/яH~ вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структуры JulLy Общие вопросы C/C++ 2 31.01.2010 17:04
Структуры ddr9225 Общие вопросы C/C++ 10 14.01.2010 16:52
Структуры Shadovv13 Общие вопросы C/C++ 18 15.10.2009 23:03
Структуры. Влад-mego Помощь студентам 1 12.04.2009 19:24