База данных в виде массива структур
Автор: alena1234456 • Апрель 1, 2022 • Лабораторная работа • 728 Слов (3 Страниц) • 306 Просмотры
Отчет по лабораторной работе №5 Вариант 20
Задание 1
Написать программу, работающую с базой данных в виде массива структур и выполняющую последовательный ввод данных в массив и последующую распечатку его содержимого.
Состав структуры:
- Наименование микросхемы
- Тип корпуса
- Наименование изготовителя
- Цена
Код программы
#include <stdio.h> #include <stdlib.h> #include <string.h>
#define MaxLenStr 80
#define CountElem 3
struct ELEM
{
char Name[MaxLenStr]; char Type[MaxLenStr];
char NameManufacturer[MaxLenStr]; float Price;
};
int main()
{
struct ELEM list[CountElem];
for (int i = 0; i < CountElem; i++)
{
printf("Введите данные %d-й схемы:\n", i+1); printf("Наименование схемы: ");
scanf("%s", &list[i].Name); printf("Тип схемы: "); scanf("%s", &list[i].Type); printf("Изготовитель: ");
scanf("%s", &list[i].NameManufacturer); printf("Цена: ");
scanf("%f", &list[i].Price);
}
printf("Список схем:\n");
for (int i = 0; i < CountElem; i++)
{
printf(" \n"); printf("Наименование схемы: %s\n", list[i].Name); printf("Тип схемы: %s\n", list[i].Type);[pic 1]
printf("Изготовитель: %s\n", list[i].NameManufacturer); printf("Цена: %f\n", list[i].Price);
printf(" \n");[pic 2]
}
system("pause"); return 0;
}
Пример работы программы
[pic 3]
Задание 2
Переписать программу п. 1, используя массив указателей на структуру и динамическое выделение памяти. Выполнить сортировку массива. Расположить записи в массиве в порядке возрастания цены.
Код программы
#include <stdio.h> #include <stdlib.h> #include <string.h>
#define MaxLenStr 80
#define CountElem 3
struct ELEM
{
char Name[MaxLenStr]; char Type[MaxLenStr];
char NameManufacturer[MaxLenStr]; float Price;
};
int main()
{
struct ELEM *list[CountElem];
for (int i = 0; i < CountElem; i++)
{
list[i] = malloc(sizeof(struct ELEM));
printf("Введите данные %d-й схемы:\n", i+1); printf("Наименование схемы: ");
scanf("%s", &list[i]->Name); printf("Тип схемы: "); scanf("%s", &list[i]->Type); printf("Изготовитель: ");
scanf("%s", &list[i]->NameManufacturer); printf("Цена: ");
scanf("%f", &list[i]->Price);
}
for (int i = 0; i < CountElem - 1; i++)
{
for (int j = (CountElem - 1); j > i; j--)
{
if (list[j - 1]->Price > list[j]->Price)
{
struct ELEM * tmp = list[j - 1]; list[j - 1] = list[j];
list[j] = tmp;
}
}
}
printf("Отсортированный список схем:\n"); for (int i = 0; i < CountElem; i++)
{
printf(" \n"); printf("Наименование схемы: %s\n", list[i]->Name); printf("Тип схемы: %s\n", list[i]->Type);[pic 4]
printf("Изготовитель: %s\n", list[i]->NameManufacturer); printf("Цена: %f\n", list[i]->Price);
printf(" \n");[pic 5]
}
system("pause"); return 0;
}
Пример работы программы
[pic 6]
Контрольные вопросы
- Перечислите правила описания структур.
Ответ: описание структуры начинается с ключевого слова struct и содержит список деклараций, заключенный в фигурные скобки {}. За словом struct может следовать имя, называемое тегом структуры. Тег дает название структуре данного вида и далее может служить кратким обозначением той части декларации, которая заключена в фигурные скобки.
...