2013年11月23日土曜日

開発環境

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で解いてみる。

その他参考書籍

実習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 コメント:

コメントを投稿