COMP102 Prog. Fundamentals,
Structures/ Slide 2
2
Structures
● A Structure is a collection of related data items,
possibly of different types.
● A structure type in C++ is called struct.
● A struct is heterogeneous in that it can be
composed of data of different types.
● In contrast, array is homogeneous since it can
contain only data of the same type.
3.
COMP102 Prog. Fundamentals,
Structures/ Slide 3
3
Structures
● Structures hold data that belong together.
● Examples:
● Student record: student id, name, major,
gender, start year, …
● Bank account: account number, name,
currency, balance, …
● Address book: name, address, telephone
number, …
● In database applications, structures are called
records.
4.
COMP102 Prog. Fundamentals,
Structures/ Slide 4
4
Structures
● Individual components of a struct type are
called members (or fields).
● Members can be of different types (simple,
array or struct).
● A struct is named as a whole while individual
members are named using field identifiers.
● Complex data structures can be formed by
defining arrays of structs.
5.
COMP102 Prog. Fundamentals,
Structures/ Slide 5
5
struct basics
● Definition of a structure:
struct <struct-type>{
<type> <identifier_list>;
<type> <identifier_list>;
...
} ;
● Example:
struct Date {
int day;
int month;
int year;
} ;
The “Date” structure
has 3 members,
day, month & year.
Each identifier
defines a member
of the structure.
6.
COMP102 Prog. Fundamentals,
Structures/ Slide 6
6
struct examples
● Example:
struct StudentInfo{
int Id;
int age;
char Gender;
double CGA;
};
● Example:
struct StudentGrade{
char Name[15];
char Course[9];
int Lab[5];
int Homework[3];
int Exam[2];
};
The “StudentGrade”
structure has 5
members of
different array types.
The “StudentInfo”
structure has 4
members
of different types.
7.
COMP102 Prog. Fundamentals,
Structures/ Slide 7
7
struct examples
● Example:
struct BankAccount{
char Name[15];
int AcountNo[10];
double balance;
Date Birthday;
};
● Example:
struct StudentRecord{
char Name[15];
int Id;
char Dept[5];
char Gender;
};
The “StudentRecord”
structure has 4
members.
The “BankAcount”
structure has simple,
array and structure
types as members.
8.
COMP102 Prog. Fundamentals,
Structures/ Slide 8
8
struct basics
● Declaration of a variable of struct type:
<struct-type> <identifier_list>;
● Example:
StudentRecord Student1, Student2;
Student1 and Student2 are variables of
StudentRecord type.
Student1 Student2
Name
Id
Gender
Dept
Name
Id
Gender
Dept
9.
COMP102 Prog. Fundamentals,
Structures/ Slide 9
9
Chan Tai Man
12345
M
COMP
Ex. 1: struct basics
● The members of a struct type variable are
accessed with the dot (.) operator:
<struct-variable>.<member_name>;
● Example:
strcpy(Student1.Name, "Chan Tai Man");
Student1.Id = 12345;
strcpy(Student1.Dept, "COMP");
Student1.gender = 'M';
cout << "The student is ";
switch (Student1.gender){
case 'F': cout << "Ms. "; break;
case 'M': cout << "Mr. "; break;
}
cout << Student1.Name << endl;
Student
1
Name
Id
Gender
Dept
COMP102 Prog. Fundamentals,
Structures/ Slide 11
11
Chan Tai Man
12345 M
COMP
Ex. 2: struct-to-struct assignment
● The values contained in one struct type
variable can be assigned to another variable
of the same struct type.
● Example:
strcpy(Student1.Name,
"Chan Tai Man");
Student1.Id = 12345;
strcpy(Student1.Dept, "COMP");
Student1.gender = 'M';
Student2 = Student1;
Student1
Chan Tai Man
12345 M
COMP
Student2
COMP102 Prog. Fundamentals,
Structures/ Slide 13
13
Ex. 3-5: Nested structures
● We can nest structures inside structures.
● Examples:
struct point{
double x, y;
};
point P;
struct line{
point p1, p2;
};
line L;
struct triangle{
point p1, p2, p3;
};
triangle T;
(P.x, P.y)
(L.p1.x,
L.p1.y)
(L.p2.x,
L.p2.y)
(T.p2.x, T.p2.y)
(T.p1.x, T.p1.y)
(T.p3.x, T.p3.y)
14.
COMP102 Prog. Fundamentals,
Structures/ Slide 14
14
Ex. 3-5: Nested structures
● We can nest structures inside structures.
● struct line{
point p1, p2;
};
line L;
(L.p1.x,
L.p1.y)
(L.p2.x,
L.p2.y)
line
p1 p2
x y x y
15.
COMP102 Prog. Fundamentals,
Structures/ Slide 15
15
Ex. 3-5: Nested structures
● Assign values to the variables P, L, and T
using the picture:
point P;
line L;
triangle T;
(4, 11)
(2,
7)
(10,
9)
(6,
5)
(2,
0)
(8,
3)
● Ex. 3: Graph a point
● Ex. 4: Graph a line
● Ex. 5: Graph a triangle