残留開始まで


[[Top]]

//---for nonaka--
//
 // (a) 
// (a) 
// じゃんけんの"Guu","Choki","Pa"をクライアントからサーバの5002番ポートに送信すると、その度にサーバ上のランダムなじゃんけんの手を生成しその手と毎回比較して以下の(a-1)-(a-3)の返事を結合して返してくるプログラムを作成し14回のExam\aというフォルダを作成し提出すること。それぞれの達成度で各5点である。
 //(a-1)"Server Win","Draw","Server Lose"の勝ち負け判定
 //(a-2)サーバのじゃんけんの手("Guu","Choki","Pa")
 //(a-3)現在のサーバの勝率
 //堤出ファイル名:
//(a-1)"Server Win","Draw","Server Lose"の勝ち負け判定
//(a-2)サーバのじゃんけんの手("Guu","Choki","Pa")
//(a-3)現在のサーバの勝率
//堤出ファイル名:
// JankenClientLoop.java,JankenServerRandom.javaプログラムを完成させよ。第14回フォルダに「a」というフォルダを作成しその中に必要なソースコードを入れること。//
Hint&ref(2014netproKimatuExamHint.zip);

// 出力例:
// Client is started
// send Janken Command to Server 5002port:
// >Choki
// Response from Server: You Win. Server hand is Guu. (Win,Draw,Lose)=(39%,30%,31%)
// send Janken Command to Server:
// >Pa
// Response from Server: Draw. Server hand is Pa. (Win,Draw,Lose)=(38%,31%,32%)

//  (b)  クライアントから東京電機大学の学籍番号をおくるとその学生の入学年度と学科略名を返信するようにGakusekiServer.java GakusekiClient.javaを作成せよ。ただし学籍番号は7桁の文字列とする。学科の略版として二部工学部情報通信工学科はNC,未来科学部建築学科はFA、未来科学部ロボットメカトロニクスはFR、未来科学部情報メディア学科はFIとすること。7桁以外の文字列の場合はエラーと表示するようにせよ。アルファベット大文字小文字変換に太陽せよ。

// (c)1-10000の数値のうちから素数のみをコンソールに出力するプログラムをかけ。ファイル名はPrimeMain.javaとせよ。14回に提出フォルダExam\cを作成して提出すること。(15点の配点)。




----

//http://www.cps.im.dendai.ac.jp/index.php?Classes%2F2013netpro
*べき乗の法則 [#uf455ca0]
-https://docs.google.com/spreadsheets/d/1Sb2I9dBRCf7RawMJUQ0zQwDn_uxVaiCJVOrEgQ5FDn4/pubhtml

*最終課題! [#ma8e5df9]
 ネットワークのTCP/UDP通信をつかった通信プログラムを作りなさい。(1:1 1:n n:m マルチキャストのいずれの通信モデルでもよい)
 企画案を全員12月9日までに作成すること。
  一人チームでもよい。二人一組のチームでプログラムを作成することも進めるが、その場合は役割分担を明確にわけること。クオリティは一人でやるチームの1.008倍以上を期待する。採点は別々に行うので役割分担を明確にすること。
 最終発表会は1/13日に設定する。学籍番号順。pptの説明資料(企画書の発展版)。プログラムが当日うまくいかなかった場合の動作説明のスクリーンショット、アピールポイント、将来展望を明記すること。ソースはすべて提出すること。Eclipseのエクスポートでプロジェクトファイルとしてzipで提出してもよい。
提出期限は1/13の授業開始前まで。提出場所は授業フォルダの第14回フォルダ。

-1月20日 最終発表会2 2限からです一人1分発表時間。 先週テストを受けられなかった人は岩井まで連絡ください。

*期末テスト [#yc70019d]
-1月13日 1時間 9:10から開始、持ち込み可、プログラムを14回フォルダに提出します。その後ミニプロジェクト発表会。

*今後のすけじゅーーる [#g8e6514f]
-2015年1月20日質問回の予定 
-2015年1月13日課題発表会2限! 1限期末テスト
-2015年1月6日休み 
-2014年12月16日年内最終講義(12月23休み) 
-2014年12月9日企画案チェック(nio?) 
-2014年12月2日企画案提出+(multi thread+GUI) 

*ネットワークプログラミング+演習 [#waaf2c68]
&size(24){ 授業公式ハッシュタグ: [[#netproFI2014:https://twitter.com/search?q=%23netproFI2014&src=hash]]}; &br;
[[岩井用TL:http://www.cps.im.dendai.ac.jp/netpro_fi2014_realtime.html]] &br;
[[岩井用TL2:http://www.cps.im.dendai.ac.jp/netpro_fi2014.html]] &br;
//[[岩井用TL(拡大版):http://www.cps.im.dendai.ac.jp/netpro_fi2014_realtime_zoom.html]] 

//*(14)本試験 [#lf95b39b]
//-9:20-10:20まで
//-模擬試験すべてファイルを第14回フォルダに提出せよ。
//// クライアントから東京電機大学の学籍番号をおくるとその学生の入学年度と学科略名を返信するようにGakusekiServer.java GakusekiClient.javaを作成せよ。ただし学籍番号は7桁の文字列とする。学科の略版として二部工学部情報通信工学科はNC,未来科学部建築学科はFA、未来科学部ロボットメカトロニクスはFR、未来科学部情報メディア学科はFIとすること。7桁以外の文字列の場合はエラーと表示するようにせよ。ヒント:アルファベット大文字小文字変換を行う関数がある。文字列の指定領域を切り出す関数がある。

//  (a) 
// じゃんけんの"Guu","Choki","Pa"をクライアントからサーバの5002番ポートに送信すると、その度にサーバ上のランダムなじゃんけんの手を生成しその手と毎回比較して以下の(a-1)-(a-3)の返事を結合して返してくるプログラムを作成し14回のExam\aというフォルダを作成し提出すること。それぞれの達成度で各5点である。
// (a-1)"Server Win","Draw","Server Lose"の勝ち負け判定
// (a-2)サーバのじゃんけんの手("Guu","Choki","Pa")
// (a-3)現在のサーバの勝率(難問あとまわし!)
// 堤出ファイル名:
// JankenClientLoop.java,JankenServerRandom.javaプログラムを完成させよ。第14回フォルダに「a」というフォルダを作成しその中に必要なソースコードを入れること。
Hint&ref(2014netproKimatuExamHint.zip);

// 出力例:
// Client is started
// send Janken Command to Server 5002port:
// >Choki
// Response from Server: You Win. Server hand is Guu. (Win,Draw,Lose)=(39%,30%,31%)
// send Janken Command to Server:
// >Pa
// Response from Server: Draw. Server hand is Pa. (Win,Draw,Lose)=(38%,31%,32%)

// ヒント:
// ランダムに整数を生成する場合は以下のコードを参考にすること
// Random r=new java.util.Random();
// int x=r.nextInt(3);
// キーボードからの入力は以下のコードを参考にすること。 
// BufferedReader reader = // キーボードから接続するサーバ名を読み込む
// new BufferedReader(new InputStreamReader(System.in));
// String handfromClient = reader.readLine();

//  (b)オブジェクト配列の問題である。TJM大学JM学科へは715名の学生が志願し受験した。各受験生の受験番号(1-715番)と数学英語国語の3科目の入試成績管理する受験生ごとに管理するクラスExamScoresクラスがある。ファイル名はExamScores.javaとする。ExamScoresクラスにはset/getExamID、set/getMathScore、set/getEngScore、set/getLangScore、getAverageScoreのメッソッド(関数)ある。ExamScoresクラス内部変数はint型とする。ランダム関数を利用し0-100点の適当な点数を715名の学生にセットしたあと3科目平均点が85点以上の合格者のIDと各科目の点数を出力するExamMaxAveMain.javaを作成せよ。14回に提出フォルダExam\bを作成して全てのクラスを保存すること。(15点の配点)

// (c)1-10000の数値のうちから奇数かつ3の倍数かつ11倍数のみをコンソールに出力するプログラムをかけ。ファイル名はOddThreeElevenMain.javaとせよ。難易度は比較的易の問題であるため最初にとくこと。14回に提出フォルダExam\cを作成して提出すること。(15点の配点)。
 hint:3の倍数、11の倍数はそれぞれ桁をある演算により処理すると割り算の演算をしなくも判定できるが今回は単純に繰り返しで割り算を行う処理を行うことをお勧めする。

*(13)模擬試験 [#lf95b39b]
-企画書:チーム名:チームメンバ:役割A,B:クラスと機能、イメージ図を記載すること。
-模擬試験以下のすべてファイルを第13回フォルダに提出せよ。
 (a) 
 クライアントから東京電機大学の学籍番号をおくるとその学生の入学年度と学科の日本語名を返信するようにGakusekiServer.java GakusekiClient.javaを作成せよ。ただし学籍番号は7桁の文字列とする。学科の略版として二部工学部情報通信工学科はNC,未来科学部建築学科はFA、未来科学部ロボットメカトロニクスはFR、未来科学部情報メディア学科はFIとすること。7桁以外の文字列の場合はエラーと表示するようにせよ。ヒント:アルファベット大文字小文字変換を行う関数がある。文字列の指定領域を切り出す関数がある。

 (b)オブジェクト配列の問題である。TJM高校には1学年100名の学生が在籍している。各学生の学籍番号(1-100番)と身長を管理するクラスStudentクラスがある。ファイル名はStudent.javaである。StudentクラスにはgetLengthとsetLengthがある。Studentクラス内部変数lengthはdouble形とする。ランダム関数を利用し適当な身長を100名の学生にセットしたあと100名の平均身長を求めるStudentsAveMain.javaを作成せよ。

**(12)12/9NIO [#jf7e2892]
-http://www.cps.im.dendai.ac.jp/files/classes/2014netpro/netprog_2014_12.pdf
-http://www.cps.im.dendai.ac.jp/files/classes/2014netpro/netprog_src2014_12_uft8.zip
//#ref(netprog_src2014_12_uft8.zip)
nio,nio2,threadpoolのhttpdのスループプットを比較して考察してみよう。
-企画書ver2を提出してください。 次回まで12回フォルダに!氏名学籍番号 チーム名、プロジェクト名を表紙に書く、pptスライド5枚程度でクラスの役割などを記載すること
-ソースコードは1行以上を書いて授業に望むこと


**(11)12/2MultiThread [#jf7e2892]
-http://www.cps.im.dendai.ac.jp/files/classes/2014netpro/netprog_2014_11.pdf
-http://www.cps.im.dendai.ac.jp/files/classes/2014netpro/netprog_src2014_11_uft8.zip
//#ref(netprog_src2014_11_uft8.zip)

 今日の課題(1-1):Basic MultiServerSample、MultiClientSample を変更して送信した10進数整数を2進数か16進数に変換すするプログラムを書け。「9」とおくると「1001」

 (1-2)Advance:どのようにしたらLoopアタックからサーバ全体が落ちることを防ぐことができるかコードで示せ。そのサーバをDosMultiServerSample.javaとDosMultiClientSample.javaを作成せよ。

// hint1
// 	String calc(String line) {
// 		int x = Integer.parseInt(line);	
//                String s="10";
//                //割り算のあまりを文字列に追加していくと二進数になる。商を活用。
// 		return s;
// 	}
hint2
String binary = Integer.toBinaryString( 100 );//10進数
String hex = Integer.toHexString( 100 );//16進数

 今日の課題2:    guichatパッケージのGuiAnimation+Serverを改造して 以下の中からひとつできると思う課題を選び行うこと。
    (2-B1)クライアントから表情を指定するとその表情に顔が変化するように改造せよ。
    (2-B2)クライアントから色を指定するとその色に顔が変化するように改造せよ。
    (2-B3)クライアントから位置(x,y)を指定するとその位置から開始するように変更せよ。
    (2-A)Advance課題:おくったメッセージごとに顔が追加されメッセージが浮遊するようにしなさい。顔は消してメッセージのみ浮遊させてよい。
 動きが早い場合はx = x + 10;=>からx = x + 2;に変更すること。
  hint1:カンマによる文字列分割
   //(1)分割する文字列を生成
   String str = new String("java,Java,JAVA");
   //(2)文字列をsplitメソッドで分割
   String[] strAry = str.split(",");
   //(3)分割された文字列の表示
   for (int i=0; i<strAry.length; i++) {
     System.out.println(strAry[i]);
   }


**(10)11/25 [#ae348277]
-tcp oos/ois通信
-大学院紹介ガイダンス11.27木曜日5限
-http://www.cps.im.dendai.ac.jp/files/classes/2014netpro/netprog_2014_9.pdf
//-http://www.cps.im.dendai.ac.jp/files/classes/2014netpro/netprog_src2014_10_uft8.zip
#ref(netprog_src2014_10_uft8.zip)
#ref(DendaiTCPClient3Age.java)
#ref(DendaiTCPServ3Age.java)
ObjectInputStream/OutputStreamクラスを用いて、作成した計算用クラスのインスタンスをサーバ送信し、サーバ側で内容を計算を行い、その結果と演算処理に要した時間をオブジェクトで送り返すプログラムを作成しなさい。
上記をキーボード入力で何度もやりとり出来るようにすること。計算は例えば最大の素数を出力するものなど複雑にすること。
DendaiTCPClient3Calc.java DendaiTCPServ3Calc.java DendaiTCP3ClacObj.javaの3つのファイルを提出してください。DendaiTCP3ClacObj.javaは以下9回のものをHintにすること 

**(9)11/18 [#b8cb7609]
-tcp oos/ois通信
-大学院紹介ガイダンス11.27木曜日5限
-http://www.cps.im.dendai.ac.jp/files/classes/2014netpro/netprog_2014_9.pdf
-http://www.cps.im.dendai.ac.jp/files/classes/2014netpro/netprog_src2014_9_uft8.zip
//#ref(netprog_src2014_9_uft8.zip)
-ObjectInputStream/OutputStreamクラスを用いて、作成した計算用クラスのインスタンスをサーバ送信し、サーバ側で内容を計算のみを行い、その結果をオブジェクトで送り返すプログラムを作成しなさい。
-上記をキーボード入力で何度もやりとり出来るようにすること。計算は例えば最大の素数を出力するものでも構わない。
-DendaiTCPClient3Calc.java DendaiTCPServ3Calc.java DendaiTCP3ClacObj.javaの3つのファイルを提出してください。DendaiTCP3ClacObj.javaは以下をHintにすること
 import java.io.Serializable;
 public class DendaiTCP3ClacObj implements Serializable{
 	public int maxprime=0; 
 	public int upperth=0;
 	public void setNumber(int upperth){
 		this.upperth=upperth;
 	}
 	public void calcAtServer(){
 		//ここは自分で実装
 	}
 	public int getMaxPrime(){
 		return maxprime;
 	}
 }


11/4日は休みです。
**(8)11/11 [#zccf7838]
-udp通信
-http://www.cps.im.dendai.ac.jp/files/classes/2014netpro/netprog_2014_8.pdf
-http://www.cps.im.dendai.ac.jp/files/classes/2014netpro/netprog_src2014_8_uft8.zip
//-#ref(netprog_2014_7.pdf)
-DatagramSenderReverse.java,DatagramReciverReverse.javaを作成し受信したメッセージをそのまま送信者に返信するプログラムを作成してください。



**(7)10/28 [#f70a243e]
-TCP/UDP通信
-http://www.cps.im.dendai.ac.jp/files/classes/2014netpro/netprog_2014_7.pdf
-http://www.cps.im.dendai.ac.jp/files/classes/2014netpro/netprog_src2014_7_uft8.zip
//-#ref(netprog_2014_7.pdf)
netpro2014_7\src\SwingAnimationFaceObj.javaを魔改造してください。来週はお休みです。

**(6)10/21 [#i1a696f3]
本日は1限のテストのみとします。
2限はテストの解説を聞きたい人と今までのところで質問が有る人のみ参加とします。(2限は本来8回やれば良い授業なので1回課題もお休み)
またテスト開始は”9:20”からにします。出席は1,2限とも取りませんので安心してテスト範囲を自習してください。なんと繰り返し文が3問/6問中もでます!
また2限演習のみ履修の人はテストを受ける必要はありません。


**(5)10/14 [#i1a696f3]
講義開始後10分間は前回の課題未提出者の確認と対応をします.
-資料
//--http://www.cps.im.dendai.ac.jp/files/classes/2014netpro/netprog_2014_5.pdf
#ref(netprog_2014_5.pdf)
#ref(netprog_src2014_5_uft8.zip)
-課題
 MovingBallを改造し3色以上の複数のボールを表示せよ。
 壁の跳ね返りを画面のサイズに修正せよ。
 コンソールに残り秒数カウントダウンしてゲームが終了するようにThread.sleep()メソッドを用いよ。
 なお終了時間は20秒とせよ。
 ヒント
 Thread.sleep(1*1000);




**(4)10/7 [#d932fd0f]
講義開始後10分間は前回の課題未提出者の確認と対応をします.
-資料
--http://www.cps.im.dendai.ac.jp/files/classes/2014netpro/netprog_2014_4.pdf
#ref(netprog_src2014_4_uft8.zip)
-課題
 課題FacesMainをインナークラス配列(9個以上)を使って書き換えること。個々の表情はランダム関数を用いて表情を変化させること。

**(3)9/30 [#d932fd0f]
講義開始後10分間は前回の課題未提出者の確認と対応をします.
-資料
--http://www.cps.im.dendai.ac.jp/files/fi/netprog_2014_3.pdf
#ref(netprog_src2014_3_uft8.zip)
-課題
 課題faceを沢山つくってみようFace.javaを改造してFaces.javaを提出してください。二重の繰り返し文を用いること。

**(2)9/23 [#gca843c5]
講義開始後10分間は前回の課題未提出者の確認と対応をします.
提出済みの方は9時10分から出席で結構です.
-資料
--http://www.cps.im.dendai.ac.jp/files/fi/netpro2014_02.pdf
#ref(netpro_src2014_2_uft8.zip)
-課題
--ユーザに現在の年齢を入力させよ。その結果、オリンピックが開催する2020年の自分の年齢と生まれた年の元号が表示されるプログラムを作成せよ。
--入力がqあるいは0の場合は終了するようにせよ。
--入力した現在の年齢がマイナスおよび120歳以上の場合は再入力を促すようにせよ。
--なお元年(1年)を優先すること。


**(1)9/16 ガイダンス 導入 復習1 [#wcc31a37]
-資料
-JDKインストール
--http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
-pathの通し方、設定の仕方
--http://blog.yoshikawa.64kb.net/2014/01/12/1385
-講義資料
#ref(netpro2014_1.pdf)
#ref(netpro_src2014_1_uft8.zip)
-http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html
-課題(第一回) 22日までに行っておくこと。
 Eclipseのインストール できれば最新版に
 Pleiades All in One 4.4.0.v20140625
 Eclipse 4.4.0 Luna ルナ for Windows ベース
--http://mergedoc.sourceforge.jp/
-授業中に出した課題を授業フォルダにいれておくこと



*日程 [#rba72498]
-http://www.soe.dendai.ac.jp/kyomu/portal/2014_schedule_t.pdf
**スケジュール [#ka55e5e8]
-(1)9/16
第1回 Java理解度チェック 
-(2)9/23
第2回 Javaプログラミング基礎1
-(3)9/30
第3回 Javaプログラミング基礎2 TCP/IPの復習  TCPサーバ   
-(4)10/7
第4回 TCPクライアント/サーバ通信 チャットプログラム 
-(5)10/14
第5回 UDP通信   
-(6)10/21
第6回 中間学力考査 (持ち込み不可 紙提出) 
-(7)10/28
第7回 スレッド基礎 サーバのスレッド化 マルチスレッド 
第8回 デザインパターン ファクトリメソッド シングルトン 
第9回 ノンブロッキングI/O   Javaプログラミング応用 
第10回 マルチスレッド スレッドプール 
第11回 Webクライアント  
第12回 WEBサーバ,プロジェクト設計 
第13回 プロジェクト実装1 
第14回 プロジェクト実装2 
第15回 学力考査 (持ち込み可 プログラミング提出) 

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS