Курсовая работа по БД на тему «Шеф-повар» — МГЭПТК, 2012 год!

    Содержание

 

Введение………………………………………………………………………….

1 Проектирование программного модуля………………………………………

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

1.2 Математическое (логическое) описание задачи……………………………

1.3 Описание входной и выходной информации……………………………..

2 Разработка программного модуля……………………………………………

2.1 Описание данных, используемых для решения задачи ………………….

2.2 Описание разработанной программы……………………………………..

2.3 Описание схемы программы………………………………………………..

2.4 Описание используемых типов данных …………………………………..

3 Тестирование программного модуля………………………………………..

4 Руководство пользователя……………………………………………………

Заключение……………………………………………………………………….

Список использованных источников………………………………………….

Приложения

Приложение А. Руководство пользователя

Приложение Б. Код программы

Приложение В. Результаты тестирования программы.

 

 

    
 

 

 

 

 

 

 

 

 

 

Введение

Темой курсового проекта является разработка программного модуля «Шеф-повар».

Разрабатываемая программа достаточно актуальна на данный момент, так как в современную эпоху информационных технологий и бизнеса, у людей все меньше и меньше времени на приготовление правильной и здоровой пищи. Приложение «Шеф-повар» предназначено для людей, которые хотят упростить процесс приготовления любимых блюд, а так же для профессиональных шеф-поваров, которым важна скорость и качество получаемой информации о остатках продукции на складе, о рецептах приготовления разнообразных блюд, которые теперь не нужно запоминать – все действия за человека сделает программа «Шеф-повар».

В отличие от других программ похожего типа это приложение отличается следующими показателями: устойчивость к ошибкам пользователя; быстрая скорость обработки большой базы данных рецептов и неограниченное количество данных о продуктах на складе. Программа имеет удобный и крайне приятный интерфейс. Так же в программе не отображаются ненужные компоненты приложения, что так же упрощает эксплуатацию данного программного модуля.

Кроме легкости в использовании программного продукта отличительной чертой является удобный ввод и вывод данных (сохранение и загрузка полученных данных в файл), так же предусмотрена возможность осуществления поиска, редактирования и удаления своих записей.

Данный программный продукт будет работать с такой же скоростью, или даже быстрее, чем аналогичные программы за счет оптимизации работы с файлами, а так же использование структур для сохранения больших объемов информации.

Данное программное приложение реализуется в трех средах программирования C++ Visual Studio 2006, C++ Builder 6 и C# Microsoft Visual Studio 2008.

 

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

Целью данного курсового проекта является создание программного модуля «Шеф-повар».

Данный программный модуль предназначен для хранения данных о рецептурах блюд: раскладка, рецепт приготовления, а так же для хранения данных о продуктах на складе: наименование, цена, количество. Формирование меню на день (на заданное число персон); званый ужин. Проверка достаточности запасов; формирование расходной накладной на склад, корректировка запасов. Сохранение данных в текстовый файл.

Реализовать программный модуль необходимо на следующих языках:

1) на языке программирования С++ (среда программирования Visual Studio, консольное приложение) с использованием классов;

2) на языке программирования С++ (среда программирования С++ Builder), с использованием форм;

3) на языке программирования С#.

Программный модуль реализовать с помощью файлов. С файлом выполняются операции добавления, удаления и замены записи путём перезаписи исходного файла.

Написать функцию, с помощью которой осуществляется первичный ввод информации с клавиатуры и до запись в файл. Написать функцию, преобразующую данные исходного файла в текстовый файл в виде ведомости с графой общих итогов. Удаление и замену записей выполнять с помощью перезаписи исходного файла в новый. При поиске сохранять данные в новый файл.

1.2 Математическое (логическое) описание задачи

При написании проекта на языке программирования С++ (среда программирования Visual Studio, консольное приложение) использовались структуры:

  • struct Recept – структура, в которой хранятся данные о рецептах
  • char name[50]– название рецепта;
  • struct Ingredienty–вложенная структура, в которой хранятся ингредиенты для будущего блюда;
  • char Nazvanie[50] – название ингредиента;
  • int kolicestvo – количество ингредиентов;
  • char Prigotovlenie[500] – рецепт приготовления блюда;
  • int kol – количество ингредиентов в данном блюде;
  • struct Sklad – структура товаров на складе;
  • char Naimenovanie[50] – наименование товара на складе;
  • int cena – цена товара на складе;
  • int kolicestvo – количество товара на складе;

Принцип взаимодействия и работы программного модуля представлен на рисунке 1.


Рисунок 1 – Диаграмма вариантов использования1.3 Описание входной и выходной информации

В данном проекте используются входные и выходные данные.

К входным данным относится данные о рецептах и продуктах на складе, которые описаны в разделе 1.2.

К выходным данным относится результаты поиска, вывод сообщений, диалоговые сообщения, вывод данных на экран.

 

 

 

 

 

 

 

 

 

 

 

 

 

2 Разработка программного модуля

2.1 Описание данных, используемых для решения задачи

В разрабатываемом приложении исходными данными являются данные о товарах и рецептах, сохраненные в файл. Эти данные вводятся с клавиатуры вручную, и сохраняются различным способом в зависимости от среды программирования.

Данные сохраняются по отдельности в 2 разных файла, в которых они упорядочены определенным образом.

Выходными результатами является сохраненные товары на складе и рецепты во время работы приложения, а так же данные используемые для формирования поиска и обработки информации.

 

2.2 Описание разработанной программы

Программа предназначена для организации работы с рецептами и товарами на складе. Она позволяет наглядно отобразить данные на экране. В приложении предусмотрен поиск нужных данных, сохранение результатов в файл, для просмотра. Так же реализована функция отображения нужных товаров по запросу пользователя.

В отличия от существующих решений входят: устойчивость к ошибкам пользователя; высокая скорость обработки рецептов и товаров; удобный и наглядный в эксплуатации интерфейс.

Так же приложение имеет читабельный код, использует функции, которые не нагружают систему и имеют простой алгоритм решения задачи.

 

 

 

2.3 Описание схемы программы

После загрузки программы открывается главная форма (или создается меню в консоли), и входит в бесконечные итерации с ожиданием действия пользователя, данные итерации завершаться только при закрытии приложения.

Приложение выполняет такие функции как: отображение данных в табличном виде; поиск данных; ввод новых данных; удаление данных; редактирование данных; сохранение данных в файл.

Отображение данных в табличном виде выполняется по следующему алгоритму:

  • Поиск и открытие файла с данными;
  • Считка данных;
  • Вывод данных в таблицу;
  • Закрытие файла с данными.

Поиск данных организован в соответствии с алгоритмом:

  • Считка данных из таблицы;
  • Сравнение считанных данных с искомыми;
  • Вывод результата на экран.

Добавление новых данных реализовано по следующему алгоритму:

  • Считка данных вводимых пользователем;
  • Добавление считанных данных в таблицу.

Удаление данных реализовано по следующему алгоритму:

  • Определение удаляемой строки в таблице;
  • Обновление таблицы со смещением на удаленную строку.

Редактирование данных реализовано по следующему алгоритму:

  • Считка редактируемых данных из таблицы на форму;
  • Ожидание завершение редактирования данных пользователем;
  • Считка отредактированных данных в таблицу, с заменой старых данных.

Формирование расходной накладной на склад реализовано по следующему алгоритму:

  • Создание и открытие текстовый файла на запись;
  • Считка данных из таблицы;
  • Записи считанных данных в файл по макету;
  • Закрытие файла.

Сохранение данных в файл реализовано по следующему алгоритму:

  • Создание и открытие текстового файла на запись;
  • Считка данных из таблицы;
  • Записи считанных данных в файл по байтно;
  • Закрытие файла.

Общая схема алгоритма решения задачи представлена на рисунке 2.




 


 

 

 

 

    Рисунок 2- Пример схемы алгоритма головной программы

 

 

 

 

 

Схема алгоритма заполнения таблицы данных (рисунок 3):

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 3 – Схема алгоритма подпрограммы заполнения таблицы

Схема алгоритма выполнения пользовательских функций (рисунок 4):

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    



 

 

Рисунок 4 – Схема алгоритма подпрограммы выполнения пользовательских функций

Схема алгоритма поиска данных
(рисунок 5):


 

 

 

 

 


Рисунок 5 – Схема функции поиска данных

 

 

 

 

 

 

 

 

Схема алгоритма добавление новых данных (рисунок 6):


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рисунок 6 – Схема функция добавление данных о рецептах

 

 

 

 

 

Схема алгоритма редактирование данных
(рисунок 7):

 




 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    

Рисунок 7 – Схема функции редактирования данных о рецепте

 

2.4 Описание используемых типов данных

При написании проекта на языке программирования С++ (среда программирования Visual Studio, консольное приложение) использовался тип данных структура.

Примеры описания структур приведены ниже.

struct Recept { // ВЛОЖЕННАЯ СТРУКТУРА.

char name[50]; // название рецепта.

struct Ingredienty { //структура в которой будут храниться ингредиенты для будущего блюда.

char Nazvanie[50]; // название ингредиента.

int kolicestvo; //количество ингредиента.

}

Ingredient[10];

char Prigotovlenie[500]; // рецепт приготовления.

int kol;

}Receptura;

struct Sklad { // Структура товаров на складе.

char Naimenovanie[50];

int cena;

int kolicestvo;

}NaSklade;

    В программе используются такие переменные как:

  • char n, p – переменные выбора;
  • int kol – переменная счётчик;
  • int x-переменная используется для запоминания введённого пункта меню.
  • f1, f2, file– дескриптор файла.

 

    3 Тестирование программного модуля

Тестирование проводилось с целью проверки работоспособности разработанной программы и ее отладки.

Тестирование программы осуществлялось на персональном компьютере со следующими техническими характеристиками:

  • процессор – AMD Sempron(TM) Processor 5600+;
  • материнская плата – GIGABYTE-7N400S;
  • видеокарта – GeForce 6600;
  • оперативная память – 1024 Мb DDR2;
  • операционная система – Windows XP(SP3).

Результаты тестирование представлены в виде таблиц в приложении В.

 

Руководство программиста

Минимальные системные требования для программы «Шеф-повар»:

  • Windows XP;
  • Pentium II 500 МГц;
  • 128 Мб. ОЗУ;
  • 32 Мб DirectX8-совместимая 3D видеокарта;
  • 5 Мб места на жестком диске.

Процедура инсталляции происходит путём копирования всех файлов программы на жёсткий диск пользователя.

Для редактирования исходного кода программного модуля необходимо иметь Visual Studio и С++ Builder.

Программный модуль, реализованный в среде программирования Visual Studio, имеет следующие основные файлы:

  • Project1.cpp – основной файл для редактирования кода программы;
  • search.txt– файл, в котором хранятся результаты поиска;
  • receptura.txt– файл, в котором хранятся все рецепты и их приготовление;
  • sklad.txt – файл, в котором хранятся все товары на складе;

Программный модуль, реализованный в среде программирования С++ Builder, имеет следующие основные файлы:

  • Project1.bpr – файл проекта программы;
  • Project1.exe – файл для запуска программы;
  • Unit1.cpp – файл для редактирования исходного кода программы;
  • data.txt – файл в котором хранятся записи базы данных.

 

 

Заключение

В результате выполнения курсового проекта была разработана программа для помощи в поиске женихов и невест «Шеф-повар»

Кроме этого были расширены некоторые знания из данной предметной области и укреплены знания объектно-ориентированного языка программирования C++, C++Builder и C#. При реализации проекта были пройдены этапы описания и постановки задачи, кодирования программы на алгоритмический язык и тестирования полученного приложения.

По окончании выполнения проекта были закреплены знания по языкам программирования, я научился создавать вложенные структуры данных, сохранять их в файл и производить над ними различные действия считывания и преобразования.

 

  1. Мартынов Н.Н. — Информатика. С# для начинающих. — М.: КУДИЦ-ПРЕСС 2007 – 270 с.;
  2. ГОСТ 19.701-90 ЕСПД СХЕМЫ АЛГОРИТМОВ, ПРОГРАММ, ДАННЫХ И СИСТЕМ.
  3. ГОСТ 2.105-95 Единая система конструкторской документации ОБЩИЕ ТРЕБОВАНИЯ К ТЕКСТОВЫМ ДОКУМЕНТАМ.
  4. Шилдт Г. — C++. A Beginners Guide, Second Edition / C++. Руководство для начинающих (2-е издание). — М.: Вильямс, 2003 – 669 с.;
  5. Пахомов Б. — Самоучитель C/С++ и С++ Builder 2007. – ООО «БВХ-Петербург», 2007 – 670 с.;
  6. Методические рекомендации по выполнению курсового проекта по дисциплине «Конструирование программ и языки программирования», МГЭПТК 2012

     

    Руководство пользователя

    Для начала работы с программой нужно запустить исполняющий файл .exe. После запуска появится главное окно программы (Рисунок 1) где можно выбрать желаемое действие. Окно добавления нового рецепта вызывается по нажатию клавиши 1 (Рисунок 2), после чего нужно заполнить необходимые поля таблицы. Для добавления нового продукта на склад нужно нажать на клавишу 3 (Рисунок 3), после чего необходимо проследовать инструкция программы. После ввода продукта автоматически будет выведено на экран содержимое всего склада со всеми его полями (Рисунок 4). Для того, чтобы удалить продукт со склада необходимо в главном меню нажать на клавишу 5, после чего ввести название продукта для удаления (Рисунок 5).


Рисунок 1 – Главное меню программы


Рисунок 2 – Окно добавления нового рецепта


Рисунок 3 – Окно добавления нового продукта на склад


Рисунок 4 – Вывод всех товаров на складе


Рисунок 5 – удаление продукта со склада

 

 

 

 

 

Приложение Б

Код программы

#include <iostream>

#include <string>

#include <windows.h>

 

using namespace std;

 

struct Recept { // ВЛОЖЕННАЯ СТРУКТУРА.

    char name[50]; // название рецепта.

    struct Ingredienty { //структура в которой будут храниться ингредиенты для будущего блюда.

        char Nazvanie[50]; // название ингредиента.

        int kolicestvo; //количество ингредиента.

    }

    Ingredient[10];

    char Prigotovlenie[500]; // рецепт приготовления.

int kol;

}Receptura;

 

struct Sklad { //Структура товаров на складе.

char Naimenovanie[50];

int cena;

int kolicestvo;

}NaSklade;

 

// ######################## главная программа. ##########################

int main(int argc, char *argv[])

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

 

    char n,p;//<—-переманные выбора

    int w,i,N,j;//<—-переменные счётчика

 

    w=1;

    system(«cls»);//<——очистить окно консоли

    cout<<«\tМЕНЮ\n[1]-НОВЫЙ РЕЦЕПТ \n[2]-ПОИСК РЕЦЕПТА \n[3]-ДОБАВИТЬ ПРОДУКТ НА СКЛАД\n[4]-ВСЕ ПРОДУКТЫ НА СКЛАДЕ\n[5]-УДАЛИТЬ РЕЦЕПТ \n «<<endl;

    cin>>n;

    switch (n) //——— ВЫБОР ПУНКТА МЕНЮ.

    {

 

        case ‘1’: //<—————НОВЫЙ РЕЦЕПТ (ДОБАВЛЕНИЕ!).

        { system(«cls»);

 

        FILE *f=fopen(«receptura.txt»,»ab+»);

        cout<<«Введи название рецепта: «; cin>>Receptura.name;

        cout<<«Введи количество ингредиентов: «; cin>>Receptura.kol;

 

        for(int i=0; i<Receptura.kol; i++)

        {

            cout<<«Введи название ингредиента: «; cin>>Receptura.Ingredient[i].Nazvanie;

            cout<<«Введи количество ингредиента: «; cin>>Receptura.Ingredient[i].kolicestvo;

 

        }

 

        cout<<«Введи рецепт приготовления: «; cin>>Receptura.Prigotovlenie;

        fwrite(&Receptura, sizeof(Receptura),1,f);

        }break; //——————- Конец добавления.

 

 

 

        case ‘2’: // ———— СЧИТЫВАНИЕ РЕЦЕПТА.

            {

system(«cls»);

        string sname;

        int skol;

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

 

        cout<<«введи название рецепта для поиска: «; cin>>sname;

        FILE *f=fopen(«receptura.txt», «rb+»);

        FILE *f1=fopen(«search.txt», «ab+»);

 

        for (;!feof(f);) {

 

fread(&Receptura, sizeof(Receptura),1,f);

 

 

        if (Receptura.name == sname)

        {

 

        cout<<«Название рецепта: «; cout<<Receptura.name<<endl;

        skol = Receptura.kol;

 

        for(int i=0; i<skol; i++)

        {

            cout<<«Название ингредиента: «; cout<<Receptura.Ingredient[i].Nazvanie<<‘\t’;

            cout<<«Количество ингредиента: «; cout<<Receptura.Ingredient[i].kolicestvo<<endl;

 

        }

 

        cout<<«Рецепт приготовления: «; cout<<Receptura.Prigotovlenie<<endl<<endl;

 

    fwrite(&Receptura, sizeof(Receptura),1,f1);

            }

            }

            } break;

 

 

 

        // ————— КОНЕЦ СЧИТЫВАНИЯ РЕЦЕПТА.

 

    case ‘3’: // ———— Добавить в продукт на складе

            {

system(«cls»);

 

 

FILE*fw;

fw=fopen(«sklad.txt»,»a»); //open file

            N=1;

 

        for (int i=0;i<N;i++)

            {

 

        cout<<«Введи наименование товара: «; cin>>NaSklade.Naimenovanie; cout<<endl;

        cout<<«Введи цену товара: «; cin>>NaSklade.cena; cout<<endl;

        cout<<«Введи количество товара: «; cin>>NaSklade.kolicestvo; cout<<endl;

 

            fwrite(&NaSklade,sizeof (Sklad),1,fw);

            }

            fclose(fw);

 

 

    }

 

 

 

    case ‘4’: // ———— Добавить продукт на складе

            {

system(«cls»);

 

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

 

 

FILE*fw;

fw=fopen(«sklad.txt»,»r»); //open file

while (fread(&NaSklade,sizeof (Sklad),1,fw)>0)

{

        cout<<«Введи наименование товара: «<<NaSklade.Naimenovanie; cout<<endl;

        cout<<«Введи цену товара: «<<NaSklade.cena; cout<<endl;

        cout<<«Введи количество товара: «<<NaSklade.kolicestvo; cout<<endl;

cout<<«———————————-«<<endl;

         }

        fclose(fw);

        system(«pause»);

    }

 

 

    case ‘5’: // ———— УДАЛИТЬ ПРОДУКТ НА СКЛАДЕ

            {

system(«cls»);

char str[100];

 

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

    int koll;

FILE*fw;

cout<<«Введите название продукта для удаления: «;cin>>str;

fw=fopen(«receptura.txt»,»r+»);

 

while (fread(&NaSklade,sizeof (Sklad),1,fw)>0)

if(NaSklade.Naimenovanie!=str){

 

        cout<<«наименование товара: «<<NaSklade.Naimenovanie; cout<<endl;

 

        cout<<«Цена товара: «<<NaSklade.cena; cout<<endl;

        cout<<«Количество товара: «<<NaSklade.kolicestvo; cout<<endl;

 

                

 

                 cout<<«————————«;

 

    fwrite(&NaSklade,sizeof(Sklad),1,fw);

    fclose(fw);    

 

 

 

 

    }    

        

 

    }

 

// ————— закрытие switch

    }

// ————— закрытие switch

    return 0;

}

 

Результаты тестирования программы.

Таблица 1 – Тестирование программы в среде программирования Microsoft Visual С++ 6.0

Действие 

Предполагаемый результат

Результат 

Нажатие на кнопку «Новый рецепт»

Переход на страницу добавления рецепта

Работает корректно 

Нажатие на кнопку «Поиск рецепта»

Переход на страницу поиск рецепта

Работает корректно 

Нажатие на кнопку «Добавить продукт на склад»

Переход на страницу добавления продукта на склад

Работает корректно 

Нажатие на кнопку «Все продукты на складе «

Переход на страницу все продукты на складе

Работает корректно 

Нажатие на кнопку «Удалить рецепт»

Переход на страницу удалить рецепт со склада

Работает корректно

Нажатие на кнопку

«Выход»

Программа закрывается

Работает корректно

 

При тестировании программы в Microsoft Visual С++ 6.0 нарушений в работе программы не наблюдалось. Вычислительный процесс устойчив.

 

 

 

 

 

 

 

Приложение Б

 

Код программы на языке программирования С++

/*Функция удаления файла:

 

int remove(const char *filename);

 

Функция переименования файла:

 

int rename(const char *fname, const char *nname);

*/

 

 

#include <iostream.h>

# include <windows.h>

# include <stdio.h>

 

char buf[255];

 

char* rus (char *text)

{

CharToOem(text, buf);

return buf;

 

}

 

class bero {

public:

int regnomeredit;

int regnomerdel;

int regnomer;

int datareg[3];//проверка

char FIO [60];

char a[10];

int vozrast;

int obrazovanie;

int deti,animal,muzik,sport;

char xobi[20];

char pol;

int vozrast_p;

// методы

void vvod();

void vivod();

void del();

void edit();

void vedamast();

void red ();

 

void poisk();

};

 

//———— ввод нового

void bero::vvod()

{cout <<rus(«введите регистрационный номер: «);

cin>> regnomer;

 

cout <<rus(«Введите ФИО «)<<endl;

gets(FIO);

while (1)

{

cout<<rus(«введите сегоднешнее число: «);

cin>>datareg[0];

 

 

if (datareg[0]<1 || datareg[0]>30)

cout<<rus(«неверный ввод,повторите…»);

else break;

 

}

while (1)

{

cout<<rus(«введите сегоднешний месяц: «);

cin>>datareg[1];

 

 

if (datareg[1]<1 || datareg[1]>12)

cout<<rus(«неверный ввод,повторите…»);

else    break;

 

}

while (1)

{

cout<<rus(«введите сегоднешний год: «);

cin>>datareg[2];

 

if (datareg[2]<2012 )

cout<<rus(«неверный ввод,повторите…»);

else    break;

}

 

cout <<rus(«Введите свой возраст: «);

cin>> vozrast;

 

while (1)

{

cout <<rus(«Введите ваше образование (1- высшее, 2-среднее специальное): «);

cin>> obrazovanie;

if (obrazovanie!=1 && obrazovanie!=2 )

cout<<rus(«неверный ввод,повторите…»);

else break;

}

 

while (1)

{

cout<<rus(«наличие детей(есть-1,нет-0) «);

cin>> deti;

if (deti!=1&&deti!=0)

cout<<rus(«неверный ввод,повторите…»);

else break;

}

 

while (1)

{

cout<<rus(«любите животных(есть-1,нет-0) «);

cin>> animal;

if (animal!=1&&animal!=0)

cout<<rus(«неверный ввод,повторите…»);

else break;

}

 

while (1)

{

cout<<rus(«любите музыку(есть-1,нет-0) «);

cin>> muzik;

if (muzik!=1&&muzik!=0)

cout<<rus(«неверный ввод,повторите…»);

else break;

}

 

while (1)

{

cout<<rus(«любите спорт(есть-1,нет-0) «);

cin>> sport;

if (sport!=1&&sport!=0)

cout<<rus(«неверный ввод,повторите…»);

else break;

}

 

cout <<rus(«какое у вас хоби «);

cin>> xobi;

 

while (1)

{

cout<<rus(» введите пол(женский-w,мужской-m) «);

cin>>pol;

if (pol!=’w’&&pol!=’m’)

cout<<rus(«неверный ввод,повторите…»);

else break;

}

FILE *file;

file = fopen(«data.txt», «at»);

fprintf(file, rus(«%d %d %d %d %s %d %d %d %d %d %d %s %c\n»),regnomer, datareg[0],datareg[1],datareg[2], FIO, vozrast,obrazovanie,deti,animal,muzik,sport,xobi,pol);

fclose(file);

 

}

//————вывод данных

void bero:: vivod()

{

int n;

FILE *file;

 

while (1)

{

cout<<rus(«1. Вся база»)<<endl;

cout<<rus(«2. Женихи»)<<endl;

cout<<rus(«3. Невесты»)<<endl;

cout<<rus(«4. Подробно о человеке»)<<endl;

cout<<rus(«5. выход»)<<endl;

cin>>n;

if (n<1||n>5)

{

cout<<rus(«нет такого пункта меню повторите ввод»)<<endl;

continue;

}

file = fopen(«data.txt», «rt»);

switch (n)

{

case 1:

{

while (!feof(file))

{ fscanf(file,»%d %d %d %d %s %d %d %d %d %d %d %s %c «,&regnomer, &datareg[0],&datareg[1],&datareg[2], &FIO, &vozrast,&obrazovanie,&deti,&animal,&muzik, &sport,&xobi,&pol);

cout<<regnomer<<«\t»<< FIO <<«\t»<<vozrast<<«\t»<<pol<<endl;

}

fclose(file);

break;

}

case 2:

{

while (!feof(file))

{ fscanf(file,»%d %d %d %d %s %d %d %d %d %d %d %s %c «,&regnomer, &datareg[0],&datareg[1],&datareg[2], &FIO, &vozrast,&obrazovanie,&deti,&animal,&muzik, &sport,&xobi,&pol);

if (pol==’m’)

cout<<regnomer<<«\t»<< FIO <<«\t»<<vozrast <<endl;

}

fclose(file);

break;

}

case 3:

{

while (!feof(file))

{ fscanf(file,»%d %d %d %d %s %d %d %d %d %d %d %s %c «,&regnomer, &datareg[0],&datareg[1],&datareg[2], &FIO, &vozrast,&obrazovanie,&deti,&animal,&muzik, &sport,&xobi,&pol);

if (pol==’w’)

cout<<regnomer<<«\t»<< FIO <<«\t»<<vozrast <<endl;

}

fclose(file);

break;

}

case 4:

{

cout<<rus(«Введите регистрационный номер: «); cin>>n;

while (!feof(file))

{ fscanf(file,»%d %d %d %d %s %d %d %d %d %d %d %s %c «,&regnomer, &datareg[0],&datareg[1],&datareg[2], &FIO, &vozrast,&obrazovanie,&deti,&animal,&muzik, &sport,&xobi,&pol);

if (regnomer==n)

{

cout<<rus(«Имя:\t»)<< FIO <<endl;

cout<<rus(«Возраст:\t»)<<vozrast<<endl;

cout<<rus(«Образование:\t»); if (obrazovanie==1) cout<<rus(«высшее»)<<endl; else cout<<rus(«среднее специальное»)<<endl;

cout<<rus(«Дети:\t»); if (deti==0) cout<<rus(«нет»)<<endl; else cout<<rus(«есть»)<<endl;

cout<<rus(«Животные:\t»); if (animal==0) cout<<rus(«не имеет»)<<endl; else cout<<rus(«есть»)<<endl;

cout<<rus(«Музыка:\t»); if (muzik==0) cout<<rus(«равнодушен»)<<endl; else cout<<rus(«любит»)<<endl;

cout<<rus(«Спорт:\t»); if (sport==0) cout<<rus(«не занимается»)<<endl; else cout<<rus(«занимается»)<<endl;

cout<<rus(«Хобби:\t»)<<xobi<<endl;

}

}

fclose(file);

break;

}

case 5: {fclose(file); return;}

}

}

}

void bero:: del()

{

cout<<rus(«введите регистрационный номер»)<<endl;;

cin>> regnomerdel;

FILE *f1;

f1 = fopen(«data.txt», «rt»);

FILE *f2;

f2=fopen(«tmp.txt»,»w»);

 

while (!feof(f1))

{

fscanf(f1,»%d %d %d %d %s %d %d %d %d %d %d %s %c «,&regnomer, &datareg[0],&datareg[1],&datareg[2], &FIO, &vozrast,&obrazovanie,&deti,&animal,&muzik, &sport,&xobi,&pol);

if (pol!=regnomerdel)

 

fprintf (f2,»%d %d %d %d %s %d %d %d %d %d %d %s %c «,regnomer,datareg[0],datareg[1],datareg[2], FIO, vozrast,obrazovanie,deti,animal,muzik,sport,xobi,pol);

 

}

 

fclose(f2);

fclose(f1);

remove («data.txt»);

rename(«tmp.txt»,»data.txt»);

}

 

 

 

 

 

//————-поиск по критериям

void bero::edit()

{

cout<<rus(«введите регистрационный номер»)<<endl;;

cin>> regnomerdel;

FILE *f1;

f1 = fopen(«data.txt», «rt»);

FILE *f2;

f2=fopen(«tmp.txt»,»w»);

 

while (!feof(f1))

{fscanf(f1,»%d %d %d %d %s %d %d %d %d %d %d %s %c «,&regnomer,&datareg[0],&datareg[1],&datareg[2], &FIO, &vozrast,&obrazovanie,&deti,&animal,&muzik, &sport,&xobi,&pol);

 

if (regnomer!= regnomeredit)

 

fprintf (f2,»%d %d %d %d %s %d %d %d %d %d %d %s %c «,regnomer,datareg[0],datareg[1],datareg[2], FIO, vozrast,obrazovanie,deti,animal,muzik,sport,xobi,pol);

 

else

{

red ();

fprintf (f2,»%d %d %d %d %s %d %d %d %d %d %d %s %c «, regnomer, datareg[0],datareg[1],datareg[2], FIO, vozrast,obrazovanie,deti,animal,muzik,sport,xobi,pol);

}

}

 

fclose(f2);

fclose(f1);

remove («data.txt»);

rename(«tmp.txt»,»data.txt»);

 

}

 

void bero:: red()

{

int n;

while (1)

{

cout<<«1.возраст «<<endl;

 

cin>>n;

if (n<1||n>6)

{

cout<<rus(«нет такого пункта меню повторите ввод»)<<endl;

continue;

}

switch (n)

{ case 1:while (1)

{

cout <<rus(«Введите свой возраст»)<<endl;

cin>> vozrast;

if ( vozrast<18 && vozrast>65)

{

cout<<rus(«Вам нельзя зарегистрироваться, так, как ваш возраст не подходит»);

return;

}

;break;

 

case 2:while (1)

{

cout <<rus(«Введите ваше образование (1- высшее, 2-среднее специальное): «);

cin>> obrazovanie;

if (obrazovanie!=1 && obrazovanie!=2 )

cout<<rus(«неверный ввод,повторите…»);

else break;

} break;

 

case 3:while (1)

{

cout<<rus(«наличие детей(есть-1,нет-0)»)<<endl;

cin>> deti;

if (deti!=1&&deti!=0)

cout<<rus(«неверный ввод,повторите…»);

else break;

 

};break;

 

}

 

case 4:while (1)

{

cout<<rus(«любите музыку(есть-1,нет-0)»)<<endl;

cin>> muzik;

if (muzik!=1&&muzik!=0)

cout<<rus(«неверный ввод,повторите…»);

else break;

}break;

 

case 5:

while (1)

{

cout<<rus(«любите животных(есть-1,нет-0)»)<<endl;

cin>> animal;

if (animal!=1&&animal!=0)

cout<<rus(«неверный ввод,повторите…»);

else break;

 

}break;

case 6:cout<<rus(«введите ваше хобби…»);

cin>>xobi;

 

case 7:return;

}

}}

 

void bero::poisk()

{

bero podbor;

int x, kol=0;

 

cout<<rus(«Введите данные для поиска»)<<endl;

 

cout<<rus(«Кого ищем? «)<<endl;

cout<<rus(«1. жениха»)<<endl;

cout<<rus(«2. невесту»)<<endl;

cin>> x;

if (x==1) podbor.pol=’m’; else podbor.pol=’w’;

 

cout<<rus(«Введите возрастной промежуток»)<<endl;

cout<<rus(«от: «); cin>>podbor.vozrast;

cout<<rus(«по: «); cin>>podbor.vozrast_p;

 

cout<<rus(«Образование: «)<<endl;

cout<<rus(«1. высшее»)<<endl;

cout<<rus(«2. среднее и выше»)<<endl;

cout<<rus(«3. не имеет значения «)<<endl;

cin>>podbor.obrazovanie;

 

cout<<rus(«Наличие детей: «)<<endl;

cout<<rus(«1. да»)<<endl;

cout<<rus(«2. нет»)<<endl;

cout<<rus(«3. не имеет значения «)<<endl;

cin>>podbor.deti;

 

cout<<rus(«Наличие животных: «)<<endl;

cout<<rus(«1. да»)<<endl;

cout<<rus(«2. нет»)<<endl;

cout<<rus(«3. не имеет значения «)<<endl;

cin>>podbor.animal;

 

//подбор

 

FILE *f1, *f2;

 

f1=fopen(«data.txt», «r»);

f2=fopen(«temp.txt», «w»);

 

while (!feof(f1))

{

fscanf(f1,»%d %d %d %d %s %d %s %d %d %d %d %s %c «,&regnomer, &datareg[0],&datareg[1],&datareg[2], &FIO, &vozrast,&obrazovanie,&deti,&animal,&muzik, &sport,&xobi,&pol);

if(podbor.pol!=pol) continue;

if(vozrast<podbor.vozrast || vozrast>podbor.vozrast_p) continue;

if(podbor.obrazovanie!=3 && podbor.obrazovanie!=obrazovanie) continue;

if(podbor.deti!=3 && podbor.deti!=deti) continue;

if(podbor.animal!=3 && podbor.animal!=animal) continue;

fprintf(f2, «%d %d %d %d %s %d %d %d %d %d %d %s %c\n»,regnomer, datareg[0],datareg[1],datareg[2], FIO, vozrast,obrazovanie,deti,animal,muzik,sport,xobi,pol);

kol++;

}

fclose(f1);

fclose(f2);

f2=fopen(«temp.txt», «r»);

if (kol==0) cout<<rus(«Подходящих кандидатур нет»)<<endl;

else

{

while (!feof(f2))

{

fscanf(f2,»%d%d %d %d %s %d %d %d %d %d %d %s %c «,&regnomer, &datareg[0],&datareg[1],&datareg[2], &FIO, &vozrast,&obrazovanie,&deti,&animal,&muzik, &sport,&xobi,&pol);

cout<<FIO <<«\t»<<vozrast <<«\t»<<obrazovanie <<«\t»<<deti <<«\t»<<animal <<«\t»<<muzik <<«\t»<<sport <<«\t»<<xobi <<endl;

}

cout<<rus(«всего найдено «)<<kol; cout<<rus(» кандидатур»)<<endl;

 

}

 

}

 

//—————основная программа

int main()

{

int n;

bero person;

//SetConsoleOutputCP(1251);

while (1)

{

cout<<rus(«1.регистрация»)<<endl;

cout<<rus(«2.удаление»)<<endl;

cout<<rus(«3.редактироватирование записей»)<<endl;

cout<<rus(«4.показать базу даныых»)<<endl;

cout<<rus(«5.поиск кандидатур»)<<endl;

cout<<rus(«6.выход»)<<endl;

cin>>n;

 

if (n<1||n>6)

{

cout<<rus(«нет такого пункта меню повторите ввод»)<<endl;

continue;

}

switch (n)

{ case 1:person.vvod();break;

case 2: person.del() ;break;

case 3:person.edit (); break;

case 4:person.vivod() ;break;

case 5:person.poisk(); break;

case 6:exit (0);

}

}

return 0;

}

 

 

Код программы на языке программирования С++ Builder

#include <vcl.h>

#pragma hdrstop

#include <fstream.h>

#include <string.h >

#include «Unit1.h»

#include «Unit2.h»

#include «Unit3.h»

#include «Unit4.h»

#include «Unit5.h»

#include «Unit6.h»

//—————————————————————————

#pragma package(smart_init)

#pragma resource «*.dfm»

TForm1 *Form1;

//—————————————————————————

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//—————————————————————————

 

void __fastcall TForm1::Button1Click(TObject *Sender)

{

TDateTime f=Date();

Form2->MaskEdit1->Text=f;

Form2->Show();

Form1->Hide();

}

//—————————————————————————

 

void __fastcall TForm1::Button6Click(TObject *Sender)

{

Form1->Close() ;

}

//—————————————————————————

//очистка stringgrid

void __fastcall ClearStringGrid(TStringGrid *StringGrid)

{

for (int i = 0; i < StringGrid->ColCount; i++)

for (int j = 0; j < StringGrid->RowCount; j++)

StringGrid->Cells[i][j] = «»;

}

//————————————————————————-

 

void __fastcall TForm1::Button2Click(TObject *Sender)

{

Form3->Show();

Form1->Hide();

}

//—————————————————————————

 

 

void __fastcall TForm1::Button3Click(TObject *Sender)

{

Form5->Show();

Form1->Hide();

}

//—————————————————————————

 

void __fastcall TForm1::Button5Click(TObject *Sender)

{

Form6->Show();

Form1->Hide();

}

//—————————————————————————

 

void __fastcall TForm1::N7Click(TObject *Sender)

{

Form1->Close() ;

}

//—————————————————————————

 

void __fastcall TForm1::N6Click(TObject *Sender)

{

Form6->Show();

Form1->Hide();

}

//—————————————————————————

 

void __fastcall TForm1::N2Click(TObject *Sender)

{

TDateTime f=Date();

Form2->MaskEdit1->Text=f;

Form2->Show();

Form1->Hide();

}

//—————————————————————————

 

void __fastcall TForm1::N3Click(TObject *Sender)

{

Form3->Show();

Form1->Hide();

}

//—————————————————————————

 

void __fastcall TForm1::N4Click(TObject *Sender)

{

Form5->Show();

Form1->Hide();

}

//—————————————————————————

 

void __fastcall TForm1::Action1Execute(TObject *Sender)

{

ClearStringGrid(Form4->StringGrid1);

Form4->StringGrid1->RowCount = 2;

Form4->StringGrid1->Cells[0][0] = «Рег. номер»;

Form4->StringGrid1->Cells[1][0] = «Фамилия»;

Form4->StringGrid1->Cells[2][0] = «Имя»;

Form4->StringGrid1->Cells[3][0] = «Дата рег.»;

Form4->StringGrid1->Cells[4][0] = «Дата рождения»;

Form4->StringGrid1->Cells[5][0] = «Образование»;

Form4->StringGrid1->Cells[6][0] = «Хобби»;

Form4->StringGrid1->Cells[7][0] = «Дети»;

Form4->StringGrid1->Cells[8][0] = «Музыка»;

Form4->StringGrid1->Cells[9][0] = «Животные»;

Form4->StringGrid1->Cells[10][0] = «Спорт»;

int i=1, j;

char buff[80];

ifstream f;

f.open(«data.txt», ios::in);

 

while (!f.eof())

{

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

{

f>>buff ;

if (f.eof()) break;

Form4->StringGrid1->Cells[j][i]=buff;

}

i++;

Form4->StringGrid1->RowCount=Form4->StringGrid1->RowCount+1;

}

f.close();

 

Form4->BitBtn1->Caption=»Вернуться в меню»;

Form4->Show();

Form1->Hide();

}

//—————————————————————————

 

Код программы на языке программирования С#

using System;

using System.Collections.Generic;

using System.IO;

 

namespace kurs

{

    public
struct
people

    {

    public
int regnomer;

    public
int[] datareg;

    public
string FIO;

    public
int vozrast;

    public
int obrazovanie;

    public
int deti,animal,muzik,sport;

    public
string xobi;

    public
char pol;

    };    

    

    class
bero

{

            

    // методы

    public
static
void vvod()

    {

    people person = new people();

    person.datareg = new
int[3];

 

    Console.WriteLine(«введите регистрационный номер: «);

    person.regnomer=Convert.ToInt32(Console.ReadLine());

    

    Console.WriteLine(«Введите ФИО: «);

    person.FIO = Console.ReadLine();

    

    while (true)

    {

    Console.WriteLine(«введите сегоднешнее число: «);

    person.datareg[0]=Convert.ToInt32(Console.ReadLine());

    

    if (person.datareg[0]<1 || person.datareg[0]>30)

        Console.WriteLine(«неверный ввод,повторите…»);

    else
break;

 

    }

while (true)

    {    

    Console.WriteLine(«введите сегоднешний месяц: «);

    person.datareg[1]=Convert.ToInt32(Console.ReadLine());

    

 

    if (person.datareg[1]<1 || person.datareg[1]>12)

        Console.WriteLine(«неверный ввод,повторите…»);

    else    break;

 

    }

while (true)

    {    

    Console.WriteLine(«введите сегоднешний год: «);

    person.datareg[2]=Convert.ToInt32(Console.ReadLine());

    

    if (person.datareg[2]<2012 )

        Console.WriteLine(«неверный ввод,повторите…»);

    else    break;

    }

 

Console.WriteLine(«Введите свой возраст: «);

person.vozrast=Convert.ToInt32(Console.ReadLine());

 

while (true)

    {    

    Console.WriteLine(«Введите ваше образование (1- высшее, 2-среднее специальное): «);

     person.obrazovanie=Convert.ToInt32(Console.ReadLine());

    if (person.obrazovanie!=1 && person.obrazovanie!=2 )

        Console.WriteLine(«неверный ввод,повторите…»);

    else
break;

    }

 

while (true)

{

    Console.WriteLine(«наличие детей(есть-1,нет-0) «);

    person.deti=Convert.ToInt32(Console.ReadLine());

    if (person.deti!=1&& person.deti!=0)

    Console.WriteLine(«неверный ввод,повторите…»);

    else
break;

}

 

while (true)

{

Console.WriteLine(«любите животных(есть-1,нет-0) «);

person.animal=Convert.ToInt32(Console.ReadLine());

if (person.animal!=1&& person.animal!=0)

Console.WriteLine(«неверный ввод,повторите…»);

else
break;

}

 

while (true)

{

Console.WriteLine(«любите музыку(есть-1,нет-0) «);

person.muzik=Convert.ToInt32(Console.ReadLine());

if (person.muzik!=1&& person.muzik!=0)

Console.WriteLine(«неверный ввод,повторите…»);

else
break;

}

 

while (true)

{

Console.WriteLine(«любите спорт(есть-1,нет-0) «);

person.sport=Convert.ToInt32(Console.ReadLine());

if (person.sport!=1&& person.sport!=0)

Console.WriteLine(«неверный ввод,повторите…»);

else
break;

}

 

Console.WriteLine(«какое у вас хоби «);

person.xobi=Console.ReadLine();

 

while (true)

{

Console.WriteLine(» введите пол(женский-w,мужской-m) «);

person.pol=Convert.ToChar(Console.ReadLine());

if (person.pol!=‘w’&& person.pol!=‘m’)

Console.WriteLine(«неверный ввод,повторите…»);

else
break;

}

// файл создается для записи

BinaryWriter file=new
BinaryWriter( new
FileStream(«data.txt», FileMode.Append));

file.Write(person.regnomer); file.Write(person.FIO); file.Write(person.datareg[0]);

file.Write(person.datareg[1]); file.Write(person.datareg[2]); file.Write(person.vozrast);

file.Write(person.obrazovanie); file.Write(person.deti); file.Write(person.animal);

file.Write(person.muzik); file.Write(person.sport); file.Write(person.xobi); file.Write(person.pol);

file.Close();

}    

 

    //———————-вывод————————-

    public
static
void vivod()

{

int n;

 

while (true)

{

 

Console.WriteLine(«1. Вся база»);

Console.WriteLine(«2. Женихи»);

Console.WriteLine(«3. Невесты»);

Console.WriteLine(«4. Подробно о человеке»);

Console.WriteLine(«5. выход»);

n = Convert.ToInt32(Console.ReadLine());

if (n<1||n>5)

    {

    Console.WriteLine(«нет такого пункта меню повторите ввод»);

    continue;

    }

if (n==5) {break;}    


FileStream f= new
FileStream( «data.txt», FileMode.Open);


BinaryReader file=new
BinaryReader(f);

 

people person = new people();

person.datareg = new
int[3];

 

switch (n)

{

case 1:

    {

            

                while (file.PeekChar()>=0)

     {

            person.regnomer=file.ReadInt32(); person.FIO = file.ReadString(); person.datareg[0]=file.ReadInt32();

         person.datareg[1]=file.ReadInt32();    person.datareg[2]=file.ReadInt32(); person.vozrast=file.ReadInt32();

         person.obrazovanie=file.ReadInt32(); person.deti=file.ReadInt32(); person.animal=file.ReadInt32();

         person.muzik=file.ReadInt32(); person.sport=file.ReadInt32(); person.xobi = file.ReadString();

         person.pol=file.ReadChar();

            Console.WriteLine(«{0}\t{1}»,person.regnomer,person.FIO);    

                }

            

            file.Close();

            break;

    }

    case 2:

    {

    
 

    
 

            while (file.PeekChar()>=0)

        {person.regnomer=file.ReadInt32(); person.FIO = file.ReadString(); person.datareg[0]=file.ReadInt32();

         person.datareg[1]=file.ReadInt32();    person.datareg[2]=file.ReadInt32(); person.vozrast=file.ReadInt32();

         person.obrazovanie=file.ReadInt32(); person.deti=file.ReadInt32(); person.animal=file.ReadInt32();

         person.muzik=file.ReadInt32(); person.sport=file.ReadInt32(); person.xobi = file.ReadString();

         person.pol=file.ReadChar();

        

         if (person.pol==‘m’)

             Console.WriteLine(«{0}\t{1}\t{2}», person.regnomer, person.FIO, person.vozrast) ;

        }

        

    file.Close();

    f.Close();

    break;

    }

case 3:

    {

    

        while (file.PeekChar()>=0)

        {person.regnomer=file.ReadInt32(); person.FIO = file.ReadString(); person.datareg[0]=file.ReadInt32();

         person.datareg[1]=file.ReadInt32();    person.datareg[2]=file.ReadInt32(); person.vozrast=file.ReadInt32();

         person.obrazovanie=file.ReadInt32(); person.deti=file.ReadInt32(); person.animal=file.ReadInt32();

         person.muzik=file.ReadInt32(); person.sport=file.ReadInt32(); person.xobi = file.ReadString();

         person.pol=file.ReadChar();

        

         if (person.pol==‘w’)

             Console.WriteLine(«{0}\t{1}\t{2}», person.regnomer, person.FIO, person.vozrast) ;

        }

        

    file.Close();

    f.Close();

    break;

    }

case 4:

    {


Console.WriteLine(«Введите регистрационный номер: «); n=Convert.ToInt32(Console.ReadLine());

    
 


while (file.PeekChar()>=0)

        {person.regnomer=file.ReadInt32(); person.FIO = file.ReadString(); person.datareg[0]=file.ReadInt32();

         person.datareg[1]=file.ReadInt32();    person.datareg[2]=file.ReadInt32(); person.vozrast=file.ReadInt32();

         person.obrazovanie=file.ReadInt32(); person.deti=file.ReadInt32(); person.animal=file.ReadInt32();

         person.muzik=file.ReadInt32(); person.sport=file.ReadInt32(); person.xobi = file.ReadString();

         person.pol=file.ReadChar();

         if (person.regnomer==n)

         {

         Console.WriteLine(«Имя:\t {0}», person.FIO);

         Console.WriteLine(«Возраст:\t {0}», person.vozrast);

         Console.Write(«Образование:\t»); if (person.obrazovanie==1) Console.WriteLine(«высшее»); else
Console.WriteLine(«среднее специальное»);

         Console.Write(«Дети:\t»); if (person.deti==0) Console.WriteLine(«нет»); else
Console.WriteLine(«есть»);

         Console.Write(«Животные:\t»); if (person.animal==0) Console.WriteLine(«не имеет»); else
Console.WriteLine(«есть»);

         Console.Write(«Музыка:\t»); if (person.muzik==0) Console.WriteLine(«равнодушен»); else
Console.WriteLine(«любит»);

         Console.Write(«Спорт:\t»); if (person.sport==0) Console.WriteLine(«не занимается»); else
Console.WriteLine(«занимается»);

         Console.WriteLine(«Хобби:\t {0}\n\n»,person.xobi);

        }

    }

        

    file.Close();

    f.Close();

    break;

    }

}

}}

//—————-удаление——————————    


public
static
void del()

{


int regnomerdel;

people person = new people();

person.datareg = new
int[3];

 


Console.Write(«введите регистрационный номер»);

regnomerdel=Convert.ToInt32(Console.ReadLine());

    

FileStream f= new
FileStream( «data.txt», FileMode.Open);

BinaryReader f1=new
BinaryReader(f);

 

BinaryWriter f2=new
BinaryWriter( new
FileStream(«temp.txt», FileMode.Create));

 

    while (f1.PeekChar()>=0)

        {

         person.regnomer=f1.ReadInt32(); person.FIO = f1.ReadString(); person.datareg[0]=f1.ReadInt32();

         person.datareg[1]=f1.ReadInt32();    person.datareg[2]=f1.ReadInt32(); person.vozrast=f1.ReadInt32();

         person.obrazovanie=f1.ReadInt32(); person.deti=f1.ReadInt32(); person.animal=f1.ReadInt32();

         person.muzik=f1.ReadInt32(); person.sport=f1.ReadInt32(); person.xobi = f1.ReadString();

         person.pol=f1.ReadChar();

 

if (person.regnomer!=regnomerdel)

{

f2.Write(person.regnomer); f2.Write(person.FIO); f2.Write(person.datareg[0]);

f2.Write(person.datareg[1]); f2.Write(person.datareg[2]); f2.Write(person.vozrast);

f2.Write(person.obrazovanie); f2.Write(person.deti); f2.Write(person.animal);

f2.Write(person.muzik); f2.Write(person.sport); f2.Write(person.xobi); f2.Write(person.pol);

}

}    

f2.Close();

f1.Close();

f.Close();

File.Delete(«data.txt»);

File.Move(«temp.txt», «data.txt»);

}    

 


public
static
void red (ref people person)

{

    int n;

    

    while (true)

{ Console.WriteLine(«Выберите поле для редактирования: «);

        Console.WriteLine(«1. возраст «);

     Console.WriteLine(«2. образование»);

        Console.WriteLine(«3. наличие детей»);

        Console.WriteLine(«4. отношение к музыке»);

        Console.WriteLine(«5. отношение к животным»);

        Console.WriteLine(«6. отношение к спорту»);

        Console.WriteLine(«7. хобби»);

        Console.WriteLine(«8. редактирование закончено»);

        n=Convert.ToInt32(Console.ReadLine());

    if (n<1||n>8)

    {

    Console.WriteLine(«нет такого пункта меню повторите ввод»);

    continue;

    }

    if (n==8) break;

    switch (n)

    {

     case 1:

         { while (true)

            {    

                Console.WriteLine(«Введите свой возраст»);

                person.vozrast=Convert.ToInt32(Console.ReadLine());

            if ( person.vozrast<18 && person.vozrast>65)

            {

                Console.WriteLine(«Вам нельзя зарегистрироваться, так, как ваш возраст не подходит»);

         }

            else
break;}

            break;}

 


case 2:

         {while (true)

        {    

            Console.WriteLine(«Введите ваше образование (1- высшее, 2-среднее специальное): «);

            person.obrazovanie=Convert.ToInt32(Console.ReadLine());

        if (person.obrazovanie!=1 && person.obrazovanie!=2 )

            Console.WriteLine(«неверный ввод,повторите…»);

            else
break;

        }

         break;}

 

     case 3:

         {while (true)

        {

        Console.WriteLine(«наличие детей(есть-1,нет-0)»);

        person.deti=Convert.ToInt32(Console.ReadLine());

        if (person.deti!=1&& person.deti!=0)

            Console.WriteLine(«неверный ввод,повторите…»);

        else
break;

        }

         break;}

 

     case 4:

        {while (true)

        {

        Console.WriteLine(«любите музыку(есть-1,нет-0)»);

        person.muzik=Convert.ToInt32(Console.ReadLine());

        if (person.muzik!=1&& person.muzik!=0)

            Console.WriteLine(«неверный ввод,повторите…»);

        else
break;

        }

        break;}

    

    case 5:

        {while (true)

        {

        Console.WriteLine(«любите животных(есть-1,нет-0)»);

        person.animal=Convert.ToInt32(Console.ReadLine());

        if (person.animal!=1&& person.animal!=0)

            Console.WriteLine(«неверный ввод,повторите…»);

        else
break;

        }

        break;}

    case 6:

        {while (true)

        {

        Console.WriteLine(«любите спорт(есть-1,нет-0)»);

        person.sport=Convert.ToInt32(Console.ReadLine());

        if (person.sport!=1&& person.sport!=0)

            Console.WriteLine(«неверный ввод,повторите…»);

        else
break;

        }

        break;}

        case 7:

            {Console.WriteLine(«введите ваше хобби…»);

            person.xobi=Console.ReadLine();

            break;}

    }}}    

 


//————редактирование——————————

    public
static
void edit()

{

    

     int regnomeredit;

people person = new people();

person.datareg = new
int[3];

 

Console.WriteLine(«введите регистрационный номер»);

regnomeredit = Convert.ToInt32(Console.ReadLine());

 

FileStream f= new
FileStream( «data.txt», FileMode.Open);

BinaryReader f1=new
BinaryReader(f);

 

BinaryWriter f2=new
BinaryWriter( new
FileStream(«temp.txt», FileMode.Create));

 

while (f1.PeekChar()>=0)

{    

    person.regnomer=f1.ReadInt32(); person.FIO = f1.ReadString(); person.datareg[0]=f1.ReadInt32();

    person.datareg[1]=f1.ReadInt32();    person.datareg[2]=f1.ReadInt32(); person.vozrast=f1.ReadInt32();

    person.obrazovanie=f1.ReadInt32(); person.deti=f1.ReadInt32(); person.animal=f1.ReadInt32();

    person.muzik=f1.ReadInt32(); person.sport=f1.ReadInt32(); person.xobi = f1.ReadString();

    person.pol=f1.ReadChar();

 

    

    if (person.regnomer!= regnomeredit)

{

f2.Write(person.regnomer); f2.Write(person.FIO); f2.Write(person.datareg[0]);

f2.Write(person.datareg[1]); f2.Write(person.datareg[2]); f2.Write(person.vozrast);

f2.Write(person.obrazovanie); f2.Write(person.deti); f2.Write(person.animal);

f2.Write(person.muzik); f2.Write(person.sport); f2.Write(person.xobi); f2.Write(person.pol);

}

 

    else

{

red(ref person);

f2.Write(person.regnomer); f2.Write(person.FIO); f2.Write(person.datareg[0]);

f2.Write(person.datareg[1]); f2.Write(person.datareg[2]); f2.Write(person.vozrast);

f2.Write(person.obrazovanie); f2.Write(person.deti); f2.Write(person.animal);

f2.Write(person.muzik); f2.Write(person.sport); f2.Write(person.xobi); f2.Write(person.pol);

}

}

 

f2.Close();

f1.Close();

File.Delete(«data.txt»);

File.Move(«temp.txt», «data.txt»);

 

}        

        

public
static
void poisk()

{


int vozrast_p;


int x, kol=0;

people podbor;

 

Console.WriteLine(«Введите данные для поиска»);

 

Console.WriteLine(«Кого ищем? «);

Console.WriteLine(«1. жениха»);

Console.WriteLine(«2. невесту»);

x=Convert.ToInt32(Console.ReadLine());

 

if (x==1) podbor.pol=‘m’; else podbor.pol=‘w’;

 

Console.WriteLine(«Введите возрастной промежуток»);

Console.WriteLine(«от: «); podbor.vozrast=Convert.ToInt32(Console.ReadLine());;

Console.WriteLine(«по: «); vozrast_p=Convert.ToInt32(Console.ReadLine());;

 

Console.WriteLine(«Образование: «);

Console.WriteLine(«1. высшее»);

Console.WriteLine(«2. среднее и выше»);

Console.WriteLine(«3. не имеет значения «);

podbor.obrazovanie=Convert.ToInt32(Console.ReadLine());

 

Console.WriteLine(«Наличие детей: «);

Console.WriteLine(«1. да»);

Console.WriteLine(«2. нет»);

Console.WriteLine(«3. не имеет значения «);

podbor.deti=Convert.ToInt32(Console.ReadLine());

 

Console.WriteLine(«Наличие животных: «);

Console.WriteLine(«1. да»);

Console.WriteLine(«2. нет»);

Console.WriteLine(«3. не имеет значения «);

podbor.animal=Convert.ToInt32(Console.ReadLine());

 

//подбор

 

people person = new people();

person.datareg = new
int[3];

 

FileStream f= new
FileStream( «data.txt», FileMode.Open);

BinaryReader f1=new
BinaryReader(f);

 

BinaryWriter f2=new
BinaryWriter( new
FileStream(«temp.txt», FileMode.Create));

 

while (f1.PeekChar()>=0)

{

    person.regnomer=f1.ReadInt32(); person.FIO = f1.ReadString(); person.datareg[0]=f1.ReadInt32();

    person.datareg[1]=f1.ReadInt32();    person.datareg[2]=f1.ReadInt32(); person.vozrast=f1.ReadInt32();

    person.obrazovanie=f1.ReadInt32(); person.deti=f1.ReadInt32(); person.animal=f1.ReadInt32();

    person.muzik=f1.ReadInt32(); person.sport=f1.ReadInt32(); person.xobi = f1.ReadString();

    person.pol=f1.ReadChar();

 

    


if(podbor.pol!=person.pol) continue;


if(person.vozrast<podbor.vozrast || person.vozrast>vozrast_p) continue;


if(podbor.obrazovanie!=3 && podbor.obrazovanie!=person.obrazovanie) continue;


if(podbor.deti!=3 && podbor.deti!=person.deti) continue;


if(podbor.animal!=3 && podbor.animal!=person.animal) continue;

 

f2.Write(person.regnomer); f2.Write(person.FIO); f2.Write(person.datareg[0]);

f2.Write(person.datareg[1]); f2.Write(person.datareg[2]); f2.Write(person.vozrast);

f2.Write(person.obrazovanie); f2.Write(person.deti); f2.Write(person.animal);

f2.Write(person.muzik); f2.Write(person.sport); f2.Write(person.xobi); f2.Write(person.pol);

kol++;

}

f1.Close();

f2.Close();

 


if (kol==0) Console.WriteLine(«Подходящих кандидатур нет»);


else

{

    FileStream fx= new
FileStream( «temp.txt», FileMode.Open);

    f1=new
BinaryReader(fx);

    

    while (f1.PeekChar()>=0)

    {

    person.regnomer=f1.ReadInt32(); person.FIO = f1.ReadString(); person.datareg[0]=f1.ReadInt32();

    person.datareg[1]=f1.ReadInt32();    person.datareg[2]=f1.ReadInt32(); person.vozrast=f1.ReadInt32();

    person.obrazovanie=f1.ReadInt32(); person.deti=f1.ReadInt32(); person.animal=f1.ReadInt32();

    person.muzik=f1.ReadInt32(); person.sport=f1.ReadInt32(); person.xobi = f1.ReadString();

    person.pol=f1.ReadChar();

    Console.WriteLine(«{0} {1} {2}.{3}.{4} {5}»,person.regnomer, person.FIO, person.datareg[0],person.datareg[1], person.datareg[2],person.vozrast);

    

    }

    Console.WriteLine(«всего найдено {0} кандидатур», kol);

}

}

 

    class
MainClass

    {

        public
static
void Main(string[] args)

        {

            int n;

while (true)

{

    

    Console.WriteLine(«\n\n\n1.регистрация»);

    Console.WriteLine(«2.удаление»);

    Console.WriteLine(«3.редактироватирование записей»);

    Console.WriteLine(«4.показать базу даныых»);

    Console.WriteLine(«5.поиск кандидатур»);

    Console.WriteLine(«6.выход\n»);

    n=Convert.ToInt32(Console.ReadLine());

 

    if (n<1||n>6)

    {

            Console.WriteLine(«нет такого пункта меню повторите ввод\n»);

    continue;

    }

    switch (n)

    { case 1: vvod();break;

     case 2: del() ;break;

     case 3: edit(); break;

     case 4: vivod() ;break;

     case 5: poisk(); break;

    }

    if (n==6) break;

    }}

    }}}