|
|||
Практическая часть ⇐ ПредыдущаяСтр 2 из 2 Практическая часть Пример 1. Напишите программу структурного описания каталога одной книги. Программный код решения примера: #include <stdio.h> #include <conio.h> #include <string.h> #define N 40 struct book { // Определение структуры char title[N+1]; // Название книги char author[N+1]; // Автор int year; // Год издания int page; // Количество страниц float price; // Цена в у.е. } Library;
int main (void) { // Инициализация полей структуры Library.year = 2007; Library.page = 496; Library.price = 12.78F; strcpy_s(Library.title, N, "Programming in C"); strcpy_s(Library.author, N, "Stephen G. Kochan");
// Вывод на консоль printf("\n\t Title: %s\n", Library.title); printf("\t Author: %s\n", Library.author); printf("\t Year: %d\n", Library.year ); printf("\t Number of pages: %d p.\n", Library.page ); printf("\t Price: %1.2f y.e.\n", Library.price);
printf("\n\n Press any key: "); _getch(); return 0; } В программе использованы функции strcpy_s() вместо стандартных функций strcpy(), что позволило избавиться от предупреждений в системе Visual Studio 2008. В случае применения функций strcpy(), их формат записи был бы следующим: strcpy(Library.title, "Programming in C"); strcpy(Library.author, "Stephen G. Kochan"); Результат выполнения программы показан на рис. 14.1.
Пример 2. Напишите программу анализа средней успеваемости четырех студентов по четырем предметам за сессию на основе структурного типа данных. Программный код решения примера: #include <stdio.h> #include <conio.h> #include <stdlib.h>
#define N 4 // Число студентов #define CH 30 // Число символов для фамилии или имени
// Определение структуры struct { char *name;// Имя студента char *surname; // Фамилия студента int M; // Отметка по математическому анализу int A; // Отметка по алгебре int H; // Отметка по истории int In; // Отметка по информатике } student[N];
int main (void) { float mark; int i;
// Выделение памяти для символьных указателей for (i = 0; i < N; ++i) { student[i].name = (char *) malloc(CH*sizeof(char)); student[i].surname = (char *) malloc(CH*sizeof(char)); }
printf("\n"); for (i = 0; i < N; ++i) { printf("\t Enter a name of %d student \n\t: ", i+1); gets_s(student[i].name, CH);
printf("\t Enter a surname of %d student \n\t: ", i+1); gets_s(student[i].surname, CH);
printf("\t Enter marks in 4 subjects for %d student (through a blank) \n\t: ", i+1);
scanf_s("%i%i%i%i", &(student[i].M),&(student[i].A),&(student[i].H),&(student[i].In)); _flushall(); }
puts("\n====================================================================================="); printf("\t Statement of Achievement students:\n");
puts("======================================================================================\n"); for (i = 0; i < N; ++i) { printf("\t %s \t %s:\n\t Mathematical analyses, Algebra, History, Informatics\n \ \n\t\t %d\t\t %3d\t \ %3d\t %5d\n----------------------------------------------\n", \ student[i].name, student[i].surname, \ student[i].M,student[i].A,student[i].H,student[i].In); }
mark = 0.0F; // F – спецификатор для типа float
for (i = 0; i < N; ++i) { mark += (student[i].M + student[i].A + student[i].H + student[i].In); }
// Средняя оценка группы из 4 (N)студентов printf("\n\t The average mark groups of %d students: %1.4f", N, mark/(4*N)); // 4*N - общее количество оценок
printf("\n\n Press any key: "); _getch(); return 0; } В программе использован массив структур – переменная student[N]. Для определения имени и фамилии предварительно выделяется память для символьных указателей с помощью функций malloc(), для которых включен заголовок #include <stdlib.h>. Шаблон структуры задан без имени-этикетки (без тегового имени). Возможный результат выполнения программы показан на рис. 14.2.
Пример 3. Напишите программу создания карточки служащего с помощью структурного типа данных и указателя на структуру. Предусмотрите инициализацию полей структуры и изменения этих полей. Для решения примера воспользуемся структурой, рассмотренной в теоретической части данной лабораторной работы: struct employee { char Name [20+1]; // Имя char Surname [20+1]; // Фамилия int age; // возраст double hourlysalary; // почасовой оклад } employee_new, *PTR; // *PTR – указатель на структуру Программный код решения примера: #include <stdio.h> #include <conio.h> #include <string.h> #include <locale.h> // Предполагаемое число символов в имени или фамилии #define n 20
int main (void) {
// Определение структуры struct emloyee { char name[n+1]; // имя char surname[n+1]; // фамилия int age; // возраст double hourlysalary; // почасовой оклад в у.е. } emloyee_new, *PTR; // *PTR - указатель на структуру
// Для поддержки русских шрифтов setlocale( LC_ALL, ".1251");// кодовая страница Windows – 1251 PTR = &emloyee_new; //В указатель помещается адрес employee_new // Инициализация полей структуры strcpy_s(PTR -> name, n, "Владимир"); strcpy_s(PTR -> surname, n, "Викулов"); PTR -> age = 25; PTR -> hourlysalary = 6.78;
// Вывод на консоль puts("\n=============== Поля структуры ===================="); printf("\n Имя: %s\n Фамилия: %s\n возраст: %d лет\n почасовой оклад: %1.2f y.e.\n", \ PTR -> name, PTR -> surname, PTR -> age, PTR -> hourlysalary);
puts("\n==================================================\n"); printf("\n\n Нажмите любую клавишу (Press any key): "); _getch(); return 0; } В программе инициализация полей структуры выполнена с помощью оператора стрелка "–>". С подключением заголовочного файла <locale.h> и определением прототипа функции setlocale(LC_ALL,".1251") производится поддержка русских шрифтов. Результат выполнения программы показан на рис. 14.3.
Пример 4. Напишите программу информационной карточки студенческой группы с данными о студентах, применив вложенные структуры. Как известно, если членом структуры является другая структура, то она называется вложенной. Программный код решения примера: #include <stdio.h> #include <conio.h> #include <string.h>
#define N 20
int main (void) { struct stud { // шаблон структуры char name[N+1]; // имя студента char surname[N+1]; // фамилия студента int age; // возраст - полных лет double av_mark; // средняя успеваемость };
struct group { // шаблон структуры int number; // номер группы int quantity; // количество студентов в группе struct stud student;// вложенная структура } ACOUY; // ACOUY - структурная переменная
// Инициализация полей структуры ACOUY.number = 3; ACOUY.quantity = 21; strcpy_s(ACOUY.student.name, N, "Peter"); strcpy_s(ACOUY.student.surname, N, "Bobrov"); ACOUY.student.age = 20; ACOUY.student.av_mark = 4.25;
// Вывод на консоль puts("\n========= Varient field of structure ==============="); printf("\n Group Number: %d,\n The number of students in the group: %d,\n\ Name: %s,\n Surname: %s,\n Age: %d,\n Average mark: %1.2f", \ ACOUY.number, ACOUY.quantity, ACOUY.student.name, ACOUY.student.surname, \ ACOUY.student.age, ACOUY.student.av_mark); puts("\n\n================================================\n");
printf("\n Press any key: "); _getch(); return 0; } Результат выполнения программы показан на рис. 14.4.
Пример 5. Напишите программу составления карточки на студента с динамическим распределением памяти для имени и фамилии на основе структурного типа данных. Для динамического распределения памяти применим функцию malloc() и символьные указатели в качестве инициализаторов структуры. Программный код решения примера: #include <stdio.h> #include <conio.h> #include <string.h> #include <stdlib.h> #include <locale.h>
const int MAX = 80; // Предполагаемое число символов
int main (void) { char *NAME, *SURNAME;
struct stud { // шаблон структуры char *name; // указатель вместо массива символов имени студента char *surname; // указатель вместо массива символов фамилии студента int age; // возраст - полных лет float av_mark; // средняя успеваемость int letters; // число символов в имени и фамилии } TABLE, *PTR;
PTR = &TABLE; // инициализация указателя на структуру NAME = (char *)malloc(MAX); printf("\n Enter a name of the student: "); gets_s(NAME, MAX);
SURNAME = (char *)malloc(MAX); printf(" Enter a surname of the student: "); gets_s(SURNAME, MAX);
// Распределение памяти для хранения "структурного" имени PTR->name = (char *)malloc(strlen(NAME)+1); // Копирование имени в распределенную память strcpy_s(PTR->name, strlen(NAME)+1, NAME);
// Распределение памяти для хранения "структурной" фамилии PTR->surname = (char *)malloc(strlen(SURNAME)+1); // Копирование фамилии в распределенную память strcpy_s(PTR->surname, strlen(SURNAME)+1, SURNAME);
printf(" Enter the age of the student: "); scanf_s("%d", &TABLE.age);
printf(" Enter an average mark of the student: "); scanf_s("%f", &TABLE.av_mark);
TABLE.letters = strlen(PTR->name) + strlen(PTR->surname); // Для вывода чисел с десятичной запятой setlocale(LC_NUMERIC, ".1251"); puts("\n======== Varient field of structure ==============="); printf("\n Name: %s\n Surname: %s\n Age: %d\n Average mark: %1.2f\n\ The name and surname of student have: %d letters", \ PTR->name, PTR->surname, PTR->age, PTR->av_mark, PTR->letters); puts("\n\n================================================\n");
// Освобождение памяти free(NAME); free(SURNAME); free(PTR->name); free(PTR->surname);
printf("\n Press any key: "); _getch(); return 0; } В программе сначала выделяется память для имени и фамилии, для которых использованы указатели *NAME, *SURNAME. После того как имя и фамилия введены с клавиатуры, рассчитывается количество символов плюс символ окончания строки '\0', которые используются для выделения памяти для структурных переменных. Возможный результат выполнения программы показан на рис. 14.5.
Пример 6. Напишите программу записи структуры в двоичный файл и чтения ее из двоичного файла. Решение примера разобьем на две части: создадим структуру и произведем пакетную запись в файл этой структуры. Потом операцию записи закомментируем, изменим поля структуры и выполним чтение из файла структуры. Для динамического распределения памяти применим функцию malloc() и символьные указатели в качестве инициализаторов структуры. Программный код решения примера: #include <stdio.h> #include <conio.h> #include <string.h>
#define MAX 80 // Предполагаемое число символов
// шаблон структуры struct stud { char name[MAX+1]; // массив символов имени студента char surname[MAX+1]; // массив символов фамилии студента char ACOUY[MAX+1]; // специальность int age; // возраст - полных лет float av_mark; // средняя успеваемость };
int main (void) { char NAME[MAX+1], SURNAME[MAX+1], SPEC[MAX+1]; FILE *fid;
// условная инициализация переменной структуры и // определение указателя на структуру struct stud TABLE = {"--", "--", "--", 0, 0.0}, *PTR; PTR = &TABLE; // инициализация указателя на структуру
printf("\n Enter a name of student: "); gets_s(NAME, MAX); printf(" Enter a surname of student: "); gets_s(SURNAME, MAX); printf(" Enter a speciality: "); gets_s(SPEC, MAX);
// Занесение имени в структуру strcpy_s(PTR->name, strlen(NAME)+1, NAME); // Занесение фамилии в структуру strcpy_s(PTR->surname, strlen(SURNAME)+1, SURNAME); // Занесение названия специальности в структуру strcpy_s(PTR->ACOUY, strlen(SPEC)+1, SPEC);
printf("Enter the age of the student: "); scanf_s("%d", &TABLE.age); printf(" Enter the average mark student: "); scanf_s("%f", &TABLE.av_mark);
puts("\n======= Varient field of structure ============"); printf("\n Name: %s\n Surname: %s\n \ Specialisation: %s\n Age: %d\n Average mark: %0.2f\n ", \ PTR->name, PTR->surname, PTR->ACOUY, PTR->age, PTR->av_mark ); puts("\n================================================\n"); if ( fopen_s(&fid, "D:\\data12.dat", "wb") ) {printf("\n File could not be opened\n"); printf("\n Press any key: "); _getch(); return 0; } //Пакетная запись в двоичный файл fwrite(PTR, sizeof(struct stud), 1, fid); fclose(fid);
//if ( fopen_s(&fid, "D:\\data12.dat", "rb") ) //{printf("\n File could not be opened\n"); //printf("\n Press any key: "); //_getch(); return 0; } // Чтение из двоичного файла //fread(PTR, sizeof(struct stud), 1, fid); //puts("\n===== Variants of fields of structure ====="); //printf("\n Name: %s\n Surname: %s\n \ //Specialisation: %s\n Age: %d\n Average mark: %1.2f\n ", \
//PTR->name, PTR->surname, PTR->ACOUY, PTR->age, PTR->av_mark ); //puts("\n===============================================\n"); //fclose(fid); printf("\n\n Press any key: "); _getch(); return 0; } Форматы записи в двоичный файл и чтения из двоичного файла: fwrite(PTR, sizeof(struct stud), 1, fid); fread(PTR, sizeof(struct stud), 1, fid); В функции fwrite() первый параметр PTR определяет собой содержимое структуры (данных в других случаях), которое по указателю *fid на файл записывается в файл. Второй параметр sizeof(struct stud) определяет собой размер в байтах. Третий параметр 1 – это количество блоков, которое будет записываться в файл. При этом второй и третий параметры перемножаются, поэтому их можно поменять местами. В программе чтение из двоичного файла закомментировано. Для корректной работы программы сделана условная инициализация полей структуры, чтобы прописать адрес структуры в памяти с данными. Возможный вариант выполнения программы при записи информации в двоичный файл показан на рис. 14.6. После комментирования программного кода с записью в файл и снятия комментариев к программному коду чтения из файла результат выполнения программы показан на рис. 14.7.
Контрольные вопросы
Задание. Вариант 1. Задание 1. Описать переменную круг, в которой содержатся все данные для построения круга в декартовой системе координат. Определить координаты центра, радиус, площадь и длину окружности круга минимального радиуса, который будет содержать внутри себя все заданные круги.
Задание 2. Структура «Фильм»: · название; · режиссер (фамилия, имя, отчество); · страна; · год выпуска; · стоимость; · доход. - написать функцию создания бинарного файла и внесения в него новых записей, значения которых вводятся с клавиатуры; - написать функцию вывода информации из файла на экран с шапкой; - написать функцию дополнения уже существующего файла структур новыми структурами; - написать функцию поиска структур с заданными признаками (например, по заданному диапазону значений элемента); - написать функцию упорядочения файла структур по заданному полю (элементу). Вариант 2. Задание 1. Написать программу для обработки рациональных чисел. Предусмотреть возможность печати, умножения, деления, сложения, вычитания, сравнения и сокращения рациональных чисел, нахождения минимума и максимума. Задание 2.
Структура ТРАНСПОРТНОЕ СРЕДСТВО: марка, мощность, стоимость, дата регистрации, цвет, номер. - написать функцию создания бинарного файла и внесения в него новых записей, значения которых вводятся с клавиатуры; - написать функцию вывода информации из файла на экран с шапкой; - написать функцию дополнения уже существующего файла структур новыми структурами; - написать функцию поиска структур с заданными признаками (например, по заданному диапазону значений элемента); - написать функцию упорядочения файла структур по заданному полю (элементу).
Вариант 3. Задание 1. N учеников проходили тестирование, выполнив M тестов по какому-либо предмету. Сколько очков набрал каждый ученик по всем темам? Вычислить средний балл, полученный учениками, и разницу между лучшим результатом и средним баллом. Задание 2. Структура ТЕСТ: Название, дата, количество вопросов, варианты ответов, номер правильного ответа. - написать функцию создания бинарного файла и внесения в него новых записей, значения которых вводятся с клавиатуры; - написать функцию вывода информации из файла на экран с шапкой; - написать функцию дополнения уже существующего файла структур новыми структурами; - написать функцию поиска структур с заданными признаками (например, по заданному диапазону значений элемента); - написать функцию упорядочения файла структур по заданному полю (элементу). Вариант 4. Задание 1. Распечатать фамилии детей данного детского сада, которые родились в определенном месяце; указать их возраст и группу. Информация хранится в виде массива. Задание 2. Структура «Экскурсия»: Наименование, страна, стоимость, продолжительность, транспорт. - написать функцию создания бинарного файла и внесения в него новых записей, значения которых вводятся с клавиатуры; - написать функцию вывода информации из файла на экран с шапкой; - написать функцию дополнения уже существующего файла структур новыми структурами; - написать функцию поиска структур с заданными признаками (например, по заданному диапазону значений элемента); - написать функцию упорядочения файла структур по заданному полю (элементу).
Вариант 5. Задание 1. N спортсменов-многоборцев принимают участие в соревнованиях по М видам спорта. По каждому виду спорта спортсмен набирает определенное количество очков. Вычислить, сколько очков в сумме набрал каждый спортсмен после окончания соревнований. Вычислить разницу в очках для спортсменов, занявших первое и последнее места. Задание 2. Структура «Владелец автомобиля»: - ФИО (фамилия, имя, отчество); - номер автомобиля; - номер техпаспорта; - дата рождения (день, месяц, год); - - телефон. написать функцию создания бинарного файла и внесения в него новых записей, значения которых вводятся с клавиатуры; написать функцию вывода информации из файла на экран с шапкой; написать функцию дополнения уже существующего файла структур новыми структурами; написать функцию поиска структур с заданными признаками (например, по заданному диапазону значений элемента); написать функцию упорядочения файла структур по заданному полю (элементу).
Вариант 6. Задание 1. Торговый склад производит уценку хранящейся продукции. Если продукция хранится на складе дольше п месяцев, то она уценивается в 2 раза, а если срок хранения превысил т(т< п) месяцев, но не достиг п, то — в 1,5 раза. Ведомость уценки товаров должна содержать следующую информацию: наименование товара, количество товара, цена товара до уценки, срок хранения товара, цена товара после уценки, общая стоимость товара до уценки, общая стоимость товаров после уценки. Выяснить максимальный и минимальный сроки хранения товаров на складе; максимальную и минимальную цену товаров до уценки и после уценки. Задание 2. Структура КНИГА: Название, жанр, кол-во страниц, список авторов. - написать функцию создания бинарного файла и внесения в него новых записей, значения которых вводятся с клавиатуры; - написать функцию вывода информации из файла на экран с шапкой; - написать функцию дополнения уже существующего файла структур новыми структурами; - написать функцию поиска структур с заданными признаками (например, по заданному диапазону значений элемента); - написать функцию упорядочения файла структур по заданному полю (элементу). Вариант 7. Задание 1. В столовой предлагается N комплексных обедов, состоящих из Q блюд. Известна стоимость и калорийность каждого блюда. Сколько стоит самый дешевый и самый дорогой обед? Сколько калорий включает в себя самое калорийное блюдо? Задание 2. Структура «Школьник»: - фамилия; - имя; - отчество; - класс; - пол; - дата рождения (число, месяц, год); - - домашний адрес (город, улица, номер дома, номер квартиры). - написать функцию создания бинарного файла и внесения в него новых записей, значения которых вводятся с клавиатуры; - написать функцию вывода информации из файла на экран с шапкой; - написать функцию дополнения уже существующего файла структур новыми структурами; - написать функцию поиска структур с заданными признаками (например, по заданному диапазону значений элемента); - написать функцию упорядочения файла структур по заданному полю (элементу). Вариант 8. Задание 1. На аптечном складе хранятся лекарства. Сведения о лекарствах содержатся в специальной ведомости: наименование лекарственного препарата; количество; цена; срок хранения (в месяцах). Выяснить, сколько стоит самый дорогой и самый дешевый препарат; сколько препаратов хранится на складе; какие препараты имеют срок хранения более 3 месяцев; сколько стоят все препараты, хранящиеся на складе.
Задание 2. Структура «Покупатель»: - фамилия; - имя; - отчество; - домашний адрес (город, улица, номер дома, номер квартиры). - -номер кредитной карточки. - написать функцию создания бинарного файла и внесения в него новых записей, значения которых вводятся с клавиатуры; - написать функцию вывода информации из файла на экран с шапкой; - написать функцию дополнения уже существующего файла структур новыми структурами; - написать функцию поиска структур с заданными признаками (например, по заданному диапазону значений элемента); - написать функцию упорядочения файла структур по заданному полю (элементу). Вариант 9. Задание 1. В таблице хранятся следующие данные об учениках: фамилия, имя, отчество, рост, масса. Вычислить средний рост учеников, рост самого высокого и самого низкого ученика. Сколько учеников могут заниматься в баскетбольной секции, если рост баскетболиста должен быть больше 170 см? Задание 2. Структура КАРТИНА: ФИО автора, название, жанр, список владельцев - написать функцию создания бинарного файла и внесения в него новых записей, значения которых вводятся с клавиатуры; - написать функцию вывода информации из файла на экран с шапкой; - написать функцию дополнения уже существующего файла структур новыми структурами; - написать функцию поиска структур с заданными признаками (например, по заданному диапазону значений элемента); - написать функцию упорядочения файла структур по заданному полю (элементу). Вариант 10. Задание 1. Составить программу назначения стипендии студентам по результатам сессии, используя следующие правила: 1) если все оценки 5, назначается повышенная стипендия; 2) если все оценки 4 и 5, назначается обычная стипендия; 3) если есть оценка 3, стипендия не назначается. В результате работы программы должен быть напечатан список группы с оценками и средним баллом каждого студента и два списка фамилий (назначенных на повышенную и обычную стипендию). Информация хранится в виде массива. Задание 2. Структура «Человек»: - фамилия; - имя; - пол; - национальность; - дата рождения (число, месяц, год); - номер телефона; - - домашний адрес (город, улица, номер дома, номер квартиры). - написать функцию создания бинарного файла и внесения в него новых записей, значения которых вводятся с клавиатуры; - написать функцию вывода информации из файла на экран с шапкой; - написать функцию дополнения уже существующего файла структур новыми структурами; - написать функцию поиска структур с заданными признаками (например, по заданному диапазону значений элемента); - написать функцию упорядочения файла структур по заданному полю (элементу). Вариант 11. Задание 1. При поступлении в университет лица, получившие оценку «неудовлетворительно» на первом экзамене, ко второму экзамену не допускаются. Считая фамилии абитуриентов и их оценки после первого экзамена исходными данными, составить список абитуриентов, допущенных ко второму экзамену. Информация хранится в виде массива. Задание 2. Структура КОРАБЛЬ: название, водоизмещение, тип, список категорий кают. - написать функцию создания бинарного файла и внесения в него новых записей, значения которых вводятся с клавиатуры; - написать функцию вывода информации из файла на экран с шапкой; - написать функцию дополнения уже существующего файла структур новыми структурами; - написать функцию поиска структур с заданными признаками (например, по заданному диапазону значений элемента); - написать функцию упорядочения файла структур по заданному полю (элементу). Вариант 12. Задание 1. Багаж пассажира характеризуется количеством вещей и общим весом. Ввести информацию об N пассажирах и определить есть ли среди пассажиров такой , у которого самый большой багаж по числу и наименьший по весу. Задание 2. Структура «Пациент»: - фамилия; - имя; - отчество; - год рождения; - номер телефона; - домашний адрес (город, улица, номер дома, номер квартиры). - номер медицинской карты. - написать функцию создания бинарного файла и внесения в него новых записей, значения которых вводятся с клавиатуры; - написать функцию вывода информации из файла на экран с шапкой; - написать функцию дополнения уже существующего файла структур новыми структурами; - написать функцию поиска структур с заданными признаками (например, по заданному диапазону значений элемента); - написать функцию упорядочения файла структур по заданному полю (элементу). Вариант 13. Задание 1. По данным сведениям об учениках класса определить среднюю массу мальчиков и средний рост девочек. Кто из учеников класса самый высокий? Информация хранится в виде массива. Задание 2. Структура ЖИВОТНОЕ: вид, класс, средний вес, места обитания. - написать функцию создания бинарного файла и внесения в него новых записей, значения которых вводятся с клавиатуры; - написать функцию вывода информации из файла на экран с шапкой; - написать функцию дополнения уже существующего файла структур новыми структурами; - написать функцию поиска структур с заданными признаками (например, по заданному диапазону значений элемента); - написать функцию упорядочения файла структур по заданному полю (элементу). Вариант 14. Задание 1. Распечатать фамилии тех учеников класса, которые являются хорошистами и отличниками по итогам года. Также указать, насколько их средний балл отличается от среднего балла класса. Информация хранится в виде массива. Задание 2. Структура «Автомобиль»: - марка; - цвет; - серийный номер; - регистрационный номер; - количество дверей; - дата выпуска (день, месяц, год); - - цена. - написать функцию создания бинарного файла и внесения в него новых записей, значения которых вводятся с клавиатуры; - написать функцию вывода информации из файла на экран с шапкой; - написать функцию дополнения уже существующего файла структур новыми структурами; - написать функцию поиска структур с заданными признаками (например, по заданному диапазону значений элемента); - написать функцию упорядочения файла структур по заданному полю (элементу). Вариант 15. Задание 1. Распечатать анкетные данные учеников, участвовавших в олимпиаде по информатике и заработавших не менее 30 баллов. Информация хранится в виде массива. Задание 2. Структура СТРАНА: название, форма правления, площадь, список областей. - написать функцию создания бинарного файла и внесения в него новых записей, значения которых вводятся с клавиатуры; - написать функцию вывода информации из файла на экран с шапкой; - написать функцию дополнения уже существующего файла структур новыми структурами; - написать функцию поиска структур с заданными признаками (например, по заданному диапазону значений элемента); - написать функцию упорядочения файла структур по заданному полю (элементу). Вариант 16. Задание 1. Распечатать список тех учителей школы, которые преподают математику и информатику, указать стаж их работы и недельную нагрузку. Информация хранится в виде массива. Задание 2. Структура «государство»: - название страны; - столица; - государственный язык; - население (число жителей); - площадь территории; - денежная единица; - - государственный строй. - написать функцию создания бинарного файла и внесения в него новых записей, значения которых вводятся с клавиатуры; - написать функцию вывода информации из файла на экран с шапкой; - написать функцию дополнения уже существующего файла структур новыми структурами; - написать функцию поиска структур с заданными признаками (например, по заданному диапазону значений элемента); - написать функцию упорядочения файла структур по заданному полю (элементу). Вариант 17. Задание 1. Написать программу для обработки комплексных чисел. Предусмотреть возможность печати, умножения, деления, сложения, вычитания, сравнения комплексных чисел в алгебраической форме, умножения, деления и возведения в степень в показательной форме. Задание 2. Структура «Студент»: номер зачетной книжки, ФИО, дата рождения, номер группы, средний балл, размер стипендии. - написать функцию создания бинарного файла и внесения в него новых записей, значения которых вводятся с клавиатуры; - написать функцию вывода информации из файла на экран с шапкой; - написать функцию дополнения уже существующего файла структур новыми структурами; - написать функцию поиска структур с заданными признаками (например, по заданному диапазону значений элемента); - написать функцию упорядочения файла структур по заданному полю (элементу). Вариант 18. Задание 1. Имеется информация по итогам экзаменов в институте всего в списке N человек. По каждому из студентов имеются следующие сведения: фамилия, оценка по математике, оценка по информатике и оценка по физике. Ввести информацию об экзаменах и напечатать количество и фамилии отличников. Задание 2. Структура «Альбом исполнителя»: - фамилия, имя, отчество; - название альбома; - количество песен на диске; - год выпуска альбома; - - фирма-производитель - написать функцию создания бинарного файла и внесения в него новых записей, значения которых вводятся с клавиатуры; - написать функцию вывода информации из файла на экран с шапкой; - написать функцию дополнения уже существующего файла структур новыми структурами; - написать функцию поиска структур с заданными признаками (например, по заданному диапазону значений элемента); - написать функцию упорядочения файла структур по заданному полю (элементу). Вариант 19. Задание 1. Среди работников данного предприятия найти тех, чья заработная плата за месяц ниже средней по предприятию, а также распечатать список тех, кто проработал на предприятии более 10 лет, с указанием их фамилии, зарплаты, стажа работы и должности. Информация хранится в виде массива. Задание 2. Структура ПЕРСОНА: ФИО, возраст, пол, список увлечений. - написать функцию создания бинарного файла и внесения в него новых записей, значения которых вводятся с клавиатуры; - написать функцию вывода информации из файла на экран с шапкой; - написать функцию дополнения уже существующего файла структур новыми структурами; - написать функцию поиска структур с заданными признаками (например, по заданному диапазону значений элемента); - написать функцию упорядочения файла структур по заданному полю (элементу). Вариант 20. Задание 1. Распечатать список учеников музыкальной школы, которые учатся играть на скрипке. Указать также, сколько лет они занимаются музыкой и принимали ли участие в каких-либо конкурсах. Информация хранится в виде массива. Задание 2. Структура «Музыкальный товар»: - носитель (пластинка, аудиокассета, лазерный диск); - порядковый номер в каталоге; - название; - исполнитель (фамилия, имя); - время звучания; - количество произведений; - цена по каталогу. - написать функцию создания бинарного файла и внесения в него новых записей, значения которых вводятся с клавиатуры; - написать функцию вывода информации из файла на экран с шапкой; - написать функцию дополнения уже существующего файла структур новыми структурами; - написать функцию поиска структур с заданными признаками (например, по заданному диапазону значений элемента); - написать функцию упорядочения файла структур по заданному полю (элементу). Вариант 21. Задание 1. Из ассортимента конфет, выпускаемых киевской кондитерской фабрикой, выбрать те, стоимость которых от 30 до 55 грн. за 1 кг. Указать срок их годности и номера магазинов, в которых они имеются в продаже. Информация хранится в виде массива. Задание 2. Структура ЦЕХ: название, начальник, кол-во рабочих, перечень номенклатуры выпускаемых изделий. - написать функцию создания бинарного файла и внесения в него новых записей, значения которых вводятся с клавиатуры; - написать функцию вывода информации из файла на экран с шапкой; - написать функцию дополнения уже существующего файла структур новыми структурами; - написать функцию поиска структур с заданными признаками (например, по заданному диапазону значений элемента); - написать функцию упорядочения файла структур по заданному полю (элементу). Вариант 22. Задание 1. Распечатать фамилии рабочих бригады, начинающиеся с букв А и С, с указанием их месячной зарплаты. Информация хранится в виде массива. Задание 2. Структура «Служащий»: - фамилия, имя, отчество; - занимаемая должность; - год поступления на работу; - образование; - стаж работы: - оклад. - написать функцию создания бинарного файла и внесения в него новых записей, значения которых вводятся с клавиатуры; - написать функцию вывода информации из файла на экран с шапкой; - написать функцию дополнения уже существующего файла структур новыми структурами; - написать функцию поиска структур с заданными признаками (например, по заданному диапазону значений элемента); - написать функцию упорядочения файла структур по заданному полю (элементу). Вариант 23. Задание 1. Вычислить средний балл учеников класса, если известны оценки каждого ученика по математике, русскому языку и физике. Распечатать список учеников, имеющих средний балл выше среднего в классе. Информация хранится в виде массива. Задание 2. Структура ТОВАР: название, артикул, стоимость, даты (изготовление, срок реализации). - написать функцию создания бинарного ф
|
|||
|