C++

Тема в разделе "C/C++/C#", создана пользователем -, 25 окт 2010.

  1. Гость

    Задание структуры

    Задано множество объектов, каждый из которых описывается совокупностью признаков Р1, Р2, Р3, Р4, Р5, Р6 (таблица 1).
    Требуется:
    - выбрать объекты, признаки которых удовлетворяют условиям из таблицы 2;
    - для этих объектов распечатать признаки, указанные в таблице 3.

    Объект - Анкета Сотрудника

    121.jpg

    Условия выделения объектов: Р2=1970, Р4=среднее, Р6=мастер.

    Выводимые на печать признаки: Р1, Р2, Р4, Р5, Р6
     
  2. DarkKnight

    DarkKnight Well-Known Member
    C\C++ Team

    Регистрация:
    1 авг 2010
    Сообщения:
    653
    Симпатии:
    0
    Допишу завтра, щас спать охото

    Код (C++):
    #include <iostream>
    #include <iomanip>

    using namespace std;

    struct Anketa //Структура анкета
    {
    char Fio[64]; //ФИО 64 байта под символы
    int Year; //Год рождения целочисленное
    enum MarryStatus{nomarried,married} Marry; //семейного положение (перечисляемыми константами nomarried = 0 (холост) married =1 (в браке)
    enum EducationStatus{aver,averspec,highspec} Education; //образование (перечисляемыми константами aver = 0 (среднее) averspec =1 (средне-специальное)
    //highspec = 2 (высшее
    int Stage; //стаж целочисленное (в годах)
    char Dolj[16]; //Должность 16 байт под символы
    };

    void Print(Anketa Ank);
    void Print (Anketa *Arr,int SizeArr);

    int Menu (void)
    {
    cout<<"\t\tМЕНЮ"<<endl;
    cout<<"1: Ввод данных"<<endl;
    cout<<"2: Печать данных"<<endl;
    cout<<"3: Поиск данных"<<endl;
    cout<<"4: Выход"<<endl;

    cout<<"Ваш выбор :";
    int Variant;
    cin>>Variant;
    return Variant;
    }

    Anketa InputAnketa(void)
    {
    Anketa Temp;
    system ("cls"); //Отчистим экран консоли
    cout<<"\t\t Ввод нового сотрудника"<<endl;

    cout<<"Введите ФИО Работника : ";
    cin.ignore(); //Уберем последний символ ('\n') из потока
    cin.getline(Temp.Fio,64,'\n');

    cout<<"Введите год рождения работника: ";
    cin>>Temp.Year;

    bool Ctrl = false;
    while (!Ctrl)
    {
    Ctrl = true;
    cout<<"Введите семеное положение работника (1 - холост(а) / 2- состоит в браке): ";
    int Marry;
    cin>>Marry;
    switch (Marry)
    {
    case 1 : Temp.Marry = Anketa::nomarried;
    break;
    case 2 : Temp.Marry = Anketa::married;
    break;
    default: Ctrl = false;
    }
    }

    Ctrl = false;
    while (!Ctrl)
    {
    Ctrl = true;
    cout<<"Введите образование сотрудника (1 - среднее / 2- сред.спец. / 3 - высшее): ";
    int Edu;
    cin>>Edu;
    switch (Edu)
    {
    case 1 : Temp.Education = Anketa::aver;
    break;
    case 2 : Temp.Education = Anketa::averspec;
    break;
    case 3 : Temp.Education = Anketa::highspec;
    break;
    default: Ctrl = false;
    }
    }

    cout<<"Введите стаж работника (кол-во лет) : ";
    cin>>Temp.Stage;

    cout<<"Введите должность сотрудника: ";
    cin.ignore();
    cin.getline(Temp.Dolj,16,'\n');
    cout<<endl<<endl<<"\t\t***Добавление выполнено***"<<endl;
    system("pause");
    system("cls");
    return Temp;
    }

    void Print (Anketa *Arr,int SizeArr)
    {
    for (int i = 0; i<SizeArr; i++)
    {
    Print(Arr[i]);
    }

    }

    void Print(Anketa Ank)
    {

    cout<<setw(16)<<"       ФИО   "<<setw(12)<<"Год рожд. "<<setw(12)<<"Сем. положение "<<setw(12)<<"Образование "<<setw(10)<<"Стаж  "<<setw(12)<<"Должность "<<endl;
    cout.setf(ios::left);
    setlocale(LC_ALL,".866");
    cout<<setw(16)<<Ank.Fio<<setw(12)<<Ank.Year<<setw(12)<<Ank.Marry;
    setlocale(LC_ALL,"Russian");
    cout<<endl;
    }

    void main(void)
    {
    setlocale(LC_ALL,"Russian");
    Anketa Arr[20];
    int SizeArr = 0;
    int InputMenu;
    do
    {
    InputMenu = Menu();
    switch (InputMenu)
    {
    case 1:
    Arr[SizeArr] = InputAnketa();
    SizeArr++;
    break;
    case 2:
    Print(Arr,SizeArr);
    break;
    case 3:
    break;
    }
    }
    while (InputMenu != 4);

    }
     
  3. Гость

    И за это спасибо! =) Тут сама допишу =) смысл ясен! =)
     
Загрузка...
Похожие Темы - C++
  1. Nadia_IT
    Ответов:
    0
    Просмотров:
    26
  2. kmm96
    Ответов:
    1
    Просмотров:
    25
  3. TriXel_01
    Ответов:
    5
    Просмотров:
    104
  4. acs-nexus
    Ответов:
    0
    Просмотров:
    93
  5. Ramzay
    Ответов:
    3
    Просмотров:
    135

Поделиться этой страницей