C++/Data Type/Struct
Содержание
array of structures
<source lang="cpp">
- include <iostream>
- include <string>
- include <sstream>
using namespace std;
- define N_MOVIES 3
struct movies_t {
string title; int year;
} films [N_MOVIES]; void printmovie (movies_t movie); int main () {
string mystr; int n; for (n=0; n<N_MOVIES; n++) { cout << "Enter title: "; getline (cin,films[n].title); cout << "Enter year: "; getline (cin,mystr); stringstream(mystr) >> films[n].year; } cout << "\nYou have entered these movies:\n"; for (n=0; n<N_MOVIES; n++) printmovie (films[n]); return 0;
} void printmovie (movies_t movie) {
cout << movie.title; cout << " (" << movie.year << ")\n";
}
</source>
Defines and uses a struct.
<source lang="cpp">
- include <iostream>
- include <iomanip>
- include <string>
using namespace std; struct Product {
string name; double sales;
}; inline void print( const Product& v) {
cout << fixed << setprecision(2) << left << setw(20) << v.name << right << setw(10) << v.sales << endl;
} int main() {
Product productObject, productObject2; productObject.name = "one"; productObject.sales = 37.37; productObject2.name = "two"; productObject2.sales = 231.23; productObject.sales += 17.11; cout << " Product Sales\n" << endl; print( productObject); print( productObject2); cout << "\nTotal of sales: " << productObject.sales + productObject2.sales << endl; Product *ptr = &productObject2; if( productObject2.sales < productObject.sales) ptr = &productObject; cout << "\nSalesman of the month: " << ptr->name << endl; return 0;
}
</source>
demonstrates nested structures
<source lang="cpp">
- include <iostream>
using namespace std; struct Distance{ int feet; float inches; }; struct Room{ Distance length; Distance width; }; int main() { Room dining; dining.length.feet = 13; dining.length.inches = 6.5; dining.width.feet = 10; dining.width.inches = 0.0; float l = dining.length.feet + dining.length.inches/12; float w = dining.width.feet + dining.width.inches/12; cout << l * w; return 0; } </source>
demonstrates passing structure as argument
<source lang="cpp">
- include <iostream>
using namespace std; struct Distance{ int feet; float inches; }; void engldisp( Distance ); int main(){ Distance d1, d2; cout << "Enter feet: "; cin >> d1.feet; cout << "Enter inches: "; cin >> d1.inches; cout << "\nEnter feet: "; cin >> d2.feet; cout << "Enter inches: "; cin >> d2.inches; cout << "\nd1 = "; engldisp(d1); cout << "\nd2 = "; engldisp(d2); cout << endl; return 0; } void engldisp( Distance dd ){ cout << dd.feet << "\"-" << dd.inches << "\""; } </source>
demonstrates passing structure by reference
<source lang="cpp">
- include <iostream>
using namespace std; struct Distance{ int feet; float inches; }; void scale( Distance&, float ); void engldisp( Distance ); int main() { Distance d1 = { 12, 6.5 }; Distance d2 = { 10, 5.5 }; cout << "d1 = "; engldisp(d1); cout << "\nd2 = "; engldisp(d2); scale(d1, 0.5); scale(d2, 0.25); cout << "\nd1 = "; engldisp(d1); cout << "\nd2 = "; engldisp(d2); cout << endl; return 0; } void scale( Distance& dd, float factor){ float inches = (dd.feet*12 + dd.inches) * factor; dd.feet = static_cast<int>(inches / 12); dd.inches = inches - dd.feet * 12; } void engldisp( Distance dd ){ cout << dd.feet << "\"-" << dd.inches << "\""; } </source>
example about structures
<source lang="cpp">
- include <iostream>
- include <string>
- include <sstream>
using namespace std; struct movies_t {
string title; int year;
} mine, yours; void printmovie (movies_t movie); int main () {
string mystr; mine.title = "2001 This is a test"; mine.year = 1968; cout << "Enter title: "; getline (cin,yours.title); cout << "Enter year: "; getline (cin,mystr); stringstream(mystr) >> yours.year; cout << "My favorite movie is:\n "; printmovie (mine); cout << "And yours is:\n "; printmovie (yours); return 0;
} void printmovie (movies_t movie) {
cout << movie.title; cout << " (" << movie.year << ")\n";
}
</source>
pointers to structures
<source lang="cpp">
- include <iostream>
- include <string>
- include <sstream>
using namespace std; struct movies_t {
string title; int year;
}; int main () {
string mystr; movies_t amovie; movies_t * pmovie; pmovie = &amovie; cout << "Enter title: "; getline (cin, pmovie->title); cout << "Enter year: "; getline (cin, mystr); (stringstream) mystr >> pmovie->year; cout << "\nYou have entered:\n"; cout << pmovie->title; cout << " (" << pmovie->year << ")\n"; return 0;
}
</source>
uses parts inventory to demonstrate structures
<source lang="cpp">
- include <iostream>
using namespace std; struct part{ int modelnumber; int partnumber; float cost; }; int main(){ part part1; part1.modelnumber = 6244; part1.partnumber = 373; part1.cost = 217.55F; cout << "Model " << part1.modelnumber; cout << ", part " << part1.partnumber; cout << ", costs $" << part1.cost << endl; return 0; } </source>