Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Structures - Part II aggregate operations arrays of type struct nested structures compared to classes."— Presentation transcript:

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

2 Aggregate Operations OperationArrays Structs I/ONo ( except strings )No AssignmentNo Yes ArithmeticNo No ComparisonNo 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 // 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 { //declare array of 3 records of type Payroll // and initialize the first record // and initialize the first record Payroll employee[3] = { 11, "Begay", 7.25 }; // calls loadarray(employee);// calls showarray(employee); // for formatting cout << endl<<endl;// for formatting // end main() } // end main()

9 Arrays of Structures // load array - data typically entered via file input Payroll void loadarray(Payroll staff[3]) // begin at 1 because [0] already entered { // 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 Payroll 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 Elementat. num at. massdensity tungsten (W) 74 183.850 19.300 sulfur (S) 16 32.064 2.07 carbon (C) 6 12.011 2.260 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 using namespace std; struct Element {char name[20]; char symbol; int at_num; double at_mass; double density; }; const int ARR_SIZE = 5; // used pointerto cycle thru array void getData(Element *); // used pointer to cycle thru array // See filearray.cc sent on 4/30 void showData(Element *); // See filearray.cc sent on 4/30 void main() //declare array - type Element { //declare array - type Element Element FiveElements[5]; // first 3 records are initialized in main getData(&FiveElements[3]); // 1 st call gets address of 4 th struct showData(FiveElements); // 2nd call gets beginning address of array // end main() cout << ‘\n’; } // 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 must be previously defined 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 strcpy (Courtney.name,“Lawrence”); strcpy (Courtney.dept,“personnel”); Courtney.ID = 1234; // birth is a struct Courtney.birth.month = 10;// birth is a struct // note: two periods Courtney.birth.day = 25; // note: two periods // individually assigned Courtney.birth.year = 77; // individually assigned Courtney.payrate = 12.75; // an array of structs Vital_Data Personnel[2]; // an array of structs // this assignment syntax works on our Unix compiler

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 void loadarray(vital_Data personnel[2]) { for(int i = 0; i < 2 ; i++) {cout << "\nEnter the name: "; cin >> cout << "Enter the department: "; cin >> cout << "Enter the id# and the payrate: "; cin >> >> cout << "Enter the birth date (dd mm yy) "; cin >> >> >>} } personnel[i].name; personnel[i].dept; personnel[i].ID personnel[i].payrate; personnel[i].birth.year ; personnel[i].birth.month personnel[i].birth.day * * * *

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

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

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

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

21 Imagination is more important than knowledge. than knowledge. Albert Einstein


Download ppt "Structures - Part II aggregate operations arrays of type struct nested structures compared to classes."

Similar presentations


Ads by Google