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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2013, 16:16   #1
CppForYou
Пользователь
 
Регистрация: 08.03.2013
Сообщений: 37
По умолчанию сортировка слов в алфавитном порядке

Код:
/*Написать программу, которая выполняет следующие действия:
• вводит с клавиатуры данные в массив, состоящий из десяти структур; записи должны быть размещены по алфавиту;
• выводит на дисплей фамилии работников, чей стаж работы в организации превышает значение, введенное с клавиатуры;
• если таких работников нет, вывести на дисплей соответствующее сообщение.*/
 
#include <iostream>
#include<Windows.h>


void CheckToErorrs(int T,int a,int b)
{
    while(T > a || T < b)
    {
        std::cout << "Извините, нет такой команды" << std::endl;
        std::cout << "\tПовторите Ввод! (1, 2, 3)" << std::endl;
        std::cin >> T;
    }
}

struct WORKER 
{
    char surname[40]; // фамилия
    char name[40];    //имя
    char post[40];    // название занимаемой должности
    int date;   //дата поступления на работу
};
int main() 
{
    while(true)
    {
        SetConsoleCP(1251);
		SetConsoleOutputCP(1251);
        int t;
        int const N = 3; 
        int staj; 
        bool f = true; // это логическая переменная, f равно значение истинно
        WORKER mass[N]; // массив структур
		std::cout << "\n\t==========МЕНЮ========" << std::endl;
       	std::cout << "\t1.Ввод данных" << std::endl;
		std::cout << "\t2.Просмотр данных " << std::endl;
		std::cout << "\t3.Выход" << std::endl;
		std::cout << "\n\n";
		std::cout << "Выберите один из пунктов: ";
        std::cin >> t;
		system("cls"); // очистка экрана
        CheckToErorrs(t,3,1);
        if (t == 1) // если выбран первый пункт...
        {
            for( int i = 0; i < N; i++ ) // ... то заполняем массив структур (вводим данные)
            {
				std::cout << std::endl;
                std::cout << "Введите информацию о сотруднике №" << i+1 << "\n\n";
                std::cout << " Фамилия: ";    
                std::cin >> mass[i].surname; 
                std::cout << " Имя: "; 
				std::cin >> mass[i].name;
                std::cout << " Должность: "; 
				std::cin >> mass[i].post;
                std::cout << " Год поступление на работу: "; 
				std::cin >> mass[i].date;
				std::cout<<"\n";
			}
			std::cout << "Введите стаж работы в организации (текущий год 2013): ";
            std::cin >> staj;
			for (int i=0; i<N; i++)
	{
		for(int j=0; j<N; j++)
		{
			if(mass[i].surname[0] < mass[j].surname[0])
			{
				swap(mass[i], mass[j]);
			}
			else if(mass[i].surname[0] == mass[j].surname[0])
			{
				if(mass[i].surname[1] < mass[j].surname[1])
				{
					swap(mass[i], mass[j]);
				}
			}
		}
	}
			system("cls");
		}
		else if (t == 2) // если выбран второй пункт то читаем данные (см. ниже)
        {        
 
            std::cout << "\nФамилии работников, чей стаж работы в организации превышает " << staj << " лет:\n\n";
            for( int i = 0; i < N; i++ ) // цикл для поиска работников
            {
                if( (2013 - mass[i].date) > staj ) //если стаж работы превышает значение заданного пользователем...
                {
                    std::cout << mass[i].surname << std::endl; //то выводим на экран фамилии работников чей стаж работы превышает значение
                    f = false; // переменной f присваиваем значение ложь
                }
            }
			std::cout << "\n\n";
            if (false) // если истинно то выводит соответствующее сбщ и ожидание нажатия клавиши
                std::cout << "\nНЕТ ТАКИХ РАБОТНИКОВ!\n\n";
            system("pause");
			system("cls");
        }
        else if (t == 3) exit(0); // иначе если выбран третий пункт то закрываем консоль
	}
	system("pause");
    return 0;
}
нужно чтобы фамилии работников(чей стаж работы превышает) выводились в алфавитном порядке. как сделать?
CppForYou вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка слов в алфавитном порядке maxwel6064 Общие вопросы C/C++ 0 14.02.2013 18:29
string в паскале ( расставить 8 слов в алфавитном порядке) csdan1el Помощь студентам 6 19.12.2010 16:36
Вывод слов в алфавитном порядке. strem92 Фриланс 9 20.04.2010 22:10
Составить в алфавитном порядке список всех слов, встречающихся в тексте, и количество этих слов. KAPAHDAW Паскаль, Turbo Pascal, PascalABC.NET 2 17.02.2009 01:19