[前][次][番号順一覧][スレッド一覧]

learn-ruby-in-kansai:1666

From: "ISHIKAWA Takayuki" <topstone@y...>
Date: Wed, 11 Jul 2007 02:48:03 +0900
Subject: [learn-ruby-in-kansai:1666] 分属処理 script (Re: 添削候補、今回は断念)

こんにちは、石川です。

それでは、南木さんのお言葉に甘えて、応募させていただきます。以下、
興味ない方は読み飛ばして下さい。

研究室名 (教員名) とその定員を記した「teachers.csv」は、以下の
ようなものです。

teachers.csv
-----------------------------------------------------------------
風見みずほ,3
雨柳つばめ,3
ネギ・スプリングフィールド,3
-----------------------------------------------------------------

学生名と志望順位が記され、優先順に並べられた「students.csv」は、
以下のようなものです。

students.csv
-----------------------------------------------------------------
学籍番号,氏名,よみ,model,優先順位,第1希望,第2希望,第3希望
A01,涼宮ハルヒ,すずみやはるひ,SOS,1,風見みずほ,ネギ・スプリングフィールド,雨柳つばめ
A02,長門有希,ながとゆき,SOS,2,風見みずほ,雨柳つばめ,ネギ・スプリングフィールド 

A03,朝比奈みくる,あさひなみくる,SOS,3,ネギ・スプリングフィールド,風見みずほ,雨柳つばめ
A04,古泉一樹,こいずみいつき,SOS,4,風見みずほ,ネギ・スプリングフィールド,雨柳つばめ
A05,朝倉涼子,あさくらりょうこ,北高,5,風見みずほ,ネギ・スプリングフィールド,雨柳つばめ
A06,喜緑江美里,きみどりえみり,北高,6,風見みずほ,雨柳つばめ,ネギ・スプリングフィールド 

A07,財前舞,ざいぜんまい,ENOZ,7,ネギ・スプリングフィールド,雨柳つばめ,風見みずほ
A08,岡島瑞樹,おかじまみずき,ENOZ,8,風見みずほ,ネギ・スプリングフィールド,雨柳つばめ
-----------------------------------------------------------------

「ruby -Ks assign.rb」を実行すると、学生ごとの分属先一覧が出力
されます。

students_result.csv
-----------------------------------------------------------------
A01,涼宮ハルヒ,すずみやはるひ,SOS,1,風見みずほ,""
A02,長門有希,ながとゆき,SOS,2,風見みずほ,""
A03,朝比奈みくる,あさひなみくる,SOS,3,ネギ・スプリングフィールド,""
A04,古泉一樹,こいずみいつき,SOS,4,風見みずほ,""
A05,朝倉涼子,あさくらりょうこ,北高,5,ネギ・スプリングフィールド,""
A06,喜緑江美里,きみどりえみり,北高,6,雨柳つばめ,""
A07,財前舞,ざいぜんまい,ENOZ,7,ネギ・スプリングフィールド,""
A08,岡島瑞樹,おかじまみずき,ENOZ,8,雨柳つばめ,""
-----------------------------------------------------------------

また、研究室ごとに分属予定学生の一覧が出力されます。

teachers_result.csv
-----------------------------------------------------------------
風見みずほ,3
,A01,涼宮ハルヒ,すずみやはるひ,風見みずほ,""
,A02,長門有希,ながとゆき,風見みずほ,""
,A04,古泉一樹,こいずみいつき,風見みずほ,""
雨柳つばめ,2
,A06,喜緑江美里,きみどりえみり,雨柳つばめ,""
,A08,岡島瑞樹,おかじまみずき,雨柳つばめ,""
ネギ・スプリングフィールド,3
,A03,朝比奈みくる,あさひなみくる,ネギ・スプリングフィールド,""
,A05,朝倉涼子,あさくらりょうこ,ネギ・スプリングフィールド,""
,A07,財前舞,ざいぜんまい,ネギ・スプリングフィールド,""
-----------------------------------------------------------------

標準出力には、細かな選考過程が出力されます。

-----------------------------------------------------------------
3人の教員を読み込みました。
8人の学生を読み込みました。

今から涼宮ハルヒ(第1位,SOS)が所属するゼミの割り当てを開始します。
志望順序 : 風見みずほ,ネギ・スプリングフィールド,雨柳つばめ,
第1希望 風見みずほは涼宮ハルヒを受け入れました。

今から長門有希(第2位,SOS)が所属するゼミの割り当てを開始します。
志望順序 : 風見みずほ,雨柳つばめ,ネギ・スプリングフィールド,
第1希望 風見みずほは長門有希を受け入れました。

今から朝比奈みくる(第3位,SOS)が所属するゼミの割り当てを開始します。
志望順序 : ネギ・スプリングフィールド,風見みずほ,雨柳つばめ,
第1希望 ネギ・スプリングフィールドは朝比奈みくるを受け入れました。

今から古泉一樹(第4位,SOS)が所属するゼミの割り当てを開始します。
志望順序 : 風見みずほ,ネギ・スプリングフィールド,雨柳つばめ,
第1希望 風見みずほは古泉一樹を受け入れました。

今から朝倉涼子(第5位,北高)が所属するゼミの割り当てを開始します。
志望順序 : 風見みずほ,ネギ・スプリングフィールド,雨柳つばめ,
第1希望 風見みずほは満員のため朝倉涼子を受け入れませんでした。
第2希望 ネギ・スプリングフィールドは朝倉涼子を受け入れました。

今から喜緑江美里(第6位,北高)が所属するゼミの割り当てを開始します。
志望順序 : 風見みずほ,雨柳つばめ,ネギ・スプリングフィールド,
第1希望 風見みずほは満員のため喜緑江美里を受け入れませんでした。
第2希望 雨柳つばめは喜緑江美里を受け入れました。

今から財前舞(第7位,ENOZ)が所属するゼミの割り当てを開始します。
志望順序 : ネギ・スプリングフィールド,雨柳つばめ,風見みずほ,
第1希望 ネギ・スプリングフィールドは財前舞を受け入れました。

今から岡島瑞樹(第8位,ENOZ)が所属するゼミの割り当てを開始します。
志望順序 : 風見みずほ,ネギ・スプリングフィールド,雨柳つばめ,
第1希望 風見みずほは満員のため岡島瑞樹を受け入れませんでした。
第2希望 ネギ・スプリングフィールドは満員のため岡島瑞樹を受け入れませんでした。 

第3希望 雨柳つばめは岡島瑞樹を受け入れました。
-----------------------------------------------------------------

以下、添削者のための補足情報。

・この script が作られたそもそもの目的は、分属処理に不正がない
 ことを証明するためです。そのため、C++ や Java しか知らない人が
 読んでもある程度理解できるように Ruby 独特の文法の使用は
 なるべく控えています。添削の際には、Ruby 独特の文法へバリバリ
 変換してもらって構いません。
・上記の理由から、本来であれば RDoc 向けの注釈などを入れておく
 べきなのですが、やっつけ仕事で作ったため入っていません。添削の
 際には色々と注釈を入れてもらえると幸いです。
・今回の sample data は分属処理が正しく終えられるようになって
 いますが、実際には研究室名の誤りがあったり、優先順位が同順位の
 学生がいたり (後で目視確認が必要)、希望する研究室全てから満員で
 断られたりすることがあります。それらの処理はここでは説明
 しませんが、script 自体を読んで悟って下さい (他力頼みだ…)。
・その他、2年半前に作ってほぼそのままの形なので、非常に読みにくい
 かも知れません。お手数かけます。
・えーと、RUnit などで自動 test する script なんかも作って見せて
 いただけたりすると、狂喜乱舞します。

-- 
大阪国際大学経営情報学部講師 石川高行 ???-???-????(ex.2307)
573-0192 大阪府枚方市杉3丁目50番1号 大阪国際大学2号館307
E-mail ishikawa@m... / rechka.takayuki@n...
PGP fingerprint:A0A9 7239 2701 3B46 7F86  3F1A 6997 0EFA 03A2 71B6 


--
ML: learn-ruby-in-kansai@r...
使い方: http://QuickML.com/

添付ファイル

[前][次][番号順一覧][スレッド一覧]

      1650 2007-06-30 19:21 [tagahiro@p...       ] Ruby添削コーナーについての補則事項      
      1655 2007-07-05 12:32 ┣[konami@k...         ]                                       
      1662 2007-07-08 21:00 ┃┗[ujihisa@g...        ]                                     
      1664 2007-07-09 20:19 ┗[topstone@y...       ] 添削候補、今回は断念 (Re: Ruby添削コーナーについての補則事項)
      1665 2007-07-10 11:34  ┗[nanki@m...          ]                                     
-> @  1666 2007-07-10 19:48   ┗[topstone@y...       ] 分属処理 script (Re: 添削候補、今回は断念)
      1681 2007-07-14 22:10    ┗[topstone@y...       ] 次回のための解説 (Re: 分属処理 script)
      1683 2007-07-15 04:26     ┗[konami@k...         ]