KAIHATSUGIKEN GROUP
*******************************************************************************
18 構造体
社員のプログラムを考えるとそこでは名前、年齢、給料、住所、社員番号、所属番号
などを扱わねばなりません。これらの情報を保持するためには、char int float の変数や
文字列が必要です。
異なった型の関連のある情報を保持するために構造体を使うことが出来ます。
構造体とは型が異なったメンバーと呼ばれる関連する情報をまとめた変数のことです。
メンバーに代入したり参照したりするには . ドット演算子を使います。
*********************************************
#include <iostream.h>
#include <string.h>
void main(void)
{ //構造体employee
struct employee { //struct は構造体を定義するキーワード
char name[64]; //ここからメンバーの宣言
long employee_id;
float salary;
char phone[10];
int office_number;
} worker; //変数の宣言
strcpy(workekr.name, "John Doe"); //名前を文字列にコピー
worker.employy_id = 12345; //値をメンバーに代入したり参照する時は
worker.salary = 25000.00; // "." ドット演算子を使う
worker.offece_number = 102;
strcpy(worker.phone, "555-1212"); //電話番号を文字列にコピー
cout << "Employee: " << worker.name << endl;
cout << "Phone: " << worker.phone << endl;
cout << "Employee id: " << worker.employee_id << endl;
cout << "Salary: " << worker.salary << endl;
cout << "office: " << worker.office_number << endl;
}
***************
#include <iostream.h>
#include <string.h>
void main(void)
{
struct employee {
char name[64];
long employee_id;
float salary;
char phone[10];
int office_number;
} worker;
strcpy(workekr.name, "John Doe");
worker.employy_id = 12345;
worker.salary = 25000.00;
worker.offece_number = 102;
strcpy(worker.phone, "555-1212");
cout << "Employee: " << worker.name << endl; //出力
cout << "Phone: " << worker.phone << endl;
cout << "Employee id: " << worker.employee_id << endl;
cout << "Salary: " << worker.salary << endl;
cout << "office: " << worker.office_number << endl;
}
****************
値を相当するメンバーに代入するには代入演算子strcpyを使います。
メンバーname とphoneに文字列をコピーするために関数strcpyを使います。
構造体変数を宣言する場合面罵を明示的に初期化していなければ、文字列を
文字列メンバーにコピーしなければなりません。
********************************************************************************
構造体と関数
**************
#include <iostream.h>
#include <string.h>
struct employee {
char name [64];
long employee_id;
float salary;
char phone [10]
int office_number;
};
void show_employee(employee worker)
{
cout << "Employee: " << worker.neme << endl;
cout << "Phone: " << worker.phone << endl;
cout << "Employee id: " << worker.employee_id << endl;
cout << "Salary: " << worker.salary << endl;
cout << "Office: " << worker. office_number << endl;
}
void main(void)
{
employee worker; //employee型変数workerを準備
strcpy(worker.name, "John Doe"); //名前を文字列にコピーする
worker. employee_id = 12345; //構造体のメンバー
worker.salary = 25000.00;
worker.office_number = 102;
strcpy(worker.phone, "555-1212"); //名前を文字列にコピーする
show_employee(worker);
//関数show_employeeの引き数employee型変数workerへ渡す
}
********************************************
#include <iostream.h>
#include <string.h>
struct employee { //構造体employeeを宣言
char name [64];
long employee_id;
float salary;
char phone [10]
int office_number;
};
void show_employee(employee worker)
{
cout << "Employee: " << worker.neme << endl; //それぞれを代入する
cout << "Phone: " << worker.phone << endl;
cout << "Employee id: " << worker.employee_id << endl;
cout << "Salary: " << worker.salary << endl;
cout << "Office: " << worker. office_number << endl;
}
void main(void)
{
employee worker;
strcpy(worker.name, "John Doe");
worker. employee_id = 12345;
worker.salary = 25000.00;
worker.office_number = 102;
strcpy(worker.phone, "555-1212");
show_employee(worker);
}
***************************************************
#include <iostream.h>
#include <string.h>
struct employee { //構造体employeeを宣言
char name [64]
long employee_id;
float salary;
char phone [10];
int office_number;
};
void get_employee_id(employee *worker)
{
cout << "Type in an employee id: "
cin >> worker->employee_id;
}
void main(void) //ここから始まる
{
employee worker; //employee型変数workerを準備
strcpy(worker.name, "John Doe"); //文字列をコピーする
get_employee_id(&worker);
//関数get_employee_idの引き数*workerへ値を渡す
cout << "Employee: " << worker.name << endl;
cout << "Id: " << worker.emplyee_id << endl;
}
******************
#include <iostream.h>
#include <string.h>
struct employee {
char name [64]
long employee_id;
float salary;
char phone [10];
int office_number;
};
void get_employee_id(employee *worker) //*workerの形で受ける
{
cout << "Type in an employee id: " //画面表示する
cin >> worker->employee_id; //画面入力を変数workerのemployee_idに代入
}
void main(void)
{
employee worker;
strcpy(worker.name, "John Doe");
get_employee_id(&worker);
cout << "Employee: " << worker.name << endl;
cout << "Id: " << worker.emplyee_id << endl; //代入されて表示
}
******************