開発環境
- OS X Mavericks - Apple (OS)
- Dart Editor (開発環境)
- Dartium | Dart/ Structured web apps (ブラウザ, Dart VM 用 (Chromium with the Dart VM))
- Safari (ブラウザ, JavaScript 用)
- Dart (プログラミング言語)
C実践プログラミング 第3版 (Steve Oualline (著)、 望月 康司 (監訳) (翻訳)、谷口 功 (翻訳)、オライリー・ジャパン)のⅡ部(単純なプログラミング)の12章(高度な型)、12.1(構造体)、12.2(共用体)、12.3(typedef)、12.4(enum型)、12.5(キャスト)、12.6(ビットフィールドまたは構造体の圧縮)、12.7(構造体配列)、12.9(プログラミング実習)、実習12-4をDartで解いてみる。
その他参考書籍
- What is Dart? [Kindle版] (O'Reilly Media) Kathy Walrath Seth Ladd (著) このブログでの感想
実習12-4.
コード
sample.dart
import 'dart:html'; void main(){ InputElement input = querySelector('#t0'); Element pre = querySelector('#pre0'); input.size = 4; input.maxLength = 4; input.onKeyUp.listen((KeyboardEvent event){ String result = window.navigator.userAgent + '\n'; Ticket t = new Ticket('abcde12345', 'fgh', 'ijk', new Time(10, 20), new Time(14, 30)); List<Ticket> tickets = [ new Ticket('a', 'abc', 'def', new Time(10, 20), new Time(14, 30)), new Ticket('b', 'def', 'abc', new Time(10, 20), new Time(14, 30)), new Ticket('c', 'abc', 'def', new Time(11, 20), new Time(15, 30)), new Ticket('d', 'abc', 'def', new Time(12, 20), new Time(16, 30)), new Ticket('e', 'def', 'abc', new Time(11, 20), new Time(15, 30)), new Ticket('f', 'def', 'abc', new Time(12, 20), new Time(16, 30)), new Ticket('g', 'abc', 'def', new Time(13, 20), new Time(17, 30)), new Ticket('h', 'abc', 'def', new Time(14, 20), new Time(18, 30)), new Ticket('i', 'abc', 'def', new Time(15, 20), new Time(19, 30)), new Ticket('j', 'def', 'abc', new Time(13, 20), new Time(17, 30))]; tickets = tickets.where((Ticket t) => t.from == input.value).toList(); result += '便のリスト\n${tickets.join('\n')}\n'; pre.text = result; }); } class Ticket{ String flight; String from; String to; Time start; Time arrive; Ticket(this.flight, this.from, this.to, this.start, this.arrive); String toString() => '便名: $flight\n出発空港コード: $from\n到着空港コード: ' + '$to\n出発時刻: $start\n到着時刻: $arrive'; } class Time{ int hour; int minute; Time(this.hour, this.minute); String toString() => '$hour時$minute分'; }
0 コメント:
コメントを投稿