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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 11.05.2009, 20:23   #1
grewnica
Новичок
Джуниор
 
Регистрация: 11.05.2009
Сообщений: 2
По умолчанию структуры. не получается сортировка.

описать структуру с именем train, содержащую след. поля:
1)название пункта назначения
2)номер поезда
3)время отправления
написать программу, выполняющую след. действия:
1)ввод с клавиатуры данных в массив, состоящий из 8 элементов типа train, записи должны быть размещены в алфавитном орядке по названиям пунктов назначения
2)вывод на экран информации о поездах, отправляющихся после введенного с клавы времени
3)если таких нет, выдать соответствующее сообщение
grewnica вне форума
Старый 11.05.2009, 20:23   #2
grewnica
Новичок
Джуниор
 
Регистрация: 11.05.2009
Сообщений: 2
По умолчанию

вот код:
Код:
#include <iomanip.h>
#include <windows.h>
#include <conio.h>
 
char bufRus[256];
 
char *Rus(const char *text)
{
        CharToOem(text,bufRus);
        return bufRus;
}
 
struct TRAIN
{
        char punkt[10];
        int  number;
        int  time[2];
};
 
int main()
{
//-----------Введение данных о маршруте----------------------------------------------------------------
        const int n = 8;
        TRAIN tran[n];
 
        for(int i = 0; i < n; i++)
        {
                system("cls");
                cout << Rus("Введите пункт назначения:");
                cin  >> tran[i].punkt;
 
                cout << Rus("Введите номер маршрута:");
                cin  >> tran[i].number;
 
                cout << Rus("Введите через пробел часы и минуты времени отправления:");
                cin  >> tran[i].time[0] >> tran[i].time[1];
        }
//------------Сортировка масива структур--------------------------------------------------------------
        for ( i=0 ; i<n-1 ; i++) 
        {
                int imin = i;
                for (int j = i ; j<n ;j++)
                {
                        
                        for(int k = 0; ((tran[j].punkt[k] != 0) || (tran[imin].punkt[k] !=0)); k++)
                        {
                                if (tran[j].punkt[k] < tran[imin].punkt[k])
                                {
                                        imin = j;       
                                        break;
                                }
                        }
                }
 
                TRAIN tranVr = tran[i];
                tran[i] = tran[imin];
                tran[imin] = tranVr;
        }
//-------------------Вывод данных о маршруте-------------------------------------------------------------
        system("cls");
        cout << setfill('-') << setw(59) <<endl << setfill(' ');
        
        cout << Rus("| Номер маршрута   ");
        cout << Rus("| Пункт назначения ");
        cout << Rus("| Время отпавления |") << endl; 
        
        cout << setfill('-') << setw(59) <<endl << setfill(' ');
        
        for(i = 0; i < n; i++)
        {
                cout << '|' << setw(18) << tran[i].number << '|'
                         << setw(18) << tran[i].punkt  << '|'
                         << setw(15) << tran[i].time[0] << ':' << setw(2) << setfill('0') << tran[i].time[1] << '|' << endl;
 
                cout << setfill('-') << setw(59) <<endl << setfill(' ')  ;
        }
        getch();
//---------Вывод номеров по заданному времени--------------------------------------------------------------
 
        int time_vr[2];
 
        cout << Rus("Введите время отправления через пробел: ");
        cin  >> time_vr[0] >> time_vr[1];
 
        system("cls");
        cout << setfill('-') << setw(59) <<endl << setfill(' ');
        
        cout << Rus("| Номер маршрута   ");
        cout << Rus("| Пункт назначения ");
        cout << Rus("| Время отпавления |") << endl; 
        
        cout << setfill('-') << setw(59) <<endl << setfill(' ');
        
        bool bla = false;
        for(i = 0; i < n; i++)
        {
                if(time_vr[0] < tran[i].time[0])
                {
                        cout << '|' << setw(18) << tran[i].number << '|'
                                 << setw(18) << tran[i].punkt  << '|'
                                 << setw(15) << tran[i].time[0] << ':' << setw(2) << setfill('0') << tran[i].time[1] << '|' << endl;
 
                        cout << setfill('-') << setw(59) <<endl << setfill(' ')  ;
                        bla = true;
                }
                else if(time_vr[0] == tran[i].time[0])
                {
                        if(time_vr[1] < tran[i].time[1])
                        {
                                cout << '|' << setw(18) << tran[i].number << '|'
                                         << setw(18) << tran[i].punkt  << '|'
                                         << setw(15) << tran[i].time[0] << ':' << setw(2) << setfill('0') << tran[i].time[1] << '|' << endl;
 
                                cout << setfill('-') << setw(59) <<endl << setfill(' ')  ;
                                bla = true;
                        }
                }
        }
 
        if(bla == false)
        {
                system("cls");
                cout << Rus("Поездов, отправляющихся после заданного времени нет!") << endl;
        }
 
        getch();
        return 0;
}

Последний раз редактировалось MaTBeu; 12.05.2009 в 20:09.
grewnica вне форума
Старый 12.05.2009, 14:49   #3
korel
 
Аватар для korel
 
Регистрация: 07.05.2009
Сообщений: 4
По умолчанию Посмотри, вроде так.

Код:
#include "stdafx.h"
#include<string.h>
#include<iostream>
using namespace std;

const int Quontity=8;
const int StrLen=10;

struct Train
{
	char *TrainPunkt;
	int TrainNumber;
	int TrainTime;
}Trains[Quontity];

void Input(Train &obj)
{
	obj.TrainPunkt=new char[StrLen];
	cin>>obj.TrainPunkt;
	cin>>obj.TrainNumber;
	cin>>obj.TrainTime;
}

void Delete(Train &obj)
{
	delete []obj.TrainPunkt;
}

void Sort(Train obj[])
{	
	for(int i=0;i<Quontity-1;i++)
	{
		int MinIndex=i;
		for(int j=i+1;j<Quontity;j++)
		{
			if(strcmp(obj[j].TrainPunkt,obj[MinIndex].TrainPunkt)<0)
				MinIndex=j;
		}
		if(MinIndex==i)
			continue;
		else
		{
			char temp[StrLen];
			strcpy(temp,obj[MinIndex].TrainPunkt);
			strcpy(obj[MinIndex].TrainPunkt,obj[i].TrainPunkt);
			strcpy(obj[i].TrainPunkt,temp);
		}
	}
}

void Show(Train obj)
{
	cout<<obj.TrainPunkt<<"\n"
		<<obj.TrainNumber<<"\n"
		<<obj.TrainTime<<"\n";
}

int _tmain(int argc, _TCHAR* argv[])
{
	for(int i=0;i<Quontity;i++)
		Input(Trains[i]);
	Sort(Trains);
	for(int i=0;i<Quontity;i++)
		Show(Trains[i]);
	for(int i=0;i<Quontity;i++)
		Delete(Trains[i]);
	return 0;
};)
Цитата:
-----------------------------------------------------------------------------
Стремитесь к простоте настолько, насколько это возможно, но не более того.

Последний раз редактировалось MaTBeu; 12.05.2009 в 20:09.
korel вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка Шелла и Шейкер-сортировка AleksandrMakarov Паскаль, Turbo Pascal, PascalABC.NET 11 11.03.2012 12:18
Структуры. Сортировка по фамилии студента. STS_1991 Помощь студентам 3 09.05.2009 12:14
не получается сортировка кто знает помогите Droid Общие вопросы Delphi 5 23.05.2008 07:28
Не получается..... Delpher HTML и CSS 2 25.12.2007 13:17