Se ha denunciado esta presentación.
Structures
(CS1123)
By
Dr. Muhammad Aleem,
Department of Computer Science,
Mohammad Ali Jinnah University, Islamabad
Fall ...
Introducing Structures
 A structure is a collection of multiple data types
that can be referenced with single name.
 The...
Defining the Structure
• Structure definition tells how
the structure is organized: it
specifies what members the
structur...
Structure Definition Syntax
Declaring a Structure variable
• Structure variable can be defined after the definition of
a structure. The syntax of the ...
Structure members in memory
struct part
{
int modelnumber;
int partnumber;
float cost;
};
modelnumber
partnumber
cost
4 By...
Another way of Declaring a Structure variable
• You can also declare struct variables when you
define the struct. For exam...
Examples
struct employee
{
string firstName;
string lastName;
string address;
double salary;
int deptID;
};
employee e1;
s...
Initializing Structure Variables
• The syntax of initializing structure is:
StructName struct_identifier = {Value1, Value2...
Structure Variable Initialization with Declaration
Note: Values should be written in the same sequence in which
they are s...
Assigning Values to Structure Variables
• After creating structure variable, values to structure
members can be assigned u...
Assigning Values to Structure Variables
• After creating structure variable, values to structure
members can be assigned u...
Assigning one Structure Variable to another
• A structure variable can be assigned to another
structure variable only if b...
Array of Structures
• An array can also be created of user-defined type such as:
structure.
• An array of structure is a t...
Initialization of Array of Structures
struct Book
{
int ID;
int Pages;
float Price;
};
Book b[3]; // declaration of array ...
Array as Member of Structures
• A structure may also contain arrays as members.
struct Student
{
int RollNo;
float Marks[3...
Array as Member of Structures
• Or it can be assigned values later in the program:
Student S;
S.RollNo = 1;
S.Marks[0] = 7...
Nested Structure
• A structure can be a member of another structure:
called nesting of structure
struct A
{
int x;
double ...
Initializing/Assigning to Nested Structure
struct A{
int x;
float y;
};
struct B{
char ch;
A v2;
};
void main()
{
B record...
Lecture: 06/01/2014
Accessing Structures with Pointers
• Pointer variables can be used to point to structure
type variables too.
• The pointer...
Accessing Structures with Pointers
• How to access the structure members (using
pointer)?
– Use dereferencing operator (*)...
Accessing Structures with Pointers
• Is there some easier way also?
– Use arrow operator ( -> )
struct Rectangle {
int wid...
Class Exercises(1) – Find Errors
• Find errors:
struct
{
int x;
float y;
};
struct values
{
char name[20];
int age;
}
Class Exercises(2) – Find Errors
• Find errors:
struct TwoVals
{
int a,b;
};
void main()
{
TwoVals.a=10;
TwoVals.b=20;
}
Class Exercises(3) – Find Errors
• Find errors:
struct ThreeVals
{
int a,b,c;
};
int main()
{
ThreeVals vals={1,2,3};
cout...
Class Exercises(4) – Find Errors
• Find errors:
struct names
{
char first[20];
char last[20];
};
int main()
{
names custom...
Class Exercises(5) – Find Errors
• Find errors:
struct TwoVals
{
int a=5;
int b=10;
};
int main()
{
TwoVals v;
cout<<v.a<<...
Class Exercise-6
• Define a structure called “car”. The member elements
of the car structure are:
• string Model;
• int Ye...
Class Exercise-7
• Write a program that implements the following using C++
struct. The program should finally displays the...
Próxima SlideShare
Cargando en…5
×

Cs1123 12 structures

378 visualizaciones

Publicado el

Publicado en: Tecnología, Empresariales
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Cs1123 12 structures

  1. 1. Structures (CS1123) By Dr. Muhammad Aleem, Department of Computer Science, Mohammad Ali Jinnah University, Islamabad Fall Semester 2013
  2. 2. Introducing Structures  A structure is a collection of multiple data types that can be referenced with single name.  The data items in structure are called structure members, elements, or fields.  The difference between array and structure: is that array must consists of a set of values of same data type but on the other hand, structure may consists of different data types.
  3. 3. Defining the Structure • Structure definition tells how the structure is organized: it specifies what members the structure will contain. Syntax & Example  Syntax: struct StructName { DataType1 Identifier1; DataType2 Identifier2; . . . }; Example: struct Product { int ID; string name; float price; };
  4. 4. Structure Definition Syntax
  5. 5. Declaring a Structure variable • Structure variable can be defined after the definition of a structure. The syntax of the declaration is: StructName Identifier; Example: part processor; part keyboard; • This declaration tells the compiler to allocate memory space according to the elements of the structure. • The structure variable processor and keyboard occupies 12 bytes in the memory. 4 bytes for modelnumber, 4 bytes for partnumber, 4 bytes for cost
  6. 6. Structure members in memory struct part { int modelnumber; int partnumber; float cost; }; modelnumber partnumber cost 4 Bytes 4 Bytes 4 Bytes
  7. 7. Another way of Declaring a Structure variable • You can also declare struct variables when you define the struct. For example: struct part { int modelnumber; int partnumber; float cost; } part1;  These statements define the struct named part and also declare part1 to be a variable of type part.
  8. 8. Examples struct employee { string firstName; string lastName; string address; double salary; int deptID; }; employee e1; struct student { string firstName; string lastName; char courseGrade; int Score; double CGPA; } s1, s2;
  9. 9. Initializing Structure Variables • The syntax of initializing structure is: StructName struct_identifier = {Value1, Value2, …};
  10. 10. Structure Variable Initialization with Declaration Note: Values should be written in the same sequence in which they are specified in structure definition. struct student { string firstName; string lastName; char courseGrade; int marks; }; void main( ) { student BC022010= {“M”, “Umar”, ‘A’, 94} ; }
  11. 11. Assigning Values to Structure Variables • After creating structure variable, values to structure members can be assigned using dot (.) operator • The syntax is as follows: student BC111017; BC111017.firstName = “Muhammad”; BC111017.lastName = “Umar”; BC111017.courseGrade = ‘A’; BC111017.marks = 93;
  12. 12. Assigning Values to Structure Variables • After creating structure variable, values to structure members can be assigned using cin. • Output to screen using cout student BC012311; cin>>BC012311.firstName; cin>>BC012311.lastName; cin>>BC012311.courseGrade; cin>>BC012311.marks ; cout<<BC012311.firstName<<BC012311.lastName;
  13. 13. Assigning one Structure Variable to another • A structure variable can be assigned to another structure variable only if both are of same type • A structure variable can be initialized by assigning another structure variable to it by using the assignment operator as follows: Example: studentType newStudent = {“John”, “Lee”, ‘A’, 99} ; studentType student2 = newStudent;
  14. 14. Array of Structures • An array can also be created of user-defined type such as: structure. • An array of structure is a type of array in which each element contains a complete structure. struct Book { int ID; int Pages; float Price; }; Book MAJULibrary[100]; // declaration of array of structures MAJULibrary[0] ID Pages Price …MAJULibrary[1] ID Pages Price MAJULibrary[99] ID Pages Price
  15. 15. Initialization of Array of Structures struct Book { int ID; int Pages; float Price; }; Book b[3]; // declaration of array of structures • Initializing can be at the time of declaration Book b[3] = {{1,275,70},{2,600,90},{3,786,100}}; • Or can be assigned values using cin: cin>>b[0].ID ; cin>>b[0].Pages; cin>>b[0].Price;
  16. 16. Array as Member of Structures • A structure may also contain arrays as members. struct Student { int RollNo; float Marks[3]; }; • Initialization can be done at time of declaration: Student S = {1, {70.0, 90.0, 97.0} };
  17. 17. Array as Member of Structures • Or it can be assigned values later in the program: Student S; S.RollNo = 1; S.Marks[0] = 70.0; S.Marks[1] = 90.0; S.Marks[2] = 97.0; • Or user can use cin to get input directly: cin>>S.RollNo; cin>>S.Marks[0]; cin>>S.Marks[1]; cin>>S.Marks[2];
  18. 18. Nested Structure • A structure can be a member of another structure: called nesting of structure struct A { int x; double y; }; struct B { char ch; A v1; }; B record; record v1 xch y
  19. 19. Initializing/Assigning to Nested Structure struct A{ int x; float y; }; struct B{ char ch; A v2; }; void main() { B record; cin>>record.ch; cin>>record.v2.x; cin>>record.v2.y; } void main() { B record = {‘S’, {100, 3.6} }; } void main() { B record; record.ch = ‘S’; record.v2.x = 100; record.v2.y = 3.6; }
  20. 20. Lecture: 06/01/2014
  21. 21. Accessing Structures with Pointers • Pointer variables can be used to point to structure type variables too. • The pointer variable should be of same type, for example: structure type struct Rectangle { int width; int height; }; void main( ) { Rectangle rect1={22,33}; Rectangle* rect1Ptr = &rect1; }
  22. 22. Accessing Structures with Pointers • How to access the structure members (using pointer)? – Use dereferencing operator (*) with dot (.) operator struct Rectangle { int width; int height; }; void main( ) { Rectangle rect1={22,33}; Rectangle* rectPtr = &rect1; cout<< (*rectPrt).width<<(*rectPrt).height; }
  23. 23. Accessing Structures with Pointers • Is there some easier way also? – Use arrow operator ( -> ) struct Rectangle { int width; int height; }; void main( ) { Rectangle rect1={22,33}; Rectangle* rectPtr = &rect1; cout<< rectPrt->width<<rectPrt->height; }
  24. 24. Class Exercises(1) – Find Errors • Find errors: struct { int x; float y; }; struct values { char name[20]; int age; }
  25. 25. Class Exercises(2) – Find Errors • Find errors: struct TwoVals { int a,b; }; void main() { TwoVals.a=10; TwoVals.b=20; }
  26. 26. Class Exercises(3) – Find Errors • Find errors: struct ThreeVals { int a,b,c; }; int main() { ThreeVals vals={1,2,3}; cout<<vals<<endl; return 0; }
  27. 27. Class Exercises(4) – Find Errors • Find errors: struct names { char first[20]; char last[20]; }; int main() { names customer = {“Muhammad”, “Ali”}; cout<<names.first<<endl; cout<<names.last<<endl; return 0; }
  28. 28. Class Exercises(5) – Find Errors • Find errors: struct TwoVals { int a=5; int b=10; }; int main() { TwoVals v; cout<<v.a<<“ “<<v.b; return 0; }
  29. 29. Class Exercise-6 • Define a structure called “car”. The member elements of the car structure are: • string Model; • int Year; • float Price Create an array of 30 cars. Get input for all 30 cars from the user. Then the program should display complete information (Model, Year, Price) of those cars only which are above 500000 in price.
  30. 30. Class Exercise-7 • Write a program that implements the following using C++ struct. The program should finally displays the values stored in a phone directory (for 10 people) PhoneNoName City Country Address PhoneDirectory

×