レコード型(データ形式の話):複数のデータを表としてまとめたもの
addbook name addr phone age +------+-------+--------------+-----+ |名前 |住所 |電話 |年齢 | <-データ1個をhuman型で表してみます +------+-------+--------------+-----+ 0 |山田 |岩手県 |080-1234-5555 | 33 | +------+-------+--------------+-----+ 1 |田中 |青森県 |080-3124-2222 | 39 | +------+-------+--------------+-----+ 2 | - | - | - | - | 3 … つづく
レコード型 → C++では構造体で表す
struct 構造体名{
データ1; //データ => 型名+変数名
データ2;
データ3;
};
struct human{
std::string name; //名前
std::string addr; //住所
std::string phone; //電話番号
int age; //年齢
};
↑の宣言でhuman型が宣言され使えるようになる!
*言い方:nameはhuman型のメンバー変数です。
human型のメンバー変数nameについて。。。
使い方:
struct human addrbook[100];
^^^^^^^^^^^^ ^^^^^^^^^^^^^^
↑ ↑
型名 構造体型変数名
省略形:(C++用)
human addrbook[100];
^^^^^ ^^^^^^^^^^^^^^
型名 変数名
練習問題: ①例題8-1の学生を表す構造体を宣言しなさい。
struct gakusei
{
std::string studentNo; //学生番号
std::string name; //学生氏名
int kokugo; //国語
int sugaku; //数学
int eigo; //英語
};
gakusei a,b,c;
gakusei stu[3];
stu[0].studenNo
a.studentNo
a.name
a.kokugo
a.sugaku
a.eigo
b.studentNo
b.name
b.kokugo
b.sugaku
b.eigo
c.studentNo
c.name
c.kokugo
c.sugaku
c.eigo
②緯度と経度を実数値で持つ位置を表す構造体point型を宣言しなさい。
(ほかで宣言した構造体型をメンバ変数として持つ構造体)
struct point
{
float ido;//緯度
float keido;//経度
//double ido;//緯度
//double keido;//経度
};
③県庁所在地名と所属都道府県名を文字列型メンバー変数で持ち、都市の位置をpoint型メンバー変数で持つcity型を宣言しなさい。
struct city
{
std::string name; //県庁所在地名
std::string pref; //所属都道府県
point position; //都市の位置
};