-1

私は現在、情報システムの学生であり、プログラミングの最終年度のコースワークを完了する必要があります。私はプログラミングが得意ではなく、最も単純なタスクを実行するためにグーグルとクラスノートに依存しています。

私は、10 個のアイテムを持つ単純なスーパーマーケット アプリケーションを設計するタスクを与えられました。ユーザーはアイテムをクリックし、下部のテキスト ボックスで合計に追加される量/重量を選択します。クリックすると各アイテムが合計に追加されます。

私は貧弱なスキルでできる限りのことをすでに行っていますが、2 つのエラーがあります。

  1. プログラム内の 10 項目に手動で書き込みました。アクセス データベースを介して接続する必要があります。私はこの方法をググったところ、Netbeans がこの機能に大いに役立ち、通常は次のような 1 行だけが必要であることがわかりました。

    DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=d:\test.mdb");

データベースに接続する方法や、Netbeans に接続しているときに情報を抽出または使用する方法がわかりません。

  1. 最初は、一度に 1 つの項目しか選択できないようにプログラムしていました。残りは空白になり、クリックされた項目の合計のみが下のボックスに表示されます。私の人生では、クリックしたときにアイテムを追加する方法がわかりません。単純なSUM関数だと確信していますが、とても混乱しています。

アドバイスをいただければ幸いです。できるだけ簡単に説明してください。私は基本を知っていますが、私の能力は「Hello World」プログラムまでほとんど伸びていません笑


import static javax.swing.JOptionPane.*;
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.text.DecimalFormat;

public class Supermarket1 extends JFrame implements ActionListener {
Connection conn = null;


JButton oneP, twoP, fiveP, tenP, twentyP, fiftyP, onePound, twoPounds, fivePounds,            tenPounds, twentyPounds, fiftyPounds, beans, flakes, sugar, tea, coffee, bread, sausage,   egg, milk, potato;
JLabel messLabel = new JLabel("Amount to pay:  ");
JTextField message = new JTextField(10);
int amount = 0; // payment in pence
DecimalFormat pounds = new DecimalFormat("£0.00");

public static void main(String[] args) {
    Supermarket1 c = new Supermarket1();
    c.setTitle("Supermarket payment simulator");
    c.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    c.setSize(500, 200);
    c.setVisible(true);
}

Supermarket1() {
    setLayout(new BorderLayout());
    oneP = new JButton("1p"); oneP.addActionListener(this);
    twoP = new JButton("2p"); twoP.addActionListener(this);
    fiveP = new JButton("5p"); fiveP.addActionListener(this);
    tenP = new JButton("10p"); tenP.addActionListener(this);
    twentyP = new JButton("20p"); twentyP.addActionListener(this);
    fiftyP = new JButton("50p"); fiftyP.addActionListener(this);
    onePound = new JButton("£1"); onePound.addActionListener(this);
    twoPounds = new JButton("£2"); twoPounds.addActionListener(this);
    fivePounds = new JButton("£5"); fivePounds.addActionListener(this);
    tenPounds = new JButton("£10"); tenPounds.addActionListener(this);
    twentyPounds = new JButton("£20"); twentyPounds.addActionListener(this);
    fiftyPounds = new JButton("£50"); fiftyPounds.addActionListener(this);
    beans = new JButton("Baked Beans"); beans.addActionListener(this);
    flakes = new JButton("Corn Flakes"); flakes.addActionListener(this);
    sugar = new JButton("Sugar"); sugar.addActionListener(this);
    tea = new JButton("Tea Bags"); tea.addActionListener(this);
    coffee = new JButton("Instant Coffee"); coffee.addActionListener(this);
    bread = new JButton("Bread"); bread.addActionListener(this);
    sausage = new JButton("Sausage"); sausage.addActionListener(this);
    egg = new JButton("Egg"); egg.addActionListener(this);
    milk = new JButton("Milk"); milk.addActionListener(this);
    potato = new JButton("Potatoes"); potato.addActionListener(this);

    rightButtons();

    JPanel leftSide = new JPanel();
    leftSide.setLayout(new GridLayout(5, 1));
    leftSide.add(oneP);
    leftSide.add(twoP);
    leftSide.add(fiveP);
    leftSide.add(tenP);
    leftSide.add(twentyP);
    leftSide.add(fiftyP);
    leftSide.add(onePound);
    leftSide.add(twoPounds);
    leftSide.add(fivePounds);
    leftSide.add(tenPounds);
    leftSide.add(twentyPounds);
    leftSide.add(fiftyPounds);
    add("West", leftSide);

    JPanel rightSide = new JPanel();
    rightSide.setLayout(new GridLayout(10, 1));
    rightSide.add(beans);
    rightSide.add(flakes);
    rightSide.add(sugar);
    rightSide.add(tea);
    rightSide.add(coffee);
    rightSide.add(bread);
    rightSide.add(sausage);
    rightSide.add(egg);
    rightSide.add(milk);
    rightSide.add(potato);
    add("East", rightSide);

    JPanel middle = new JPanel();
    middle.setLayout(new FlowLayout());
    middle.add(messLabel);
    message.setEditable(false);
    middle.add(message);
    add("Center", middle);
}

public void actionPerformed(ActionEvent e) {
    if (e.getSource() == beans) { amount = 35; leftButtons(); }
    if (e.getSource() == flakes) { amount = 100; leftButtons(); }
    if (e.getSource() == sugar) { amount = 50; leftButtons(); }
    if (e.getSource() == tea) { amount = 115; leftButtons(); }
    if (e.getSource() == coffee) { amount = 250; leftButtons(); }
    if (e.getSource() == bread) { amount = 50; leftButtons(); }
    if (e.getSource() == sausage) { amount = 130; leftButtons(); }
    if (e.getSource() == egg) { amount = 75; leftButtons(); }
    if (e.getSource() == milk) { amount = 65; leftButtons(); }
    if (e.getSource() == potato) { amount = 125; leftButtons(); }
    if (e.getSource() == oneP) amount -= 1;
    if (e.getSource() == twoP) amount -= 2;
    if (e.getSource() == fiveP) amount -= 5;
    if (e.getSource() == tenP) amount -= 10;
    if (e.getSource() == twentyP) amount -= 20;
    if (e.getSource() == fiftyP) amount -= 50;
    if (e.getSource() == onePound) amount -= 100;
    if (e.getSource() == twoPounds) amount -= 200;
    if (e.getSource() == fivePounds) amount -= 500;
    if (e.getSource() == tenPounds) amount -= 1000;
    if (e.getSource() == twentyPounds) amount -= 2000;
    if (e.getSource() == fiftyPounds) amount -= 5000;

    if (amount > 0) message.setText(pounds.format(amount / 100.0));
    else {
        message.setText("");
        if (amount < 0) {
            int change = -amount;
            showMessageDialog(this, "Your change is "
                + pounds.format(change / 100.0)
                + coins(change),
                "Change", JOptionPane.INFORMATION_MESSAGE);
        } else {
            showMessageDialog(this, "Thank you",
                "Exact amount", JOptionPane.INFORMATION_MESSAGE);
        }
        rightButtons();
    }
}

// enable left buttons, disable right buttons
void leftButtons() {
    oneP.setEnabled(true);
    twoP.setEnabled(true);
    fiveP.setEnabled(true);
    tenP.setEnabled(true);
    twentyP.setEnabled(true);
    fiftyP.setEnabled(true);
    onePound.setEnabled(true);
    twoPounds.setEnabled(true);
    fivePounds.setEnabled(true);
    tenPounds.setEnabled(true);
    twentyPounds.setEnabled(true);
    fiftyPounds.setEnabled(true);
    beans.setEnabled(true);
    flakes.setEnabled(true);
    sugar.setEnabled(true);
    tea.setEnabled(true);
    coffee.setEnabled(true);
    bread.setEnabled(true);
    sausage.setEnabled(true);
    egg.setEnabled(true);
    milk.setEnabled(true);
    potato.setEnabled(true);
}

// enable right buttons, disable left buttons
void rightButtons() {
    oneP.setEnabled(false);
    twoP.setEnabled(false);
    fiveP.setEnabled(false);
    tenP.setEnabled(false);
    twentyP.setEnabled(false);
    fiftyP.setEnabled(false);
    onePound.setEnabled(false);
    twoPounds.setEnabled(false);
    fivePounds.setEnabled(false);
    tenPounds.setEnabled(false);
    twentyPounds.setEnabled(false);
    fiftyPounds.setEnabled(false);
    beans.setEnabled(true);
    flakes.setEnabled(true);
    sugar.setEnabled(true);
    tea.setEnabled(true);
    coffee.setEnabled(true);
    bread.setEnabled(true);
    sausage.setEnabled(true);
    egg.setEnabled(true);
    milk.setEnabled(true);
    potato.setEnabled(true);
}

String coins(int change) {
    String answer = ":";
    if (change >= 5000) {
        answer += "\nOne £50 note";
        change -= 5000;
    }
    if (change >= 4000) {
        answer += "\nTwo £20 notes";
        change -= 4000;
    }
    if (change >= 2000) {
        answer += "\nOne £20 note";
        change -= 2000;
    }
    if (change >= 1000) {
        answer += "\nOne £10 note";
        change -= 1000;
    }
    if (change >= 500) {
        answer += "\nOne £5 note";
        change -= 500;
    }
    if (change >= 400) {
        answer += "\nTwo £2 coin";
        change -= 400;
    }
    if (change >= 200) {
        answer += "\nOne £2 coin";
        change -= 200;
    }
    if (change >= 100) {
        answer += "\nOne £1 coin";
        change -= 100;
    }
    if (change >= 50) {
        answer += "\nOne 50p coin";
        change -= 50;
    }
    if (change >= 40) {
        answer += "\nTwo 20p coins";
        change -= 40;
    }
    if (change >= 20) {
        answer += "\nOne 20p coin";
        change -= 20;
    }
    if (change >= 10) {
        answer += "\nOne 10p coin";
        change -= 10;
    }
    if (change >= 5) {
        answer += "\nOne 5p coin";
        change -= 5;
    }
    if (change >= 4) {
        answer += "\nTwo 2p coin";
        change -= 4;
    }
    if (change >= 2) {
        answer += "\nOne 2p coin";
        change -= 2;
    }
    if (change >= 1) {
        answer += "\nOne 1p coin";
        change -= 1;
    }
    return answer;
}

}

4

3 に答える 3

0

NetBeansは単なるIDEです。NetBeansには何も接続しません。

Javaコードは、Accessデータベースに接続しているものです。

あなたがしているのは、JDBC接続を確立することです。JDBCチュートリアルをお勧めします。

あなたは古典的な学生の過ちを犯しているように聞こえます:不十分な分解。

大きな問題を、処理できる小さな問題に分割することで解決します。

ユーザーインターフェイス、データベースアクセス、およびアプリケーションがすべてここで実行されます。最初にデータベースアクセスから始めることをお勧めします。必要なものを処理するJavaオブジェクトを1つ作成します。徹底的にテストしてから、ユーザーインターフェイスで次のステップに進むために使用します。

于 2013-01-11T14:07:54.983 に答える
0

以下からコードを変更します。

DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=d:\test.mdb");

二重バックスラッシュ ( \\)を使用するには

DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=d:\\test.mdb");
于 2013-03-24T17:56:18.823 に答える
0
public class StudentFunctions  implements StudentInterface
{
    String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=//////URL where your database is located//////";

    String query = "";

    Connection conn;
    Statement s;

@Override
public boolean AddStudent(String name, String age, String contact, String program) {
 try {
     Connection conn = DriverManager.getConnection(database, "", "");
       Statement s = conn.createStatement();
        query ="insert into StudentRecord([stname],[age],[contact],[program])values('"+name+"','"+age+"','"+contact+"','"+program+"')";

        if(s.executeUpdate(query) > 0)
        {
             JOptionPane.showMessageDialog(null,"Record successfully add in database");
            return true;
        } else {
            return false;
        }
 } catch (SQLException ex) {
     JOptionPane.showMessageDialog(null,ex.getMessage());
     Logger.getLogger(StudentFunctions.class.getName()).log(Level.SEVERE, null, ex);
 }

これは、学生記録のプロジェクトへのアクセスを接続したコードです。お役に立てば幸いです。

于 2013-09-22T20:30:15.983 に答える