~这些年,我们一起学过的java~12~小学期程序设计之生理周期问题

       今天解决了生理周期的计算问题,赶脚自己真心特别粗心,for循环里面最开始居然写错了字母,然后好久都改不出bug,因为l成了i,很像有木有!好吧,这不能作为自己粗心的一万个理由,嘿嘿,话不多说,等下还要看步步高电商的哥哥姐姐过来分享招人嘞,我先把题目奉上:

问题描述

       人生来就有三个生理周期,分别为体力、感情和智力周期,它们的周期长度为23天、28 天和33 天。每一个周期中有一天是高峰。在高峰这天,人会在相应的方面表现出色。例如,智力周期的高峰,人会思维敏捷,精力容易高度集中。因为三个周期的周长不同,所以通常三个周期的高峰不会落在同一天。对于每个人,我们想知道何时三个高峰落在同一天。

        对于每个周期,我们会给出从当前年份的第一天开始,到出现高峰的天数(不一定是第一次高峰出现的时间)。你的任务是给定一个从当年第一天开始数的天数,输出从给定时间开始(不包括给定时间)下一次三个高峰落在同一天的时间(距给定时间的天数)。例如:给定时间为10,下次出现三个高峰同天的时间是12,则输出2(注意这里不是3)。

输入数据

输入四个整数:p,e, i 和d。 p, e, i 分别表示体力、情感和智力高峰出现的时间(时间从当年的第一天开始计算)。d是给定的时间,可能小于p,e, 或i。 所有给定时间是非负的并且小于365, 所求的时间小于等于21252。

输出要求

从给定时间起,下一次三个高峰同天的时间(距离给定时间的天数)。

输入样例

0 0 0 0

0 0 0 100

5 20 34 325

4 5 6 7

283 102 23 320

203 301 203 40

-1 -1 -1 -1

输出样例

Case 1: the next triple peak occursin 21252 days.

Case 2: the next triple peak occursin 21152 days.

Case 3: the next triple peak occursin 19575 days.

Case 4: the next triple peak occursin 16994 days.

Case 5: the next triple peak occursin 8910 days.

Case 6: the next triple peak occursin 10789 days.

 

 

然后,我的代码运行之后的结果是这样滴,看下有木有比昨天的界面会好看一些……

 

 

然后以下就是俺今天上午敲的代码:

import java.awt.Color;
import java.awt.Font;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class PeakP extends JFrame{
	MyListener l;
	public static void main(String[] args) {
		PeakP pp=new PeakP();
		pp.GUI();
		
	}
	public void GUI(){
		this.setTitle("生  理  周  期");
		this.setSize(700, 550);
		this.setLocation(300, 50);
		this.setDefaultCloseOperation(3);
		this.setLayout(null);
		JPanel jp1=new JPanel();
		jp1.setBounds(0, 0, 200, 600);
		jp1.setBackground(Color.white);
		
		ImageIcon im3=new ImageIcon(this.getClass().getResource("3.jpg"));
		this.setIconImage(im3.getImage());
		
		ImageIcon im2=new ImageIcon(this.getClass().getResource("2.PNG"));
		JLabel jl2 =new JLabel(im2);
		jl2.setBounds(0, 20, im2.getIconWidth(), im2.getIconHeight());
		jp1.add(jl2);
		
		JPanel jp2=new JPanel();
		jp2.setBounds(200,0,500,600);
		jp2.setLayout(null);
		
		ImageIcon im1=new ImageIcon(this.getClass().getResource("1.PNG"));
		JLabel jl1 =new JLabel(im1);
		jl1.setBounds(0, 5, im1.getIconWidth(), im1.getIconHeight());
		jp2.add(jl1);
		
		JLabel jl3=new JLabel("请输入体力高峰的时间:");
		jl3.setFont(new Font("楷体", 3, 18));
		jl3.setBounds(10, 190, 230, 30);
		JLabel jl4=new JLabel("请输入情感高峰的时间:");
		jl4.setFont(new Font("楷体", 3, 18));
		jl4.setBounds(10, 240, 230, 30);
		JLabel jl5=new JLabel("请输入智商高峰的时间:");
		jl5.setFont(new Font("楷体", 3, 18));
		jl5.setBounds(10, 290, 230, 30);
		JLabel jl6=new JLabel("请输入你想给定的时间:");
		jl6.setFont(new Font("楷体", 3, 18));
		jl6.setBounds(10, 340, 230, 30);
		
		
		JTextField jt1=new JTextField();
		jt1.setFont(new Font("楷体", 2, 18));
		jt1.setBounds(225, 190, 200, 30);
		jt1.setHorizontalAlignment((int) CENTER_ALIGNMENT);
		
		JTextField jt2=new JTextField();
		jt2.setFont(new Font("楷体", 2, 18));
		jt2.setBounds(225, 240, 200, 30);
		jt2.setHorizontalAlignment((int) CENTER_ALIGNMENT);
		
		JTextField jt3=new JTextField();
		jt3.setFont(new Font("楷体", 2, 18));
		jt3.setBounds(225, 290, 200, 30);
		jt3.setHorizontalAlignment((int) CENTER_ALIGNMENT);
		
		JTextField jt4=new JTextField();
		jt4.setFont(new Font("楷体", 2, 18));
		jt4.setBounds(225, 340, 200, 30);
		jt4.setHorizontalAlignment((int) CENTER_ALIGNMENT);
		
		
		JLabel jl7=new JLabel("结果:");
		jl7.setBounds(10, 395,70, 20);
		jl7.setFont(new Font("楷体", 3, 20));
		
		JLabel jl8=new JLabel("");
		jl8.setBounds(80, 395,350, 20);
		jl8.setFont(new Font("楷体", 2, 16));
		
		JButton jb1=new JButton("开始查询");
		jb1.setBounds(60, 440, 120, 40);
		jb1.setFont(new Font("楷体", 1, 16));
		
		JButton jb2=new JButton("重新查询");
		jb2.setBounds(250, 440, 120, 40);
		jb2.setFont(new Font("楷体", 1, 16));
		
		jp2.add(jl3);
		jp2.add(jl4);
		jp2.add(jl5);
		jp2.add(jl6);
		jp2.add(jl7);
		jp2.add(jl8);
		
		jp2.add(jb1);
		jp2.add(jb2);
		
		jp2.add(jt1);
		jp2.add(jt2);
		jp2.add(jt3);
		jp2.add(jt4);
		
		this.add(jp1);
		this.add(jp2);
		l=new MyListener(jt1,jt2,jt3,jt4,jl8,jb1,jb2);
		jb1.addActionListener(l);
		jb2.addActionListener(l);
		
		this.setVisible(true);
	}

}


 


  

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class MyListener implements ActionListener{
	
	JTextField jt[];
	JButton jb1,jb2;
	JLabel jl8;
	int p[];
	public MyListener(JTextField jt1,JTextField jt2,JTextField jt3,JTextField jt4,JLabel jl8,JButton jb1,JButton jb2){
		jt=new JTextField[]{jt1,jt2,jt3,jt4};
		this.jl8=jl8;
		this.jb1=jb1;
		this.jb2=jb2;
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		int p[]=new int[]{0,0,0,0};
		if(("开始查询").equals(e.getActionCommand())){
			for(int i=0;i<4;i++){
			 p[i]=Integer.parseInt(jt[i].getText());
			}
			draw(p[0],p[1],p[2],p[3]);
		}
		if(("重新查询").equals(e.getActionCommand())){
			for(int i=0;i<4;i++){
				jt[i].setText("");
				jl8.setText("");
			}
		}
	}
	public void draw(int p,int e,int i,int d){
		int s=0;
	      for(int l=1;l<=22000;l++){
	             
	            if((l-p)%23==0&&(l-e)%28==0&&(l-i)%33==0){
	                 s=l-d;
	                 
	                 break;
	            }
	      }
	      jl8.setText("the next triple peak occurs in "+s+" day.");
	}
}


       好啦,最近虽然没有上什么新内容,但是在做学校要求的习题的时候,感觉态度上改变了很多,很开心自己能轻松高兴地面对这些,而不是像以前一样皱着眉头抄着伙伴的代码……

        还有就是总结下自己今天犯的坑爹错,下次设变量的时候尽量不设长得像的字母,吃一堑长一智吧……

 

        总之,有进步就是好事哈……么么哒!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值