Мегаобучалка Главная | О нас | Обратная связь


Лабораторная работа № 8



2019-12-29 249 Обсуждений (0)
Лабораторная работа № 8 0.00 из 5.00 0 оценок




Тема: Составной тип данных: структуры.

В отличие от массивов, все элементы которых должны быть одного типа, структуры объединяют в одной переменной элементы

разных, типов.

Объявления структуры начинается с ключевого слова struct и имеет

два формата записи.

Формат 1:

struct [имя типа-структуры ]

        {список-объявлений-элементов}

        [ [описатель]…];

Формат 2:

struct наш типа-структуры описатель [описатель]

где имя типа-структуры - это идентификатор, который именует тип структуры.

Описатель - именует переменную структурного типа. Список-объявлений-элеменатов содержит одно или несколько объявлений переменных или полей битов.

Квадратные скобки ([ ]) означает необязательный формат записи и могут быть опущены.

Объявление структуры задает имя структурной переменной и последовательность переменных величин, называемых элементами структуры, которые могут иметь различные типы. Элементы структуры могут быть любого основного типа, массивом, указателем, смесью или структурой. Пример объявление структуры:

struct Teacher{

char fio[40];

int tab _ nom ;

       float oklad ; }

spisok[20],*tt;

struct Teacher_sc();

В этом примере объявляется структура типа Teacher из 20 элементов, указатель на структуру типа Teacher и функция, возвращающая структуру типа Teacher.

Элементы структуры запоминаются последовательно в том же порядке, в котором они объявляются: первому элементу соответствует самый младший адрес памяти, а последнему - самый старший.

 Память каждому элементу выделяется на границе, соответствующей его типу.

Для определения действительного размера структурной переменной надо использовать операцию sizeof.

        // Пример решения задачи с использованием структyp (struct):

#include<stdio.h>

#tnclude<conio.h>   

Int main(void)      .

{ char nom _ tab[20];

char fam [20];     

 int vvod=0;

int loop, vozr;
double zarp;

Struct kol _ struct

{char fam[20];

 int vozr;

 float zarp;

} kol[20];       

printf («\n\n Введите номер таблицы (ведомости) ?: »);
scanf («%20s» ,nom_ tab);

fflush (stdin);

printf (« Сколько записей собираетесь ввести ( можно до 20);»);

scanf («%d», wod);

fflush (stdin);

for (loop=0;loop<vvod; ++loop)

{

printf (« Запись %d\n»,loop);

 printf (« Фамилия :»);

scanf («%s».kol [loop].fain);

flush (stdin);

printf (« Ваш возраст :»);

scanf («%d», kol [loop]. vozr);         

fflush (stdin);

printf (« Ваша зарплата :»);

scanf («%f»,kol [loop]. zarp );

flush (stdin);

}

primf («\n Теперь введите свою фамилию, возраст и зарплату \n»);

 scinf («%20s %d %lf», fam, &vozr, &zarp»);

printf («\n\n Таблица( ведомость):%s\n», nom_tab);

printf (« Таблицу составил:%sвозраст %d $ 15.21F\n», fam , vozr, zarp);

printf («_______________________________________________\n»);

       for ( loop = 0;loop< vvod; ++loop)

printf («%4d | % -20s|%5d|%15.21f\n»,

       loop+1,

kol [loop]. fam,

kol loop].vozr,

kol [loop].zarp);

printf («_______________________________________________\n»);

       return 0;

}

       После компиляции и выполнение этой программы на экране появится следующие запросы:

Введите номер таблицы (ведомости)?: 1

Сколько записей собираетесь ввести(можно до 20): 4

Запись 0:

Фамилия: Иванов И.

Ваш возраст: 23

Ваша зарплата. 345.67

Запись 1:

Фамилия: Сидоров В.

Ваш возраст: 22

Ваша зарплата. 545.67

Запись 2:

Фамилия: Токоев Р.

Ваш возраст: 25

 Ваша зарплата. 742.00

Запись 3:

Фамилия: Нанаев Н.

Ваша возраст: 842.00

 Теперь введите свою фамилию, возраст и зарплату:

Абдыкеримов 29 678.90

После этого получаем резултат в виде:

Таблица 1:

Таблицу составил: Абдыкеримов возраст: 29 $ 678.90

 

1 Иванов И. 23 345.67
2 Сидоров В. 22 545.67
3 Токоев Р. 25 742.00
4 Нанаев Н. 27 842.00

Варианты задач.

1. Дан файл с записями следующей структуры:

Номер зачетки Факультет Ф.И.О. Курс Группа Шифр предмета Оценка
             

       В зависимости от запроса необходимо выдать списки студентов заданного факультета и курса, упорядочив их либо по труппам, а внутри групп по алфавиту, либо просто по алфавиту. Кроме того, необходимо распечатать списки неуспевающих по каждому предмету.

 

2. Задан файл с записями следующей структуры:

Реквизит Шаблон
Номер зачетки Факультет Курс Группа Оценки  

Записать его как индексно - последовательный файл и затем по запросу выдавать либо списки успевающих, либо списки неуспевающих, либо полностью информацию по какому - либо студенту.

 

3. Задан файл с записями следующей структуры

Факультет Курс Группа Номер зачетки Оценки 1 Оценки 2 Оценки 3
             

       Файл неупорядочен. Рассортировать его по факультету, курсу, группе, номеру зачетки и распечатать, подсчитав количество неуспевающих и отличников по каждому подразделению.

 

4. Вводится неупорядоченный файл с записями следующей структуры:

Номер зачетки Ф.И.О.
   

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

 

5. Задан файл с записями следующей структуры:

Реквизит Шаблон
Номер зачетки Ф.И.О. Курс Группа Оценки  

       Создать индексно-последовательный файл и одновременно распечатать его. Вместо оценок выдавать признак успеваемости: неуд. –есть хотя бы одна двойка; уд. –все тройки; см. – смешанные оценки; ох. –отлично и хорошо; отл. – отличные оценки.

 

6. Имеется файл, содержащий информацию об абитуриентах следующей структуры:

Реквизит Шаблон
Факультет Ф.И.О. Оценки Средний балл Пол  

       Составить программу записи файла и вывода на печать списка абитуриентов: имеющих средний балл 5; имеющих средний балл 4,5; имеющих средний балл ниже 4,5.

 

7. В универмаге имеется 5 секций. В конце каждого рабочего дня (на протяжении недели) заведующий каждой секцией представляет отчет о сумме денег, на которую проданы товары. Эта информация подготавливается в следующем виде:

Реквизит Шаблон
Номер секции Стоимость  

       Написать программу вычисления общей стоимости реализованной каждой секцией продукции за неделю. Исходный файл записать, выдать, напечатать.

 

8. Задан входной файл, имеющий следующую структуру:

Реквизит Шаблон
Ф.И.О. Год рождения Пол  

       Составить программу, которая подсчитывает школьников, дошкольников и пенсионеров (старше 60 лет –мужчин, и старше 55 лет -женщин). Вывести файл на печать и результаты счета.

 

9. Задан файл со следующей структурой:

Реквизит Шаблон
Номер зачетки Курс Номер группы Оценки (повторяется 5 раза) Количество экзаменов  

       Вычислить итоговую успеваемость, на печать выдать в виде таблиц.

 

10. Файл имеет следующую структуру:

Реквизит Шаблон
Номер курса Ф.И.О. Оценки (повторяется 5 раза) Номер зачетной книжки Адрес родителей  

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

 

11. Составить файл следующей структуры:

Реквизит Шаблон
Курс Группа Ф.И.О. Оценки  

Выдать полученный файл на печать. Подсчитать количество отличников в заданной группе. Результат отпечатать.

 

12. Дан файл следующей структуры:

Реквизит Шаблон
Название команды Количество побед Количество ничьих Количество поражений  

       Выдать на печать турнирную таблицу, рассортированную убыванию количества очков, при равенстве очков – по убыванию количества побед, а при равенстве побед – в произвольном порядке.

 

13. Чемпионат мира по волейболу проходит в 3 городах. Из каждого города в пресс – центр поступает информация, имеющая следующий вид:

Реквизит Шаблон
Страна Очки Количество выигранных партий Количество проигранный партий  

       Требуется записать итоговую таблицу чемпионата, где команды должны быть расставлены в порядке уменьшения количества очков. Таблицу распечатать.

 

14. Составить программу расположения в алфавитном порядке списка фамилий, вводимого с клавиатуры. Всего вводится 30 фамилий каждая фамилия содержит не более 200 символов. Исходный список и упорядоченный вывести на печать.

 

15. Составить программу, которая упорядочивает список группы в алфавитном порядке. Максимальное число вводимых фамилий 30, максимальное число букв в фамилии 20.

 



2019-12-29 249 Обсуждений (0)
Лабораторная работа № 8 0.00 из 5.00 0 оценок









Обсуждение в статье: Лабораторная работа № 8

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация...
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (249)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)