開発環境
- OS X Mavericks - Apple(OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- C++ (プログラミング言語)
- g++(コンパイラ)
C++実践プログラミング (スティーブ オウアルライン (著)、Steve Oualline (原著)、Steve Oualline(原著)、望月 康司(翻訳)、クイープ(翻訳) 、オライリー・ジャパン)のⅢ部(高度な型とクラス)の12章(高度な型)、12.7(プログラミング実習)、実習 12-3.を解いてみる。
その他参考書籍
- C++プログラミング入門 (グレゴリー サティア (著)、ダウグ ブラウン (著)、Gregory Satir (原著)、Doug Brown (原著)、望月 康司 (翻訳)、谷口 功 (翻訳)、オライリージャパン)
実習 12-3.
コード(BBEdit, Emacs)
sample211_3.cpp
#include <iostream> #include <string> struct ticket { std::string flight_number; char code_departure[3]; char code_arrival[3]; std::string time_departure; std::string time_arrival; }; int main() { std::string time1 = "10:00"; std::string time2 = "12:00"; struct ticket ticket1 = { "1", {'a', 'b', 'c'}, {'d', 'e', 'f'}, time1, time2 }; struct ticket ticket2 = { "2", {'a', 'b', 'c'}, {'g', 'h', 'i'}, time1, time2 }; struct ticket ticket3 = { "3", {'d', 'e', 'f'}, {'a', 'b', 'c'}, time1, time2 }; struct ticket ticket4 = { "4", {'d', 'e', 'f'}, {'g', 'h', 'i'}, time1, time2 }; struct ticket ticket5 = { "5", {'g', 'h', 'i'}, {'a', 'b', 'c'}, time1, time2 }; struct ticket ticket6 = { "6", {'g', 'h', 'i'}, {'d', 'e', 'f'}, time1, time2 }; struct ticket tickets[] = {ticket1, ticket2, ticket3, ticket4, ticket5, ticket6}; int i; int j; // 2つの空港を指定 char airport1[3] = {'a', 'b', 'c'}; char airport2[3] = {'d', 'e', 'f'}; // 指定された2つの空港から出発する全ての便の便名を出力 for (i = 0; i < 6; ++i) { for (j = 0; j < 3; ++j) { if (tickets[i].code_departure[j] != airport1[j]) { break; } } if (j == 3) { std::cout << tickets[i].flight_number << '\n'; continue; } for (j = 0; j < 3; ++j) { if (tickets[i].code_departure[j] != airport2[j]) { break; } } if (j == 3) { std::cout << tickets[i].flight_number << '\n'; } } return (0); }
Makefile
# # FSFのg++コンパイラ用のMakefile # CC=g++ CFLAGS=-g -Wall all: sample211_3 sample211_3: sample211_3.cpp ${CC} ${CFLAGS} -o sample211_3 sample211_3.cpp clean: rm sample211_3
入出力結果(Terminal)
$ make && ./sample211_3 g++ -g -Wall -o sample211_3 sample211_3.cpp 1 2 3 4 $
0 コメント:
コメントを投稿