学校から渡されたc言語の課題の内容です。
1.販売商品は5種類
2.すべて単価が異なる
3.つり銭はなるべく大きい額で払い出す。
4.つり銭用の金種は一万円、五千円、千円、五百円、百円、五十円、十円
5.投入可能なのは、一万円、五千円、千円、五百円、百円、五十円、十円(7つの繰り返し処理)
6.つり銭が払い戻しできないときはメッセージをだす。
7.売り切れの時はメッセージを出す。
8.商品選択に、取り消し含む。
以上の仕様で、プログラムを組むことになりました。コツを教えてください。
夏休みの課題
Re: 夏休みの課題
まずは作るプログラムの仕様を確定させるのがいいと思います。
例えば
・「つり銭はなるべく大きい額で払い出す」とはどういう意味か。つり銭の額は購入する商品と投入した金額で一意に定まるのではないか。
・商品やつり銭の在庫はどう管理するのか。例えばファイルやデータベースに保存するなど。
・一度に購入できる商品は1個なのか、それとも複数購入できるのか。
・UIはどのようなものを作るのか。コンソール(CUI)、Windows API、SDL、GTK、OpenGLなど。
例えば
・「つり銭はなるべく大きい額で払い出す」とはどういう意味か。つり銭の額は購入する商品と投入した金額で一意に定まるのではないか。
・商品やつり銭の在庫はどう管理するのか。例えばファイルやデータベースに保存するなど。
・一度に購入できる商品は1個なのか、それとも複数購入できるのか。
・UIはどのようなものを作るのか。コンソール(CUI)、Windows API、SDL、GTK、OpenGLなど。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 夏休みの課題
ま~これは普通に考えて、5千円のおつりを出すときにはみけCAT さんが書きました: ・「つり銭はなるべく大きい額で払い出す」とはどういう意味か。つり銭の額は購入する商品と投入した金額で一意に定まるのではないか。
千円札5枚ではなくて五千円札1枚を使う
ってことなんでしょうね。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: 夏休みの課題
2000円札は今日もハブられて…… とか思ったら 5円と1円も無いのですね.
ということは(?)
>・「つり銭はなるべく大きい額で払い出す」とはどういう意味か。つり銭の額は購入する商品と投入した金額で一意に定まるのではないか。
93円の品物に対して500円投入された場合には400円しか返さないのかあるいは410円も返してくれるのか…
とかいうあたりの何らかの決め事なのかも?
ということは(?)
>・「つり銭はなるべく大きい額で払い出す」とはどういう意味か。つり銭の額は購入する商品と投入した金額で一意に定まるのではないか。
93円の品物に対して500円投入された場合には400円しか返さないのかあるいは410円も返してくれるのか…
とかいうあたりの何らかの決め事なのかも?
Re: 夏休みの課題
既に指摘もある通りいろいろと考えることはありますが、自分の能力に合わせて仕様を確定させるところから始める必要があるかと思います。
・売り切れが考えられるので商品の在庫数ほ保持する必要あり
→在庫数や単価は固定?実行時に入力させる?
・つり銭および投入可能な金種は各1枚ずつ?
→投入可能な金種の説明に(7つの繰り返し処理)とあるので、支払い時には一万円を使う?五千円を使う?・・・十円を使う?のような質問が7回繰り返されるのかなと
・買い物処理中は何度も商品を選択、戻すことができるので、陳列棚の商品在庫と買い物カゴ中の個数を保持する必要あり
→カゴと陳列棚との間で商品が行き来するのでどうやって実現するのか(かごから商品を戻したら亜空間に消えないように注意)
・一人の買い物終了後、続けて二人目の買い物を許す?それともおひとり様専用?
質問者さんがどのくらいのプログラムが組めるのかわからないですが、
できるところからやってみるのがよいかと。
#質問者さんが何に困っているのかわからないのでコツになっているのか不明ですが(汗)
最初は必要最小限のプログラムとなるよう、
・商品5種類の在庫数と価格はプログラム中で固定にしておく
・商品の価格は10円単位固定、各商品は在庫1個固定
・買い物は一人専用、一度精算処理したらそこでおしまい
・つり銭と投入可能な金種は各1枚固定
とすればよいかと。
1円が用意されていたら、各硬貨の使用できる枚数が決まっていなければ、
つり銭が払戻しできないことがなくなってしまいますから。
ただそうなると1円単位の価格がついている商品があると、常につり銭切れで購入できなさそうですが(笑)
#えっ、銭?
・売り切れが考えられるので商品の在庫数ほ保持する必要あり
→在庫数や単価は固定?実行時に入力させる?
・つり銭および投入可能な金種は各1枚ずつ?
→投入可能な金種の説明に(7つの繰り返し処理)とあるので、支払い時には一万円を使う?五千円を使う?・・・十円を使う?のような質問が7回繰り返されるのかなと
・買い物処理中は何度も商品を選択、戻すことができるので、陳列棚の商品在庫と買い物カゴ中の個数を保持する必要あり
→カゴと陳列棚との間で商品が行き来するのでどうやって実現するのか(かごから商品を戻したら亜空間に消えないように注意)
・一人の買い物終了後、続けて二人目の買い物を許す?それともおひとり様専用?
質問者さんがどのくらいのプログラムが組めるのかわからないですが、
できるところからやってみるのがよいかと。
#質問者さんが何に困っているのかわからないのでコツになっているのか不明ですが(汗)
最初は必要最小限のプログラムとなるよう、
・商品5種類の在庫数と価格はプログラム中で固定にしておく
・商品の価格は10円単位固定、各商品は在庫1個固定
・買い物は一人専用、一度精算処理したらそこでおしまい
・つり銭と投入可能な金種は各1枚固定
とすればよいかと。
オフトピック
1円と5円があえて用意されていないのは、課題条件にあるusao さんが書きました:2000円札は今日もハブられて…… とか思ったら 5円と1円も無いのですね.
ということは(?)
>・「つり銭はなるべく大きい額で払い出す」とはどういう意味か。つり銭の額は購入する商品と投入した金額で一意に定まるのではないか。
93円の品物に対して500円投入された場合には400円しか返さないのかあるいは410円も返してくれるのか…
とかいうあたりの何らかの決め事なのかも?
に対応するためと思います。yu さんが書きました: 6.つり銭が払い戻しできないときはメッセージをだす。
1円が用意されていたら、各硬貨の使用できる枚数が決まっていなければ、
つり銭が払戻しできないことがなくなってしまいますから。
ただそうなると1円単位の価格がついている商品があると、常につり銭切れで購入できなさそうですが(笑)
#えっ、銭?
Advanced Supporting Developer
無理やりこじつけ(ぉ
無理やりこじつけ(ぉ
Re: 夏休みの課題
後出しで情報を追加されました。
http://dixq.net/forum/viewtopic.php?f=3&t=15433
http://dixq.net/forum/viewtopic.php?f=3&t=15433
Advanced Supporting Developer
無理やりこじつけ(ぉ
無理やりこじつけ(ぉ