- •Лабораторный практикум основы программирования
- •Содержание
- •Предисловие
- •Лабораторная работа №1. Интегрированная среда разработки Microsoft Visual Studio. Программирование алгоритмов линейной структуры
- •1. Формулировка индивидуального задания:
- •2. Листинг программы:
- •3. Результаты работы программы:
- •1. Индивидуальное задание №1:
- •1.1. Постановка задачи:
- •1.3. Листинг программы:
- •3.4. Результаты работы программы:
- •1. Индивидуальное задание №1:
- •1.1. Постановка задачи:
- •1.3. Листинг программы:
- •4.4. Результаты работы программы:
- •1. Индивидуальное задание №1:
- •1.1. Постановка задачи:
- •1.3. Листинг программы:
- •2.4. Результаты работы программы:
- •2. Индивидуальное задание №2:
- •2.1. Постановка задачи:
- •2.3. Листинг программы:
- •2.4. Результаты работы программы:
- •1. Присваивание указателю адреса существующего объекта:
- •2. Присваивание указателю адреса области памяти в явном виде:
- •3.Присваивание пустого значения:
- •4. Выделение участка динамической памяти и присваивание ее адреса указателю:
- •1. Индивидуальное задание №1:
- •1.1. Постановка задачи:
- •1.3. Листинг программы:
- •1.4. Результаты работы программы:
- •2. Индивидуальное задание №2:
- •2.1. Постановка задачи:
- •2.3. Листинг программы:
- •2.4. Результаты работы программы:
- •I. Исходные данные, результаты и промежуточные величины.
- •1. Индивидуальное задание №1:
- •1.1. Постановка задачи:
- •1.3. Листинг программы:
- •2.4. Результаты работы программы:
- •1. Индивидуальное задание №1:
- •1.1. Постановка задачи:
- •1.3. Листинг программы:
- •4. Индивидуальное задание №4:
- •4.1. Постановка задачи:
- •4.4. Листинг программы:
- •4.5. Результаты работы программы:
- •I. Исходные данные и результаты
- •II. Алгоритм решения задачи
- •III. Программа и тестовые примеры
- •I. Исходные данные и результаты
- •II. Алгоритм решения задачи
- •III. Программа и тестовые примеры
- •I. Исходные данные и результаты
- •III. Программа и тестовые примеры
- •1. Индивидуальное задание №1:
- •1.1. Постановка задачи:
- •1.3. Листинг программы:
- •1.4. Результаты работы программы:
- •I. Исходные данные, результаты и промежуточные величины
- •Программа и тестовые примеры
- •1. Индивидуальное задание №1:
- •1.1. Постановка задачи:
- •1.3. Листинг программы:
- •2.4. Результаты работы программы:
- •Список рекомендуемой литературы
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;
}