close

Вход

Забыли?

вход по аккаунту

?

Задача 3 (5)

код для вставкиСкачать
Задача №3
Условие задачи
Создать список работников предприятия (количество запрашивается с клавиатуры), содержащий: фамилию, стаж работы и заработную плату. Вывести этот список в виде таблицы. Получить список тех, у кого заработная плата ниже прожиточного минимума (2000 рублей), если таких нет, то вывести сообщение об этом.
Описание метода решения задачи
1. Выявляем исходные данные, результаты, назначаем им имена.
Исходные данные: Описываем структурный тип данных struct sotrud {};
массив структур типа sotrud st[20];
m - целая переменная для определения еоличества сотрудников;
flag=0 - целая переменная - переключатель с начальным значением 0 для сигнализации о наличии сотрудником с заработной платой, меньшей, чем прожиточный минимум;
min=2000 - число с плавающей точкой с начальным значением минимальной заработной платы 2000 рублей , ;
Результаты: flag - со значением 0 или 1; 2. Выбираем метод решения задачи, разбиваем на этапы (с учетом возможностей ЭВМ)
Первоначально составим укрупненную схему, а затем подробную для блоков IV, V, VI, VII.
Укрупненная схема
I. Подключение всех необходимых заголовочных файлов. II. Глобальные описания структурного типа struct sotrud {}, локальное описание переменных struct sotrud st[20], int m,flag=0, float min=2000;
III. Ввод количества сотрудников предприятия. IV. Ввод с клавиатуры фамилии, стажа работы и размера заработной платы для каждого сотрудника.
V. Вывод в виде списка сотрудников предприятия
VI. Поиск сотрудников с заработной платой, меньшей прожиточного минимума. Если такой найдется, то flag выставляем в значение 1.
VII. Если flag=1, то вывод на экран в виде таблицы сотрудников с заработной платой, меньшей прожиточного минимума, иначе вывод на экран сообщения об их отсутствии.
IV . Ввод с клавиатуры сведений о работниках
for(int i=0;i<m;i++)
{
cout<<"Famale "<<i+1<<"-> ";
cin>>st[i].fam;
cout<<"Stash "<<i+1<<"-> ";
cin>>st[i].st;
cout<<"Oplata "<<i+1<<"-> ";
cin>>st[i].plata;
}
V. Вывод списка сотрудников предприятия cout<<"\nSotrudniki:\n";
cout<<setw(20)<<"FAMALE"<<setw(12)<<"stash"<<setw(18)<<"Oplata\n";
for(i=0;i<m;i++) cout<<setw(2)<<i+1<<")"<<setw(17)<<st[i].fam<<setw(12)<<st[i].st<<setw(16)<<st[i].plata<<"\n";
VI. Поиск сотрудников с заработной платой, меньшей прожиточного минимума.
for(i=0;i<m;i++)
if(st[i].plata<=min)
{
flag=1; break;
}
VI. Проверяем, равен ли флаг единице if(flag==1). Если да то в цикле for(i=0;i<m;i++) сравниваем заработную плату каждого с минимальной и, если она меньше 2000, то выводим на экран.
if (st[i].plata<=min)
cout<<setw(2)<<i+1<<")"<<setw(17) <<st[i].fam<<setw(12) <<st[i].st<<setw(16)<<st[i].plata<<"\n";
Иначе выводим на экран сообщение о том, что сотрудников с оплатой меньше минимальной нет.
else
cout<<"\nNizkooplachivaemih sotrudnikv NET\n";
Программа, реализующая данный алгоритм
#include<conio.h>
#include<iostream.h>
#include<iomanip.h>
#include<math.h>
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
#include<dos.h>
struct sotrud
{
char fam[20];
int st;
float plata;
};
void main
{
clrscr();
struct sotrud st[20];
int m,flag=0;
float min=2000;
cout<<"\nVvedi kol-vo sotrudnikov ->";
cin>>m;
for(int i=0;i<m;i++)
{cout<<"Famale "<<i+1<<"-> ";
cin>>st[i].fam;
cout<<"Stash "<<i+1<<"-> ";
cin>>st[i].st;
cout<<"Oplata "<<i+1<<"-> ";
cin>>st[i].plata;
}
cout<<"\nSotrudniki:\n";
cout<<"\n"<<setw(20)<<"FAMALE"<<setw(12)<<"stash"<<setw(18)<<"Oplata\n";
for(i=0;i<m;i++)
cout<<setw(2)<<i+1<<")"<<setw(17)<<st[i].fam<<setw(12)<<st[i].st<<setw(16)<<st[i].plata<<"\n";
for(i=0;i<m;i++)
if(st[i].plata<=min)
{
flag=1;
}
if(flag==1)
{
cout<<"\nNizkooplachivaemie sotrudniki:\n";
cout<<"\n"<<setw(20)<<"FAMALE"<<setw(12)<<"stash"<<setw(18)<<"Oplata\n";
for(i=0;i<m;i++)
if(st[i].plata<=min)
{
cout<<setw(2)<<i+1<<")"<<setw(17)<<st[i].fam<<setw(12)<<st[i].st<<setw(16)<<st[i].plata<<"\n";
}
}
if(flag==0)
cout<<"\nNizkooplachivaemih sotrudnikv NET\n";
getch();
}
Документ
Категория
Рефераты
Просмотров
28
Размер файла
21 Кб
Теги
задачи
1/--страниц
Пожаловаться на содержимое документа