人間工学プログラミング演習
第 1 回
シラバス確認・ガイダンス
はじめまして
• 田中久弥(工学院大学 情報学部)
• 専門は生体計測工学
脳波,筋電図,心電図,モーションキャプチャ
• 趣味はギターとキーボード演奏
人間工学プログラミング演習の目的
• 実験タスクを作成する際に必要な知識技術を 身につける.
• 画面上に刺激を呈示しそれに対する反応選
択や反応時間を測定できるプログラム等
授業計画
4/8 第1回 シラバス確認、ガイダンス
4/15 第2回 インタフェース構築に関する演習
4/22 第3回 乱数の利用と無作為化に関する演習
5/13 第4回 文字刺激・画像刺激の呈示に関する演習
5/20 第5回 音声刺激・動画刺激の呈示に関する演習
5/27 第6回 ファイル入出力に関する演習
6/3 第7回 マウス情報・キー情報取得に関する演習
6/10 第8回 時間制御に関する演習
6/17 第9回 外部機器への信号入出力に関する演習
6/24 第10回 実験タスクの考案と設計
7/1 第11回 考案したタスクの構築(プログラムの作成)① 7/8 第12回 考案したタスクの構築(プログラムの作成)②
7/15 第13回 考案したタスクの構築(プログラムの作成)③
7/22 第14回 プログラム仕様書・操作解説書の提出
第15回 演習のまとめ、授業評価
評価は講義内での演習課題 50 %,出席 50 %
講義資料
• 毎回配布する.テキストは使わない.
http://ns.kogakuin.ac.jp/~ct13050/tmu/
• 参考書籍( Tips として)
– ポケットリファレンス C# (技術評論社)
– VisualC# 逆引き大全(秀和システム)
• C# の Tips はだいたいネットで検索できる.講義
中も必要な情報検索は妨げない.
Visual C# 2010
• Microsoft 社の Microsoft .NET 環 境向けソフトウェアを開発する ためのオブジェクト指向プログ ラミング言語
• C 言語 /C++ 言語をベースに拡 張.ガーベジコレクション等 Java がもつ機能もある.
• Microsoft Visual Studio Visual C#
• Visual C# 2013 Express( 無料 )
– https://www.visualstudio.com/ja- jp/products/free-developer-
offers-vs.aspx
現在時刻を表示するプログラム
演習1 まずは動かしてみよう
1. Visual Studio 2010 を起動する.
2. 新規作成→プロジェクト を選択する
1. C# → Windowsフォームアプリケーション を選択する.これをテンプレートの選択という.
コンソールアプリケーションを選択すればCUIのプログラムも作れる.
2. 名前「time_now」と入力する.これはプロジェクト名になる.同時にソリューション名が入
力される.プロジェクトはアプリケーションの単位,ソリューションはそれらをまとめたも の.
3. OKを押す.
1. Form1が画面に現れる.これが作成するアプリケーションの最初の画面になる.
2. 画面の操作方法は操作しながら説明する(教員の画面を見なさい)
1. IDE(Integrated Development Environment :統合開発環境)の画面構成
2. 表示メニューを押して下図のメニューが出現することを確認する.プログラミングに必要 な画面はだいたいここから表示させる事が多い.
1. ツールボックスから「Button」を選択してForm1に置く.図形描画のような操作感覚で ある.大きさや位置は適当でよい.後で変更できる.
2. 同様に「TextBox」も配置する.
3. ButtonやTextBoxなど対話に使う部品を「コントロール」と呼ぶ.
Button1をダブルクリック
1. Button1をダブルクリックすると,ソースコードの画面(ソースコードエディタ)が現れる.
2. WindowsフォームエディタはForm1のGUIをデザインする画面である.ソースコードエ
ディタはForm1のGUIを操作した時の機能を記述する画面である.
3. private void button1_Click(object sender, EventArgs e) {
いまココにカーソルがある.つまりここにソースコードを書けばButton1が押さ
れた時(イベントと言う)のアプリケーションの動作をプログラムすることができる.
} Windows
↓フォームエディタ ↓ソースコードエディタ
1. 以下のソースコードを21行目に書きなさい.
textBox1.Text = DateTime.Now.ToString();
2. コードを入力する際には,打ち間違えが無いように入力支援機能(インテリセンス)が 働く.以下の画面はDateTime.nまで打ち込んだ段階でメンバー(オブジェクトやメソッ ド,プロパティ)の候補とヒントが表示された例である.紫色のマークはメソッド,白い カードを手でつかんでいるマークはプロパティである.
1. [Ctrl]+[F5]を押して実行しなさい(メニューからデバッグ→デバッグ無しで開始,と同じ).
するとアプリケーションのビルド処理が行われる.同時に出力画面が下記のように表 示される.「1 正常終了」がエラー無しでビルドが成功した表示である.
2. エラーがなければ今回作ったアプリケーションtime_nowが起動する.正常ならば
Button1を押すと現在時刻がtextBox1に表示される.終了は画面右上のXを押す.
Button1を押すたびに
button1_Clickイベントが発生し,
そのたびにbutton1_Clickに記述 された
textBox1.Text = DateTime.Now.To String(); が実行され,現在の日 時が表示される.アプリケーショ ンは止まっているのではなく,イ ベントが起こるまで待っている.
参考:Button1の イベントハンドラー Button1_Click
1. エラーがあれば,エラー一覧画面が表示される.下記の例は21行目にエラーが あることを示している. DateTime.Now.ToString();のNowをNoに打ち間違えた場 合の表示である.打ち間違えただけであるが,C#コンパイラは定義がないと分 析・表示しているので,プログラマは単なる打ち間違えか,あとで定義するつもり かを解釈する必要がある.
2. オンラインヘルプ(MSDNライブラリ)を使用すればわからない言葉や,プロパティ,
メソットについて効率良く調べることができる.下図はDateTimeの解説である.
1. ソースコードの意味
textBox1という名のオブジェクトのTextプロパティの値に代入する.何を代入するかとい
うとDateTimeオブジェクトのNowプロパティの値をToString()メソッドを施して変換した値.
つまり現在時刻を文字列型に変換してテキストボックスの表示を書き換える機能が書か れている.Textプロパティは最初は空である.
(例) textBox1.Text = DateTime.Now.ToString();
(一般) [オブジェクト].[プロパティ]=[オブジェクト].[プロパティ].[メソッド] 2. オブジェクトにはメソッド(機能)やプロパティ(値)が定義されている.Windowsアプリ
ケーションは大雑把に言えばオブジェクトのメソッドを呼び出したり,プロパティを書 き換えることで動作している.これをオブジェクト指向プログラミングという.オブジェ クトを生成するひな形がクラス(C言語の構造体のようなもの)であり,Windowsには 膨大なクラス(.NET Framework)が予め用意されている.足りないものは自分でクラ スを定義すればよい.
Buttonの定義内容
名前:
高さ:
幅: etc…
クラス
ボタンのひな形
オブジェクト
Button1の定義内容
名前:
高さ:
幅: etc…
Button2の定義内容
名前:
高さ:
幅: etc…
Button3の定義内容
名前:Button3 高さ:50
幅:100 etc…
インスタンス化
(実体化)
ボタンそれぞれにプロパティ(値)が設定できる
1. プロパティに値を設定する場合,ソースコードで下記のように書く.
オブジェクト名.プロパティ=値;
2. プロパティの値を参照する場合,ソースコードで下記のように書く.
変数=オブジェクト名.プロパティ;
3. プロパティウィンドウで設定する場合,次の操作をする.
textBox1のTextプロパティは はじめは空の状態
textBox1のTextプロパティに
「現在の日時」と入力する
textBox1に「現在の 日時」と表示される
以下の画面を参考にプロパティを変えなさい.その他に色や大きさのプロパティを変えて みなさい.
(!)オブジェクト名を変更するとソースコードも自動的に変更されるが,濫用すると混乱 するので慎重に行うこと.
プログラムの実体はドキュメントフォルダ中のVisualStuidio2010¥Projects¥[プロジェクト名]¥
(例)time_nowプロジェクト
│ time_now.sln ・・・・・・・・・ ソリューションファイル,ダブルクリックでプログラミング再開
└─time_now
│ Form1.cs ・・・・・・・・・Form1のソースコード.csとはc#(c sharp)という意味の拡張子 │ Form1.Designer.cs
│ Form1.resx
│ time_now.csproj
│ Program.cs ・・・・・・・・・Main文があるソースコード.Formの表示前の処理を記述できる ├─bin
│ ├─Debug ・・・・・・・・・デバッグ中(開発中)の実行ファイルが保存されているフォルダ
│ │ time_now.exe ・・・・・実行ファイル │ │ time_now.pdb
│ │ time_now.vshost.exe
│ │ time_now.vshost.exe.manifest
│ └─Release ・・・・・・・・・リリース用(完成版)の実行ファイルが保存されているフォルダ
│ time_now.exe ・・・・・実行ファイル │ time_now.pdb
├─obj │ └─x86
│ ├─Debug │ └─Release
└─Properties DebugとReleaseはIDEで設定できる
ソースコードエディタは印刷することができる.行番号を入れると見やすい.
Windowsフォームエディタは印刷することができない.プリントスクリーン機能などを使い,
WordやPowerPointに貼りつけて印刷する.