5/12/2012

Structured Programming Using C++ Lecture 12 : Data aggregation & Structures

Dr. Amal Khalifa

Lecture Contents: Structures



  

Structure types Structures as function arguments Initializing structures

2

Dr. Amal Khalifa - Spring 2012

Dr. Amal Khalifa, 2012

1

5/12/2012



aggregate data type : collection (grouping)of data  array: collection of values of same type  Structure: collection of values of different types

3

Dr. Amal Khalifa, 2012

Structure Types 

Must first "define" struct 





Prior to declaring any variables Define struct globally (typically)

No memory is allocated  

Just a "placeholder" for what our struct will "look like“ Treated as a single item

6-4

Dr. Amal Khalifa - Spring 2012

2

5/12/2012

Structure data type

5

Dr. Amal Khalifa, 2012

Structure data Types

Type definition

6

Dr. Amal Khalifa - Spring 2012

Variable declaration

Member access

Dr. Amal Khalifa, 2012

3

5/12/2012

Type definition : Syntax struct CDAccountV1 Name of new "type" { double balance;  member names double interestRate; int term; };

7

Dr. Amal Khalifa, 2012

Structure Variable declaration 

Variable declaration: CDAccountV1 account;   

Just like declaring simple types Variable account now of type CDAccountV1 It contains "member values" 

Each of the struct "parts"

8

Dr. Amal Khalifa - Spring 2012

Dr. Amal Khalifa, 2012

4

5/12/2012

Accessing Structure Members 

Dot Operator to access members   



account.balance account.interestRate account.term

Called "member variables"  

The "parts" of the structure variable Different structs can have same name member variables 

No conflicts

6-9

Example: Structure Definition (1 of 3)

6-10

Dr. Amal Khalifa - Spring 2012

5

5/12/2012

Example: A Structure Definition (2 of 3)

6-11

Example: A Structure Definition (3 of 3)

6-12

Dr. Amal Khalifa - Spring 2012

6

5/12/2012

Programming Pitfall 

Semicolon after structure definition 

; MUST exist: struct WeatherData { double temperature; double windVelocity; };  REQUIRED semicolon!



Required since you "can" declare structure variables in this location

6-13

Initializing Structures 

Can initialize at declaration 



Example: struct Date { int month; int day; int year; }; Date dueDate = {12, 31, 2003}; Declaration provides initial data to all three member variables

6-14

Dr. Amal Khalifa - Spring 2012

7

5/12/2012

Structure Assignments 

Given structure named Date



Declare two structure variables: Date d1, d2; 

Both are variables of "struct type Date"



Simple assignments are legal: d1= d2; 

Simply copies each member variable from d1 into member variables from d2

6-15

Structures as Function Arguments 

Passed like any simple data type   



Pass-by-value Pass-by-reference Or combination

Can also be returned by function  

Return-type is structure type Return statement in function definition sends structure variable back to caller

6-16

Dr. Amal Khalifa - Spring 2012

8

5/12/2012

.

Example: 2D point Structure

Define a C++ structure for a 2D point. Each point is described by an (x, y) coordinate. Define the needed functions to : Read a point coordinates Display point data Translate a point along x-axis or y-axis Compute the distance between two points using the following formula:

( x2  x1 )2  ( y2  y1 )2

17

Dr. Amal Khalifa, 2012

Array of structures 

Student Structure

struct student { char id_num[5]; char name[10]; char gender; int age; };

18

Dr. Amal Khalifa - Spring 2012

Dr. Amal Khalifa, 2012

9

5/12/2012

Example: Array of Students // an array structure of student information #include using namespace std; struct student { char id[6]; char name[50]; char gender; int age; };

// student id number, max. 5 digits // student name, max 49 characters // student gender Male or Female // student age

void main() { // declaring array of 10 element of structure type // and some of the element also are arrays student stud[10];

19

Dr. Amal Khalifa, 2012

Example: Array of Students int i = 0; cout<<"Keying in student data and then display\n"; cout<<"---------------------------------------\n"; cout<<"Enter student data\n"; for(i=0; i<2; i++) { // storing data of the first two students cout<<"\nID number (4 digit number) student #"<>stud[i].id; cout<<"First name student #"<>stud[i].name; cout<<"Gender (M or F) student #"<>stud[i].gender; cout<<"Age student #"<>stud[i].age; }

20

Dr. Amal Khalifa - Spring 2012

Dr. Amal Khalifa, 2012

10

5/12/2012

Example: Array of Students cout<<"\n----------Display the data---------\n"; cout<<"You can see that the data storage\n"; cout<<"has been reserved for the structure!\n"; cout<<"------------------------------------\n"; for(i=0; i<2; i++) { // displaying the stored data of the first two students cout<<"\nID number student # "<
21

Dr. Amal Khalifa, 2012

Structures & pointers  

Dynamic allocation of structure variables Example: student thatStudent, *studPointer; studPointer = new student; studPointer->age = 19; studPointer->gender = ‘M’; *(studPointer).age = 20;

22

Dr. Amal Khalifa - Spring 2012

Dr. Amal Khalifa, 2012

11

5/12/2012

Structures & pointers Dynamic array of structures  Example: student FBStudents[10], *studArr; studArr = new student[10]; studPointer[0].age = 19; studPointer[0].gender = ‘M’; studPointer[1].age = 21; studPointer[1].gender = ‘F’; 

23

Dr. Amal Khalifa, 2012

That’s all for today !! Thanks…..

24

Dr. Amal Khalifa - Spring 2012

Dr. Amal Khalifa, 2012

12

Lecture Contents

May 12, 2012 - 3. Structure data type. Dr. Amal Khalifa, 2012. 5. Structure data Types. Dr. Amal Khalifa, 2012. 6. Type definition. Variable declaration. Member access ... 7 struct CDAccountV1 ←Name of new "type". { double balance;. ← member names double interestRate; int term;. }; Structure Variable declaration.

527KB Sizes 4 Downloads 288 Views

Recommend Documents

Contents - GitHub
Jan 7, 2015 - Foundation, either version 2 of the License, or (at your option) any later version. An exemplary usage of ... cython.org/src/tutorial/appendix.html.

Contents - GitHub
Dec 12, 2015 - 5.2.2 TIR-FCS with a square-shaped lateral detection volume . . . . . . . 30. 6 Troubleshooting. 32 ... 3http://www.gnu.org/licenses/gpl.html. 3 ..... This entry displays this documentation using the systems default PDF viewer. Wiki.

Contents - GitHub
May 9, 2006 - 3. 2 Requirements from SAGA Use Cases. 3. 2.1 Use Cases in Detail . ... A useful though informal way of understanding SAGA's aim and scope is to think of the MPI .... the design and implementation of specific API calls and maybe even th

Contents - multiresolutions.com
Notes on the History of Data Analysis . . . . . . . . . . . . . 3. 1.2.1. Biometry . . . . . . . . . . . . . . . . . . . . . . . . . 4. 1.2.2. Era Piscatoria . . . . . . . . . . . . . . . . . . . . . . . 4. 1.2.3. Psychometrics . . . . . . . . . . .

Contents
Apr 2, 1994 - gelization, defining, publishing and profiling unreached ... Every article in this special edi- tion of the ...... protected, yet, under the millet system,.

Contents of - GitHub
Endpoints. /. The application root. /contact. Contact manager. Methods. POST. Creates a new ... Not an actual endpoint, but the HTTP method to use. NAME/?.

Contents - Research at Google
prediction, covering 2 well-known benchmark datasets and a real world wind ..... Wind provides a non-polluting renewable energy source, and it has been.

Contents
References. 33. 0-8493-0052-5/00/$0.00+$.50 ...... FIGURE 1.2: An illustration of the Markov network required for incor- ..... Thus in effect we have M + 1 replicas.

contents
Un'ontologia dell'attualita (2003), Foucault: Experiences de la ... COMMENTARY Looking Back on '68 .... the dematerialization of the object back to the immate.

Contents - Ng Woon Lam
Global Free Trade, 255-261. Fig 1.1. Trial that illustrates the process of matching pure colors to their respective grays. Fig 1.2. Grayscale conversion of Fig 1.1.

Table of Contents
Feb 24, 2012 - Commission for Africa (ECA) [South African. Mission]. E-mail: [email protected] Mail: PO Box 1091, Addis Ababa, ETHIOPIA.

Contents - Ng Woon Lam
My practical experience and theoretical understanding with color issues helped me .... determine the speed of transition between the three pure colors. Fig.