no message
This commit is contained in:
22
Question10-class/Ex01.php
Normal file
22
Question10-class/Ex01.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* [Ex01 オブジェクト指向クラスの問題]
|
||||
*
|
||||
* TODO:
|
||||
* 1. 新しく「User.php」というファイルを作成し、以下の仕様に基づいてUserクラスを定義してください。
|
||||
* - クラス名: User
|
||||
* - プロパティ:
|
||||
* user_id : ユーザID(整数)
|
||||
* user_name : ユーザ名(文字列)
|
||||
* mail : メールアドレス(文字列)
|
||||
* password : パスワード(文字列)
|
||||
* - メソッド: なし
|
||||
*
|
||||
* 2. 本ファイル内で、require_onceを使ってUser.phpを読み込んでください。
|
||||
*
|
||||
* 3. 変数 $us を宣言し、Userクラスのインスタンスを作成して代入してください。
|
||||
*
|
||||
* 4. 最後に、$us の各プロパティの値を出力してください。
|
||||
*
|
||||
*/
|
||||
16
Question10-class/Ex02.php
Normal file
16
Question10-class/Ex02.php
Normal file
@@ -0,0 +1,16 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* [Ex02 オブジェクト指向 クラスのプロパティ操作]
|
||||
*
|
||||
* TODO:
|
||||
* 1. 既に作成した User クラス(User.php)を利用します。
|
||||
* 2. require_onceを使い、User.php を読み込んでください。
|
||||
* 3. 変数 $us を宣言し、User クラスのインスタンスを生成して代入してください。
|
||||
* 4. $us の user_id プロパティに 101 を代入してください。
|
||||
* 5. $us の user_name プロパティに "リゾーム太郎" を代入してください。
|
||||
* 6. $us の mail プロパティに "rhizome@hoge.com" を代入してください。
|
||||
* 7. $us の password プロパティに "1qazxcv" を代入してください。
|
||||
* 8. 最後に、$us の各プロパティ (user_id, user_name, mail, password) の値を出力してください。
|
||||
*
|
||||
*/
|
||||
18
Question10-class/Ex03.php
Normal file
18
Question10-class/Ex03.php
Normal file
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* [Ex03 オブジェクト指向 クラスの活用 - POSTによるUserクラスの利用]
|
||||
*
|
||||
* TODO:
|
||||
* 1. 既に作成した User クラス(User.php)を利用します。
|
||||
* 2. require_onceを使い、User.php を読み込んでください。
|
||||
* 3. 前画面からPOSTで送信された以下のデータを、それぞれ変数に格納してください。
|
||||
* - ユーザID(数字):キー "user_id"
|
||||
* - ユーザ名:キー "user_name"
|
||||
* - メールアドレス:キー "mail"
|
||||
* - パスワード:キー "password"
|
||||
* 4. 変数 $us を宣言し、User クラスのインスタンスを生成して代入してください。
|
||||
* 5. 取得した各値を、$us の各プロパティ(user_id, user_name, mail, password)に代入してください。
|
||||
* 6. 最後に、$us の各プロパティの値を出力してください。
|
||||
*
|
||||
*/
|
||||
41
Question10-class/Ex04.php
Normal file
41
Question10-class/Ex04.php
Normal file
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* [Ex04 オブジェクト指向 クラスの活用 - Carクラスを用いた移動シミュレーション]
|
||||
*
|
||||
* TODO:
|
||||
* 1. 新しく「Car.php」というファイルを作成し、以下の仕様に基づいて Car クラスを定義してください。
|
||||
* - クラス名: Car
|
||||
* - プロパティ:
|
||||
* serialNo : シリアル番号(整数)
|
||||
* color : 色(文字列)
|
||||
* gasoline : ガソリン残量(整数)
|
||||
* - メソッド:
|
||||
* run() : 戻り値は整数、引数はなし。
|
||||
* run() メソッドは以下の処理を行います。
|
||||
* a. ガソリンが0の場合、進むことができないので -1 を返す。
|
||||
* b. ガソリンを1消費する。
|
||||
* c. 1~15のランダムな整数値を生成し、その値(進んだ距離)を返す。
|
||||
*
|
||||
* 2. 本ファイル内で、require_once を使い Car.php を読み込んでください。
|
||||
* 3. 変数 $car を宣言し、Car クラスのインスタンスを生成して代入してください。
|
||||
* 4. $car の各プロパティに以下の値を代入してください。
|
||||
* - serialNo: 10000
|
||||
* - color: "Red"
|
||||
* - gasoline: 50
|
||||
* 5. 目的地までの距離は300kmとします。
|
||||
* 6. 以下の処理を実装してください。
|
||||
* - 変数 $move を初期化し、これまで進んだ総距離とします。
|
||||
* - 変数 $count を初期化し、run() メソッドを実行した回数(時間)をカウントします。
|
||||
* - while ループを用いて、目的地まで進むまで以下を繰り返してください:
|
||||
* a. $car の run() メソッドを呼び出し、戻り値を $ret に代入する。
|
||||
* b. $ret が -1 なら、ループを終了する。
|
||||
* c. $move に $ret を加算する。
|
||||
* d. $count を1増やす。
|
||||
* e. 現在の進行状況を「n時間でm km進みました。残り:x km」と表示する。
|
||||
* ※ n: 実行回数、m: 今回の進んだ距離、x: 残り距離(残りが負の場合は0と表示)
|
||||
* - ループ終了後、もし目的地に到達していなければ「目的地に到達できませんでした」と出力し、
|
||||
* 目的地に到達していれば「目的地までn時間かかりました。残りのガソリンは、xリットルです」と出力してください。
|
||||
* ※ x は $car->gasoline の残りの値
|
||||
*
|
||||
*/
|
||||
27
Question10-class/Ex05.php
Normal file
27
Question10-class/Ex05.php
Normal file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* [Ex05 オブジェクト指向 - Carクラスを用いた競争シミュレーション]
|
||||
*
|
||||
*
|
||||
* TODO:
|
||||
* 1. 既に作成済みの Car クラス(Car.php)を利用します。
|
||||
* 2. require_once を使い、Car.php を読み込んでください。
|
||||
* 3. POSTで送信されたデータから、3台の車の情報を取得してください。各車について、以下のキーの値を取得します:
|
||||
* - シリアル番号: "serialNo1", "serialNo2", "serialNo3"
|
||||
* - 色: "color1", "color2", "color3"
|
||||
* - ガソリン: "gasoline1", "gasoline2", "gasoline3"
|
||||
* 4. それぞれの車のインスタンスを生成し、取得した値を対応するプロパティに代入してください。
|
||||
* 5. 目的地までの距離は200kmとします。各車について、以下のシミュレーションを行ってください:
|
||||
* - 変数 $move を初期化し、これまでの走行距離を管理します。
|
||||
* - 変数 $hours を初期化し、run() メソッドを実行した回数(=経過時間)をカウントします。
|
||||
* - while ループを使い、目的地まで進むまで run() を呼び出してください。
|
||||
* ・run() の戻り値が -1 の場合は、その車は走行不能とし、$hours を -1 としてください。
|
||||
* ・それ以外の場合は、戻り値分を $move に加算し、$hours を1増やしてください。
|
||||
* - 各run() の実行結果として、【n台目】 m 時間で x km進みました。残り y km と表示してください
|
||||
* (ただし、残り距離が負の場合は0と表示)。
|
||||
* 6. 各車のシミュレーション終了後、各車の走行時間(-1の場合は到達不可)をもとに順位付けを行い、以下のように出力してください:
|
||||
* - 目的地に到達した車については「○台目の車が掛かった時間: n 時間」
|
||||
* - 到達できなかった車については「○台目は目的地に到達できませんでした」
|
||||
*
|
||||
*/
|
||||
153
Question10-class/index.html
Normal file
153
Question10-class/index.html
Normal file
@@ -0,0 +1,153 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>PTra10スタートページ</title>
|
||||
|
||||
<!-- Bootstrap Core CSS -->
|
||||
<link href="../common/css/bootstrap.min.css" rel="stylesheet">
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="page-header">
|
||||
<h1>
|
||||
独習PHP第10章練習問題 <small>インスタンスとクラスの定義</small>
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
<div class="panel-group" id="accordion">
|
||||
<!-- Ex01 -->
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4 class="panel-title">
|
||||
<a href="Ex01.php" target="_blank">
|
||||
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
|
||||
Ex01: オブジェクト指向 - Userクラスの作成
|
||||
</a>
|
||||
<small>初級</small>
|
||||
</h4>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Ex02 -->
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4 class="panel-title">
|
||||
<a href="Ex02.php" target="_blank">
|
||||
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
|
||||
Ex02: オブジェクト指向 - Userクラスのプロパティ操作
|
||||
</a>
|
||||
<small>初級</small>
|
||||
</h4>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Ex03 -->
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4 class="panel-title">
|
||||
<a data-toggle="collapse" data-parent="#accordion" href="#collapseEx03">
|
||||
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
|
||||
Ex03: オブジェクト指向 - POSTによるUserクラスの利用
|
||||
</a>
|
||||
<small>初級</small>
|
||||
</h4>
|
||||
</div>
|
||||
<div id="collapseEx03" class="panel-collapse collapse">
|
||||
<div class="panel-body">
|
||||
<form method="post" action="Ex03.php" target="_blank" class="form-inline">
|
||||
<div class="form-group">
|
||||
<label for="user_id">ユーザID</label>
|
||||
<input type="number" class="form-control" name="user_id" placeholder="ユーザIDを入力してください">
|
||||
|
||||
<label for="user_name">ユーザ名</label>
|
||||
<input type="text" class="form-control" name="user_name" placeholder="ユーザ名を入力してください">
|
||||
|
||||
<label for="mail">メールアドレス</label>
|
||||
<input type="text" class="form-control" name="mail" placeholder="メールアドレスを入力してください">
|
||||
|
||||
<label for="password">パスワード</label>
|
||||
<input type="text" class="form-control" name="password" placeholder="パスワードを入力してください">
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">送信</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Ex04 -->
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4 class="panel-title">
|
||||
<a href="Ex04.php" target="_blank">
|
||||
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
|
||||
Ex04: オブジェクト指向 - Carクラスを用いた移動シミュレーション
|
||||
</a>
|
||||
<small>上級</small>
|
||||
</h4>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Ex05 -->
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-heading">
|
||||
<h4 class="panel-title">
|
||||
<a data-toggle="collapse" data-parent="#accordion" href="#collapseEx05">
|
||||
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
|
||||
Ex05: オブジェクト指向 - Carクラスを用いた競争シミュレーション
|
||||
</a>
|
||||
<small>上級 ※複数の要素(クラス利用、アルゴリズム、配列操作など)を組み合わせる応用力を試す問題</small>
|
||||
</h4>
|
||||
</div>
|
||||
<div id="collapseEx05" class="panel-collapse collapse">
|
||||
<div class="panel-body">
|
||||
<form method="post" action="Ex05.php" target="_blank" class="form-inline">
|
||||
<!-- 1台目の車情報 -->
|
||||
<div class="form-group">
|
||||
<label for="serialNo1">1台目 シリアル番号</label>
|
||||
<input type="number" class="form-control" name="serialNo1" placeholder="シリアル番号を入力">
|
||||
<label for="color1">色</label>
|
||||
<input type="text" class="form-control" name="color1" placeholder="色を入力">
|
||||
<label for="gasoline1">ガソリン</label>
|
||||
<input type="number" class="form-control" name="gasoline1" placeholder="ガソリン量を入力">
|
||||
</div>
|
||||
<br>
|
||||
<!-- 2台目の車情報 -->
|
||||
<div class="form-group">
|
||||
<label for="serialNo2">2台目 シリアル番号</label>
|
||||
<input type="number" class="form-control" name="serialNo2" placeholder="シリアル番号を入力">
|
||||
<label for="color2">色</label>
|
||||
<input type="text" class="form-control" name="color2" placeholder="色を入力">
|
||||
<label for="gasoline2">ガソリン</label>
|
||||
<input type="number" class="form-control" name="gasoline2" placeholder="ガソリン量を入力">
|
||||
</div>
|
||||
<br>
|
||||
<!-- 3台目の車情報 -->
|
||||
<div class="form-group">
|
||||
<label for="serialNo3">3台目 シリアル番号</label>
|
||||
<input type="number" class="form-control" name="serialNo3" placeholder="シリアル番号を入力">
|
||||
<label for="color3">色</label>
|
||||
<input type="text" class="form-control" name="color3" placeholder="色を入力">
|
||||
<label for="gasoline3">ガソリン</label>
|
||||
<input type="number" class="form-control" name="gasoline3" placeholder="ガソリン量を入力">
|
||||
</div>
|
||||
<br>
|
||||
<button type="submit" class="btn btn-primary">Ex05 競争シミュレーション実行</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- jQuery -->
|
||||
<script src="../common/js/jquery-3.2.1.min.js"></script>
|
||||
|
||||
<!-- Bootstrap Core JavaScript -->
|
||||
<script src="../common/js/bootstrap.min"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Reference in New Issue
Block a user