Практическая работа №3 "Программирование с использованием структур"
методическая разработка по теме

Представлен теоретический материал, пример программы на C++ Builder, индивидуальное задание для выполнения практической работы.

Скачать:


Предварительный просмотр:

Практическая работа №3 Программирование с использованием структур

1. Цель работы:

Изучить правила работы со структурами в C++ Builder.

Написать программу работы со структурамии 

2. Темы для предварительной проработки

1). Среда разработки C++ Builder

2). Компоненты C++ Builder

3) Структуры в С++.

3. Теоретический материал

Структура - это тип данных, объединяющий элементы одинаковых или различных типов, называемых полями. Структуры удобны для создания баз данных с элементами разных типов, например:

typedef struct {

char FIO[40];     // Поле ф.и.о.

Byte otc[3];       // Поле массива оценок

double sball;      // Поле среднего балла

} TStudent;

TStudent Stud;      //Объявление переменной типа структура Доступ к каждому полю может осуществляться посредством операции принадлежности, т.е. указанием имени структуры и поля, разделенных точкой, например:

Stud.FIO= "Иванов А.И.";    //Внесение данных в поля записи

Stud.sball =5;

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

Stud->FIO= "Иванов А.И."; //Внесение данных в поля записи

Stud->sball =5;

4. Пример

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

Форма имеет вид:

Результат работы программы:

Unit1.cpp

typedef struct {

AnsiString FIO;

int otc[3];

double srb;

} TStudent;

TStudent Stud[100], st; int nzap=-1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner){

Edit1->Text="";     Edit2->Text="";     Edit3->Text="";    Edit4->Text="";  

Memo1->Clear();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender){

nzap++;

Stud[nzap].FIO = Edit1->Text;

Stud[nzap].otc[0]=StrToInt(Edit2->Text);

Stud[nzap].otc[1]=StrToInt(Edit3->Text);

Stud[nzap].otc[2]=StrToInt(Edit4->Text);

Stud[nzap].srb=(Stud[nzap].otc[0]+Stud[nzap].otc[1]+Stud[nzap].otc[2])/3.0;

Memo1->Lines->Add(Stud[nzap].FIO+" "+IntToStr(Stud[nzap].otc[0])+" "

    +IntToStr(Stud[nzap].otc[1])+" "+IntToStr(Stud[nzap].otc[2]));

Edit1->Text=""; Edit2->Text=""; Edit3->Text=""; Edit4->Text="";

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender){

Memo1->Lines->Add("Result");

for (int i=0; i<=nzap-1; i++)

    for (int j=i+1; j<=nzap; j++)

        if (Stud[i].srb>Stud[j].srb)

{    st=Stud[i];

Stud[i]=Stud[j]; Stud[j]=st;   }

for (int i=0; i<=nzap; i++)

  //if (Stud[i].srb>4.5)

Memo1->Lines->Add(Stud[i].FIO+" "+IntToStr(Stud[i].otc[0])

    +" "+IntToStr(Stud[i].otc[1])+""+IntToStr(Stud[i].otc[2])

    +" "+FloatToStrF(Stud[i].srb,ffGeneral,2,6));

}

//---------------------------------------------------------------------------

5. Задание

Изменить программу – вывести информацию о студентах в алфавитном порядке.

Рассчитать количество пятерок, четверок, троек, двоек по каждому предмету и в целом по ведомости.

Рассчитать средний балл по каждому предмету.

6. Индивидуального задание

В магазине формируется список лиц, записавшихся на покупку товара повышенного спроса. Каждая запись этого списка содержит: порядковый номер, Ф.И.О., домашний адрес покупателя и дату постановки на учет. Удалить из списка все повторные записи, проверяя Ф.И.О. и домашний адрес.

Список товаров, имеющихся на складе, включает в себя наименование товара, количество единиц товара, цену единицы и дату поступления товара на склад. Вывести в алфавитном порядке список товаров, хранящихся больше месяца, стоимость которых превышает 10 000 р.

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

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

5.        На междугородной АТС информация о разговорах содержит дату разговора, код и название города, время разговора, тариф, номер телефона в этом городе и номер телефона абонента. Вывести для каждого города общее время разговоров с ним и сумму.

6.        Информация о сотрудниках фирмы включает: Ф.И.О., табельный номер: количество проработанных часов за месяц, почасовой тариф. Рабочее время свыше 144 часов считается сверхурочным и оплачивается в двойном размере. Вывести размер заработной платы каждого сотрудника фирмы за вычетом подоходного налога, который составляет 12% от суммы заработка.

7.        Информация об участниках спортивных соревнований содержит: наименование страны, название команды, Ф.И.О. игрока, игровой номер, возраст, рост, вес. Вывести информацию о самой молодой, рослой и легкой команде.

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

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

10.        Информация о сотрудниках предприятия содержит: Ф.И.О., номер отдела, должность, дату начала работы. Вывести списки сотрудников по отделам в порядке убывания стажа.

11.        Ведомость абитуриентов, сдавших вступительные экзамены в университет, содержит: Ф.И.О., адрес, оценки. Определить количество абитуриентов, проживающих в г.Минске и сдавших экзамены со средним баллом не ниже 4.5, вывести их фамилии в алфавитном порядке.

В справочной аэропорта хранится расписание вылета самолетов на следующие сутки. Для каждого рейса указаны: номер рейса, тип самолета, пункт назначения, время вылета. Вывести все номера рейсов, типы самолетов и время вылета в заданный пункт назначения в порядке возрастания времени вылета.

У администратора железнодорожных касс хранится информация о свободных местах в поездах дальнего следования на ближайшую неделю в следующем виде: дата выезда, пункт назначения, время отправления, число свободных мест. Оргкомитет международной конференции обращается к администратору с просьбой зарезервировать т мест до города N на к-й. день недели с временем отправления поезда не позднее t часов вечера. Вывести время отправления или сообщение о невозможности выполнить заказ в полном объеме.

14.        Ведомость абитуриентов, сдавших вступительные экзамены в университет, содержит: Ф.И.О. абитуриента, оценки. Определить средний балл по университету и вывести список абитуриентов, средний балл которых выше среднего балла по университету. Первыми в списке должны идти студенты, сдавшие все экзамены на 5.

15.        В радиоателье хранятся квитанции о сданной в ремонт радиоаппаратуре. Каждая квитанция содержит следующую информацию: наименование группы изделий (телевизор, радиоприемник и т. п.), марку изделия, дату приемки в ремонт, состояние готовности заказа (выполнен, не выполнен). Вывести информацию о состоянии заказов на текущие сутки по группам изделий.

Разработать программу формирования ведомости об успеваемости студентов. Каждая запись этой ведомости должна содержать: номер группы, Ф.И.О. студента, оценки за последнюю сессию. Вывести списки студентов по группам. В каждой группе Ф.И.О. студентов должны быть расположены в порядке убывания среднего балла.

В исполкоме формируется список нуждающихся в улучшении жилищных условий. Каждая запись этого списка содержит: порядковый номер, Ф.И.О., величину жилплощади на одного члена семьи и дату постановки на учет. Исходя из заданного количества квартир, выделяемых ежегодно, вывести весь список с указанием ожидаемого года получения квартиры.

Имеется список женихов и список невест. Каждая запись списка содержит пол, имя, возраст, рост, вес, а также требования к партнеру: наименьший и наибольший возраст, наименьший и наибольший вес, наименьший и наибольший рост. Объединить эти списки в список пар с учетом требований к партнерам без повторений.

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

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

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

22.        В технической службе аэропорта имеется справочник, содержащий записи следующей структуры: тип самолета, год выпуска, расход горючего на 1000 км. Для определения потребности в горючем техническая служба запрашивает расписание полетов. Каждая запись расписания содержит следующую информацию: номер рейса, пункт назначения, дальность полета. Вывести суммарное количество горючего, необходимое дня обеспечения полетов на следующие сутки.

23.        Поля шахматной доски характеризуются записью

Тип Ро1е=структура {

Ver:(а, b, с, d, e, f,g ,h); {вертикальные координаты}Ноr:1..8;  }{горизонтальные координаты}

Вывести шахматную доску, пометив крестиками все поля, которые «бьет» ферзь, стоящий на поле с координатами Veri и Ноri,, и ноликами - остальные поля.

24.        Поля шахматной доски характеризуются записью (см. задание 23)

Pole      Figur:;

Вывести сообщение, может ли конь за один ход перейти с поля Figurai на поле Figuraj.

25.        Тип

Karta= структура {

т: (piki,trefi,bubni,chervi);        {масть}

d:(shest,sem,vosem,devjat,desjat,valet,dama,korol,tuiz);  {достоинство} } k1,k2;

Вывести сообщение, «бьет» ли карта k1 карту к2, с учетом того что масть тi является козырной.

Для участия в конкурсе на замещение вакантной должности сотрудника фирмы желающие подают следующую информацию: Ф.И.О., год рождения, образование (среднее, специальное, высшее), знание иностранных языков (английский, немецкий, французский; владею свободно, читаю и перевожу со словарем), владение компьютером (MSDOS, Windows), стаж работы, наличие рекомендаций. Вывести список претендентов в соответствии с требованиями руководства фирмы.

При постановке на учет в ГАИ автолюбители указывают следующие данные: марка автомобиля, год выпуска, номер двигателя, номер кузова, цвет, номерной знак, Ф.И.О. и адрес владельца. Вывести список автомобилей, проходящих техосмотр в текущем году, сгруппированных по маркам автомобилей. Учесть, что если текущий год четный, техосмотр проходят автомобили с четными номерами двигателей, иначе - с нечетными номерами.

28.        Для участия в конкурсе исполнителей необходимо заполнить следующую анкету: Ф.И.О., год рождения, название страны, класс музыкального инструмента (гитара, фортепиано, скрипка, виолончель). Вывести список самых молодых лауреатов конкурса по классам инструментов в порядке занятых мест.

Список группы студентов содержит следующую информацию: Ф.И.О., рост и вес. Вывести Ф.И.О. студентов, рост и вес которых чаще всего встречаются в списке.

Список группы студентов содержит следующую информацию: Ф.И.О., рост и вес. Вывести Ф.И.О. студентов, рост и вес которых являются в списке уникальными.

Санкт-Петербургский колледж информационных технологий

Методические указания

к выполнению практической работы №3

«Программирование с использованием структур»

                                                           Разработала

                                                           Мастер

                                                           производственного обучения

                                                           Шапкина Л.М.


По теме: методические разработки, презентации и конспекты

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

Практическая работа по экономике организации для студентов СПО....

Практическая работа Структура команд INTEL 80x86

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

Методическая разработка практического занятия «СОЗДАНИЕ ПРЕЗЕНТАЦИИ РАЗНЫХ СТРУКТУР СЛАЙДОВ, ИСПОЛЬЗОВАНИЕ УПРАВЛЯЮЩИХ КНОПОК И ГИПЕРССЫЛОК ДЛЯ ПЕРЕХОДА ПО СЛАЙДАМ»

Учебная дисциплина «Информатика» относится к математическому и общему естественнонаучному циклу ЕН.00. ФГОС СПО по специальности подготовки специалистов среднего звена (ППССЗ) 23.02.04 Тех...

Практическая работа: Проблемы новой структуры миропорядка

Практическая работа направлена на изучение внешнеполитических изменений. которые произошли после 1991 года.Обучающиеся анализируют документы"Партнерство ради мира" и "Стратегические ини...

Практическая работа №16. Построение организационной структуры управления

Практическая работа №16. Построение организационной  структуры управления для студентов очной формы обучения специальности 13.02.02. ТТО по МДК 04.01. Организация и управление работой трудового к...

Инструкционно-технологическая карта Практическая работа Тема: «Проверка структуры диска»

Инструкционно-технологическая картаПрактическая работа № 9 Тема: «Проверка структуры диска» Цель работы: ознакомиться с технологией проверки структуры диска.Оборудование: ПЭВМ, О...

Практическая работа №7. Комплексное использование возможностей текстовых редакторов.

Содержит итоговые практические задания по разделу "Текстовые процессоры"...