next up previous contents
Next: 19. 構造体 II Up: 18. 構造体 I Previous: 18.4 標準関数

18.5 課題 18

cd c を実行した後で( ~/c に移動した後で )、以下の課題を やってみよ。

課題 18.1
構造体を使う I

自分の名前(ローマ字)、入学年度、番号、学科(ローマ字)、組 を格納する構造体を 宣言し、初期化せよ。また、それらをディスプレイに表示せよ。 但し、構造体の名前は、gakusei とし、名前、学科名は大きさ 30 の配列を使う事。

課題 18.2
構造体を使う II

課題18.1 のプログラムを関数にし、関数の型は課題19.1 で作成した struct gakusei 型にせよ。

課題 18.3
構造体を使う III

課題18.2 で作成した関数で、名前、入学年度、番号、学科、組をキーボードから入力出来るように改造せよ。

課題 18.4
構造体を使う IV

課題 18.3 を改造し、更に、前期、後期テストの成績と出席回数を入力するように せよ。但し、1 年の出席回数は 30 回とする。 更に、main 関数で、構造体メンバーに入力された値を用いて、以下の式で 通年成績をつけ、結果を表示するようにせよ。


\begin{displaymath}通年の成績 = (前期 + 後期)\times {7 \over 20.0} + 出席回数
\end{displaymath}

自分の前期のテストの点数が分かっているならば、出席回数を適当に入れて、後期 何点とれば 60 点以上になるか、試して見よ。

 

作成したプログラムをメイルで creport まで送りなさい。題は、kadai18 とする事。

前回の復習
構造体
構造体の宣言

        struct  [タグ名]{
            型  メンバー名 m1;
            型  メンバー名 m2;
            ...
            型  メンバー名 mn;
        } [変数名,[...]];

タグ名は省略可能であるが、省略すると後で再利用することは不可能であるので省略 しないほうが良い。構造体の詳細をコンパイラーに伝える部分は } までで終わるが、 ここまでだけでは、実際の構造体変数は確保されない点に注意する必要がある。 } の後ろに変数名を書いて、初めて、構造体変数が確保される。

メンバー
構造体のメンバーへのアクセス

確保された構造体変数のメンバー(要素)へのアクセスは、選択演算子 . を 用いて、タグ名.メンバー名で出来る。

例
        struct  pen{
            char color;
            int  hutosa;
        } pen1;
        ...
        pen1.color = 'b';
        pen1.hutosa= 2;

演算
構造体に許される演算

構造体そのものに許される演算は、一括代入、メンバーへのアクセス、アドレス 演算の 3 つのみである。 また、構造体の中に配列が含まれる場合でも、同じ構造体同士では一括代入が 許される。

初期化

構造体では常に初期化が許される。この点で、配列とは違う点に注意しなければ ならない。

例
        struct  pen  pen1 = {'b', 2};

初期化のときの、各メンバーへの代入は、メンバーの宣言時の並び順に初期化される ので、メンバーの型に応じた値で初期化することを忘れてはならない。



Noriyo Kanayama