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

Страницы работы

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

Содержание работы

Задача №1.

ДАНО:          Список студентов группы, где о каждом известно следующее:

Дата Рождения

Пол

Адрес

ТРЕБУЕТСЯ:          Выбрать студентов мужского пола, которым исполнилось 18 лет.

ОГРАНИЧЕНИЯ:

Разработать программу, обеспечивающую с помощью средств языка С++ ввод анкетных данных студентов и вывод в табличном виде списка студентов, отобранных по заданному условию.

РЕШЕНИЕ:

//include <stdio.h>

struct anketa         /* Объявление структуры нового типа (anketa), */

{ int num; int n;      /* описание полей (элементов) структуры       */

char Fam[20];

int dd,mm,yyyy;

char pol[2];

char address[40];

} M[30];          /* Объявление массива М, состоящего   */

/* из 30 элементов типа struct anketa */

main()

{ int key=0;

do  {  printf(“\n             Меню               ”);

printf(“\n         1 - Ввод               ”);

printf(“\n         2 - Вывод              ”);

printf(“\n         3 - Конец              ”);

printf(“\n   Введите номер пункта меню:   ”);

scanf(“%d”,&key);

switch(key)

{ case 1: n=vvod(); break;   /* Обработка события выбора пункта меню- при */

case 2: vivod(n); break;   /* вводе номера пункта происходит выполнение */

case 3: break;                   /* ф-ции, указанной в соотв. операторе case  */

default: printf(“\n Неверный номер!”);

}

} while (key!=3);

printf(“\n Конец программы.”);

}

int vvod()

{ int i, n =0

printf(“\n Сколько анкет ввести?”);

scanf(“%d”, &n);

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

{ printf(“\n Ввод %d-ой анкеты”,i+1);

printf(“\n Num: ”);  scanf(“%d”,&M[i].num);

printf(“\n Fam: ”);  scanf(“%s”,&M[i].Fam);

printf(“\n Data rozhdeniya: ”); 

printf(“\n Day: ”);  scanf(“%d”,&M[i].dd);

printf(“\n Month: ”);  scanf(“%d”,&M[i].mm);

printf(“\n Year: ”);  scanf(“%d”,&M[i].yyyy);

printf(“\n Pol: ”);  scanf(“%s”,&M[i].pol);

printf(“\n Address: ”);  scanf(“%s”,&M[i].address);

}

return n;

}

void vivod(int n) { int i;

printf(“\n Список студентов- мужского пола, старше 18 лет    ”);

printf(“\n ------------------------------------------------- ”);

printf(“\n | Номер | | Дата рождения | Пол | Адрес | ”);

printf(“\n ------------------------------------------------- ”);

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

{ if((M[i].pol==’M’)&&((M[i].yyyy+18)>=2010))         /* Отбор по условию и     */

printf(“\n|%5d|%-20.19s|%2d.%2d.%4d|%3s|%40.40s|”,  /* печать данных студентов*/

M[i].num, M[i].Fam, M[i].dd, M[i].mm, M[i].yyyy, M[i].pol, M[i].address);

}

}

Задача №2

ДАНО:            Файл, имя которого совпадает с названием группы, предназначен для хранения анкетных данных студентов и имеет следующую структуру:

И.О.

Дата Рождения

Пол

Адрес

ТРЕБУЕТСЯ:            Разработать программу ввода, сохранения в файле и печати в табличном виде анкетных данных студентов с помощью средств языка С++

ОГРАНИЧЕНИЯ:

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

·  разработать операторные функции для ввода и печати в табличном виде анкеты с данными заданной структуры.

РЕШЕНИЕ:

//include <stdio.h>

//include <iostream.h>

//include <fstream.h>

//include <string.h>

char group[8]= “\0”; char otchet[10]= “Print.txt”;

struct anketa         /* Объявление структуры нового типа (anketa), */

{ int num; int n;       /* описание полей (элементов) структуры       */

char Fam[20];

int dd,mm,yyyy;

char pol[2];

char address[40];

friend istream& operator >> (istream& is, anketa &dan);

friend ofstream& operator << (ofstream& ofs, anketa &dan);

friend ostream& operator << (ostream& os, anketa &dan);

}

// Переопределение стандартной операции при помощи операторной функции

istream& operator >> (istream& is, anketa& dan)

{ cout << “\n Num:”; is>>dan.num;

cout << “\n Fam:”; is>>dan.Fam;

cout << “\n Data rozhdeniya:”;

cout << “\n Day:”; is>>dan.dd;

cout << “\n Month:”; is>>dan.mm;

cout << “\n Year:”; is>>dan.yyyy;

cout << “\n Pol:”; is>>dan.pol;

cout << “\n Address:”; is>>dan.address;

return is;

}

ostream& operator << (ostream& os, anketa& dan)

{ char str[80];                                  

sprintf(str, “\n|%5d|%20.20s|%2d.%2d.%4d|%3s|%40.40s|”,

dan.num, dan.Fam, dan.dd, dan.mm, dan.yyyy, dan.pol, dan.address);

str[79]= ‘\0’;

os<<str;

return os;

}

ofstream& operator << (ofstream& ofs, anketa& dan)

{ char str[80];

sprintf(str, “\n|%5d|%20.20s|%2d.%2d.%4d|%3s|%40.40s|”,

dan.num, dan.Fam, dan.dd, dan.mm, dan.yyyy, dan.pol, dan.address);

str[79]= ‘\0’;

ofs<<str;

Похожие материалы

Информация о работе

Предмет:
Базы данных
Тип:
Ответы на экзаменационные билеты
Размер файла:
538 Kb
Скачали:
0

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.