structured data types array array union union struct struct class class
TRANSCRIPT
Structured Data Types
array array
unionunion
structstruct
classclass
Data Types
a simple or atomicsimple or atomic
a structuredstructured
* *
char, int, float, double
array, union, struct, class
Structured Data Types
array - array - homogeneoushomogeneous
struct - struct - heterogenousheterogenous
Abstract Data TypeAbstract Data Type
ADT = a ADT = a programmer definedprogrammer defined data data type whose properties (domain type whose properties (domain [values] and operations) are [values] and operations) are specified independently of any specified independently of any particular implementation.particular implementation.
*
It has a It has a whatwhat and a and a howhow..
Data Storage
charactercharacter
fieldfield
recordrecord
tabletable
databasedatabase
Structured Data Types
struct = an abstract data type = an abstract data type
with a fixed number of with a fixed number of
components that are accessed components that are accessed
by name, not by index.by name, not by index.
Structure Declaration
struct Date // customarily initial caps// customarily initial caps{
int month; // // int day; // data_type member_name// data_type member_nameint year; // //
};
Structure Declaration
struct TypeName struct TypeName {{
MemberListMemberList // DataType// DataType
MemberNameMemberName}};;
}
structure declaration
vs.
object declaration
(object (object variable) variable)
Structure Declaration
struct Date{
int month; int day; int year;
};
Object Instantiation
intint numnum;;doubledouble xx;;
DateDate myBirthmyBirth;;
DateDate todaytoday, , bill_Datebill_Date, , lily_Bdaylily_Bday;;
data type variable name
*
Assigning Values
Date myBirth = {2, 29, 1963};
Date today = {4, 30, 2007};
Date bill_Date = {5, 4, 2007};
Date lily_Bday = {1, 20, 1985};
Assigning Values
myBirth = {2, 29, 1963};
today = {4, 30, 2007};
bill_Date = {5, 4, 2007};
lily_Bday = {1, 20, 1985};
Assigning Values
myBirth.month = 2;myBirth.day = 29;myBirth.year = 1963;
bill_Date.month = 5;bill_Date.day = 4;
lily_Bday.year = 1985;today.month = 4;
* *
instance of Date
member of myBirth instance
element at_num at_mass densityboron (B) 5 10.811 2.34
tungsten (W) 74 183.85 19.30
iodine (I) 53 126.9 4.94
In Class Assignment 1
1. declare a structure for this table.2. instantiate variables of the structure type3. initialize the data for each element
(use two different methods)
How to declare and instantiateHow to declare and instantiate#include <iostream> using namespace std;struct Element // the declaration of the struct{ char symbol; // note different data typesint at_num; // of membersdouble at_mass;double density;};main (){ Element boron; //an instantiation boron.symbol = 'B'; // initialize each member boron.at_num = 5; boron.at_mass = 10.811; boron.density = 2.34;
// instantiate and initialize all at once Element tungsten = {'W', 74, 183.85, 19.30}; Element iodine = {'I', 53, 126.9, 4.94}; cout << "Atomic mass of tungsten is " // print one piece
<< tungsten.at_mass << '\n'; }
Assigning Values
// assign to a variable// assign to a variable
year = lily_Bday.year
new_mo = lily_Bday.month + 1
// assign contents of a variable to it// assign contents of a variable to it
lily_Bday.month = someMonth;
Assigning Values
Date today, bill_date;
cout << “Enter month, day and year: “;cin >> today.month >>today.day
>> today.year;
bill_date = today; // an aggregate action// an aggregate action
*
Structures as Arguments
// in a prototype// in a prototype
int Overdue(Date, int);
* * * *
// in a function call// in a function callcout << Overdue(today, bill_Date.year);
// in a function header// in a function headerint Overdue(Date now, int purchased)
In Class Assignment 2
Element at. num. at. mass density
hydrogen (H) 1 1.008 0.071
fluorine (F) 9 18.998 1.505
4. Write the code for user input for H and F.5. Write the code to display data .6. Put each of these codes into separate
functions.
In Class Assignment 27. Create a program that uses these functions.
a) What needs to be done?
declare (define) the structure declare the prototypes in main(): declare the objects call the functions
8. As a formatting exercise, display thedata neatly in a table.
a) What needs to be done?
* * ** *
a) What needs to be done?
7. Create a program that uses these functions.
a) What needs to be done?
In Class Assign. 2-ans// display data - formatted// display data - formattedvoid showData(Element any_at) {cout << setiosflags(ios::fixed);cout << '\n' << setw(12) << any_at.symbol << setprecision(0) << setw(5) << any_at.at_num << setprecision(3) << setw(10) << any_at.at_mass << setw(10) << any_at.density;cout << endl;}
#7 b
In Class Assign. 2-ans#include<iostream>#include<iomanip>Using namespace std;struct Element { char symbol; int at_num; double at_mass; double density;};
void getData(Element&); void showData(Element);
void main(){
Element hydrogen, fluorine;getData(hydrogen);getData(fluorine);
showData(hydrogen);showData(fluorine);
cout << endl<<endl;} // end main()// end main()