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

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

ただいまの
回答率

90.84%

  • Java

    12854questions

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

javaでレジシステムを模したプログラムを作りたい

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 434

monolith123

score 6

javaアプリケーションでレジシステムを模したプログラムを作ろうと思っているのですが
レジの仕組みがわからず、プログラミングが進みません。
簡単な流れでも良いのでご教授ください。

追記
言葉足らずで申し訳ありませんでした。
レジシステムを模したプログラムが作りたかったのです。

機能
①商品を入力し、価格と累計を表示する
②セットで割引などの機能
③会計計算(支払い、おつり)
④レシートを画面に表示する

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

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

  • masaya_ohashi

    2018/01/10 13:10

    簡易的なレジシステム、とだけ書かれてもどんな機能が必要なのか読み取れません。どんな機能が必要なのか列挙してください。

    キャンセル

  • monolith123

    2018/01/10 13:17

    失礼しました。機能としては、①商品を入力し、価格と累計を表示する②セットで割引などの機能③会計計算(支払い、おつり)④レシートを表示する、この4つの機能を入れたいと考えています。

    キャンセル

  • 退会済みユーザー

    2018/01/10 16:26

    複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という意見がありました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

回答 3

checkベストアンサー

+2

ここ最近のPOSレジは多機能化しているため、プログラムの作成問題としてあまり適切でない気がするのですが。
やりたい事や機能を絞ってピンポイントで質問したほうが、求めている回答が得られやすいと思います。

質問文に追記していただいた機能に関しても以下の疑問が発生します。
1,商品を入力し、価格と累計を表示する
どのように入力し、どのように表示するのか?
よく商品データの入力に使われるのはバーコードリーダーによるJAN形式バーコード入力です。

2,「割引など」
どういうルールで割引するのか?
3,レシートを画面に表示する
1,の画面と同じなのか?

プログラムを作成する時は要件ベースで作成する方がよいのですが、
最初はまず入力画面と表示画面を元に必要な入力データや表示項目を洗い出したほうがいいと思います。

■覚えておいた方がよい用語
小口現金管理、金種計算、ジャーナル、精査

■余談
個人的にお勧めしたいのは自動販売機のプログラム作成です。
入力は各購入ボタンと各小銭入力、出力はお釣りと品切れ/釣り銭切れとインターフェイスが限定されています。

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

+2

レジとは一般店舗などに置かれたレジスター装置のことですよね・・・

簡易的なレジとは何を指しますか?今時のレジは商品のタグを読み取り商品の種類や値段を判断してそれを累算し、レシートに商品名も表示され、店舗の売り上げ記録を更新するような仕組みのもの(A)が一般的だと思いますがまさかそのようなものをイメージしてはおられないと思います。

単に計算機のキー「1」「2」「3」・・・「ENTER」を打ち込んで金額のみを累算するようなもの(B)をイメージされてますか?

それとも金額をコンソールからそのまま1行ずつ読み込んで累算するようなもの(C)ですか?

仕様が曖昧すぎて答えにくいです・・・

レジというと少なくとも(B)をイメージしますが、そういうものを作るならコンソールではなくGUIでレジっぽい画面を表示してキーやマウスで操作するようなものをイメージします。また(C)のようなものも考えられますがそれならかなり初歩的なものになりそうです。

(A)を想定すると流れは次のような感じでしょうか・・・

(1) 読み取り装置にかざされた商品タグを読み込む処理
(画像認識になるだろうと思います。ハード・ソフトの両面から難易度は高いと思います)
(2) タグの代わりにキー入力も受け付ける必要があるのでその状態遷移を行う
「状態遷移」とは、初期状態から1をタイプしたら'1'と表示を変え、その次に2をタイプしたら'12'に表示を変えENTERをタイプしたら数字を確定し次の金額表示が始まる・・・といったものです。取り消し操作など結構ややこしいので、操作仕様によってはかなり複雑な状態遷移になると思います。
(3) 入力された数値を累積する
(4) お客さんから受け取った金額を入力する
(本物のレジはお札とコインを投入すると自動的に金額が計算されますね。それは素人にはハード・ソフトの両面から無理なレベルだろうと思います。金額を数値として入力するなら簡単です)
(5) おつりを計算
(6) 以上を記載したレシートを印字する
紙に印刷するのが本物ですが、単に画面に印字してもよいでしょう。
(7) 売上をDB内へ更新する

なお(C)を想定すると上記の(3)(4)(5)(6)あたりを考えることになるでしょう。(B)だと(2)が入ってくるので結構難しくなると思います。

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2018/01/10 17:35 編集

    オフトピックですが、2点ほど。
    >読み取り装置にかざされた商品タグを読み込む処理
    こちらはバーコードリーダーなので安いモノだとamazonで諭吉2枚で購入できるかと。
    だいたいUSB接続で読み取ったバーコードデータが文字列&改行コードでパソコンに送られてきます。
    あとは最終手段のスマフォでバーコード読み取り&なんらかの手段でパソコンに転送という手が使えます。
    >お客さんから受け取った金額を入力する
    こちらは入出金機なのでお高いです、一般用途での販売はほぼなく訳あり中古を購入する形になるかと。

    業務用として有名なメーカーだとバーコードリーダーはキーエンス、入出金機はグローリーでしょうか。

    キャンセル

  • 2018/01/10 19:10 編集

    わざわざコメントいただき恐縮です。
    バーコードリーダーといっても案外手軽なのですね。自分はハードはからっきしなので難易度は高いと書きましたがソフトが得意でなくてもハードが得意という方にとってはDBとかGUIとかよりバーコードリーダーの方がとっつきやすいのかもですね!

    キャンセル

+1

どのような使い方をするかを洗い出すことが大事です。

場合によっては、そろばんとザルが最適なシステムの場合もあるでしょうし、毎日毎月の売り上げ管理と商品の管理をするならもっと複雑になります。

どうしても想像がつかないなら、八百屋でも美容室でも弁当屋でもいいです。どのような商品がどのような客とあってどのような入力を(”する”かではない)したか、書き出してみるとよいです。

そこから具体的な機能がでてきますので、それを実現する手段を考えればいいです。

あと、ハックな方法として、レジを売っている会社のホームページからレジのマニュアルをダウンロードするという手段もあります。(ちぐはぐな機能を選んでしまう可能性も高いですが・・・)

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

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

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

関連した質問

  • 解決済

    J2SE、J2EE、JRE、JDKの違いについて(Java)

    これからJavaの勉強を始めようと思っています。 Javaの環境を作るにあたって似たような単語が出てきて混乱しているのですが、J2SE、J2EE、JRE、JDKの違いについて教えて

  • 解決済

    ツイートなどの、投稿日時を取得したい

    twitterのような、投稿型WEBシステムにおいて、tweetが投稿された日時を取得し、その内容とともにDBへ格納したいのですが、javaを使う場合、どのタイミングで日時の取得を

  • 解決済

    Javaのファイルオブジェクトの排他処理について

    JavaのFileオブジェクトについて質問があります。 例えばクライアント側のアクションによって、一つのテキストファイルのデータを確認するという処理があったとします。 (データ

  • 解決済

    javaの型安全と多態性について

    javaの型安全と多態性についての質問です。 勉強していて、相反する(あるいは相反し得る)考えだと思ったのですが、皆様はどのようにお考えなのかと思い、質問させていただきます。

  • 解決済

    Javaでmidiファイルを外部音源で再生する方法

    前提・実現したいこと ハードウェアシンセサイザー(FA06)でCC90を入力したら、midiファイルをそのシンセイザーで発声するというプログラムを作ろうとしています。 発生

  • 解決済

    フィールド変数/ローカル変数の初期化の挙動が異なる理由

    Javaでは, フィールド変数→明示的に初期化しなければデフォルト値(0, falseなど)に初期化される ローカル変数→明示的に初期化せずに使用するとコンパイルエラーにな

  • 解決済

    DBが必要になるのはどんな場面でしょうか?

    例えばJavaで変数に名前、年齢、テストの点数を配列に入れてしまえば取り出したり書き換えたりできる気がします。JavaとDBの連携を覚えればいろいろできるようになるらしいのですが、

  • 解決済

    BufferedReader、FileReaderはtryとcatchがないと駄目ですか

    発生している問題・エラーメッセージ ①CSVファイルデータを入れて読み込ませるプログラムを作っているのですが、 講師の解答例を見るとtryとcatchがあるのですが、これがないと駄

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

  • Java

    12854questions

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