「C++言語」習得のための実践的研究 -「テンプレート」,「例外処理」,「実行時型情報」- 北海道情報大学 情報メディア学部 情報メディア学科 新井山ゼミ 0521602 佐藤 翼 発表内容(目次) • • • • 研究概要 研究目的 研究手順 開発成果 • • • • 評価 考察 今後の課題 参考文献 研究概要 • 研究目的 – 「C++」言語習得 • 研究手順 – 参考書をもとにプログラムを制作 • 研究成果 – 約30点のプログラムを制作 研究目的 • C言語の発展型 – 「C言語」を専門学校時代に習得 発展・・・「C++」言語を研究テーマに設定 • プログラマとして・・・ – 多言語の習得による柔軟性獲得 • 独学・独習 – ゼロからの技術習得に挑戦 研究手順 • プログラミング – 参考書の内容を理解しプログラムを制作 – 参考書中の内容を終えた時点で1段階上の レベルの参考書を購入 • レビュー – 制作したプログラム,使用した技法などを発表 – 問題点,改善要望があれば修正し再度発表 研究手順 • 開発環境 – 使用OS • Windows Vista Home Premium – 使用コンパイラ • Borland C++ Compiler 5.5 研究手順 • 開発支援ツール – BCC Developer • • • • • • プロジェクト管理機能 ソースファイル・エディタ内蔵 使いなれたエディタでソースファイルを編集可能 CUI/Windows GUIアプリケーションが作成可能 DLLとライブラリも作成可能 Turbo Debugger を直接,起動可能 開発成果(テンプレート) • テンプレート – さまざまな型のデータに適用できる一連の汎用 操作を定義する関数 – 汎用関数やクラス制作時にも使用可能 • 魔王VS勇者 – 戦闘する人物を変更する際などにテンプレートを 使用することでソースを流用することが可能に 開発成果(テンプレート) • 魔王VS勇者の戦闘ゲーム 1. 勇者はエネルギーを消費して魔王に攻撃 2. 0~9の位置をひとつ選択し攻撃 3. 魔王の位置と選択した位置が一致するとクリーン・ヒット 消費したエネルギーの5倍のダメージ 4. 選択した位置が±1の場合,消費したエネルギー分の ダメージ 5. クリーンヒットした場合魔王は+1~-1の間を移動 6. 勇者か魔王のエネルギーが尽きるとGAME OVER 魔王VS勇者の戦闘ゲーム 開発成果(例外処理) • 例外処理 – 例外処理を利用することで,予期しない実行時 エラーをより簡易に管理,対処が可能 • • • • 割り当てられていない記憶領域へのアクセス ハードウェアの故障 ライブラリの欠損 etc… • 他の言語の場合・・・ – Java,JavaScript,Adaなどの言語でもサポート されている機能 開発成果(実行時型情報) • 実行時型情報(Runtime Type Information) – プログラム実行中にオブジェクトの型を判別可能 • ポリモーフィズムをサポートする言語 – オブジェクトの正確な性質はプログラムを実行す るまで未定 • RTTIを使用することによりプログラム実行中に オブジェクトの型を判別可能 開発成果(実行時型情報) • 簡単な図形を描画するプログラム – プログラム実行時にRTTIを使用してなにも表示 しない,長方形,三角形,直線のうちから無作為 に画面上に描画 – どの図形を描画するかは,乱数ジェネレータ関数 rand()の結果に応じて,無作為に決定 簡単な図形を描画するプログラム 評価 • プログラム制作 – 約30個のプログラムを制作 • システム開発 – ゼミ開始当初,中規模なシステムを制作予定 – プログラム制作が想定よりも難航し断念 • 習得した技術 – 100以上の技法を習得 考察 • プログラム制作 – 指導者への師事により,順調な言語習得と制作 活動が期待出来たか・・・ • 獲得した技術 – 習得技法などをまとめたWebページの制作を 通して,Webデザインコンテストへの出展など, 研究の広がりが期待出来たか・・・ 今後の課題 • 習得した技術の保持 – 継続したプログラミング • 他言語への応用 – 更なる言語習得に向け今回の成果を活用 参考文献 • C++Builder: – http://www.codegear.com/jp/downloads/free/ cppbuilder/ • 小林健一郎: これならわかるC++ – 講談社(2001) • Herbert Schildt: 独学C++第3版 – 翔泳社(1994) [邦訳]株式会社トップスタジオ • BCC Developer: – http://www.hi-ho.ne.jp/jun_miura/bccdev.htm
© Copyright 2024 ExpyDoc