Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМК_ПВМ.doc
Скачиваний:
3
Добавлен:
24.11.2019
Размер:
2.64 Mб
Скачать

Тема 13. Составление программ решения задач с использованием структур данных.

Форма проведения: Решение задач.

Задание. Создать массив записей в соответствии с заданной структурой. Реализовать ввод и обработку записей.

Варианты заданий:

Варианты 1-5

Предусмотреть вывод значений для полей элементов массива записей по следующим ключам: по адресу юридической консультации, по названию юридической консультации, по фамилии, имени, отчеству (Ф.И.О.) адвоката или нотариуса, по номеру телефона адвоката или нотариуса.

 

Запросы:

  1. Определить, сколько юридических консультаций находится в определенном районе.

  2. Определить юридическую консультацию, в которой работает наибольшее количество адвокатов.

  3. Определить юридическую консультацию, в которой работает наименьшее количество нотариусов.

  4. Определить, сколько нотариусов и адвокатов работает в определенной юридической консультации.

  5. Определить юридические консультации, которые находятся на одной определенной улице.

Методические рекомендации по проведению СРСП.

Контрольный пример 1. Даны сведения о сотрудниках фирмы: фамилия, имя, адрес, возраст, телефон, зарплата. Вывести сведения о сотрудниках по имени Alex в возрасте от 25 до 30 лет.

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

/* пример 1 */

#include <stdio.h>

#include <conio.h>

#include <string.h>

#include <stdlib.h>

#define n 3

struct person

{ char fam[20], name[15], address[30];

int age, phone, salary; };

main ()

{ struct person str_pr[n];

int i;

clrscr();

printf("Input svedeniya\n");

/* пример 2 */

#include <stdio.h>

#include <conio.h>

#define n 3

struct person

{

char fam[20], name[15], address[30];

int age, phone, salary;

};

main ()

{

struct person str_pr[n], buf;

int i, j;

clrscr();

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

{printf("%i person\n",i+1);

printf("Fam: ");

scanf("%s", str_pr[i].fam);

printf("Name: ");

scanf("%s", str_pr[i].name);

printf("Address: ");

scanf("%s", str_pr[i].address);

printf("Age: ");

scanf("%i", &str_pr[i].age);

printf("Phone: ");

scanf("%i", &str_pr[i].phone);

printf("Salary: ");

scanf("%i", &str_pr[i].salary);

printf("\n"); }

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

if (strcmp(str_pr[i].name,"alex")==0&&

str_pr[i].age>=25&&str_pr[i].age<=30)

{

printf("Fam: %s\n", str_pr[i].fam);

printf("Address: %s\n", str_pr[i].address);

printf("Phone: %i\n", str_pr[i].phone);

printf("Salary: %i\n", str_pr[i].salary);

}

getch();

return 0;

}

printf("Input svedeniya\n");

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

{printf("%i person\n",i+1);

printf("Fam: ");

scanf("%s", str_pr[i].fam);

printf("Name: ");

scanf("%s", str_pr[i].name);

printf("Address: ");

scanf("%s", str_pr[i].address);

printf("Age: ");

scanf("%i", &str_pr[i].age);

printf("Phone: ");

scanf("%i", &str_pr[i].phone);

printf("Salary: ");

scanf("%i", &str_pr[i].salary);

printf("\n"); }

for (i=0;i<n-1;i++)

for (j=i+1;j<n;j++)

if (str_pr[i].age<str_pr[j].age) {

buf=str_pr[i]; str_pr[i]=str_pr[j];

str_pr[j]=buf; }

for (i=0;i<n-1;i++)

{ printf("Fam: %s\n", str_pr[i].fam);

printf("Name: %s\n", str_pr[i].name);

printf("Address: %s\n", str_pr[i].address);

printf("Age: %i\n", str_pr[i].age);

printf("Phone: %i\n", str_pr[i].phone);

printf("Salary: %i\n", str_pr[i].salary); }

getch();

return 0; }

Рекомендуемая литература.

1осн[393-397], 2осн[406-436], 3осн[108-128], 6доп[200-209], 8доп[13-16]