Webプログラミング演習課題
以下のWebプログラミング演習課題をできる範囲で行ない、その結果(作成したプログラム、実行時間の比較表など)と共にプログラミングのプロセスを書いたものを、Web上または紙上のポートフォリオ(活動記録)などにしっかり記録しておいて下さい。
なお、ここに示す演習課題は、PHPを前提に書いてあるが、機能的に等価であれば、別のプログラミング言語でも構わない。
- (1) 簡単なPHPプログラムを作成しWebで表示させる。まずはサンプルプログラムを動かしてみよう。
- (2) データをフォームから読み込み、計算した結果を表示。たとえば、身長(cm)と体重(kg)から、BMIを計算:BMI=W(kg)/H(m)^2
- (3) 性格判定のプログラムをWeb上に作ってみよう。
- (4) [チャレンジ/オプション] アンケート集計プログラム作成を作ってみよう。
[hint]PHPのサンプルプログラム
フォーム側
<FORM method="POST" action="formscript.php">
お名前:<INPUT type="text" name="yourname"
size="20"><BR>
性別: <INPUT type="radio" name="gender" value="1">男性
<INPUT type="radio" name="gender" value="2">女性
<BR>
<INPUT type="submit" name="submit" value="送信">
<INPUT type="reset" name="reset" value="リセット">
</FORM>
スクリプト側
<?php
$gender = $_POST["gender"];
if($gender=="1"){$name_title = "Mr.";
}else{$name_title = "Ms.";
};
echo "Hello, ", $name_title, $_POST["yourname"],
". How are you, today?<BR>\n";
?>
カレンダー表示
<?php
// Get today's year and month
$y = date("Y");
$m = date("m");
// Get the week of the day for the first day of the
month. mktime: Get date and time.
$first_wd = date("w", mktime(0,0,0,$m,1,$y));
// Get the last day of the month
$lastday = date("d", mktime(0,0,0,$m+1,0,$y));
// Get the week of the day for the last day of the month
$last_wd = date("w", mktime(0,0,0,$m,$lastday,$y));
// Output the header
echo $m, $y, "<br>";
echo "<table boarder=\"1\">\n";
echo "<tr>\n";
echo "<td>SU</td>\n";
echo "<td>MO</td>\n";
echo "<td>TU</td>\n";
echo "<td>WE</td>\n";
echo "<td>TH</td>\n";
echo "<td>FR</td>\n";
echo "<td>SA</td>\n";
echo "</tr>\n";
// Output dates
for($d=1; $d<=$lastday; $d++){
$w = date("w",mktime(0,0,0,$m,$d,$y));
if($w==0||$d==1){echo "<tr>";
if($first_wd!=0 && $d==1){
for($i=$first_wd;$i>0;$i--){
echo "<td> </td>\n";
}
}
}
echo "<td>$d</td>\n";
}
// Output tailer
if($last_wd!=6){
for($i=6;$i>$last_wd;$i--){
echo "<td> </td>\n";
}
}
echo "</tr>\n";
echo "</table>\n";
?>
[補足]性格判定
性格の基本4特性
- E(外向型)かI(内向型); Extraverts or Intraverts
- S(現実型)かN(直観型); Sensors or iNtuitives
- T(思考型)かF(情緒型); Thinkers or Feelings
- J(規範型)かP(柔軟型); Judgers or Perceivers
16種類の性格類型
- ENFJ型: 口がうまくて説得力があるタイプ
- ENFP型: 余計な苦労を買ってでるタイプ
- ENTJ型: 生まれながらの指導者タイプ
- ENTP型: 次から次へと挑戦するタイプ
- ESFJ型: 面倒見が良いタイプ
- ESFP型: 人生は一度しかないタイプ
- ESTJ型: 人生の管理者タイプ
- ESTP型: 究極の現実主義者タイプ
- INFJ型: 人に感化を与えるタイプ
- INFP型: 社会のためになることをするタイプ
- INTJ型: どんなことにも改善の余地があるタイプ
- INTP型: 問題を解決したがるタイプ
- ISFJ型: 義務感が強いタイプ
- ISFP型: 見ているだけで口は出さないタイプ
- ISTJ型: やらなければならないことはするタイプ
- ISTP型: なんでも一度は試してみるタイプ
性格判断プログラム
- 最初に、4種類の質問をしてE/I, S/N, T/F, J/Pの区別を行ない、その結果によって性格16類型に分けるWebページを作れ。
- たとえば4つの質問としては次のようなものある(質問内容は自分で考えて変更すると良いかも)
- 人の話を良く聞くよりもつい自分で話したくなる
- 判断するには客観的なデータが不足していてもパッと決められる
- 自分の意見を押し通すよりも人の意見に従うことが多い
- 物事はルール通りではなく状況に応じて決めるのが良い
- [参考資料:] http://www32.ocn.ne.jp/~emina/
おまけ:発展的課題
- SNS(MixiやFacebook等)のアプリを作ってみよう
- mixiアプリ開発者の登録をまず行なう
- https://mixi.jp/guide_developer.pl
- アプリの内容は、品位やプライバシーなど社会性にも配慮して作って下さい。
今後の予定
- 第8回(11/15) [実践] Webプログラミング(続)
- 第9回(11/29)[実践]モバイルプログラミング (児玉哲彦博士)
- Android, iPhone向けのモバイルプログラミング
- 第10回(12/6) [実践]Flashプログラミング (渡邊恵太博士)
- Flashを用いたプログラミングを学ぶ(教室はλ18)。
- 第11回(12/13)[演習]ペアプログラミング (スタート)
- 第12回(12/20)[演習]ペアプログラミング (まとめ)
- 第13回(12/27)[発展]より高度なプログラミング
- 第14回(1/17)発表とまとめ。最終レポート提出
- 学生からプログラミング課題の発表。プログラミング上達法他
参考文献
- 筧 捷彦, 川合 慧, 武市正人, 竹内郁雄, 野下浩平, 安村通晃, プログラミング・セミナー、共立出版, 1985.
- Brian W. Kerninghan, Rob Pike著, 塩崎俊博訳, プログラミング作法, ASCII出版.
- 小島まさご, 実践マスターPHP+MySQL, ソーテック.