Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Загальна характеристика структуриСодержание книги
Поиск на нашем сайте Структури дають можливість групувати дані і працювати з цими даними як із єдиним цілим. Структура являє собою множину, що складається з декількох значень, кожна з який може мати свій тип даних. Елементи структур можуть мати різні типи даних. Для визначення структури використовується синтаксис:
struct [тег структури] {
визначення члена структури; } [одна або декілька змінних-структур];
тег -ім’я структури.
Приклад структури з інформацією про компакт-диски:
struct cd_info { char title [25]; //назва char artist [28]; //виконавець int num_song; //число пісень float price; //вартість char date_bought [8]; //дата покупки } cd1, cd2, cd3;
Тут описані три структурні змінні: cd1, cd2, cd3; Існує два засоби ініціалізації структур: – при оголошенні; – окремо в тілі програми.
Приклад 1. Ініціалізація при оголошенні
struct cd_info { char title[25]; char artist[28]; int num_song; float price; char date_bought[8];
} cd1= { “Red Moon Men”, “Пугачова”, 12, 20.55, “02/13/98” };
Приклад 2. Присвоювання в тілі програми.
#include <iostream.h> #include <string.h>
Void main() { struct cd_info { char title [25]; char artist [28]; int num_song; float price; char date_bought [8]; } cd1;
strcpy(cd1.title, “Red Moon Men”); cd1.num_song = 12; cd1.price = 11.95; strcpy(cd1.artist, “Пугачова”); cout << “Title: “ << cd1.title << “\n”; cout << “Artist: “ << cd1.artist << “\n”; cout << “Number of songs: “ << cd1.num_song << “\n”; cout << “Price: “ << cd1.price << “\n”; }
Як очевидно з прикладу до полів структури можна звертатися, вказуючи ім’я змінної-структури, ім’я поля і розділяючи ці імена точкою. У загальному вигляді:
Struct bb { int field_1; char field_2; } c, a; int value1 = c. field_1; char value2 = a. field_2;
Якщо змінна ptr визначена як вказівка на структуру, то для доступу до полів структури можна використовувати операцію ->. Наприклад:
bb *ptr; int value1 = ptr->field_1; char value2 = ptr->field_2;
Оператор ptr->field_1 еквівалентний виразу (*ptr).field_1.
Приклад:
#define COMPLEX struct complex_type
COMPLEX { float real; float image; };
Операція додавання С1 і С2 для одержання С3.
#define COMPLEX struct complex_type
COMPLEX { float real; float image; }; COMPLEX C1, C2, C3; C3. real = C1. real + C2. real; C3. image = C1. image + C2. image; або COMPLEX* C1, C2, C3; C3->real = C1->real + C2->real; C3->image = C1->image + C2->image; Структури можуть бути вкладеними, тобто одним із полів структури може бути інша структура. Приклад: #include <iostream.h> struct address_info { char addr[25]; //Інформація про адресу char state[20]; }; Struct add { char name[25]; address_info *address; double zarp; };
Void main() { add t; cin >> t.zarp; cin >>t.name; cin >>t.address->state; cin >>t.address->addr; }
Вкладена структура має вигляд: Резюме: Структури дозволяють групувати дані більш гнучкою образом, ніж масиви. Вони можуть містити елементи різноманітних типів даних. Ініціалізувати структури можна двома засобами: під час оголошення, або за допомогою операторів «точка»(.) або " ->" у тілі програми. Структури аналогічні записам бази даних, а їхні елементи - полям записів.
Масиви структур Припустимо, що ви працюєте в компанії замовлення поштою, що продає дисководи. Перед Вами стоїть задача написати програму для обліку 25 видів пристроїв. По дисководу є така інформація: – місткість пристрою, що запам’ятовує; – час доступу в мілісекундах; – код постачальника; – ціна. Дані зручно розмістити в масиві структур
struct inf_d { long int ob; int vr; int kod; double cena; } drive[25];
або окремим рядком:
inf_d drive[25];
Структури зручно записувати на диск (спробуйте самостійно)
Приклад:
#include <iostream.h> #include <stdio.h> #include <stdlib.h> #include <conio.h>
struct inf_d //Глобальне визначення { long int ob; int vr; int kod; double cena; };
inf_d v_dan() { inf_d disk; cin >> disk.ob; cin >> disk.vr; cin >> disk.kod; cin >> disk.cena; return disk; }
Void menu() { clrscr(); //(у Visual C++ використовується system("cls")) cout << "1. введення даних про дисковод\n"; cout << "2. Відображення даних\n"; cout << "3. Вихід\n"; } void pros(inf_d disk[25], int num) { for(int ctr = 0; ctr < num; ctr++) { cout <<"\n" << disk[ctr].ob; cout <<"\n" << disk[ctr].vr; cout <<"\n" << disk[ctr].kod; cout <<"\n" << disk[ctr].cena<<"\n"; } getch(); }
Void main () { inf_d disk[25]; int ans; int num = 0; do { do { menu(); cin >> ans; } while ((ans < 1) || (ans>3));
switch(ans) { case 1: disk[num] = v_dan(); num++; break; case 2: pros(disk,num); break; default: break; } } while(ans!=3); }
|
||||
|
Последнее изменение этой страницы: 2017-02-10; просмотров: 213; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.128 (0.006 с.) |