Основы работы со структурами в языке программирование С++
Краткое сожержание материала:
Размещено на
Введение
В данной курсовой работе предусматривается исследовать современные теоретические основы работы со структурами в языке С++. Структуры - это, своего рода сгруппированные данные, выражающие один объект. Структура может содержать сколько угодно и какие угодно типы данных. Они могут быть самыми различными, и вполне совместимы в пределах одной структуры. Например, если взять пример из математики, каждая точка может характеризоваться двумя признаками: расположением по оси х и расположением по оси у. В этом случае мы можем назвать точку структурой, состоящей из двух переменных (значений), вещественного типа, которые характеризуют координаты расположения точки на плоскости. В таких случаях, где один объект состоит из множества других объектов или имеет очень большую перечень свойств, их можно сгруппировать как одну структуру и применять их в ходе программы без никаких заблуждений и путаниц. Это облегчает работу программисту, который не располагает большим количеством времени, чтобы при выполнении какого-либо проекта он подетально вникал в подробности каждого объекта. В целях лучшего изучения способов создания, применения структур и выполнения различных операций над ними, предусмотрено разработать программу, содержащую несколько структур и операций над ними, потому что на практике научиться проще чем просто прочитать теорию. В нашем случае, теория будет закрепляться дальнейшей реализацией прочитанного и наглядно будет понятен принцип работы со структурами в языке С++.
Глава 1. Работа со структурами в среде Borland C++ Builder
1.1 Структуры в С++
Структурой называется совокупность логически связанных переменных различных типов, сгруппированных под одним именем для удобства дальнейшей обработки. Структура - это способ связать воедино данные разных типов и создать пользовательский тип данных. Структуры в С++ используются для логического и физического объединения данных произвольных типов, так же как массивы служат для группирования данных одного типа.
В общем случае при работе со структурами следует выделить четыре момента:
- объявление и определение типа структуры,
- объявление структурной переменной,
- инициализация структурной переменной,
- использование структурной переменной.
Структура в С++ задаётся следующим образом:
1:
2:
3: structdirection {
члены (элементы) структуры
};
voidmain()
{
TPoint O; //Объявили переменную O типа TPoint
}
Так описывается структура в коде программы. Стоит обратить внимание, что при объявлении структуры нет круглых скобок
structTPoint () //НЕВЕРНО
а после закрывающейся фигурной скобки стоит точка с запятой.
Объявление структуры всегда должно начинаться с ключевого слова struct. Необязательно, чтобы структура имела имя, но тогда такая структура обязательно должна иметь структурные переменные, объявленные между закрывающей фигурной скобкой и точкой с запятой. Обязательно в объявлении структуры должны присутствовать фигурные скобочки, они обрамляют тело структуры, в котором объявляются её атрибуты (элементы). Структурные переменные, при объявлении структуры, указывать необязательно.
Структурная переменная может быть задана уникальным образом:
struct //Определение анонимного типа структуры
{
char name[20];
charf_name[40];
chars_name[20];
} copymy; //Создание структурной переменной
1.2 Обращение к структуре
#include <conio.h>
#include <iostream.h>
structTPoint //Объявили новую структуру TPoint.
{
int x; //Первый параметр
int y; //Второй параметр
}; //После описания структуры ставят точку с запятой
voidmain()
{
clrscr();
TPoint O; //Объявили переменную O типа TPoint
O.x=30; //Присвоили первому параметру значение
O.y=100;//Присвоили второму параметру значение
getch();
}
В этом коде была объявлена переменная Oтип данных которой соответствует структуре TPoint
У структуры TPoint было объявлено 2 параметра. (x,y). При обращении к O программист должен обратиться к определенному параметру из структуры к которой Оотносится.
Чтобы создать вторую переменную с двумя параметрами, но отличающуюся от первой достаточно прописать
TPointO,А; //Объявили переменные O и A типа TPoint
TPointO,А; //Объявили переменные O и A типа TPoint
Код С++ структуры
#include <conio.h>
#include <iostream.h>
structTPoint //Объявили новую структуру TPoint.
{
int x; //Первый параметр
int y; //Второй параметр
}; //После описания структуры ставят точку с запятой
voidmain()
{
clrscr();
TPoint O, A; //Объявили переменные типа TPoint
O.x=30; //Присвоили первому параметру значение
O.y=100;//Присвоили второму параметру значение
A.x=130; //Присвоили первому параметру значение
A.y=10;//Присвоили второму параметру значение
getch();
}
Теперь в памяти хранятся 2 сгруппированные переменные типа TPoint. Каждой переменной соответствует по 2 параметра типа int
Теперь с элементами A.x,A.y,O.x,O.y можно работать как с обычными переменными int. Просто в примере был показан способ создания своего типа данных, в котором в одной переменной сгруппировано две. (В переменной O - две переменных типа int и в переменной Адве переменных типа int)
Данные, которые хранятся в одной структуре могут быть присвоены другой структуре если обе структуры хранят одинаковые параметры.
Можно сказать, что в предыдущей программе было объявлено две структуры Структура А и структура О.
Код С++ структуры
#include <conio.h>
#include <iostream.h>
structTPoint //Объявили новую структуру TPoint.
{
int x; //Первый параметр
int y; //Второй параметр
}; //После описания структуры ставят точку с запятой
voidmain()
{
clrscr();
TPoint O, A; //Объявили переменные типа TPoint
O.x=30; //Присвоили первому параметру значение
O.y=100;//Присвоили второму параметру значение
A=O; //теперь A.x=O.x=30, A.y=O.y=100;
//Выводим на экран структуры О и А
cout<<A.x<<endl;
cout<<A.y<<endl;
cout<<O.x<<endl;
cout<<O.y<<endl;
getch();
}
Элементы списка объявлений называются членами структуры или полями. Каждый элемент списка имеет уникальное для данного структурного типа имя. Однако следует заметить, что одни и те же имена полей могут быть использованы в различных структурных типах.
Работа со структурной переменной обычно сводится к работе с отдельными полями структуры. Доступ к членам структуры осуществляется посредством оператора . (точка):
1:
2:
3: direction.x = 0;
direction.y = 0;
direction.z = 1;
при этом обращение к полю структуры представляет собой переменную того же типа, что и поле, и может применяться везде, где допустимо использование переменных такого типа.
Под структурную переменную выделяется область памяти не менее суммы длин всех полей структуры,например,
struct list
{
char name[20];
charfirst_name[40];
int;
}L;
В данном примере объявляется тип структура с именем list, состоящая из трех полей, и переменная с именем L типа structlist,при этом для переменной L выделяется 64 байта памяти.
1.3 Использование структур
Структуры в С++ используются для логической или физической группировки объектов, имеющих общий контекст. Использование структур при написании собственных типов данных рекомендуется в том случае, если выполняется ряд условий:
* Создаваемый тип данных не имеет собственного поведения. То есть объект такого типа рассматривается как пассивный набор данных.
* Члены данных создаваемого типа данных не могут находиться во взаимно противоречивом состоянии. То есть любая комбинация значений членов структуры является допустимой.
Для более сложных пользовательских типов данных в языке С++ используются классы.
Структуры позволяют достаточно э...
Основы программирования на языке Turbo Pascal
Предназначено для студентов вуза, начинающих изучать программирование на языке Turbo Pascal и уже знакомых с основными конструкциями языка (развилки,...
Структуры и алгоритмы обработки данных: Примеры на языке Си
Рассмотрены структуры данных, их представление и алгоритмы обработки, без знания которых невозможно современное компьютерное программирование. Приведе...
Программирование на Visual C++ .NET
В книге рассматриваются такие современные технологии, как многозадачное программирование, программирование сокетов, Web-программирование (в т.ч. и со...
Программирование на языке C для AVR и PIC микроконтроллеров.
Юрий Шпак. Программирование на языке C для AVR и PIC микроконтроллеров.В книге рассмотрено программирование на языке С микроконтроллеров AVR с использ...
Программирование на языке R-Лисп
Изложены основы программирования на языке R-Лисп, широко распространённом диалекте языка Лисп - языке реализации системы аналитических вычислений Redu...