- •1 Теоретичні відомості
- •1.1 Загальні положення щодо мови програмування с
- •Використання структур
- •Робота з файлами
- •Void fclose (file *f) чи void fcloseall()
- •1.2 Проектування програм
- •1.3. Принципы создания консольных многомодульных приложений
- •1.4 Тестування програмних модулів
- •2 Завдання до курсовоЇ роботи
- •2.1 Проектування програмної системи
- •2.2 Оформлення графічного матеріалу
- •3 Варіанти завдань
- •4 Зміст пояснювальної записки
- •5 Строки здачі курсової роботи
- •Список літератури
Використання структур
"Структурою" називається спеціальний тип даних, що досить гнучкий для представлення різноманітних даних. Крім того, він дозволяє програмісту створювати нові типи. Структура – набір змінних різних типів, що утворюють єдиний об'єкт. З використанням структур зручно описувати об'єкти реальнго світу, що мають властивості різних типів (цілі, дійсні, масиви й ін.). Элементами структуры могут быть данные любого типа, включая и другие структуры, а также указатель на ту же самую структуру. Структури в мові С – це похідні типи даних, вони створюються з об'єктів інших типів.
Перш ніж зі структурою можна буде працювати, необхідно описати її, для чого необхідно визначити так називаний структурний шаблон:
struct struct_tag
{
type1 іtem1;
type2 іtem2;
...
typeN іtemN;
};
Ключове слово struct визначає, що все стоящее за ним є структурою. Далі йде ім'я типу структури struct_tag, називаної також тегом. Воно ідентифікує структуру для того, щоб можна було створювати перемінні цього типу. Саме "зміст" структури (її елементи) укладено у фігурні дужки.
Однак шаблон у представленому виді не створює перемінної. Для її визначення необхідно записати
struct struct_type structVariable;
У цьому описі struct struct_type грає ту ж роль, що іnt чи float у відповідних описах.
Ще одним способом створення змінної структурного типу є сполучення опису шаблона і визначення змінних:
struct struct_tag
{
type1 item1;
type2 item2;
…
typeN itemN;
} structVariable1, structVariable2;
Якщо не передбачається створення додаткових змінних, то ім'я типу структури struct_tag можна опустити:
struct
{
type1 item1;
type2 item2;
…
typeN itemN;
} structVariable1, structVariable2;
Можливе створення і покажчика на структуру:
struct struct_tag *ptrStruct;
При визначенні змінної компілятор виділяє пам'ять для кожного елемента структури, що поєднується під ім'ям цієї змінної:
struct accept {
char * parol[6];
char * login[5];
};
accept user1,users[10];
Тут accept є теговим ім'ям, чи ім'ям типу. Змінні, оголошені усередині фігурних дужок, є елементами структури. Елементи однієї структури повинні мати унікальні імена, але дві різні структури можуть містити однакові імена, і це не викликає ніяких конфліктів.
У наступному прикладі створено одиночний об'єкт user1 і 10 об'єктів (масив) users типу accept. Того ж результату можна було б досягнути іншими способами:
struct accept {
char * parol;
char * login;
} user1,users[10];
struct {
char * parol;
char * login;
} user1,users[10];
Як і інші типи даних, структури можна ініціалізувати у місці визначення.
Наприклад,
struct accept user1=
{
“Admin”,
“1234”
};
Звертатися до елементів структури можна, вказавши ім'я структурної змінної, ім'я елемента і розділивши ці імена операцією . (точка): user1.parol, user1.login;
Інформація, що міститься в одній структурі, може бути привласнена іншій структурі того ж типу за допомогою одиночного оператора присвоювання, тобто не потрібно привласнювати значення кожного поля по окремості. Наприклад, users[0]=user1;