1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

C++

Тема в разделе "Вопросы новичков и не только", создана пользователем -, 25 окт 2010.

  1. Гость

    Репутация:
    0
    Задание структуры

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

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

    C++

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

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

    DarkKnight Well-Known Member

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

    Код:
    #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. Гость

    Репутация:
    0
    И за это спасибо! =) Тут сама допишу =) смысл ясен! =)
     
Загрузка...

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