Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практика Шафеева.doc
Скачиваний:
32
Добавлен:
30.03.2015
Размер:
1.09 Mб
Скачать

Структуры

Цель работы: научиться разрабатывать и отлаживать программы с исполь­зованием комбинированного типа - «структура».

Структура может содержать элементы разных типов.

struct [имя_типа]

{

тип_1 элемент_1;

тип_2 элемент_2;

тип_n элемент_n;

} [список_переменных];

Элементы структуры называются полями структуры и могут иметь любой тип, кроме типа этой же структуры, но могут быть указателями на него. Если отсутствует имя типа, должен быть указан список описателей переменных, указателей или массивов. В этом случае описание структуры служит определением элементов этого списка. Частными видами полей структуры являются побитовые поля и объединения (union).

Пример: Разработать программу формирования списка студентов с указание М дат рождения и выборки студентов по году рождения.

#include <stdio.h>

#include <conio.h>

struct student //определение нового типа

{

char name [15];

struct // вложенная структура (запись)

{

unsigned den,mes;

unsigned int god ;

} denRogd;

} ;

void main ()

{

struct student z [20];

unsigned short g, i, n; // g- год

clrscr(); // очистка экрана

printf("Введите количество студентов");

scanf ("%u", &n);

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

{

printf("Введите имя %u студента",i+1);

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

printf ("Введите день рождения ");

scanf ("%u", &z[i].denRogd.den);

printf ("Введите месяц рождения");

scanf ("%u", &z[i].denRogd.mes);

printf ("Введите год рождения");

scanf ("%d", &z[i].denRogd.god);

}

printf ("Введите год для поиска ");

scanf ("%u",&g);

printf (" Список\n");

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

{

if (z[i].denRogd.god==g)

{

printf ("Имя студента ");

printf ("%s\n",z[i].name);

printf ("Дата рождения - ");

printf ("%u ",z[i].denRogd.den);

printf ("%u ",z[i].denRogd.mes);

printf ("%d",z[i].denRogd.god);

printf ("\n");

}

}

getch();

}

Задание 1 (программа 12_1)

1. Ввести оценки студента по 5 экзаменам. Определить средний балл и подсчитать количество удовлетворительных, хороших и отличных оценок. Напечатать название предмета, если есть «неуд».

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

3. Дан список студентов группы. Заполнить его следующими сведе­ниями: фамилия, имя, отчество; имеет ли компьютер (если имеет, то ка­кой и с какого года). Подсчитать сколько студентов имеют ПК.

4. Сформировать список студентов группы со следующими сведения­ми: Фамилия, имя, отчество, знает ли языки программирования Turbo Pas­cal, Cи (если да, где обучался и сколько лет). Подсчитать, сколько студентов знают язык Си, сколько – Turbo Pascal, сколько - оба языка.

5. Сформировать список студентов группы, в котором указать фами­лию (имя, отчество); город, в котором получил среднее образование (номер школы, если обучался в Омске). Подсчитать, сколько в группе иногородних студентов.

6. Сформировать запись «ключевые слова ТР»: слово и перевод. Подсчитать их количество. Организовать поиск: по ключевому слову - перевод и наоборот.

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

8. Сформировать запись «Даты - праздники». Организовать в прог­рамме ввод дат, подсчитать число праздничных дней и рабочих.

9. Сформировать запись «английское слово-перевод». Вводя слово (английское или русское), найти перевод или выдать сообщение «нет в словаре». По возможности предусмотреть пополнение словаря.

10. Сформировать запись «операторы ТР»: оператор, действие. Подсчитать их количество и количество операторов имеющих повторяющие­ся ключевые слова.

11. Сформировать запись «типы ТР»: имя, тип, операции, разрешен­ные в данном типе. Подсчитать количество разных операций и вывести списки типов для каждой операции.

12. Сформировать пополняемую базу данных «Континент - страны», в которой указать столицы, численность населения, крупные города. Ор­ганизовать поиск страны по городу, стран или городов на континенте.

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

14. Сформировать список граждан, в котором указать фамилию, имя, отчество; адрес; профессию. Организовать в программе выборку и подс­чет граждан с одинаковой профессией.

15. Сформировать список студентов группы, в котором указать фами­лию, имя, отчество; день, число и месяц рождения. Организовать выбор­ки по месяцу и году рождения.

16. Дан список студентов группы. Заполнить его следующими сведе­ниями: фамилия, имя, отчество; день, число и месяц рождения. Распе­чатать список в порядке возрастания дат рождения.

17. Сформировать базу данных «Единицы измерения», в которой указать название единицы, обозначение, назначение, соотношение. Организовать поиск по любому полю.

18. Разработать базу данных « География. Реки», в которой указать название реки, местоположение, длину, глубину.

19. Разработать базу данных «Астрономия», в которой указать название звезды, величину, созвездие.

20. Разработать базу данных «Планеты солнечной системы», в которой указать название планеты, величину, удаленность, спутники.

21. Сформировать базу данных «Химические элементы», в которой указать название элемента, формулу, группу, организовать выборки.

22. Ввести сведения о человеке: фамилия, имя, отчество, пол, национальность, рост, вес, дата рождения.

23. Ввести сведения о гражданине: Ф.И.О., дата рождения, ИНН, № страхового свидетельства, № мед. полиса. Запрограммировать поиск.

24. Сформировать справочник о спортивных командах: название, город, число сыгранных игр, число очков, количество игроков.

Задание 2 (программа 12_2)

Дополнить программу 12_1 заполнением и обработкой файлов. Имя файла вводить с клавиатуры в процессе работы программы.

Лабораторная работа 13

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]