Download presentation
Presentation is loading. Please wait.
Published byΚῆρες Αλαβάνος Modified over 6 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.