Presentation is loading. Please wait.

Presentation is loading. Please wait.

Structured Data (Lecture 07)

Similar presentations


Presentation on theme: "Structured Data (Lecture 07)"— Presentation transcript:

1 Structured Data (Lecture 07)
By: Dr. Norazah Yusof FSKSM, UTM

2 Data Types Primitive data types - defined as a basic part of the language. Abstract Data Type (ADT) – created by the programmer and is composed of one or more primitive data types. Have own range (or domain) of data and own set of operations that may be performed on them. bool int unsigned long int char long int float unsigned char unsigned short int double short int unsigned int long double

3 Abstract Data Type Example: Write a program to simulate a 12-hour clock.

4 Abstract Data Type Example: Write a program to simulate a 12-hour clock. The program could contain three ADTs: Hours Minutes Seconds The range of values Hours : integers 1 through 12 Minutes : integers 0 through 59 Seconds : integers 0 through 59 If an Hours object is set to 12 and then incremented, it will then take on the value 1. If an Minutes object or Seconds object is set to 59 and then incremented, it will then take on the value 0.

5 Combining Data into Structures
Structure – group several variables together into a single item Declaration format of a structure: struct tag { variable declaration; //more declaration; };

6 Example: Structure declaration of Time
struct Time { int hours; int minutes; int seconds; };

7 Definition of Structure Variables
Structure declaration does not define a variable. It only create a new data type. Variable(s) of this type can be defined. Format: tag varname; Example: Define structure variable named now of type Time. Time now;

8 Memory layout of structure variable, now
hours minutes seconds Time Members

9 Example 2 Declare a structure named PayRoll that has the following members: Employee number: integer Employee’s name : array of characters Hours worked : floating point numbers Hourly pay rate : floating point numbers Gross pay : floating point numbers Define three PayRoll variables: deptHead, foreman, associate Draw the memory layout.

10 Example 2: Structure declaration of PayRoll and variables definition.
cont int SIZE = 25; struct PayRoll { int empNumber; char name[SIZE]; double hourWork, hourPayRate, grossPay; }; PayRoll deptHead, foreman, associate;

11 Memory Layout of PayRoll variables
empNumber name hourWork deptHead hourPayRate grossPay foreman empNumber name hourWork hourPayRate grossPay associate empNumber name hourWork hourPayRate grossPay

12 Assessing Structure Members
Dot operator (.) allows you to access structure members in a program. Example 1: Access the empNumber member of deptHead by assigning value of 475 to it. Example 2: Access the name, hourWork, and hourPayRate by assigning values of Muhammad, 200, and 15 to it, respectively. Then, assign the value to the grossPay by assigning the result of arithmetic operation: hourWork x hourPayRate Example 3: Display the contents of deptHead’s member

13 Assessing Structure Members
deptHead.empNumber = 475; strcpy(deptHead.name, "Muhammad"); deptHead.hourWork = 200; deptHead.hourPayRate = 15; deptHead.grossPay = deptHead.hourWork * deptHead.hourPayRate;

14 Assessing Structure Members
Example 3: Display the contents of deptHead’s member. Cannot display the content by passing the entire variable: cout << deptHead; //will not work!

15 Assessing Structure Members
Example 3: Display the contents of deptHead’s member. Each member must be passed to cout, separately. cout << "Name: " << deptHead.name << endl; cout << "ID Number: " << deptHead.empNumber << endl; cout << "Hours worked: " << deptHead.hourWork; cout << endl; cout << "Hourly pay rate: " << deptHead.hourPayRate; cout << "Gross pay: " << deptHead.grossPay << endl;

16 Read data from the keyboard
Change Example 2: Read data from the keyboard for the members name, hourWork, and hourPayRate.

17 Read data from the keyboard
cout << "Enter the employee number:"; cin >> deptHead.empNumber; cout << "Enter the employee’s name:"; cin.ignore(); //ignore the next character in // the input buffer. cin.getline(deptHead.name, SIZE); cout << "How many hours did the employee work?"; cin >> deptHead.hourWork; cout << "What is the employee’s hourly pay rate?"; cin >> deptHead.hourPayRate;

18 Comparing Structure Variables
Cannot perform comparison operations directly on structure variables. if (deptHead == foreman) //Error! To compare between two structures, need to compare individual members, as follows: if (deptHead.hourWork == foreman.hourWork) : if (strcmp(deptHead.name,foreman.name) == 0)

19 Initializing a Structure
The members of a structure variable may be initialized with starting values when it is defined. Example: Declare a structure variable named CityInfo. Define a variable named location with initialization values. structure CityInfo { char cityName[30]; char state[3]; long population; int distance; };

20 Initializing a Structure
structure CityInfo { char cityName[30]; char state[3]; long population; int distance; }; CityInfo location = {"Johor Bahru", "JH", 80000, 280}; CityInfo location = {"Kuantan", "PH", 50000}; CityInfo location = {"Ipoh", "PK"}; CityInfo location = {"Kuala Terengganu"}; CityInfo location = {"Seremban", "NS", ,68};//illegal!


Download ppt "Structured Data (Lecture 07)"

Similar presentations


Ads by Google