[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
「座席予約システム」を二種類のADTを用いて作成する。「座席予約システム」は(ある車両)の10人分の座席の予約を行うプログラムである。
次の七種類の命令を受け付ける。
a:予約を追加する
l:現在の予約状況を表示する
d:指定した座席番号の予約を取り消す
s:指定した予約社名の座席番号を表示する
e:指定した予約者名の予約を取り消す
h:ヘルプを表示する
q:終了する

一つ目のADTはseat_tで、個々の座席をあらわす。
typedef struct{
int occup;
char name[100];
}seat_t
seat_tに対して次の四つの操作を準備する。
1:void makeSeatEmpty(seat_t *sp)
spがさす座席を空席にする。座席がもともと空席の場合は何もしない
2:void makeSeatOccup(seat_t *sp, const char *nm)
spがさす座席をnmの名前で予約する。座席にすでに予約が入っている場合は、それまでの予約者名は消され、新しい予約者名nmを登録する
3:int isSeatEmpty(seat_t st)
座席stが空席かどうかを問い合わせる。空席なら1、予約済みなら0を返す。
4:const char *getSeatName(const seat_t *sp)
spが刺す座席の予約者名を返す