查看完整版本: 飲料交易系統2 折扣功能問題(java)
頁: [1]

h4674156 發表於 2015-12-30 10:56 PM

飲料交易系統2 折扣功能問題(java)

本帖最後由 h4674156 於 2015-12-31 12:47 AM 編輯

各位前輩們好
小弟目前的問題是如果輸入單項品項數量超過10杯 按下計算會顯示折扣後金額
但是如果多項品項數量如果相加也有超過10杯 也有選擇品項 但按下計算則還是原來單項價格加乘 仍還是原價該怎麼讓它有不同品項抓取數量 也有折扣呢?

以下為程式碼部分




package beverages;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Shop extends Frame {
        static JFrame jframe = new JFrame();
        static JButton button[] = new JButton;
        static JCheckBox jcheckbox[] = new JCheckBox;
        static Panel panel;
        static JLabel jlabel[] = new JLabel;
        static JTextField jtextfield[] = new JTextField;
        static int price[] = new int;
        static String titleGUI;

        public static void main(String[] args) {
                // TODO Auto-generated method stub
                Shop test = new Shop();

        }

        public Shop() {
                Container cp = jframe.getContentPane();
                cp.setLayout(null);

                jframe.setBackground(Color.PINK);
                jframe.setSize(760, 320);

                setTitle("飲料選購程式");

                jlabel = new JLabel("勾選飲料種類,並在輸入框杯數,若是您的訂購不足1杯,將以1杯價格計算 金額為");
                jlabel.setBounds((jframe.getWidth() / 2) - (430 / 2) - 30, 10, 760, 12);
                cp.add(jlabel);

                jcheckbox = new JCheckBox();
                jtextfield = new JTextField(20);
                price = 25;
                jcheckbox.setText("原鄉四季/" + price + "元");
                jtextfield.setText("0");
                jcheckbox.setFont(new Font("System", Font.BOLD, 18));
                jtextfield.setFont(new Font("System", Font.BOLD, 16));
                jcheckbox.setBounds(30, 40, 150, 26);
                jtextfield.setBounds(180, 40, 60, 26);
                cp.add(jcheckbox);
                cp.add(jtextfield);

                jcheckbox = new JCheckBox();
                jtextfield = new JTextField(20);
                price = 20;
                jcheckbox.setText("翡翠綠茶/" + price + "元");
                jtextfield.setText("0");
                jcheckbox.setFont(new Font("System", Font.BOLD, 18));
                jtextfield.setFont(new Font("System", Font.BOLD, 16));
                jcheckbox.setBounds(30, 70, 150, 26);
                jtextfield.setBounds(180, 70, 60, 26);
                cp.add(jcheckbox);
                cp.add(jtextfield);

                jcheckbox = new JCheckBox();
                jtextfield = new JTextField(20);
                price = 20;
                jcheckbox.setText("嚴選高山茶/" + price + "元");
                jtextfield.setText("0");
                jcheckbox.setFont(new Font("System", Font.BOLD, 16));
                jtextfield.setFont(new Font("System", Font.BOLD, 16));
                jcheckbox.setBounds(30, 100, 150, 26);
                jtextfield.setBounds(180, 100, 60, 26);
                cp.add(jcheckbox);
                cp.add(jtextfield);

                jcheckbox = new JCheckBox();
                jtextfield = new JTextField(20);
                price = 45;
                jcheckbox.setText("紅茶拿鐵/" + price + "元");
                jtextfield.setText("0");
                jcheckbox.setFont(new Font("System", Font.BOLD, 18));
                jtextfield.setFont(new Font("System", Font.BOLD, 16));
                jcheckbox.setBounds(30, 130, 150, 26);
                jtextfield.setBounds(180, 130, 60, 26);
                cp.add(jcheckbox);
                cp.add(jtextfield);

                jcheckbox = new JCheckBox();
                jtextfield = new JTextField(20);
                price = 40;
                jcheckbox.setText("錫蘭奶茶/" + price + "元");
                jtextfield.setText("0");
                jcheckbox.setFont(new Font("System", Font.BOLD, 18));
                jtextfield.setFont(new Font("System", Font.BOLD, 16));
                jcheckbox.setBounds(30, 160, 150, 26);
                jtextfield.setBounds(180, 160, 60, 26);
                cp.add(jcheckbox);
                cp.add(jtextfield);

                jcheckbox = new JCheckBox();
                jtextfield = new JTextField(20);
                price = 40;
                jcheckbox.setText("珍珠紅茶/" + price + "元");
                jtextfield.setText("0");
                jcheckbox.setFont(new Font("System", Font.BOLD, 18));
                jtextfield.setFont(new Font("System", Font.BOLD, 16));
                jcheckbox.setBounds(30, 190, 150, 26);
                jtextfield.setBounds(180, 190, 60, 26);
                cp.add(jcheckbox);
                cp.add(jtextfield);

                jcheckbox = new JCheckBox();
                jtextfield = new JTextField(20);
                price = 40;
                jcheckbox.setText("椰果奶茶/" + price + "元");
                jtextfield.setText("0");
                jcheckbox.setFont(new Font("System", Font.BOLD, 18));
                jtextfield.setFont(new Font("System", Font.BOLD, 16));
                jcheckbox.setBounds(30, 220, 150, 26);
                jtextfield.setBounds(180, 220, 60, 26);
                cp.add(jcheckbox);
                cp.add(jtextfield);

                jcheckbox = new JCheckBox();
                jtextfield = new JTextField(20);
                price = 25;
                jcheckbox.setText("茉香綠茶/" + price + "元");
                jtextfield.setText("0");
                jcheckbox.setFont(new Font("System", Font.BOLD, 18));
                jtextfield.setFont(new Font("System", Font.BOLD, 16));
                jcheckbox.setBounds(270, 40, 150, 26);
                jtextfield.setBounds(420, 40, 60, 26);
                cp.add(jcheckbox);
                cp.add(jtextfield);

                jcheckbox = new JCheckBox();
                jtextfield = new JTextField(20);
                price = 25;
                jcheckbox.setText("極品菁茶/" + price + "元");
                jtextfield.setText("0");
                jcheckbox.setFont(new Font("System", Font.BOLD, 18));
                jtextfield.setFont(new Font("System", Font.BOLD, 16));
                jcheckbox.setBounds(270, 70, 150, 26);
                jtextfield.setBounds(420, 70, 60, 26);
                cp.add(jcheckbox);
                cp.add(jtextfield);

                jcheckbox = new JCheckBox();
                jtextfield = new JTextField(20);
                price = 20;
                jcheckbox.setText("特選苔洱/" + price + "元");
                jtextfield.setText("0");
                jcheckbox.setFont(new Font("System", Font.BOLD, 18));
                jtextfield.setFont(new Font("System", Font.BOLD, 16));
                jcheckbox.setBounds(270, 100, 150, 26);
                jtextfield.setBounds(420, 100, 60, 26);
                cp.add(jcheckbox);
                cp.add(jtextfield);

                jcheckbox = new JCheckBox();
                jtextfield = new JTextField(20);
                price = 45;
                jcheckbox.setText("優鮮冬瓜/" + price + "元");
                jtextfield.setText("0");
                jcheckbox.setFont(new Font("System", Font.BOLD, 18));
                jtextfield.setFont(new Font("System", Font.BOLD, 16));
                jcheckbox.setBounds(270, 130, 150, 26);
                jtextfield.setBounds(420, 130, 60, 26);
                cp.add(jcheckbox);
                cp.add(jtextfield);

                jcheckbox = new JCheckBox();
                jtextfield = new JTextField(20);
                price = 40;
                jcheckbox.setText("茉香奶綠/" + price + "元");
                jtextfield.setText("0");
                jcheckbox.setFont(new Font("System", Font.BOLD, 18));
                jtextfield.setFont(new Font("System", Font.BOLD, 16));
                jcheckbox.setBounds(270, 160, 150, 26);
                jtextfield.setBounds(420, 160, 60, 26);
                cp.add(jcheckbox);
                cp.add(jtextfield);

                jcheckbox = new JCheckBox();
                jtextfield = new JTextField(20);
                price = 40;
                jcheckbox.setText("粉圓奶茶/" + price + "元");
                jtextfield.setText("0");
                jcheckbox.setFont(new Font("System", Font.BOLD, 18));
                jtextfield.setFont(new Font("System", Font.BOLD, 16));
                jcheckbox.setBounds(270, 190, 150, 26);
                jtextfield.setBounds(420, 190, 60, 26);
                cp.add(jcheckbox);
                cp.add(jtextfield);

                jcheckbox = new JCheckBox();
                jtextfield = new JTextField(20);
                price = 50;
                jcheckbox.setText("蜜蜂奶茶/" + price + "元");
                jtextfield.setText("0");
                jcheckbox.setFont(new Font("System", Font.BOLD, 18));
                jtextfield.setFont(new Font("System", Font.BOLD, 16));
                jcheckbox.setBounds(270, 220, 150, 26);
                jtextfield.setBounds(420, 220, 60, 26);
                cp.add(jcheckbox);
                cp.add(jtextfield);

                jcheckbox = new JCheckBox();
                jtextfield = new JTextField(20);
                price = 20;
                jcheckbox.setText("烏龍綠茶/" + price + "元");
                jtextfield.setText("0");
                jcheckbox.setFont(new Font("System", Font.BOLD, 18));
                jtextfield.setFont(new Font("System", Font.BOLD, 16));
                jcheckbox.setBounds(510, 40, 150, 26);
                jtextfield.setBounds(660, 40, 60, 26);
                cp.add(jcheckbox);
                cp.add(jtextfield);

                jcheckbox = new JCheckBox();
                jtextfield = new JTextField(20);
                price = 20;
                jcheckbox.setText("錫蘭紅茶/" + price + "元");
                jtextfield.setText("0");
                jcheckbox.setFont(new Font("System", Font.BOLD, 18));
                jtextfield.setFont(new Font("System", Font.BOLD, 16));
                jcheckbox.setBounds(510, 70, 150, 26);
                jtextfield.setBounds(660, 70, 60, 26);
                cp.add(jcheckbox);
                cp.add(jtextfield);

                jcheckbox = new JCheckBox();
                jtextfield = new JTextField(20);
                price = 45;
                jcheckbox.setText("優鮮高山/" + price + "元");
                jtextfield.setText("0");
                jcheckbox.setFont(new Font("System", Font.BOLD, 18));
                jtextfield.setFont(new Font("System", Font.BOLD, 16));
                jcheckbox.setBounds(510, 100, 150, 26);
                jtextfield.setBounds(660, 100, 60, 26);
                cp.add(jcheckbox);
                cp.add(jtextfield);

                jcheckbox = new JCheckBox();
                jtextfield = new JTextField(20);
                price = 45;
                jcheckbox.setText("豆漿牛奶/" + price + "元");
                jtextfield.setText("0");
                jcheckbox.setFont(new Font("System", Font.BOLD, 18));
                jtextfield.setFont(new Font("System", Font.BOLD, 16));
                jcheckbox.setBounds(510, 130, 150, 26);
                jtextfield.setBounds(660, 130, 60, 26);
                cp.add(jcheckbox);
                cp.add(jtextfield);

                jcheckbox = new JCheckBox();
                jtextfield = new JTextField(20);
                price = 40;
                jcheckbox.setText("烏龍奶茶/" + price + "元");
                jtextfield.setText("0");
                jcheckbox.setFont(new Font("System", Font.BOLD, 18));
                jtextfield.setFont(new Font("System", Font.BOLD, 16));
                jcheckbox.setBounds(510, 160, 150, 26);
                jtextfield.setBounds(660, 160, 60, 26);
                cp.add(jcheckbox);
                cp.add(jtextfield);

                jcheckbox = new JCheckBox();
                jtextfield = new JTextField(20);
                price = 45;
                jcheckbox.setText("布丁奶茶/" + price + "元");
                jtextfield.setText("0");
                jcheckbox.setFont(new Font("System", Font.BOLD, 18));
                jtextfield.setFont(new Font("System", Font.BOLD, 16));
                jcheckbox.setBounds(510, 190, 150, 26);
                jtextfield.setBounds(660, 190, 60, 26);
                cp.add(jcheckbox);
                cp.add(jtextfield);

                button = new JButton("送出資料");
                button = new JButton("計算");
                button = new JButton("關閉程式");
                button.setFont(new Font("System", Font.BOLD, 14));
                button.setFont(new Font("System", Font.BOLD, 12));
                button.setFont(new Font("System", Font.BOLD, 14));
                button.setBounds(485 - 3, 220, 100, 26);
                button.setBounds(485 + 100 + 1, 220, 60, 26);
                button.setBounds(485 + 100 + 60 + 5, 220, 100, 26);
                cp.add(button);
                cp.add(button);
                cp.add(button);

                button.addActionListener((ActionEvent e) ->...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div>

www10240mb 發表於 2016-1-2 04:56 PM

有點亂,看不太懂。
是隨便選一項商品10個以上也有打折?Y/N
是隨便選10個以上都有打折?Y/N

假設
椰果奶茶 買 12杯
其他的都各買一杯
你的算法是怎樣的算呢?

h4674156 發表於 2016-1-3 01:48 PM

本帖最後由 h4674156 於 2016-1-3 01:49 PM 編輯

www10240mb 發表於 2016-1-2 04:56 PM static/image/common/back.gif
有點亂,看不太懂。
是隨便選一項商品10個以上也有打折?Y/N
是隨便選10個以上都有打折?Y/N

就是假如椰果奶茶買11杯 會做折扣
或者 椰果奶茶買5杯 紅茶買6杯 兩種杯數相加也會有折扣
當然前提是要有選擇下(勾選)才有辦法折扣
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div>

www10240mb 發表於 2016-1-3 03:01 PM

看看這個是不是你要的結果!

h4674156 發表於 2016-1-6 08:44 PM

本帖最後由 h4674156 於 2016-1-6 11:06 PM 編輯

www10240mb 發表於 2016-1-3 03:01 PM static/image/common/back.gif
看看這個是不是你要的結果!
對 那可以再問您
就是怎麼讓它 假如沒有勾選品項 但是有輸入杯數 他會自動勾選checkbox呢?
例如:我想買2杯紅茶 只有在紅茶的杯數那打2 他所對應的checkbox會自動勾選

目前這樣
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><br><br><br><br><br><div></div>

www10240mb 發表於 2016-1-7 07:14 AM

我照樣拿我的版本修改,因為我之前的以簡單方式寫的,但程式碼會太長。
已有在縮減的原始碼內TEXT有對照你的"目前這樣(原始碼.rar)"進行文字修正了。
新增: 杯數 >= 1,自動勾選該項,若輸入數字以外的數字,顯示錯誤訊息。
修正: 杯數非數字,顯示錯誤訊息。

h4674156 發表於 2016-1-8 01:43 AM

www10240mb 發表於 2016-1-7 07:14 AM static/image/common/back.gif
我照樣拿我的版本修改,因為我之前的以簡單方式寫的,但程式碼會太長。
已有在縮減的原始碼內TEXT有對照你 ...


我使用我的方式 它可以成功執行 但是會跳錯誤...

www10240mb 發表於 2016-1-8 06:54 AM

那是因為我第一開始幫妳寫的版本 我先用Array 長度都設為"99"的關係,二次縮減版本是以明確固定長度,所以你直接將我第二次修的一部分,套用至第一次的能執行,但是長度太多空的,空的沒有new 所以會有錯誤訊息的。

www10240mb 發表於 2016-1-8 06:55 AM

若以上自有打錯請見諒,我打字時,一次打到底 都沒有檢查的。

h4674156 發表於 2016-1-8 02:06 PM

www10240mb 發表於 2016-1-8 06:55 AM static/image/common/back.gif
若以上自有打錯請見諒,我打字時,一次打到底 都沒有檢查的。

好的 謝謝前輩:)
目前問題已經解決<br><br><br><br><br><div></div>

h4674156 發表於 2016-1-9 01:32 AM

www10240mb 發表於 2016-1-8 06:55 AM static/image/common/back.gif
若以上自有打錯請見諒,我打字時,一次打到底 都沒有檢查的。

如果再加上功能列 感覺就更像一個小型訂單程式了:)

www10240mb 發表於 2016-1-9 06:08 AM

恩,但我也只是新手,懂的並不多要+功能表,我就要先學習學習。

www10240mb 發表於 2016-1-9 06:56 AM

我簡單寫了一個 重置 和關閉的 功能表
頁: [1]