重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

rubyのプログラミングでアカウントに関するプログラムでアカウントがある場合は成功しました、パスワード違う場合はもう一度入力してください、アカウントがない場合はアカウントがありませんと表示をさせようと思っています。ちなみに、アカウントデータはテキストファイルの中に、名前、パスワードの順番に入っています。 そこで何ですが、def verifyAccount(account, password)という関数の中身をどう定義したら良いのでしょうか? あと、result = verifyAccount(account, password)以降に何を書いたら良いか教えてもらえたら嬉しいです。 聞きたいことが多くて申し訳ないですが是非ともよろしくお願いします!


def verifyAccount(account, password)



end

print "*** ログインしてください。自分のアカウント名とパスワードを入力してください。 ***\n"
print "アカウント:"
account = gets.chop
print "パスワード:"
password = gets.chop

result = verifyAccount(account, password)
...

A 回答 (4件)

No.2です



> アカウントがある場合は成功しました

「成功しました」というのは表示するメッセージだったのですね。
プログラムを作って上手く動作したのだと勘違いしました、失礼しました。


> verifyAccount(account, password)という関数


学校の課題ということなのではっきりとは書きませんが

・前の住所の場合と同じ様にHashにファイルデータを読み込ませる

  hash[アカウント] = パスワード

・account有無の確認は、hashのkeyにaccountが存在するか調べる。
・passwordの確認は、hash[account]とpasswordが一致するか調べる。

以上でできると思います。

 Hashのマニュアル
 http://doc.ruby-lang.org/ja/1.8.7/class/Hash.html

この回答への補足

クラスを定義すれば、良いのでしょうか??


そうすると、result以降のの書き方は変わってきますか??

補足日時:2011/11/10 11:40
    • good
    • 0

余計なお世話かもしれませんが、


アカウントが存在しない場合と、パスワードが違う場合でメッセージを分けると、
アカウントの存在が発覚するので、セキュリティ的にはよろしくありません。

どちらも「アカウント名またはパスワードが違います」といったメッセージにするのがおすすめです。

この回答への補足

書き忘れましたが、学校の課題でそういう指定なんです。

補足日時:2011/11/09 09:46
    • good
    • 0

> アカウントがある場合は成功しました



どの様なプログラムで成功したのか書かれていないと、再入力の処理をどの様に追加して良いかも答えにくいと思います。


> verifyAccount(account, password)という関数

例えば、アカウントもパスワードも一致する場合は、resultに 0 を返す。
アカウントが無い場合は 1 を返す。
アカウントが有るがパスワードが一致しない場合は 2 を返す

というように作れば良いのではないでしょうか。


> result = verifyAccount(account, password)以降

上の例で考えるとresultが 0 になるまで再入力を行う処理を繰り返す、whileを使えばできますよね。
1 や 2 の場合はそれに応じたメッセージを表示させます。

この回答への補足

成功というのアカウント名があって、なおかつパスワードが一致したときのことをいいます。

補足日時:2011/11/09 09:48
    • good
    • 0

> アカウントデータはテキストファイルの中に、名前、パスワードの順番に入っています。

 

じゃあ、それを適当に読み出して、何かの変数に格納するコードを書いて補足にどうぞ。


> result = verifyAccount(account, password)以降に何を書いたら良いか教えてもらえたら嬉しいです。

result に従って結果を表示するコードを書いて補足にどうそ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!