Программное обеспечение для организации курсовых работ и практик
Z1() — функция для создания списка сотрудников и добавления записи в этот список. Не имеет параметров. Имеет формальные параметры: *f, *f1 типа FILE, i и i1(используются в качестве счетчика), kz (количество записей), l (количество записей записываемые в файл num. txt), j все эти параметры типа int. Параметр p типа struct sotrud. Открываем файлы: Дети сотрудника. txt для добавления записи в конец… Читать ещё >
Программное обеспечение для организации курсовых работ и практик (реферат, курсовая, диплом, контрольная)
- Введение
- 1. Постановка задачи
- 2. Решение задачи
- 2.1 Структура данных
- 2.2 Алгоритм решения
- 3. Описание программного обеспечения
- 3.1 Входные данные
- 3.2 Выходные данные
- 3.3 Требования к надежности
- 3.4 Структурная диаграмма
- 3.5 Описание функций
- 4. Описание работы программного продукта
- 4.1 Руководство пользователя
- 4.2 Тестирование
- Заключение
- Приложение
В настоящее время компьютеры способны облегчить работу человеку в любой сфере деятельности, так как с помощью вычислительных машин есть возможность автоматизировать многие задачи, тем самым сэкономить время на повторяющихся действиях. Компьютеры могут производить труднейшие для человека вычисления за секунды, а также исключают ошибки вычислений.
В данном курсовом проекте представлено программное обеспечение для организации курсовых работ и практик. Благодаря структурированному выводу информации и удобному поиску эта программа может облегчить работу преподавателю и студенту.
В первом разделе рассмотрена постановка задачи.
Во втором разделе рассмотрено структура данных и алгоритм решения.
В третьем разделе рассмотрено проектирование программного модуля, также описана схема модуля, определение входных и выходных данных программы.
В четвертом разделе рассмотрено тест программного модуля и руководство пользователя.
1. Постановка задачи Цель работы: освоение функций работы со структурами данных и файлами.
Постановка задачи: необходимо разработать программное обеспечение для создания и обработки сведений о сотрудниках учреждения.
Функции программы:
А) Создание файла;
Б) Добавление записей в файл;
В) Вывод файла на экран;
Г) Корректировка файла ;
Д) Очистка файла;
Е) Распечатка файла;
Главное меню должно содержать основные пункты для работы с файлом .
Данная программа должна выводить на экран содержимое файла и список всех сотрудников, у которых есть несовершеннолетние дети, а также сформировывать файл сотрудников, у которых совершеннолетние дети и распечатывать его.
Корректировка файла включает в себя изменение № отдела по ФИО сотрудника.
Удаление записей осуществляется по ФИО.
файл программный обеспечение пользователь
2. Решение задачи
2.1 Структура данных При разработке программного обеспечения большую роль играет проектирование хранилища данных и представление всех данных в виде множества связанных структур данных.
В данной программе было использовано одна структура данных:
1)
struct sotrud
{
int n;
char fio[40];
int kol;
int v;
};
Объявлена структура, которая хранит сведения о сотрудниках: номер отдела, ФИО сотрудника, количество детей, возраст ребенка.
2.2 Алгоритм решения При запуске программы осуществляется вход в меню, которое дает возможность пользователю выбрать дальнейшие действия программы:
1) Создание и заполнение файла (выбор осуществляется клавишей 1);
2) Вывод файла на экран (выбор осуществляется клавишей 2);
3) Вывод сотрудников с несовершеннолетними детьми (выбор осуществляется клавишей 3);
4) Создание файла сотрудники с совершеннолетними детьми (выбор осуществляется клавишей 4);
5) Распечатать сформированный файл (выбор осуществляется клавишей 5);
6) Удаление записей по ФИО (выбор осуществляется клавишей 6);
7) Очистка файла (выбор осуществляется клавишей 7);
8) Корректировка файла (выбор осуществляется клавишей 8);
9) Выход (выбор осуществляется клавишей 9).
При выборе пункта 1 в меню на экране появляется возможность создания и заполнения файла. Необходимо ввести количество записей, номер отдела, ФИО сотрудника, количество детей (<=10), возраст каждого ребенка (полное число лет).
При выборе пункта 2 в меню на экран выводится содержимое файла.
При выборе пункта 3 в меню на экран выводится список всех сотрудников, у которых есть несовершеннолетние дети.
При выборе пункта 4 в меню осуществляется создание файла сотрудники с совершеннолетними детьми.
При выборе пункта 5 в меню сформированный ранее файл идет на печать.
При выборе пункта 6 в меню происходит удаление записей по ФИО. Необходимо ввести ФИО сотрудника, по которому в дальнейшем можно будет удалить записи.
При выборе пункта 7 в меню файл будет полностью очищен.
При выборе пункта 8 в меню запустится корректировка файла. Необходимо будет вести ФИО сотрудника по которому можно будет изменить его номер отдела.
При выборе пункта 9 в меню осуществляется выход из программы.
3. Описание программного обеспечения
3.1 Входные данные Входные данные представлены в таблице 1.1
Таблица 1.1 — Описание входных данных
Название | Обозначение | Диапазон значений | |
Меню выбора метода решения системы | d | 1−9 | |
Номер отдела | n | Целое число | |
ФИО сотрудника | fio | Строка | |
Количество детей | kol | Целое число | |
Возраст ребенка | v | Целое число | |
Управление меню осуществляется с помощью цифр 1, 2, 3, 4, 5, 6, 7, 8, 9. Выбор конкретного пункта осуществляется нажатием клавиши с соответствующим номером меню. Осуществляется проверка входных данных на соответствие: входные данные от пользователя проверяются, неподходящие данные не рассматриваются.
3.2 Выходные данные Результатом работы программы являются файлы «Дети сотрудников. txt «, «num.txt «,» Вспомогательный. txt»,» Отчет о совершеннолетних. txt «в которых хранятся все значения, которые были введены во время работы программы.
Выходные данные представлены в таблице 1.2
Таблица 1.2 — Описание выходных данных
Название | Вид представления | Вывод | |
Статическая структура, которая содержит данные файла «Дети сотрудников. txt» | struct sotrud | Вывод на экран | |
3.3 Требования к надежности Описание ошибок представлены в таблице 1.3
Таблица 1.3 — Описание возможных ошибок со стороны пользователя и методы их диагностики
Причина появления ошибки | Реакция программы | Метод её исправления | |
Исходные данные не соответствуют требуемому типу. | Повторяется запрос. | Заново ввести данные | |
Ввод несуществующего пункта меню. | |||
3.4 Структурная диаграмма При разработке программного модуля была использована технология нисходящего структурного программирования. В соответствии с этой технологией программный комплекс разбивался на программные модули, и разрабатывались алгоритмы для каждого модуля. Была разработана схема взаимодействия программных модулей (структурная диаграмма).
Структурная диаграмма включает три уровня. Первый уровень — функция main. Второй уровень — функции menu. Третий уровень состоит из 8 функций.
Рисунок 1 — Структурная диаграмма взаимодействия модулей
int main () — основное тело программы, вызов остальных модулей;
int z1() — в этой функции осуществляется создание и добавление записей;
int z2() — в этой функции осуществляется вывод файла на экран;
int z3() — в этой функции осуществляется вывод списков всех сотрудников, у которых есть несовершеннолетние дети;
int z4() — в этой функции осуществляется создание текстового файла со списком совершеннолетних детьми;
int z5() — в этой функции осуществляется отправка файла на печать;
int z6() — в этой функции осуществляется корректировка файла;
int z7() — в этой функции осуществляется удаление сотрудника из файла;
int z8() — в этой функции осуществляется очистка файла.
3.5 Описание функций
Z1() — функция для создания списка сотрудников и добавления записи в этот список. Не имеет параметров. Имеет формальные параметры: *f, *f1 типа FILE, i и i1(используются в качестве счетчика), kz (количество записей), l (количество записей записываемые в файл num. txt), j все эти параметры типа int. Параметр p[100] типа struct sotrud. Открываем файлы: Дети сотрудника. txt для добавления записи в конец (в файле содержится список всех сотрудников), num. txt для чтения (в файле содержится количество записей). Далее считываем из файла num. txt переменную l. Закрываем этот файл. С помощью функции if проверяем, существует ли данный файл. Если он не существует выдается сообщение об ошибке и производится выход из функции. С клавиатуры вводится количество записей которое надо добавить. Используя цикл for, вводим с клавиатуры все данные структуры и с помощью этого же цикла записываем их в файл Дети сотрудника.txt. Ввод данных и запись в файл происходит до тех пор, пока количество записей не будет равно j. Закрытие файла Дети сотрудника.txt. Далее в переменную l записываем количество записей, которое мы добавили и записываем их в файл num. txt, который предварительно открываем для записи. Закрываем этот файл.
Z2() — функция для вывода содержимого файла Дети сотрудника. txt на экран. Не имеет параметров. Имеет формальные параметры: *f, *f1 типа FILE, i и i1(используются в качестве счетчика), j (количество записей записываемые в файл num. txt), все эти параметры типа int. Параметр p[100] типа struct sotrud. Открываем файлы: Дети сотрудника. txt для чтения (в файле содержится список всех сотрудников), num. txt для чтения (в файле содержится количество записей). Далее считываем из файла num. txt переменную j. С помощью функции if проверяем, существует ли данный файл. Если он не существует выдается сообщение об ошибке и производится выход из функции. Используя функцию for, считываем данные из файла функцией fread и выводим на экран с помощью функции printf. Делаем это до тех пор, пока i меньше j. Закрываем все файлы.
Z3() — функция для вывода на экран сотрудников с несовершеннолетними детьми. Не имеет параметров. Имеет формальные параметры: *f, *f1 типа FILE, i и i1(используются в качестве счетчика), j (количество записей записываемые в файл num. txt), k=0(количество несовершеннолетних детей у сотрудника) все эти параметры типа int. Также задан массив a[100] типа int для того, чтобы записывать в него возраст каждого совершеннолетнего ребенка. Параметр p[100] типа struct sotrud. Открываем файлы: Дети сотрудника. txt для чтения (в файле содержится список всех сотрудников), num. txt для чтения (в файле содержится количество записей). помощью функции if проверяем, существует ли данный файл. Если он не существует выдается сообщение об ошибке и производится выход из функции. Используя функцию for, считываем данные из файла функцией fread. Используя функцию if проверяем меньше ли 18 возраст ребенка. Если да, то к k прибавляем 1. Используя функцию if проверяем, если k больше 0, то выводим с помощью функции printf имя сотрудника и количество несовершеннолетних детей. Переходим к работе со следующим сотрудником. И делаем это до тех пор, пока i меньше j. Закрываем все файлы.
Z4() — функция для создания файла с сотрудниками, имеющих совершеннолетних детей. Не имеет параметров. Имеет формальные параметры: *f,* f,*f2 типа FILE, i, i2 и i1(используются в качестве счетчика), j (количество записей записываемые в файл num. txt), k=0(количество совершеннолетних детей у сотрудника) все эти параметры типа int. Параметр p[100] типа struct sotrud. Открываем файлы: Дети сотрудника. txt для чтения (в файле содержится список всех сотрудников), num. txt для чтения (в файле содержится количество записей), отчет о совершеннолетних. txt для записи. Используя функцию for, считываем данные из файла функцией fread. K=0 при чтении каждого сотрудника. Используя функцию if проверяем больше или равен ли 18 возраст ребенка. Если да, то a[k]=возрасту ребенка и к k прибавляем 1. Используя функцию if проверяем, если k не равно 0, то записываем с помощью функции fprintf имя сотрудника, количество совершеннолетних детей и возраст каждого ребенка в файл. Переходим к работе со следующим сотрудником. И делаем это до тех пор, пока i меньше j. Закрываем все файлы.
Z5() — функция для распечатки файла с совершеннолетними сотрудниками. Не имеет параметров. С помощью функции system распечатываем файл.
Z6() — функция для корректировки номера отдела по ФИО сотрудника.. Не имеет параметров. Имеет формальные параметры: *f, *f1 типа FILE, i и i1(используются в качестве счетчика), j (количество записей записываемые в файл num. txt), l, nomer (номер который надо записать новым), k (количество записей, которые остаются неизменны) все эти параметры типа int. Параметр p[100] типа struct sotrud. Параметр str[40] типа char (ФИО, которое нужно откорректировать). Открываем файлы: Дети сотрудника. txt для чтения (в файле содержится список всех сотрудников), num. txt для чтения (в файле содержится количество записей), Вспомогательный. txt для записи. Далее считываем из файла num. txt переменную j. Вводим с клавиатуры ФИО, которое нужно откорректировать и новый номер отдела. С помощью функции if проверяем, существует ли данный файл. Если он не существует выдается сообщение об ошибке и производится выход из функции. Используя функцию for, считываем данные из файла функцией fread. С помощью функции if, проверяем, совпадает ли ФИО сотрудника с ФИО, которое надо откорректировать. Если да, то номеру отдела этого сотрудника присваивается ранее введенный параметр nomer. И вся информации о сотруднике записывается в файл Вспомогательный.txt. Закрываются файлы Дети сотрудника. txt и Вспомогательный. txt, и открываются для записи и чтения соответственно. Используя цикл for, с помощью функций fread и fwrite читаем данные из файла Вспомогательный. txt и записываем в файл Дети сотрудника.txt. Делаем это до тех пор, пока i меньше j. Закрытие всех файлов.
Z7() — функция для корректировки номера отдела по ФИО сотрудника.. Не имеет параметров. Имеет формальные параметры: *f, *f1 типа FILE, i и i1(используются в качестве счетчика), j (количество записей записываемые в файл num. txt), l, nomer (номер который надо записать новым), k=0(количество записей, которые остаются неизменны) все эти параметры типа int. Параметр p[100] типа struct sotrud. Параметр str[40] типа char (ФИО, которое нужно откорректировать). Открываем файлы: Дети сотрудника. txt для чтения (в файле содержится список всех сотрудников), num. txt для чтения (в файле содержится количество записей), Вспомогательный. txt для записи. Далее считываем из файла num. txt переменную j. Вводим с клавиатуры ФИО, которое нужно удалить. Используя функцию for, считываем данные из файла функцией fread. С помощью функции if, проверяем, совпадает ли ФИО сотрудника с ФИО, которое надо удалить. Если нет, то записываем всю информацию о сотруднике в файл Вспомогательный.txt. и увеличиваем k на 1. Если да, то информацию в файл не пишем. Закрываются файлы Дети сотрудника. txt и Вспомогательный. txt, и открываются для записи и чтения соответственно. Используя цикл for, с помощью функций fread и fwrite читаем данные из файла Вспомогательный. txt и записываем в файл Дети сотрудника.txt. Делаем это до тех пор, пока i меньше j. Закрываем файл num.txt. Записываем в файл num. txt новое количество записей k, предварительно открыв его для записи. Закрытие всех файлов.
Z9() — функция для полной очистки файла Дети сотрудника.txt. Не имеет параметров. Есть формальные параметры: *f,*f2 типа FILE и параметр k=0 типа int. Открытие файлов Дети сотрудника. txt и num. txt для записи. Запись k в файл num.txt. Закрытие всех файлов.
Main () — функция главного меню. Не имеет параметров. Имеет формальный параметр d типа int. Используя бесконечный цикл while выводим на экран меню и вводим с клавиатуры d (пункт меню). Используя функцию switch проверяем, если d равно константе описанной функции, то выполняется список операторов присвоенных этой константе. Если же не равно, то выдается сообщение об ошибке.
4. Описание работы программного продукта
4.1 Руководство пользователя При запуске программы на выполнение появляется главное меню, которое позволяет выбрать действие, которое необходимо выполнить. Пример разработанного меню приведен на рисунке 2.
Рисунок 2 — Пример пользовательского меню В случае ввода не существующего пункта меню повторяется запрос на ввод (рисунок 3).
Рисунок 3 — Пример ввода ошибочных данных При выборе пункта 1, появляется возможность создать или добавить Запись (рисунок 4).
Рисунок 4 — Пример добавления записей При выборе пункта 2, содержимое файла выводится на экран (рисунок 5).
Рисунок 5 — Пример вывода файла на экран При выборе пункта 3, выводится на экран список всех сотрудников с несовершеннолетними детьми (рисунок 6).
Рисунок 6 — Пример вывода на экран списка сотрудников с несовершеннолетними детьми.
При выборе пункта 4, создается текстовый файл сотрудников с совершеннолетними детьми (рисунок 7)
Рисунок 7 — Пример создания файла При выборе пункта 5, файл отправляется на распечатку (рисунок 8)
Рисунок 8 — Пример отправки файла на печать При выборе пункта 6, есть возможность для удаления (рисунок 9)
Рисунок 9 — Пример удаления сотрудника Рисунок 10 — Пример после удаления При выборе 7 пункта, есть возможность изменить номер отдела по ФИО (рисунок 11)
Рисунок 11 — Пример до корректировки Рисунок 12 — Пример после корректировки При выборе пункта 8, будет произведена очистка файла (рисунок 13)
Рисунок 13 — Очистка файла Далее просмотрим текстовый файл «Отчет о совершеннолетних» (рисунок 14)
Рисунок 14 — Отчет о совершеннолетних
4.2 Тестирование Тестирование программного модуля на корректность работы представлено в подразделе 4.1.
В случае ввода не существующего пункта меню повторяется запрос на ввод.
Рисунок 15 — Пример ввода ошибочных данных
Заключение
В данном курсовом проекте была рассмотрена задача разработки программного обеспечения для организации и проведения курсовых работ и практик. Получены навыки работы со структурой данных. Алгоритм программы реализован в среде Microsoft Visual Studio 2010. Выполнены все пункты задания. В программе предусмотрена обработка большого количества ошибок ввода пользователя. Тестирование показало, что программа работает корректно.
Приложение
Файл «r.h»:
int z1();
int z2();
int z3();
int z4();
int z5();
int z6();
int z7();
int z8();
int z9();
Файл «1.cpp"(Создание файла, Добавление записей в файл)
#include
#include
#include
struct sotrud
{
int n;
char fio[40];
int kol;
int v;
};
int z1()
{
SetConsoleOutputCP (1251);
SetConsoleCP (1251);
FILE *f,*f1;
int i, kz, i1, j, l;
sotrud p[100];
f =fopen («Дети сотрудника. txt», «a+t»);
f1=fopen («num.txt» ," rt");
fread (&l, sizeof (int), 1, f1);
fclose (f1);
if (f==NULL)
{
printf («невозможно открыть (создать) файл!!!»);
return 0;
}
printf («введите количество записейn»);
scanf («%d» ,&kz);
for (i=0;i
{
printf («введите № отделаn»);
scanf («%d» ,&p[i]. n);
fwrite (&p[i].n, sizeof sotrud, 1, f);
printf («введите Ф И Оn»);
gets (p[i]. fio);
gets (p[i].fio);
fwrite (&p[i].fio, sizeof sotrud, 1, f);
printf («введите количество детейn»);
scanf («%d» ,&p[i]. kol);
fwrite (&p[i].kol, sizeof sotrud, 1, f);
j=p[i]. kol;
for (i1=0;i1
{
printf («введите возраст %dго ребёнкаn», i1+1);
scanf («%d» ,&p[i1]. v);
fwrite (&p[i1].v, sizeof sotrud, 1, f);
}
}
fclose (f);
l+=kz;
f1=fopen («num.txt» ," wt");
fwrite (&l, sizeof (int), 1, f1);
fclose (f1);
return 0;
}
Файл «2.cpp"(Вывод файла на экран)
#include
#include
#include
#include
struct sotrud
{
int n;
char fio[40];
int kol;
int v;
};
int z2()
{
SetConsoleOutputCP (1251);
SetConsoleCP (1251);
FILE *f,*f1;
sotrud p[100];
int i, i1, j;
f =fopen («Дети сотрудника. txt», «r+t»);
f1=fopen («num.txt» ," rt");
fread (&j, sizeof (int), 1, f1);
if (f==NULL)
{
printf («невозможно открыть (создать) файл!!!»);
return 0;
}
printf («Номер отделаt |»);
printf («ФИО сотудникаt |»);
printf («Колво детейt |»);
printf («Возраст детей |n»);
for (i=0;i
{
fread (&p[i]. n, sizeof sotrud, 1, f);
printf («t%dt «, p[i]. n);
fread (&p[i].fio, sizeof sotrud, 1, f);
printf («t%st», p[i]. fio);
fread (&p[i].kol, sizeof sotrud, 1, f);
printf («tt%dt «, p[i]. kol);
for (i1=0;i1
{
fread (&p[i1].v, sizeof sotrud, 1, f);
printf («%d «, p[i1]. v);
}
printf («n»);
fclose (f);
fclose (f1);
return 0;
}
Файл «3.cpp"(Вывод сотрудников с несовершеннолетними детьми)
#include
#include
#include
#include
struct sotrud
{
int n;
char fio[40];
int kol;
int v;
};
int z3()
{
SetConsoleOutputCP (1251);
SetConsoleCP (1251);
int i, i1, j, k=0;
FILE *f,*f1;
sotrud p[100];
f =fopen («Дети сотрудника. txt», «r+t»);
f1=fopen («num.txt» ," rt");
fread (&j, sizeof (int), 1, f1);
if (f==NULL)
{
printf («невозможно открыть (создать) файл!!!»);
return 0;
}
printf («ФИО сотудникаtt |»);
printf («Колво детей |n»);
printf («————————————————————-n»);
for (i=0;i
{fread (&p[i]. n, sizeof sotrud, 1, f);
fread (&p[i]. fio, sizeof sotrud, 1, f);
fread (&p[i]. kol, sizeof sotrud, 1, f);
for (i1=0;i1
{
fread (&p[i1].v, sizeof sotrud, 1, f);
if (p[i1]. v < 18)
{
k++;
}
}
if (k>0)
n", k);
k=0;
}
fcloseall ();
return 0;
}
Файл «4.cpp"(Создание файла сотрудников с совершеннолетними детьми (сам файл можно просмотреть в папке с программой)
#include
#include
#include
#include
struct sotrud
{
int n;
char fio[40];
int kol;
int v;
};
int z4()
{
SetConsoleOutputCP (1251);
SetConsoleCP (1251);
FILE *f,*f1,*f2,*f3;
int i, j, j1=0,i2,i1,k;
sotrud p[100];
int a[100];
f =fopen («Дети сотрудника. txt», «rt»);
f1=fopen («num.txt» ," rt");
f2 =fopen («отчёт о совершеннолетних. txt», «wt»);
fread (&j, sizeof (int), 1, f1);
for (i=0;i
{ k=0;
fread (&p[i]. n, sizeof sotrud, 1, f);
fread (&p[i]. fio, sizeof sotrud, 1, f);
fread (&p[i]. kol, sizeof sotrud, 1, f);
for (i1=0;i1
{
fread (&p[i1].v, sizeof sotrud, 1, f);
if ((p[i1]. v) >= 18)
{
a[k]=p[i1]. v;
k++;
}
}
if (k≠0)
{
p[i].kol=k;
fputs («Номер отделаt», f2);
fprintf (f2," %dn", p[i]. n);
fputs («ФИОt», f2);
fprintf (f2," %sn", p[i].fio);
fputs («Колво совлетних детейt», f2);
fprintf (f2," %dn", p[i]. kol);
for (i2=0;i2
{
fputs («Возраст ребенкаt», f2);
fprintf (f2," %dn", a[i2]);
}
}
}
printf («Файл созданnn»);
fcloseall ();
return 0;
}
Файл «5.cpp"(Распечатка файла с совершеннолетними детьми)
#include
#include
#include
#include
int z5()
{
system («print отчёт о совершеннолетних. txt»);
return 0;
}
Файл «6.cpp"(Корректировка)
#include
#include
#include
#include
struct sotrud
{
int n;
char fio[40];
int kol;
int v;
};
int z6()
{
SetConsoleOutputCP (1251);
SetConsoleCP (1251);
FILE *f,*f1,*f2;
int i, i1, j, k, nomer, l;
char str[40];
f =fopen («Дети сотрудника. txt», «rt»);
f1=fopen («num.txt» ," rt");
f2=fopen («Вспомагательный.txt» ," wt");
fread (&j, sizeof (int), 1, f1);
sotrud p[100];
printf («Введите фамилию сотрудника, которого хотите откорректироватьn»);
gets (str);
gets (str);
printf («Введите номер отдела на который хотите заменитьn»);
scanf («%d» ,&nomer);
for (i=0;i
{
fread (&p[i]. n, sizeof sotrud, 1, f);
fread (&p[i]. fio, sizeof sotrud, 1, f);
fread (&p[i]. kol, sizeof sotrud, 1, f);
for (i1=0;i1
fread (&p[i1].v, sizeof sotrud, 1, f);
if ((strstr (p[i]. fio, str))≠0)
{
p[i].n=nomer;
}
fwrite (&p[i].n, sizeof sotrud, 1, f2);
fwrite (&p[i]. fio, sizeof sotrud, 1, f2);
l=p[i]. kol;
fwrite (&p[i].kol, sizeof sotrud, 1, f2);
for (i1=0;i1
fwrite (&p[i1]. v, sizeof sotrud, 1, f2);
}
fclose (f);
fclose (f2);
f =fopen («Дети сотрудника. txt», «wt»);
f2=fopen («Вспомагательный.txt» ," rt");
for (i=0;i
{
fread (&p[i]. n, sizeof sotrud, 1, f2);
fread (&p[i]. fio, sizeof sotrud, 1, f2);
fread (&p[i]. kol, sizeof sotrud, 1, f2);
for (i1=0;i1
fread (&p[i1].v, sizeof sotrud, 1, f2);
fwrite (&p[i]. n, sizeof sotrud, 1, f);
fwrite (&p[i]. fio, sizeof sotrud, 1, f);
l=p[i]. kol;
fwrite (&p[i].kol, sizeof sotrud, 1, f);
for (i1=0;i1
fwrite (&p[i1]. v, sizeof sotrud, 1, f);
}
fcloseall ();
return 0;
}
Файл «7.cpp"(Удаление сотрудника из файла)
#include
#include
#include
#include
struct sotrud
{
int n;
char fio[40];
int kol;
int v;
};
int z7()
{
SetConsoleOutputCP (1251);
SetConsoleCP (1251);
FILE *f,*f1,*f2;
int i, j, k=0,i1,l;
char str[100];
sotrud p[100];
f=fopen («Дети сотрудника. txt» ," rt");
f1=fopen («num.txt» ," rt");
f2=fopen («Вспомагательный.txt» ," wt");
fread (&j, sizeof (int), 1, f1);
printf («Введите ФИО сотрудника, которого хотите удалитьn»);
gets (str);
gets (str);
for (i=0;i
{
fread (&p[i]. n, sizeof sotrud, 1, f);
fread (&p[i]. fio, sizeof sotrud, 1, f);
fread (&p[i]. kol, sizeof sotrud, 1, f);
l=p[i]. kol;
for (i1=0;i1
fread (&p[i1].v, sizeof sotrud, 1, f);
if ((strstr (p[i]. fio, str))==NULL)
{
fwrite (&p[i].n, sizeof sotrud, 1, f2);
fwrite (&p[i]. fio, sizeof sotrud, 1, f2);
fwrite (&p[i]. kol, sizeof sotrud, 1, f2);
for (i1=0;i1
fwrite (&p[i1]. v, sizeof sotrud, 1, f2);
k++;
}
}
fclose (f);
fclose (f2);
f=fopen («Дети сотрудника. txt» ," wt");
f2=fopen («Вспомагательный.txt» ," rt");
for (i=0;i
{
fread (&p[i]. n, sizeof sotrud, 1, f2);
fwrite (&p[i]. n, sizeof sotrud, 1, f);
fread (&p[i]. fio, sizeof sotrud, 1, f2);
fwrite (&p[i]. fio, sizeof sotrud, 1, f);
fread (&p[i]. kol, sizeof sotrud, 1, f2);
l=p[i]. kol;
fwrite (&p[i].kol, sizeof sotrud, 1, f);
for (i1=0;i1
{
fread (&p[i1]. v, sizeof sotrud, 1, f2);
fwrite (&p[i1]. v, sizeof sotrud, 1, f);
}
}
fclose (f1);
f1=fopen («num.txt» ," wt");
fwrite (&k, sizeof (int), 1, f1);
fcloseall ();
return 0;
}
Файл «8.cpp"(Очистка файла)
#include
#include
#include
int z9()
{
SetConsoleOutputCP (1251);
SetConsoleCP (1251);
FILE *f,*f2;
int k=0;
f=fopen («Дети сотрудника. txt» ," wt");
f2=fopen («num.txt» ," wt");
fwrite (&k, sizeof (int), 1, f2);
fcloseall ();
printf («Очистка файла произведена успешноn»);printf («nn»);
return 0;
}
Файл «glav.cpp"(Файл где располагается меню)
#include «r.h»
#include
#include
int main ()
{
SetConsoleOutputCP (1251);
int d=0;
while (1)
{
fflush (stdin);
printf («| 1. создание и заполнение файла!!! |n»);
printf («| 2. вывод файла на экран!!! |n»);
printf («| 3. вывод сотрудников с несовершеннолетними детьми!!! |n»);
printf («| 4. создание файла сотрудники с совершеннолетними детьми!!! |n»);
printf («| 5. распечатать созданный файл!!! |n»);
printf («| 6. удаление по Ф.И.О!!! |n»);
printf («| 7. Очистка файла!!! |n»);
printf («| 8. корректировка файла!!! |n»);
printf («| 9. выход!!! |n»);
printf («(__/)n»);
printf («(='.'=)n»);
printf («E[:]|||||[:]Зn»);
printf («(')_(')n»);
scanf («%d» ,&d);
system («cls»);
switch (d)
{
case 1: z1(); break;
case 2: z2(); break;
case 3: z3(); break;
case 4: z4(); break;
case 5: z5(); break;
case 6: z7(); break;
case 7: z9(); break;
case 8: z6();break;
case 9: return 0; break;
default:printf («Нет такого пунктаn»);break;
}
d=0;
}
return 0;
}