Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
листинг программы.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
70.14 Кб
Скачать

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

Работники предприятия”

Управляющий файл программы tmp.cpp

/*.Задача 1: Создать массив структур из 10 элементов.

Задача 2:Сформировать двоичный файл, записав в него всю известную информацию о каждом сотруднике.

Задача 3:Считать из файла массив структур в динамическую память.

Задача 4:Выполнить:

a) определение молодых специалистов, чей возраст моложе 25 лет,

б) определение среднего оклада по предприятию и вывода фамилии и должности,

чей оклад меньше среднего значения,

в) определение зарплаты для каждого сотрудника, плюсуя 10% к окладу, если стаж более 10 лет, и 15% - если более 20 лет,

г) определение сотрудников, чей стаж на предприятии максимальный,

записать в текстовый файл информацию о каждом сотруднике: фамилию, должность, зарплату.

*/

//-------------------подключение библиотек------------------------

#include <windows.h>

#include <stdio.h> //функции ввода - вывода

#include <stdlib.h> //стандартные функции (для функции srand)

#include <locale.h> //для функциий знакогенерации

#include <string.h>

#include <ctype.h>

#include <time.h> //для функций, работающих со временем

//объявление подстановок для компилятора

#define vk printf_s("\n") //там, где встретится выражение vk;

//компилятор сам подставит функцию printf_s("\n");

#define n 10 //вместо символа N будет подстановка число 10

#include "fuction.h"

#include "konsol.h"

//======================================================================

int main()

{ //начало блока функции main

//установка нужной кодовой страницы (для печати русскими буквами)

setlocale(LC_ALL,"Russian");

//определить дескрипторы каналов ввода/вывода

HANDLE in, out; //ввод/вывод

in = GetStdHandle(STD_INPUT_HANDLE);

out = GetStdHandle(STD_OUTPUT_HANDLE);

//вызов функции создания консоlи

konsol(out);

//созд. меню

menu Mas_menu[6];

sdmenu(6, Mas_menu);

//показ. меню

pokazmenu(6, Mas_menu,out);

time_t t;//переменная t типа time_t, нужна для получения значения времени

srand((int)time(&t));//вызывается функция, которая возвращает календарное время.

//Это значение будет стартовой точкой для последовательности, генерируемой функцией rand()

//создаём базу данных

int N=n;

unsigned i,j; //вспомогательные переменные

char nam[n][30]={"чечета д.а.","сидоров а.с.","дуров п.п.","рычагов н.и.","романов н.и.","сапоженко н.и.","бутаков н.и.","зимакова д.с.","петров н.и.","селезнёв н.а."};

char dolzh[n][40]={"начальник","бугалтер","монтажник","монтажник","монтажник","монтажник","монтажник","монтажник","монтажник","монтажник"};

Pred vmc[n];

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

{

for(j=0; j<30; j++)

{

vmc[i].nam[j]=nam[i][j];

vmc[i].dolzh[j]=dolzh[i][j];

}

vmc[i].year=(int)(rand()%40+1950);

vmc[i].stazh=(int)(rand()%10+15);

vmc[i].oklad=(float)(rand()%10000+1000);

}

//FILE *fout;

//fopen_s(&fout,"G:\basa.bas","wb");

//if(fout==NULL)

//{

// printf_s("не откр");

// return 0;

//}

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

// fprintf_s(fout,"%15s",vmc);

// fclose(fout);

//FILE *fin;

//fopen_s(&fout,"G:\basa.bas","rb");

// if(fin==NULL)

// {

// printf_s("не откр");

// return 0;

// }

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

// fread(&vmc,sizeof(Pred),N,fin);

// fclose(fin);

//ввыводим меню вызова функций

WORD ch1=1;

while(ch1!=VK_F10)

{

ch1=GetVK_Symbol(in);

switch(ch1)

{

case VK_F1: vivod(vmc,N,out); break; //вызов функции определения и вывода массива структуры

case VK_F2: msp(vmc,N,out); break;//а) //вызов функции определения и вывода молодых специалистов

case VK_F3: srokl(vmc,N,out); break;//б)вызов функции определение и вывода среднего оклада по предприятию и вывода фамилии и должности,

// чей оклад меньше среднего значения

case VK_F4: zarpt(vmc,N,out); break;//в) //вызов функции определения и вывода зарплаты

case VK_F5: stazhmax(vmc,N,out); break;

default:;

}//switch

}//while

FreeConsole();

return 0;

} //конец блока функции main