Presentation is loading. Please wait.

Presentation is loading. Please wait.

Structures - Part II aggregate operations arrays of type struct

Similar presentations


Presentation on theme: "Structures - Part II aggregate operations arrays of type struct"— Presentation transcript:

1 Structures - Part II aggregate operations arrays of type struct
nested structures compared to classes

2 Aggregate Operations Operation Arrays Structs
I/O No (except strings) No Assignment No Yes Arithmetic No No Comparison No No Parameter pass. Ref. only Either value or ref. Funct. return value No Yes

3 Arrays of Structures struct Salaried { char dept[5]; int salary;
int vac_days; }; // array of 20 elements, each of type Salaried Salaried emp[20];

4 Arrays of Structures ... emp[0].dept = “Purc”; emp[0].salary = 34560;
emp[0].vac_days = 14; ... emp[2].salary = 32100; emp[2].dept = “Ship”; emp[2].vac_days = 10; emp[19].dept = “Acct”; emp[19].salary = 22500; emp[19].vac_days = 12;

5 Arrays of Structures struct Payroll { int id; char name[15];
double payrate; }; // an array of 3 records of type Payroll Payroll employee[3];

6 Arrays of Structures Payroll employee[3] = { {11, “Begay”, 7.25},
// load array -- there are other ways to load the array Payroll employee[3] = { {11, “Begay”, 7.25}, {12, “Gioseffi”, 6.50}, {13, “Marra”, 9.00} }; // display array for(ndx = 0; ndx < 3; ndx++) cout << ‘\n’ << employee[ndx].id << setw(20) << employee[ndx].name << setw(20) << employee[ndx].payrate;

7 Arrays of Structures struct Payroll { int id; char name[15]; double payrate; }; // prototypes void loadarray(Payroll [3]); void showarray(Payroll [3]); *

8 Arrays of Structures void main()
{ //declare array of 3 records of type Payroll // and initialize the first record Payroll employee[3] = { 11, "Begay", 7.25 }; loadarray(employee); // calls showarray(employee); cout << endl<<endl; // for formatting } // end main()

9 Arrays of Structures // load array - data typically entered via file input void loadarray(Payroll staff[3]) { // begin at 1 because [0] already entered for(int ndx = 1; ndx < 3; ndx++) { cout << "Enter the ID, name, and pay rate: "; cin >> staff[ndx].id >> staff[ndx].name >> staff[ndx].payrate; cout << endl; }

10 Arrays of Structures void showarray(Payroll staff[3]) {
cout << setiosflags(ios::fixed) << setprecision(2); for(int ndx = 0; ndx < 3; ndx++) cout << '\n' << setw(5) << staff[ndx].id << setw(13) << staff[ndx].name << setw(10) << staff[ndx].payrate; }

11 In Class Assign. 3 Element at. num at. mass density
tungsten (W) sulfur (S) carbon (C) Write the plan first. 9. Write a program which: a. creates an array of structures b. uses a global constant for the array size c. contains functions to load and to display d. format similar to the above chart

12 In Class Assign. 3-ans. #include<iostream.h> void main()
#include<iomanip.h> struct Element { char symbo; int at_num; double at_mass; double density; }; const int ARR_SIZE = 3; void loadarray(Element [ARR_SIZE ]); void showarray(Element [ARR_SIZE ]); void main() { //declare array - type Element Element atom[ARR_SIZE ]; loadarray(atom); // calls showarray(atom); cout << endl<<endl; } // end main()

13 Nested Structures * struct Date { int month; int day; int year; };
struct vital_Data { char name[15]; char dept[10]; int ID; Date birth; // Date must be previously defined double payrate; }; *

14 Nested Structures vital_Data Courtney; // declaration of an object
// assignments of data to an object Courtney.name = “Lawrence”; Courtney.dept = “personnel”; Courtney.ID = 1234; Courtney.birth = {10, 25, 87}; // this is a struct Coutrney.payrate = 12.75;

15 Nested Structures 1. Write the cin statements for the department and the birthday. 2. Write the cout statements for the department and the birthday.

16 Nested Structures personnel[ndx].name; personnel[ndx].dept; * * * * *
void loadarray(vital_Data personnel[ARR_SIZE ]) { for(int ndx = 1; ndx < ARR_SIZE ; ndx++) { cout << "\nEnter the name: "; cin >> cout << "Enter the department: "; cout << "Enter the id# and the payrate: "; cin >> >> cout << "Enter the birth date (dd mm yy) "; >> >> } } personnel[ndx].name; personnel[ndx].dept; personnel[ndx].ID personnel[ndx].payrate; personnel[ndx].birth.day personnel[ndx].birth.month personnel[ndx].birth.year; * * * * *

17 Formatted Output ID# name department birthday payrate
1234 Lawrence personnel 10/ 5/ 765 Newman shipping 2/29/ cout << setiosflags(ios::fixed | ios::right); for(int ndx = 0; ndx < ARR_SIZE ; ndx++) cout << '\n' << setw(5) << setprecision(0) << personnel[ndx].ID << setw(12) << personnel[ndx].name << setw(11) << personnel[ndx].dept << setw(5) << personnel[ndx].birth.day <<'/' << setw(2) << personnel[ndx].birth.month <<'/' << setw(2) << personnel[ndx].birth.year << setw(7) << setprecision(2) << personnel[ndx].payrate;

18 Structure vs. Class By default: struct have public member variables
class have private member variables

19 Class Class syntax: class Classname { public:
list of function prototypes private: list of private variable declarations };

20 Class An example: class Date { public: private: int day; int month;
int year; };

21 Imagination is more important than knowledge.
Albert Einstein


Download ppt "Structures - Part II aggregate operations arrays of type struct"

Similar presentations


Ads by Google