Страница 1 из 1

нужно составить меню к программе

Добавлено: 23 мар 2013, 05:29
Respected

Код: Выделить всё

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

#include <iostream>
using namespace std;

struct WORKER 
{
    char surname[40]; 
    char name[40];    
    char post[40];    
    int date;   
};
int main() 
{
    setlocale(LC_ALL, "rus"); 
    int const N = 10; 
    int staj;
    bool f = true; 
    WORKER mass[N]; 
    for( int i = 0; i < N; i++ ) 
    {
        cout << "Введите информацию о сотруднике №" << i+1 << "\n\n";
        cout << " Фамилия: ";    
        cin >> mass[i].surname; 
        cout << " Имя: "; 
	cin >> mass[i].name;
        cout << " Должность: "; 
	cin >> mass[i].post;
        cout << " Год поступление на работу: "; 
	cin >> mass[i].date;
	cout<<"\n";

    }
    cout << "Введите стаж работы в организации (текущий год 2013): ";
    cin >> staj;

    cout << "\nФамилии работников, чей стаж работы в организации превышает " << staj << " лет:\n\n";
    for( int i = 0; i < N; i++ ) 
    {
        if( (2013 - mass[i].date) > staj )
        {
            cout << mass[i].surname << endl;
            f = false;
        }
    }
    if(f)
        cout << "\nНет таких людей." << endl;
    system("pause");
    return 0;
}
хотел сделать меню данной программе, никак не могу это сделать. в общем нужно что бы меню состоялось из 3-х пунктов: 1) заполнение данных; 2) чтение данных; 3) выход.
буду очень рад если кто откликнется!

Re: нужно составить меню к программе

Добавлено: 23 мар 2013, 16:23
Albor
Для начала нужно разбить программу на соответствующие функции, затем запустить бесконечный цикл, где будет диалог с пользователем. Примерно так:

Код: Выделить всё

#include <iostream>
#include <windows.h>

using namespace std;

void showMenu()
{
	system("cls");
	cout<<"1) Заполнение данных"<<endl;
	cout<<"2) Чтение данных"<<endl;
	cout<<"3) Выход"<<endl;
}
void inputData(int & data)
{
	cout<<"Введите целое число: ";
	cin>>data;
	cout<<endl;
}
void showData(const int & data)
{
	cout<<"Печатаем данные. У нас есть число: "<<data<<endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
	setlocale (LC_ALL, "RUS");
	int numMenu;// пункт меню
	int data=0; // подопытные данные
	while(true)// бесконечный цикл
	{
		showMenu(); // показываем меню
		cin>>numMenu; // пользователь вводит пункт меню в виде целого числа
		if(numMenu==1) // если выбран пункт 1
			inputData(data); // выполняем ввод данных
			
		if(numMenu==2)// если выбран пункт 2
		{
			showData(data);// показываем данные
			// чтобы увидеть данные, т.е. чтобы отображённые данные не затёрлись следующей итерацией цикла
			cout<<"Нажмите Enter"; // показываем данные, пока пользователь не нажмёт Enter
			cin.get();
			cin.get();
			cout<<endl;
		}
		if (numMenu==3) // если выбран пункт 3
			break;// прерываем цикл, то есть меню больше не выводится
	}

   
   return 0;
}

Re: нужно составить меню к программе

Добавлено: 23 мар 2013, 19:23
Respected
а не могли бы объяснить программу после функции int _tmain(int argc, _TCHAR* argv[]) ?

Re: нужно составить меню к программе

Добавлено: 23 мар 2013, 21:09
Albor
Что конкретно не понятно?

Re: нужно составить меню к программе

Добавлено: 23 мар 2013, 21:43
Respected
а не могли бы прокомментировать каждую строку после int _tmain(int argc, _TCHAR* argv[]) ?

Re: нужно составить меню к программе

Добавлено: 23 мар 2013, 21:57
Albor
Добавил комментарии выше. Я думал, что код достаточно прост для понимания. Да, приведенная программа - это образец. Свою задачу прикрутите самостоятельно, так сказать "по образу и подобию".