第13回 基礎プログラミング II レポート課題 氏名:斎藤拓也 学籍番号:c1090704 語学クラス:英語1 コース(系):地域共創コース チーム名:SF2 チームホームページアドレス:http://roy/~c109091/sf2.html プロジェクト名:道路、CARS 1. 私の所属しているプロジェクトのCARSで、私はプログラムを担当しています。 プログラムは日本の代表的なメーカーのトヨタ、三菱、日産、などの代表的な車 の車種、名前、燃費、値段、説明がでるようになっている。その他にも各メーカー のロゴがでるようにしている。公益大学では、原チャリでは冬には来れないので 車を買う人が多く車が無くては生活が困難な人が沢山いる。その人達に役に立つ ようなプログラムになれば良いと思いプロジェクトを進行している。新車で車が ほしい人達のために役だってほしいです。 2. 全体の進み具合は、各プロジェクトのプログラムは完成している。チームは来週 の発表に向けてどっちのプロジェクトを発表するか、そしてリハーサルの中でど のようにプロジェクトのセールスポイントを売り込んで行くかなどの活動をして いる。その他にも各プログラムに不具合が無いかをしらべたり、パンフレット作 りをしている。 3. 道路 http://roy/~c109091/douro/00readme CARS http://roy/~c109063/cars/setumei.txt 4. プログラム本体 #!/usr/koeki/bin/ruby print(` banner "!CARS!"`) sleep 1 STDERR.print("!日本の自動車メーカーの車を検索します!\n") print("\t\n") print("▲カテゴリーの中から選んでください▲\n") print("a:トヨタ b:ホンダ c:日産 d:ダイハツ e:三菱 f:マツダ\n") STDERR.print("どこのメーカーにしますか?:") pattern = STDIN.gets.chomp request = Regexp.new(pattern, true, "e") open("syasyu.dat", "r") do |d| while syasyu = d.gets if request =~ syasyu if/(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/ =~ syasyu printf("メーカー: %s 車種: %s 名前: %s 燃費: %s 値段: %s 説明: %s\n\n", $1, $2, $3, $4, $5, $6) end end end end print("\n\n車を買う時には自分の身の丈にあった車を買いましょう\n\n") print(` banner "THANKS"`) if pattern == "a" system (`display toyota2.jpg&`) elsif pattern == "b" system (`display honda.jpg&`) elsif pattern == "c" system (`display nissan.jpg&`) elsif pattern == "d" system (`display daihatu.jpg&`) elsif pattern == "e" system (`display mitubisi.jpg&`) elsif pattern == "f" system (`display matuda.jpg&`) end プログラム解説 3行目 バナーで !CARS! を表示する。 4行目 1杪時間をあける。 6行目 STDERR.print !日本の自動車メーカーの車を検索します! を表示 7行目 空白と改行 8行目 print ▲カテゴリーの中から選んでください▲ を表示 9行目 print a:トヨタ b:ホンダ c:日産 d:ダイハツ e:三菱 f:マツダ を表示 10行目 STDERR.print どこのメーカーにしますか?: を表示 13行目 パターンを 標準入力で取って来る 14行目 リクエストを 正規表現を パターンを e として取りだす 19行目 syasyu.dat を 読込み d として取って来る 23行目 syasyu を d として取って来て返す 24行目 request を syasyu から終わるまで取り続ける 25行目 空白以外、空白×5 空白以外を syasyu から取って来る 26行目〜31行目 25行目の取って来たものをそれぞれ表示する 33行目 25行目の行動を終了 34行目 24行目の行動を終了 35行目 23行目の行動を終了 36行目 19行目の行動を終了 38行目 print 車を買う時には自分の身の丈にあった車を買いましょう を表示 40行目 バナーで THANKS を表示 42行目 a を選択した場合 toyota2.jpg を出力 44行目 b を選択した場合 honda.jpg を出力 46行目 c を選択した場合 nissan.jpg を出力 48行目 d を選択した場合 daihatu.jpg を出力 50行目 e を選択した場合 mitubisi.jpg を出力 52行目 f を選択した場合 matuda.jpg を出力 プログラムデモ版 #!/usr/koeki/bin/ruby print(` banner "!CARS!"`) sleep 1 STDERR.print("!日本の自動車メーカーの車を検索します!\n") print("\t\n") print("▲カテゴリーの中から選んでください▲\n") print("a:トヨタ b:ホンダ \n") STDERR.print("どこのメーカーにしますか?:") pattern = STDIN.gets.chomp request = Regexp.new(pattern, true, "e") open("syasyu.dat", "r") do |d| while syasyu = d.gets if request =~ syasyu if/(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)/ =~ syasyu printf("メーカー: %s 車種: %s 名前: %s 燃費: %s 値段: %s 説明: %s\n\n", $1, $2, $3, $4, $5, $6) end end end end print("\n\n車を買う時には自分の身の丈にあった車を買いましょう\n\n") print(` banner "THANKS"`) if pattern == "a" system (`display toyota2.jpg&`) elsif pattern == "b" system (`display honda.jpg&`) end 解説 3行目 バナーで !CARS! を表示する。 4行目 1杪時間をあける。 6行目 STDERR.print !日本の自動車メーカーの車を検索します! を表示 7行目 空白と改行 8行目 print ▲カテゴリーの中から選んでください▲ を表示 9行目 print a:トヨタ b:ホンダ を表示 10行目 STDERR.print どこのメーカーにしますか?: を表示 13行目 パターンを 標準入力で取って来る 14行目 リクエストを 正規表現を パターンを e として取りだす 19行目 syasyu.dat を 読込み d として取って来る 23行目 syasyu を d として取って来て返す 24行目 request を syasyu から終わるまで取り続ける 25行目 空白以外、空白×5 空白以外を syasyu から取って来る 26行目〜31行目 25行目の取って来たものをそれぞれ表示する 33行目 25行目の行動を終了 34行目 24行目の行動を終了 35行目 23行目の行動を終了 36行目 19行目の行動を終了 38行目 print 車を買う時には自分の身の丈にあった車を買いましょう を表示 40行目 バナーで THANKS を表示 42行目 a を選択した場合 toyota2.jpg を出力 44行目 b を選択した場合 honda.jpg を出力 6. 活動風景の写真のアルバムを作ったのは佐藤裕康君です http://roy/~c109091/katudou/album.html SF2 のパンフレットを作ったのは笹木郁哉君です http://roy/~c109091/sf2.html 共同学習者 佐藤裕康 笹木郁哉 小関文紀 感想 今回の講義でグループワークは終わりで来週発表なので最終調整とリハーサルな どやることが大変ですが、頑張って発表したいと思います。今週は休みに学校に 入ることができないので、限られた時間にやることは大変でしたが発表をちゃん とできるといいと思います。