小数点の計算もできる電卓のプログラムを作ろうと思っています。
ですが、考えれば考えるほど分からなくなってしまいます。
電卓のプロセス、考え方やヒントを教えていただけませんか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答6件
0
ベストアンサー
フローチャートで書こうとするとわけわからなくなるので
状態遷移図で動作をまとめたほうがよいかと
投稿2016/08/02 03:09
総合スコア13553
0
電卓は同じボタンを押しても常に同じ結果になるとは限りませんよね。
それは状態を持っているからです。
状態は基本的にクラスのメンバ変数で管理するということを意識するとやりやすいと思います。
(自分で考えたアルゴリズムなので○○状態のようなものは別に正式名称があるとかそういうわけではありません。)
ボタンの種類
- 値 0-9 .(小数点)
値入力状態にする
- 演算子 +-*/
演算子入力状態にする
- 結果表示 =
結果表示状態にする
- その他
数字消し 値入力状態でのみ一番右の桁の数字を消す
操作取り消し 直前の状態に戻す
クリア 表示を消して初期状態に戻す
状態
- 初期
値を入力すると入力された値を設定して値入力状態に。
演算子を入力すると値を0に設定して演算子入力状態に。
- 値入力
値を入力すると桁数が増えてゆく。
演算子を入力すると計算結果を表示して、演算子入力状態に。
=で計算して結果表示状態に。
- 演算子入力
演算子を入力すると最新のものに切り替わる。
値を入力すると、入力された値を設定して入力状態に。
=で直前の値を複製して計算し結果表示状態に
- 結果表示
値を入力すると入力された値を設定して値入力状態に。
演算子を入力すると値を表示されている結果に設定して演算子入力状態に。
=で直前の計算を繰り返す(電卓で2*====と入力されると2,4,8,16と増えていくやつ)
・例
1 + 12 = 13
・入力値
値 演算子 値値 =
・状態遷移
初期 値 演算子 値 結果表示
どこか抜けがあるとは思いますが、一応頭の中や紙の上で動かしてみるとある程度それらしい動きをするはずです。
投稿2016/08/02 01:47
総合スコア868
0
java 電卓 プログラム
で google 検索すると、情報を得ることができると思います。
例:
- サンプルプログラム(電卓) http://www.javadrive.jp/start/sample1/
- 電卓の作り方 電卓ソースコード http://matome.naver.jp/odai/2136001690642214201
投稿2016/08/01 22:10
総合スコア22328
0
投稿2016/08/01 16:25
総合スコア16419
0
floatやdoubleで計算すれば普通に出来ると思うのですが…
UIのことや精度のことで悩んでいるのでしょうか?
投稿2016/08/01 13:46

退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

退会済みユーザー
2016/08/02 02:52

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/02 03:48