2012年7月19日木曜日

開発環境

『実践プログラミング 第3版』 (Steve Oualline (著)、 望月 康司 (監修) (翻訳)、 谷口 功 (翻訳)、 オライリー・ジャパン、1998年、ISBN978-4900900646) II部(単純なプログラミング)の12章(高度な型)12.9(プログラミング実習)実習12-4を解いてみる。

実習12-4.

コード(TextWrangler)

#include <stdio.h>
#include <string.h>

struct ticket{
  char name[100];
  char from[4];
  char to[4];
  char time1[100];
  char time2[100];
};
struct ticket p(struct ticket t){
  printf("便名: %s\n",t.name);
  printf("出発空港コード: %s\n",t.from);
  printf("到着空港コード: %s\n",t.to);
  printf("出発時刻: %s\n",t.time1);
  printf("到着時刻: %s\n",t.time2);
}
int main(){
  char from[4];
  char line[100];
  int i;
  struct ticket t1 = {
    "便名1",
    "123",
    "456",
    "9:00",
    "12:00",
  }, t2 = {
    "便名2",
    "456",
    "789",
    "12:00",
    "15:00",
  }, t3 = {
    "便名3",
    "789",
    "123",
    "15:00",
    "18:00",
  }, t4 = {
    "便名4",
    "123",
    "789",
    "18:00",
    "21:00",
  };
  struct ticket tickets[] = {t1,t2,t3,t4};
  while(1){
    printf("空港コードを入力: ");
    fgets(line,sizeof(line),stdin);
    sscanf(line,"%s",from);
    for(i = 0 ; i < 4 ; i++){
      if(strcmp(tickets[i].from,from) == 0){
        p(tickets[i]);
      }
    }
  }
  return(0);
}

入出力結果(Terminal)

$ cc -g -o sample sample.c
$ ./sample
空港コードを入力: 123
便名: 便名1
出発空港コード: 123
到着空港コード: 456
出発時刻: 9:00
到着時刻: 12:00
便名: 便名4
出発空港コード: 123
到着空港コード: 789
出発時刻: 18:00
到着時刻: 21:00
空港コードを入力: 456
便名: 便名2
出発空港コード: 456
到着空港コード: 789
出発時刻: 12:00
到着時刻: 15:00
空港コードを入力: 789
便名: 便名3
出発空港コード: 789
到着空港コード: 123
出発時刻: 15:00
到着時刻: 18:00
空港コードを入力: 000
空港コードを入力: ^C
$

0 コメント:

コメントを投稿