โครงสร้าง (Structure) คือการรวมกลุ่มข้อมูลที่มีชนิดข้อมูลต่างกันเข้าด้วยกัน มีประโยชน์มากในการสร้างโครงสร้างข้อมูลที่ซับซ้อนซึ่งประกอบด้วยระเบียนที่มีชนิดข้อมูลต่างกัน โครงสร้างจะถูกนิยามด้วยคีย์เวิร์ด struct
ตัวอย่างโครงสร้างสำหรับระยะทางในรูปแบบฟุตและนิ้ว ดังนี้:
struct DistanceFI {
int feet;
int inch;
};โครงสร้างข้างต้นนิยามระยะทางในรูปแบบฟุตและนิ้ว
โปรแกรม C++ สำหรับบวกระยะทางสองค่าในระบบนิ้ว-ฟุตโดยใช้โครงสร้าง มีดังนี้:
ตัวอย่าง
#include <iostream>
using namespace std;
struct DistanceFI {
int feet;
int inch;
};
int main() {
struct DistanceFI distance1, distance2, distance3;
cout << "Enter feet of Distance 1: "<<endl;
cin >> distance1.feet;
cout << "Enter inches of Distance 1: "<<endl;
cin >> distance1.inch;
cout << "Enter feet of Distance 2: "<<endl;
cin >> distance2.feet;
cout << "Enter inches of Distance 2: "<<endl;
cin >> distance2.inch;
distance3.feet = distance1.feet + distance2.feet;
distance3.inch = distance1.inch + distance2.inch;
if(distance3.inch > 12) {
distance3.feet++;
distance3.inch = distance3.inch - 12;
}
cout << endl << "Sum of both distances is " << distance3.feet << " feet and " << distance3.inch << " inches";
return 0;
}ผลลัพธ์
ผลลัพธ์ของโปรแกรมข้างต้นจะเป็นดังนี้:
Enter feet of Distance 1: 5 Enter inches of Distance 1: 9 Enter feet of Distance 2: 2 Enter inches of Distance 2: 6 Sum of both distances is 8 feet and 3 inches
ในโปรแกรมนี้ โครงสร้าง DistanceFI ถูกนิยามเพื่อเก็บระยะทางในหน่วยฟุตและนิ้ว โค้ดสำหรับรับค่าระยะทางทั้งสองจากผู้ใช้ มีดังนี้:
cout << "Enter feet of Distance 1: "<<endl; cin >> distance1.feet; cout << "Enter inches of Distance 1: "<<endl; cin >> distance1.inch; cout << "Enter feet of Distance 2: "<<endl; cin >> distance2.feet; cout << "Enter inches of Distance 2: "<<endl; cin >> distance2.inch;
ฟุตและนิ้วของระยะทางทั้งสองจะถูกบวกกันแยกกัน หากนิ้วเกิน 12 จะเพิ่มฟุต 1 และลบนิ้วออก 12 เนื่องจาก 1 ฟุต = 12 นิ้ว โค้ดสำหรับส่วนนี้มีดังนี้:
distance3.feet = distance1.feet + distance2.feet;
distance3.inch = distance1.inch + distance2.inch;
if(distance3.inch > 12) {
distance3.feet++;
distance3.inch = distance3.inch - 12;
}สุดท้าย ค่าฟุตและนิ้วของระยะทางที่บวกแล้วจะถูกแสดงผล ดังนี้:
cout << endl << "Sum of both distances is " << distance3.feet << " feet and " << distance3.inch << " inches";