百钱买百鸡问题java_百钱买百鸡问题--java 实现

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.*;

import javax.swing.border.Border;

public class ChickenProgram extends JFrame implements ActionListener {

private static final long serialVersionUID = 1L;

private static final int PRICE_PER_COCK = 5; // 公鸡5元钱一只

private static final int PRICE_PER_HEN = 3; // 母鸡3元钱一只

private static final int PRICE_THREE_CHICKENS = 1; // 小鸡1元钱三只

private static final double TOTAL_MONEY = 100;

private static final int NO_OF_CHOOKS = 100; // 总的鸡数量

JPanel panel1, panel2;

JLabel resultLabel;

public ChickenProgram() {

Container contentPane = getContentPane();

contentPane.setLayout(new BorderLayout());

panel1=new JPanel();

panel1.setLayout(new GridLayout(1,3));

panel2=new JPanel();

panel2.setLayout(new BorderLayout());

JLabel cockLabel, henLabel, chickenLabel;

cockLabel = new JLabel("每只公鸡:" + PRICE_PER_COCK + "元");

henLabel = new JLabel("每只母鸡:" + PRICE_PER_HEN + "元");

chickenLabel = new JLabel("小鸡:" + PRICE_THREE_CHICKENS + "元钱三只");

JButton calculateButton = new JButton("解答");

calculateButton.addActionListener(this);

JPanel smallPanel=new JPanel();

smallPanel.add(calculateButton);

JButton exitButton=new JButton("退出");

smallPanel.add(exitButton);

exitButton.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e){

System.exit(0);

}

});

String question = "问题:"+TOTAL_MONEY + "元钱买" + NO_OF_CHOOKS

+ "只鸡,问公鸡、母鸡、小鸡各买多少只?";

JLabel questionLabel = new JLabel(question);

Border border1=BorderFactory.createTitledBorder("鸡的价格");

Border border2=BorderFactory.createTitledBorder(question);

resultLabel = new JLabel("");

panel1.add(cockLabel);

panel1.add(henLabel);

panel1.add(chickenLabel);

panel1.setBorder(border1);

panel2.setBorder(border2);

// panel2.add(questionLabel);

panel2.add(smallPanel,BorderLayout.SOUTH);

panel2.add(resultLabel);

contentPane.add(panel1,BorderLayout.NORTH);

contentPane.add(panel2,BorderLayout.CENTER);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public static void main(String args[]) {

ChickenProgram frame = new ChickenProgram();

frame.setTitle("百钱买百鸡问题");

frame.setVisible(true);

frame.setSize(500, 300);

}

public void actionPerformed(ActionEvent e) {

String resultString = "以下是几种可行方案:

  • ";

int noOfcocks, noOfHens, noOfchickens;

for (noOfcocks = 0; noOfcocks <= TOTAL_MONEY / PRICE_PER_COCK; noOfcocks++) {

for (noOfHens = 0; noOfHens <= TOTAL_MONEY / PRICE_PER_HEN; noOfHens++) {

noOfchickens = NO_OF_CHOOKS - noOfcocks - noOfHens;

if (PRICE_PER_COCK * noOfcocks + PRICE_PER_HEN * noOfHens

+ noOfchickens * (PRICE_THREE_CHICKENS / 3.0) == TOTAL_MONEY){

resultString += ("

公鸡-->" + noOfcocks + " 母鸡-->" + noOfHens

+ " 小鸡-->" + noOfchickens+"

");

}

resultLabel.setText(resultString+"

");

}

}

}

}

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2009-03-23 17:30

浏览 1865

评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值