`

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

    博客分类:
  • J2SE
阅读更多
转载:http://hi.baidu.com/javajavajava/blog
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 = "<html>以下是几种可行方案:<ul>";
        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 += ("<li>公鸡-->" + noOfcocks + " 母鸡-->" + noOfHens
             + " 小鸡-->" + noOfchickens+"</li>");
          }
          resultLabel.setText(resultString+"</ul></html>");
         }
        }

}
}


分享到:
评论

相关推荐

    算法:百钱买百鸡&100;以内质数和

    简单的算法问题:百钱买百鸡以及100以内质数和,java语言实现

    百钱买百鸡JAVA源码

    在编程的世界里,"百钱...总之,"百钱买百鸡"问题的Java源码是学习和练习基本编程技巧的一个好例子。它不仅帮助初学者理解循环和嵌套的使用,还能锻炼他们解决实际问题的能力,从而在编程学习的道路上迈出坚实的步伐。

    用JAVA编程,百钱买百鸡

    ### 百钱买百鸡问题解析与JAVA程序实现 #### 一、问题描述 百鸡百钱问题,作为一道经典的数学应用题,在民间流传已久。题目背景为:假设市场上公鸡的价格是每只3元,母鸡的价格是每只5元,而小鸡则是3只1元。现在的...

    百钱买百鸡项目

    "百钱买百鸡"是经典的数学问题,源自中国古代,也是计算机编程中常见的逻辑与算法练习题。在Java编程学习中,这个问题常被用来教授循环、条件语句以及逻辑推理等基础概念。在这个项目中,我们需要用编程解决如何用...

    求百钱买百鸡 Java代码

    ### 百钱买百鸡问题解析与Java实现 #### 一、问题背景及定义 “百钱买百鸡”是一个经典的数学问题,源自中国古代数学名著《算经》,该问题的大意是:假设一个人有100元钱,需要用这些钱购买100只鸡,其中公鸡每只5...

    百钱买百鸡

    通过这样的编程实现,我们可以得到所有可能的购买方案,从而解决了"百钱买百鸡"的问题。这不仅锻炼了我们的编程技巧,也让我们理解了如何运用计算机解决问题,特别是在面对约束条件下的优化问题时。在实际开发中,...

    100元买100只鸡问题

    ### 100元买100只鸡问题解析 #### 背景介绍 “100元买100只鸡”的问题是数学与计算机科学领域中的一个经典问题,通常用于教学逻辑思维、编程技巧以及算法优化等方面。这个问题不仅考验了人们的数学能力,还考验了...

    ja va 经典面试题

    根据提供的信息,我们可以总结出以下相关的IT知识点: ### 1. Java Swing GUI编程基础 ...此外,百钱买百鸡问题本身也是一个经典的数学问题,在这里通过编程的方式呈现出来,有助于加深对编程逻辑的理解。

    百鸡百钱java程序

    ### 百鸡百钱问题Java实现解析 #### 一、问题背景及定义 “百鸡百钱”问题是一个经典的数学问题,在中国古代数学史上有悠久的历史。该问题的主要内容是:用100文钱购买100只鸡,其中公鸡每只5文,母鸡每只3文,...

    Java50道经典题目

    - **知识点**: 百钱买百鸡是中国古代著名的数学问题之一,涉及组合优化。 - **实现方法**: - 通过穷举法尝试所有可能的组合。 #### 11. 数字反转 - **知识点**: 反转一个数字是字符串处理的基础应用。 - **实现...

    Java逻辑基础题4-for循环-答案.docx

    - 练习14的搬砖问题和练习13的百钱买百鸡问题属于线性规划问题,可以通过穷举和条件判断找到解决方案。 8. **输出控制** - 输出图形时,通常使用`System.out.print()`来不换行输出,而`System.out.println()`会在...

    山东大学Java编程技术实验报告

    5、编程实现“百钱买百鸡”问题。 6、一个整数的各位数字之和能被9整除,则该数也能被9整除。验证这个定理的正确性。 1. 通过编写程序学习抽象类、继承和接口的概念,并在实现过程中总结体会。 2. 通过观察提供的...

    Java常见期末考试题.doc

    - **百钱买百鸡问题**:鸡兔同笼问题的变种,需要根据鸡、兔子的价格和数量限制来解。 - **猴子摘桃问题**:这是关于逆向思维和等比数列的问题,可以通过求解等比数列的通项公式来确定初始桃子数量。 2. **面向...

    JAVA基础阶段趣味检测-0.doc

    3. **百钱买百鸡**: 这是一个经典的数学问题,可以通过穷举法或动态规划解决。我们需要创建三个变量分别代表公鸡、母鸡和小鸡的数量,并在满足总金额100元的条件下找到所有可能的组合。可以使用嵌套循环来实现,每...

    关于Java中流程控制的复习

    2. **百钱买百鸡问题**:通过三重或双重循环实现,模拟不同的鸡、鸭、鹅组合。 3. **九九乘法表**:使用双重循环打印乘法表,外层循环控制行,内层循环控制列。 **多重循环下的控制语句**: 在多重循环中,`break`...

    JAVA算法训练题目.pdf

    1. **百钱买百鸡问题**: 这是一个经典的数学问题,可以通过使用穷举法或者动态规划解决。设定三个变量表示公鸡、母鸡和鸡仔的数量,然后通过遍历所有可能的组合,找到满足条件的解。需要注意边界条件和优化搜索空间...

    2021编程培训实习总结.docx

    学习过程中,学员们遇到了一些挑战,如“百钱买百鸡”问题,这涉及逻辑思维和编程算法的应用。此外,通过数组的学习,学员们了解到如何用Java实现双色球号码的随机生成,进一步理解了数组在实际问题中的运用。最后,...

    编程培训实习总结.pdf

    在这个过程中,学员们面临了许多挑战,例如经典的“百钱买百鸡”问题,通过解决这类问题,不仅锻炼了编程能力,也提升了问题解决技巧。 在技术学习阶段,学员们通过数组、面向对象编程等实际案例进行深入学习,例如...

    编程培训实习总结范文.docx

    在学习过程中,我们遇到并解决了一些有趣的编程问题,如“百钱买百鸡”的问题,这锻炼了我们运用编程思维解决问题的能力。此外,我们通过数组实现双色球生成器,进一步理解了数组的应用,最后通过编写贪吃蛇游戏,...

Global site tag (gtag.js) - Google Analytics