structures
Download
Skip this Video
Download Presentation
Structures

Loading in 2 Seconds...

play fullscreen
1 / 28

Structures - PowerPoint PPT Presentation


  • 211 Views
  • Uploaded on

Structures. Outline. Introduction Structure Definitions and Declarations Initializing Structures Operations on Structures Members Structures as Functions Parameters Array of Structures. Introduction. Structures

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Structures' - zenevieva-nikita


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
structures

Structures

EKT 120 Computer Programming

outline
Outline
  • Introduction
  • Structure Definitions and Declarations
  • Initializing Structures
  • Operations on Structures Members
  • Structures as Functions Parameters
  • Array of Structures

EKT 120 Computer Programming

introduction
Introduction
  • Structures
    • Collection of related data items called components (or members) that are NOT necessarily of the same data type.
    • Commonly used to define records to be stored in files.
    • Usually the collections of related data item are characteristics in an object
      • For example:

ObjectCharacteristics

Book price, number of pages, year published

Car price, year, model, colour

Student name, matric_no, semester

EKT 120 Computer Programming

structure definition
Structure Definition
  • Syntax:
    • struct StructureTypeName

{

structure member declaration list

};

Example:

struct book

{

float fPrice;

int iNumPages;

int iYear;

};

EKT 120 Computer Programming

structure definition1
Structure Definition
  • struct information
    • A struct cannot contain an instance of itself
    • Can contain a member that is a pointer to the same structure type
    • A structure definition does not reserve space in memory
      • Instead creates a new data type used to define structure variables

EKT 120 Computer Programming

structure declaration
Structure Declaration
  • After defining a structure type, we may declare variables that are of that type. A structure variable declaration requires these elements :
    • keyword struct
    • structure type name
    • a list of variables names separated by commas
    • concluding semicolon

E.g. struct book sBook1;

struct book sMyBook,sHisBook,sHerBook;

EKT 120 Computer Programming

how does it look like in my program
How does it look like in my program?

#include <stdio.h>

struct book

{

float fPrice;

int iNumPages;

int iYear;

} sBook1;

int main( )

{

……

}

#include <stdio.h>

struct book

{

float fPrice;

int iNumPages;

int iYear;

};

int main( )

{

struct book sBook1;

……

}

or

struct book sBook1;

EKT 120 Computer Programming

initializing structures
Initializing Structures

struct book sBook1 = {25.50, 690, 2005};

OR

sBook1.fPrice = 25.50;

sBook1.iNumPages = 690;

sBook1.iYear = 2005;

dot operator

EKT 120 Computer Programming

operations on structures members
Operations on Structures Members

EKT 120 Computer Programming

multiple structures variables
Multiple Structures Variables

struct book sMyBook, sHisBook, sHerBook;

  • fPrice
  • fPrice
  • fPrice
  • iNumPages
  • iNumPages
  • iNumPages
  • iYear
  • iYear
  • iYear

sMyBook

sHisBook

sHerBook

EKT 120 Computer Programming

multiple structures variables1
Multiple Structures Variables

e.g.

struct book sMyBook, sHisBook, sHerBook;

sMyBook. fPrice = 25.50;

sHerBook.fPrice = 10.50;

if(sMyBook.fPrice > sHerBook.fPrice)

printf(“My book is more expensive than hers\n”);

else

printf(“My book is cheaper than hers\n”);

EKT 120 Computer Programming

sample program
Sample Program

#include <stdio.h>

struct book

{

float fPrice;

int iNumPages;

int iYear;

};

int main()

{ struct book sMyBook = {25.50,690,2005};

struct book sHerBook;

printf("Enter book price : ");

scanf("%f", &sHerBook.fPrice);

printf("Enter number of pages : ");

scanf("%d", &sHerBook.iNumPages);

printf("Enter year published : ");

scanf("%d", &sHerBook.iYear);

printf("My book :\n");

printf("%.2f\t%d\t%d\n", sMyBook.fPrice, sMyBook.iNumPages, sMyBook.iYear);

printf("Her book :\n");

printf("%.2f\t%d\t%d\n", sHerBook.fPrice, sHerBook.iNumPages, sHerBook.iYear);

if(sMyBook.iYear > sHerBook.iYear)

printf("My book is the latest publication\n");

else

printf("Her book is the latest publication\n");

return 0;

}

EKT 120 Computer Programming

structures as function parameters
Structures as Function Parameters
  • Like variables of any other data type, structure variables can be used as formal and actual function parameters.
  • In passing structure variables by value to a function, the operating systems makes a copy of the entire structure in the data area of the called function.

EKT 120 Computer Programming

structures as function parameters1
Structures as Function Parameters

……

float fnComputePrice(struct book sBkC);//function prototype

int main( )

{ struct book sBookC;

……………

fNewPrice = fnComputePrice(sBookC); //function call

……

}

float fnComputePrice(struct book sBkC) //function definition

{ …….

sBkC.fPrice=sBkC.fPrice + fTax;

……

return(fBkC.fPrice);

}

EKT 120 Computer Programming

structures as function parameters2
Structures as Function Parameters
  • A nonvoid function of a structure type can return a structure of that structure type under the function’s name if we use a return statement in the function.

struct book fnRead (); //function prototype

int main( )

{ ……….

struct book sB;

sB = fnRead( ); //function call

……….

}

struct book fnRead( ) //function definition

{ struct book sBk;

printf(“Enter price:”);

scanf(“%f”, &sBk.fPrice);

…..

return(sBk);

}

EKT 120 Computer Programming

structures as function parameters3
Structures as Function Parameters
  • If all members of a structure variable are not needed for a function to perform its task, we can pass only the required members.
  • However, we must specify structure members using the component selection operator.

int fnModifyYear(int iA, int iB, int iYear); //function prototype

……..

int main( )

{ struct book sBkC;

…………….

iAvgYear=fnModifyYear(iAa, iBb, sBkC.iYear); //function call

…….

}

EKT 120 Computer Programming

structures as function parameters4
Structures as Function Parameters
  • It is possible to pass structure variables using pointers

int main()

{ struct book sB;

………

fnRead(&sB); //function call

}

void fnRead(struct book *sBk)

{

printf(“Enter price:”);

scanf(“%f”, &sBk->fPrice);

printf(“Enter numpages:”);

scanf(“%d”, &sBk->iNumPages);

…….

}

EKT 120 Computer Programming

sample program1
#include <stdio.h>

struct book {

float fPrice;

int iNumPages;

int iYear;

};

struct book fnRead();

void fnPrint(struct book, struct book);

void fnCompare(int, int);

int main()

{ struct book sMyBook = {25.50,690,2005};

struct book sSheBook;

sSheBook=fnRead();

fnPrint(sMyBook , sSheBook);

fnCompare(sMyBook.iYear, sSheBook.iYear);

return 0;

}

struct book fnRead()

{ struct book sHerBook;

printf("Enter book price : ");

scanf("%f", &sHerBook.fPrice);

printf("Enter number of pages : ");

scanf("%d", &sHerBook.iNumPages);

printf("Enter year published : ");

scanf("%d", &sHerBook.iYear);

return(sHerBook);

}

void fnPrint(struct book sMyBook, struct book sHerBook)

{

printf("My book :\n");

printf("%.2f\t%d\t%d\n", sMyBook.fPrice, sMyBook.iNumPages, sMyBook.iYear);

printf("Her book :\n");

printf("%.2f\t%d\t%d\n", sHerBook.fPrice, sHerBook.iNumPages, sHerBook.iYear);

}

void fnCompare(int iMyYear, int iSheYear)

{

if(iMyYear > iSheYear)

printf("My book is the latest publication\n");

else

printf("Her book is the latest publication\n");

}

Sample Program

EKT 120 Computer Programming

an array of structures
An Array of Structures
  • Suppose a company has 50 full-time employees.

struct employeeType

{

char acFirstName[20];

char acLastName[20];

int iPersonID;

char acDeptID[10];

double dYearlySalary;

double dMonthlySalary;

double dYearToDatePaid;

double dMonthlyBonus;

};

struct employeeType asEmployees[50];

EKT 120 Computer Programming

how it looks like
How it looks like

Array of structs asEmployees

EKT 120 Computer Programming

how to access
How to access??

int iCounter;

for(iCounter = 0; iCounter < 50; iCounter++)

{

scanf(“%s %s %d %s %lf”,

&asEmployees[iCounter].acFirstName, &asEmployees[iCounter].acLastName,

&asEmployees[iCounter].iPersonID,

&asEmployees[iCounter].acDeptID,

&asEmployees[iCounter].dYearlySalary);

asEmployees[iCounter].dMonthlySalary = asEmployees[iCounter].dYearlySalary/12; asEmployees[iCounter].dYearToDatePaid = 0.0; asEmployees[iCounter].dMonthlyBonus = 0.0;

}

EKT 120 Computer Programming

how to access1
How to access??
  • Suppose that for a given month the monthly bonuses are already stored in each employee’s record, and we have to calculate the monthly paycheck and update the yearToDatePaid amount. The following loop computes and prints the employee’s paycheck for the month:

double dPayCheck; //variable to calculate the paycheckfor(iCounter = 0; iCounter < 50; iCounter++)

{

printf(“%s %s”, asEmployees[iCounter].acFirstName, asEmployees[iCounter].acLastName);

dPayCheck = asEmployees[iCounter].dMonthlySalary + asEmployees[iCounter].dMonthlyBonus;

asEmployees[iCounter].dYearToDatePaid = asEmployees[iCounter].dYearToDatePaid + dPayCheck; }

EKT 120 Computer Programming

arrays in structures
Arrays in Structures
  • Example

const arraySize = 5; struct listType

{

int aiListElem[arraySize]; //array containing the list

int iListLength; //length of the list

};

struct listType sList;

EKT 120 Computer Programming

how it looks like1
How it looks like
  • struct listType

aiListElem

iListLength

EKT 120 Computer Programming

structure within a structure
Structure Within a Structure

struct contactType

{

string acPhone;

string acCellphone;

string acFax;

string acPager;

string acEmail;

};

struct employeeType

{

struct nameType sName;

string acEmplID;

struct addressType sAddress;

struct dateType sHiredate;

struct dateType sQuitdate;

struct contactType sContact;

string acDeptID;

double dSalary;

};

struct nameType

{

string acFirst;

string acMiddle;

string acLast;

};

struct addressType

{

string acAddress1;

string acAddress2;

string acCity;

string acState;

string acZip;

};

struct dateType

{

string acMonth;

string acDay;

string acYear;

};

EKT 120 Computer Programming

structure within a structure how to access
Structure Within a Structure : How to access??

//variable declaration

struct employeeType sNewEmployee;

//declare 100 employees\' records

struct employeeType asEmployees[100];

sNewEmployee.dSalary = 45678.00;

sNewEmployee.sName.acFirst = "Mary"; sNewEmployee.sName.acMiddle = "Beth"; sNewEmployee.sName.acLast = "Simmons";

EKT 120 Computer Programming

structure within a structure how to access1
Structure Within a Structure : How to access??

The statement

scanf(“%s”, &sNewEmployee.sName.acFirst);

reads and stores a string into sNewEmployee.sName.acFirst.

The statement

sNewEmployee.dSalary = sNewEmployee.dSalary * 1.05;

updates the salary of newEmployee

EKT 120 Computer Programming

slide28

TQ

EKT 120 Computer Programming

ad