今天解决了生理周期的计算问题,赶脚自己真心特别粗心,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.");
}
}
好啦,最近虽然没有上什么新内容,但是在做学校要求的习题的时候,感觉态度上改变了很多,很开心自己能轻松高兴地面对这些,而不是像以前一样皱着眉头抄着伙伴的代码……
还有就是总结下自己今天犯的坑爹错,下次设变量的时候尽量不设长得像的字母,吃一堑长一智吧……
总之,有进步就是好事哈……么么哒!