質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.02%

  • Java

    12149questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Java EE

    350questions

    Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Java電卓の機能の確認

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 283

jogduer

score 8

前提・実現したいこと

※JavaでWebアプリケーションを作る練習目的です。

Javaで電卓のwebアプリケーションを作成したいです。
現在、どのような機能がほしいか考え、列挙しました。
その機能で抜けている機能がないか指摘してほしいです。

【欲しい機能】
・ボタン機能
・数字ボタンを打つと、テキストフィールドの末尾に数字が表示される機能
・cボタンでクリアする機能
・計算ボタン打つと計算する機能
・イコールボタンで結果を表示する機能

よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • KSwordOfHaste

    2017/10/20 12:54

    以前からの質問の継続だと思いますが、説明文に以下を追記する方がよいと思います。「JavaでWebアプリケーションを作る練習目的で、電卓を作ろうとしています」こういう前提をはっきり書いておかないと何度も同じような指摘を受けてしまいますよ?maisumakunさんのご指摘がそうですね。

    キャンセル

  • jogduer

    2017/10/20 13:40

    ご指摘ありがとうございます。KSwordOfHasteさんのおっしゃる通り、JavaでWebアプリケーションを作る練習です。質問修正します。

    キャンセル

回答 4

+3

正直な感想ですが、その機能をWebアプリケーションとして実装するのであれば、Javaで行うのは適切でないと考えます。

というのも、電卓程度の機能であればブラウザサイドのJavaScriptで全て片付いてしまい、Javaを使ってサーバサイドでやるのは、必要以上に通信が発生するだけで、誰にもメリットがないからです(Javaへの受け渡しがある以上、「ボタンを押すたびにページ遷移」ということにしたくないのであればJavaScriptも必要となります)。

つまり、この場合の最適解は「単なるHTML+JavaScript」であって、サーバサイドのJavaには出番がありません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/10/20 13:52

    ご指摘ありがとうございます。
    質問文に最初から明記する必要があったんですが、今回の目的はJavaで Webアプリケーションを作成する練習目的です。せっかく提案してくださったのに恐縮です。

    キャンセル

checkベストアンサー

+1

以前からの質問の継続ですね?

推測ですが、教科書に「まず必要な機能を洗い出し充分かを吟味しましょう」などと書いてあったのでしょうか。どうもそんな気がします。

個人的な意見ですが、質問者さんはまだプログラミングを学び始めだと思いますし、Webアプリケーションは少々難しいものなので、「機能は最小限にする」ことをお勧めします。ほとんど何も機能がないぐらいでちょうどいいと思いますよ。たとえるなら

「数字キーをおすと画面に数字が追加される」
「クリアキーを押すと画面の数字をクリアする」

この2つだけでも充分なくらいだと思います。これをWebアプリケーションとして作ってみてください。きっと上記を期待通り動かすだけでかなりあちこち難しい点があると思いますよ。

まず結構な長さのHTMLを書けなければなりません。Javascriptを最初は避けるとしたらボタンはAnchorタグにするでしょう。スタイルシートで見栄え良くするなどは気にしないとしても、基本的なレイアウトでそれっぽくボタンを並べたりと結構めんどくさいはずです。

Anchorのhrefをどうするか(/dentaku/button0, /dentaku/button1などにするか/dentaku/push?key=0といった感じにするかとか)を決めなくてはなりませんし、それによってもサーバー側の作りも変わってくる気がします。

初めて取り組む際のコツは「充分な機能を備える」ことではなく「まずは小さく作る」ことだと思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/10/20 14:29

    ご指摘ありがとうございます。

    プログラミングはまだ学び始めたばかりなので、提案のあった通り、
    最小限の機能から作っていきたいと思います。

    ①数字キーをおすと画面に数字が追加される
    ②クリアキーを押すと画面の数字をクリアする

    の2点の機能に絞って、JavaでWebアプリケーションを作成
    していきます。

    キャンセル

+1

私はWebアプリはほとんど作ったことがないですが、充分答えられそうなので。
基本的には既存の電卓を参考にするのがよいかと思います。


抜けている機能

電卓を名乗るうえで、メモリ機能がないのは致命的だと思います。

数字ボタンを打つと、テキストフィールドの末尾に数字が表示される機能

例えば現在適用中の演算を表示すると、洗練された雰囲気は出るかと思います。
プログラマ電卓を意識するなら、同時に16進表示をしても面白いかも。

計算ボタン打つと計算する機能

漠然としていますが、少なくとも単項演算と二項演算とを区別する必要があるのでは。
計算ボタン押下後に値を取得しなければいけない分、後者の方が面倒です。

cボタンでクリアする機能

一般的な電卓には、All ClearボタンのほかにMemory Clearなどもあるかと。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/10/20 14:01

    ご指摘ありがとうございます。メモリ機能はないとダメですね。
    その他の機能もご提案ありがとうございます。

    キャンセル

+1

あなたの求める「電卓」がどのくらいのレベルなのかによります。要件としてはあなたの述べている機能で「電卓として最小限の機能」はあると思います。

Windows等に最初から入っている電卓ソフトを眺めてみるとよいのではないでしょうか。例えばメモリ機能とかが抜けてると思います。参考にする電卓によっては日付計算機能や、固定小数点計算機能、関数電卓やプログラマ電卓などまで機能を求めるなら圧倒的に機能が足りないです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/10/20 14:07

    ご指摘ありがとうございます。やはりメモリ機能ですね。
    日付計算機能や、固定小数点計算機能、関数電卓やプログラマ電卓などの高度な機能もご提案ありがとうございます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 91.02%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Java

    12149questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Java EE

    350questions

    Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。