開発環境
- 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 コメント:
コメントを投稿