Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
visual с++.doc
Скачиваний:
28
Добавлен:
18.08.2019
Размер:
10.99 Mб
Скачать

1. Индивидуальное задание №1:

1.1. Постановка задачи:

Составить программу с использованием двумерных локальных массивов для решения задачи. Размерности локальных массивов задавать именованны­ми константами, значения элементов массива — в списке инициализации.

Задача: описать структуру с именем WORKER, содержащую следующие поля: фамилия и инициалы работника; G - название занимаемой должности; год поступления на работу.

Написать программу, выполняющую следующие действия:

- ввод с клавиатуры данных в массив, состоящий из десяти структур типа WORKER;

- записи должны быть размещены по алфавиту;

- вывод на дисплей фамилий работников, чей стаж работы в организации превы­шает значение, введенное с клавиатуры;

- если таких работников нет, вывести на дисплей соответствующее сообщение.

1.2. UML-диаграмма:

1.3. Листинг программы:

// Лабораторная работа №9

// Индивидуальное задание №1

#include "stdafx.h"

#include <iostream>

#include "conio.h"

#include "math.h"

#include "windows.h"

#include "stdio.h"

#include "stdlib.h"

#include "time.h"

#include <dos.h>

using namespace std;

struct WORKER

{

string fio;

string post;

int iyear;

};

int _tmain(int argc, _TCHAR* argv[])

{

setlocale( LC_ALL, "Russian" );

cout << "Лабораторная работа № 9\n"

<< "\nГорошко А.А., БАС-051\n"

<< "\nВариант № 6\n"

<< "\n\nИндивидуальное задание № 1:\n"

<< "\nОписать структуру с именем WORKER, содержащую следующие поля:\n"

<< "\nфамилия и инициалы работника;\n"

<< "\nназвание занимаемой должности;\n"

<< "\nгод поступления на работу.\n"

<< "\n\nНаписать программу, выполняющую следующие действия:\n"

<< "\nввод с клавиатуры данных в массив, состоящий из десяти структур типа WORKER;\n"

<< "\nзаписи должны быть размещены по алфавиту;\n"

<< "\nвывод на дисплей фамилий работников, чей стаж работы в организации\n"

<< "\nпревышает значение, введенное с клавиатуры;\n"

<< "\nесли таких работников нет, вывести на дисплей соответствующее сообщение.\n"

<< "\n\nРабота программы:\n";

SYSTEMTIME sm;

GetLocalTime(&sm);

setlocale(LC_ALL, ".1251");

string temp_str;

time_t *timeanddate;

int const n = 10;

int i, j, stag, current_year = sm.wYear, kol = 0;

char temp[255];

WORKER *works = new WORKER[n];

for (i = 0; i < n; i++)

{

cout << "\nВведите данные " << i + 1 << "-го сотрудника:\n"

<< "Введите ФИО: ";

cin >> temp;

works[i].fio = temp;

cout << "Введите должность: ";

cin >> temp;

works[i].post = temp;

cout << "Введитие год поступления на работу: ";

cin >> works[i].iyear;

}

for (i = 0; i < n; i++)

for (j = 0; j < n-1; j++)

{

if (strcmp((const char*) works[j].fio.c_str(), (const char*) works[j + 1].fio.c_str()) > 0)

{

temp_str = works[j].fio;

works[j].fio = works[j + 1].fio;

works[j+1].fio = temp_str;

}

}

cout << "\n\nСортировка записей по алфавиту:\n ";

for (i = 0; i < n; i++)

{

cout << '\n' << i + 1 << "-ый сотрудник:\n";

cout << "ФИО: " << works[i].fio.c_str() << '\n';

cout << "Должность: " << works[i].post.c_str() << '\n';

cout << "год поступления на работу: " << works[i].iyear << '\n';

}

cout << "\n\nВведите стаж для отбора: ";

cin >> stag;

cout << "\nСотрудники, удовлетворяющие отбору:\n";

for (i = 0; i < n; i++)

{

if (current_year-works[i].iyear >= stag)

{

kol++;

if (kol!=0)

cout << "\nФИО: " << works[i].fio.c_str() << '\n';

cout << "Должность: " << works[i].post.c_str() << '\n';

cout << "год поступления на работу: " << works[i].iyear << '\n';

}

}

if (kol==0) cout << "\n\nНе найдены сотрудники, удовлетворяющие отбору!\n";

getch();

return 0;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]