自己编写的计算器

此仅为自己学习之用,欢迎各位朋友批评指正,谢谢。

package cal.test;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class CalTest extends JFrame implements ActionListener
{
 private static final long serialVersionUID = 1L;
 private JPanel jContentPane = null;
 private JTextField tf = null;
 private JButton Backspace = null;
 private JButton clear = null;
 private JButton bt7 = null;
 private JButton bt8 = null;
 private JButton bt9 = null;
 private JButton bt11 = null;
 private JButton sqrt = null;
 private JButton bt4 = null;
 private JButton bt5 = null;
 private JButton bt6 = null;
 private JButton bt12 = null;
 private JButton bt13 = null;
 private JButton bt1 = null;
 private JButton bt2 = null;
 private JButton bt3 = null;
 private JButton bt14 = null;
 private JButton jButton = null;
 private JButton bt15 = null;
 private JButton bt0 = null;
 private JButton bt16 = null;
 private JButton bt17 = null;
 private JButton bt18 = null;
 private JButton bt19 = null;
 
 
 boolean com=false;//用来判断是否点击过"+-*/"
 boolean rs=false;//是否点击过'='
 boolean qm=false;//取模
 int flag=0;
 int i=0;
 String beforeNum="";  //  @jve:decl-index=0:
 String afterNum="";  //  @jve:decl-index=0:
 
 private JTextField getTf()
 {
  if (tf == null)
  {
   tf = new JTextField();
   tf.setBounds(new Rectangle(5, 3, 283, 24));
  }
  return tf;
 }

 private JButton getBackspace() {
  if (Backspace == null) {
   Backspace = new JButton();
   Backspace.setBounds(new Rectangle(35, 41, 80, 28));
   Backspace.setText("C");
   Backspace.setForeground(Color.RED);
   Backspace.setFont(new Font("",Font.BOLD,15));
   Backspace.addActionListener(this);
  }
  return Backspace;
 }

 private JButton getClear() {
  if (clear == null) {
   clear = new JButton();
   clear.setBounds(new Rectangle(150, 41, 110, 28));
   clear.setText("Backspace");
   clear.setForeground(Color.RED);
   clear.setFont(new Font("",Font.BOLD,15));
   clear.addActionListener(this);
  }
  return clear;
 }

 private JButton getBt7() {
  if (bt7 == null) {
   bt7 = new JButton();
   bt7.setBounds(new Rectangle(3, 83, 53, 30));
   bt7.setText("7");
   bt7.setForeground(Color.BLUE);
   bt7.setFont(new Font("",Font.BOLD,15));
   bt7.addActionListener(this);
  }
  return bt7;
 }

 private JButton getBt8() {
  if (bt8 == null) {
   bt8 = new JButton();
   bt8.setBounds(new Rectangle(59, 83, 53, 30));
   bt8.setText("8");
   bt8.setForeground(Color.BLUE);
   bt8.setFont(new Font("",Font.BOLD,15));
   bt8.addActionListener(this);
  }
  return bt8;
 }

 private JButton getBt9() {
  if (bt9 == null) {
   bt9 = new JButton();
   bt9.setBounds(new Rectangle(117, 83, 53, 30));
   bt9.setText("9");
   bt9.setForeground(Color.BLUE);
   bt9.setFont(new Font("",Font.BOLD,15));
   bt9.addActionListener(this);
  }
  return bt9;
 }

 private JButton getBt11() {
  if (bt11 == null) {
   bt11 = new JButton();
   bt11.setBounds(new Rectangle(175, 83, 53, 30));
   bt11.setText("/");
   bt11.setForeground(Color.RED);
   bt11.setFont(new Font("",Font.BOLD,15));
   bt11.addActionListener(this);
  }
  return bt11;
 }

 private JButton getSqrt() {
  if (sqrt == null) {
   sqrt = new JButton();
   sqrt.setBounds(new Rectangle(233, 83, 53, 30));
   sqrt.setText("sqrt");
   sqrt.setForeground(Color.BLUE);
   sqrt.addActionListener(this);
   //sqrt.setFont(new Font("",Font.BOLD,10));
  }
  return sqrt;
 }

 private JButton getBt4() {
  if (bt4 == null) {
   bt4 = new JButton();
   bt4.setBounds(new Rectangle(3, 125, 53, 30));
   bt4.setText("4");
   bt4.setForeground(Color.BLUE);
   bt4.setFont(new Font("",Font.BOLD,15));
   bt4.addActionListener(this);
  }
  return bt4;
 }

 private JButton getBt5() {
  if (bt5 == null) {
   bt5 = new JButton();
   bt5.setBounds(new Rectangle(59, 125, 53, 30));
   bt5.setText("5");
   bt5.setForeground(Color.BLUE);
   bt5.setFont(new Font("",Font.BOLD,15));
   bt5.addActionListener(this);
  }
  return bt5;
 }

 private JButton getBt6() {
  if (bt6 == null) {
   bt6 = new JButton();
   bt6.setBounds(new Rectangle(117, 125, 53, 30));
   bt6.setText("6");
   bt6.setForeground(Color.BLUE);
   bt6.setFont(new Font("",Font.BOLD,15));
   bt6.addActionListener(this);
  }
  return bt6;
 }

 private JButton getBt12() {
  if (bt12 == null) {
   bt12 = new JButton();
   bt12.setBounds(new Rectangle(175, 125, 53, 30));
   bt12.setText("*");
   bt12.setForeground(Color.RED);
   bt12.setFont(new Font("",Font.BOLD,18));
   bt12.addActionListener(this);
  }
  return bt12;
 }

 private JButton getBt13() {
  if (bt13 == null) {
   bt13 = new JButton();
   bt13.setBounds(new Rectangle(233, 125, 53, 30));
   bt13.setText("%");
   bt13.setForeground(Color.BLUE);
   bt13.setFont(new Font("",Font.BOLD,15));
   bt13.addActionListener(this);
  }
  return bt13;
 }

 private JButton getBt1() {
  if (bt1 == null) {
   bt1 = new JButton();
   bt1.setBounds(new Rectangle(3, 167, 53, 30));
   bt1.setText("1");
   bt1.setForeground(Color.BLUE);
   bt1.setFont(new Font("",Font.BOLD,15));
   bt1.addActionListener(this);
  }
  return bt1;
 }

 private JButton getBt2() {
  if (bt2 == null) {
   bt2 = new JButton();
   bt2.setBounds(new Rectangle(59, 167, 53, 30));
   bt2.setText("2");
   bt2.setForeground(Color.BLUE);
   bt2.setFont(new Font("",Font.BOLD,15));
   bt2.addActionListener(this);
  }
  return bt2;
 }

 private JButton getBt3() {
  if (bt3 == null) {
   bt3 = new JButton();
   bt3.setBounds(new Rectangle(117, 167, 53, 30));
   bt3.setText("3");
   bt3.setForeground(Color.BLUE);
   bt3.setFont(new Font("",Font.BOLD,15));
   bt3.addActionListener(this);
  }
  return bt3;
 }

 private JButton getBt14() {
  if (bt14 == null) {
   bt14 = new JButton();
   bt14.setBounds(new Rectangle(175, 167, 53, 30));
   bt14.setText("-");
   bt14.setForeground(Color.RED);
   bt14.setFont(new Font("",Font.BOLD,18));
   bt14.addActionListener(this);
  }
  return bt14;
 }

 private JButton getJButton() {
  if (jButton == null) {
   jButton = new JButton();
   jButton.setBounds(new Rectangle());
   jButton.setText("1/x");
   jButton.addActionListener(this);
  }
  return jButton;
 }
 
 private JButton getBt15() {
  if (bt15 == null) {
   bt15 = new JButton();
   bt15.setBounds(new Rectangle(233, 167, 53, 30));
   bt15.setText("1/x");
   bt15.setForeground(Color.BLUE);
   bt15.setFont(new Font("",Font.BOLD,15));
   bt15.addActionListener(this);
  }
  return bt15;
 }

 private JButton getBt0() {
  if (bt0 == null) {
   bt0 = new JButton();
   bt0.setBounds(new Rectangle(3, 209, 53, 30));
   bt0.setText("0");
   bt0.setForeground(Color.BLUE);
   bt0.setFont(new Font("",Font.BOLD,15));
   bt0.addActionListener(this);
  }
  return bt0;
 }

 private JButton getBt16() {
  if (bt16 == null) {
   bt16 = new JButton();
   bt16.setBounds(new Rectangle(59, 209, 53, 30));
   bt16.setText("+/-");
   bt16.setForeground(Color.BLUE);
   bt16.setFont(new Font("",Font.BOLD,15));
   bt16.addActionListener(this);
  }
  return bt16;
 }

 private JButton getBt17() {
  if (bt17 == null) {
   bt17 = new JButton();
   bt17.setBounds(new Rectangle(117, 209, 53, 30));
   bt17.setText(".");
   bt17.setForeground(Color.BLUE);
   bt17.setFont(new Font("",Font.BOLD,18));
   bt17.addActionListener(this);
  }
  return bt17;
 }

 private JButton getBt18() {
  if (bt18 == null) {
   bt18 = new JButton();
   bt18.setBounds(new Rectangle(175, 209, 53, 30));
   bt18.setText("+");
   bt18.setForeground(Color.RED);
   bt18.setFont(new Font("",Font.BOLD,15));
   bt18.addActionListener(this);
  }
  return bt18;
 }

 private JButton getBt19() {
  if (bt19 == null) {
   bt19 = new JButton();
   bt19.setBounds(new Rectangle(233, 209, 53, 30));
   bt19.setText("=");
   bt19.setForeground(Color.RED);
   bt19.setFont(new Font("",Font.BOLD,15));
   bt19.addActionListener(this);
  }
  return bt19;
 }

 public static void main(String[] args)
 {
  // TODO Auto-generated method stub
  SwingUtilities.invokeLater(new Runnable()
  {
   public void run()
   {
    CalTest thisClass = new CalTest();
    thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    thisClass.setVisible(true);
   }
  });
 }

 public CalTest()
 {
  super();
  initialize();
  this.setResizable(false);
 }
 
 private void initialize()
 {
  this.setSize(296, 284);
  this.setContentPane(getJContentPane());
  this.setTitle("计算器");
  Dimension screenSize=Toolkit.getDefaultToolkit().getScreenSize();
  Dimension frameSize=this.getSize();
  if(frameSize.width>screenSize.width)
  {
   frameSize.width=screenSize.width;
  }
  if(frameSize.height>screenSize.height)
  {
   frameSize.height=screenSize.height;
  }
  this.setLocation((screenSize.width-frameSize.width)/5, (screenSize.width-frameSize.width)/5);
  tf.setHorizontalAlignment(JTextField.RIGHT);//使数字从右边显示
  tf.setEditable(false);
  tf.setText("0.");
 }

 private JPanel getJContentPane() {
  if (jContentPane == null) {
   jContentPane = new JPanel();
   jContentPane.setLayout(null);
   jContentPane.add(getTf(), null);
   jContentPane.add(getBackspace(), null);
   jContentPane.add(getClear(), null);
   jContentPane.add(getBt7(), null);
   jContentPane.add(getBt8(), null);
   jContentPane.add(getBt9(), null);
   jContentPane.add(getBt11(), null);
   jContentPane.add(getSqrt(), null);
   jContentPane.add(getBt4(), null);
   jContentPane.add(getBt5(), null);
   jContentPane.add(getBt6(), null);
   jContentPane.add(getBt12(), null);
   jContentPane.add(getBt13(), null);
   jContentPane.add(getBt1(), null);
   jContentPane.add(getBt2(), null);
   jContentPane.add(getBt3(), null);
   jContentPane.add(getBt14(), null);
   jContentPane.add(getJButton(), null);
   jContentPane.add(getBt15(), null);
   jContentPane.add(getBt0(), null);
   jContentPane.add(getBt16(), null);
   jContentPane.add(getBt17(), null);
   jContentPane.add(getBt18(), null);
   jContentPane.add(getBt19(), null);
  }
  return jContentPane;
 }
 
 public void actionPerformed(ActionEvent e)
 {
  //变量com为true点击过"+-*/",反之变量com为false没有点击过"+-*/"
  //数字键1
  if(e.getSource()==bt1)
  {
   if(com)
   {
    if(tf.getText().trim().equals("0."))
    {
     tf.setText("1");
     com=false;
    }
    else
    {
     tf.setText(tf.getText().trim()+"1");
    }
   }
   else
   {
    if(tf.getText().trim().equals("0."))
    {
     tf.setText("1");
    }
    else
    {
     tf.setText(tf.getText().trim()+"1");
    }
   }
  }
  //数字键2
  else if(e.getSource()==bt2)
  {
   if(com==true)
   {
    tf.setText(tf.getText().trim()+"2");
   }
   else
   {
    if(tf.getText().trim().equals("0."))
    {
     tf.setText("2");
    }
    else
    {
     tf.setText(tf.getText().trim()+"2");
    }
   }
  }
  //数字键3
  else if(e.getSource()==bt3)
  {
   if(com==true)
   {
    tf.setText(tf.getText().trim()+"3");
   }
   else
   {
    if(tf.getText().trim().equals("0."))
    {
     tf.setText("3");
    }
    else
    {
     tf.setText(tf.getText().trim()+"3");
    }
   }
  }
  //数字键4
  else if(e.getSource()==bt4)
  {
   if(com)
   {
    tf.setText(tf.getText().trim()+"4");
   }
   else
   {
    if(tf.getText().trim().equals("0."))
    {
     tf.setText("3");
    }
    else
    {
     tf.setText(tf.getText().trim()+"4");
    }
   }
  }
  //数字键5
  else if(e.getSource()==bt5)
  {
   if(com)
   {
    tf.setText(tf.getText().trim()+"5");
   }
   else
   {
    if(tf.getText().trim().equals("0."))
    {
     tf.setText("5");
    }
    else
    {
     tf.setText(tf.getText().trim()+"5");
    }
   }
  }
  //数字键6
  else if(e.getSource()==bt6)
  {
   if(com)
   {
    tf.setText(tf.getText().trim()+"6");
   }
   else
   {
    if(tf.getText().trim().equals("0."))
    {
     tf.setText("6");
    }
    else
    {
     tf.setText(tf.getText().trim()+"6");
    }
   }
  }
  //数字键7
  else if(e.getSource()==bt7)
  {
   if(com)
   {
    tf.setText(tf.getText().trim()+"7");
   }
   else
   {
    if(tf.getText().trim().equals("0."))
    {
     tf.setText("7");
    }
    else
    {
     tf.setText(tf.getText().trim()+"7");
    }
   }
  }
  //数字键8
  else if(e.getSource()==bt8)
  {
   if(com)
   {
    tf.setText(tf.getText().trim()+"8");
   }
   else
   {
    if(tf.getText().trim().equals("0."))
    {
     tf.setText("8");
    }
    else
    {
     tf.setText(tf.getText().trim()+"8");
    }
   }
  }
  //数字键9
  else if(e.getSource()==bt9)
  {
   if(com)
   {
    tf.setText(tf.getText().trim()+"9");
   }
   else
   {
    if(tf.getText().trim().equals("0."))
    {
     tf.setText("9");
    }
    else
    {
     tf.setText(tf.getText().trim()+"9");
    }
   }
  }
  //数字键0
  else if(e.getSource()==bt0)
  {
   if(tf.getText().trim().equals("0."))
   {}
   else
   {
    tf.setText(tf.getText().trim()+"0");
   }
  }
  //运算符+
  else if(e.getSource()==bt18)
  {
   if(com==true)
   {}
   else
   {
    beforeNum=tf.getText().trim();
    tf.setText(tf.getText().trim()+"+");
    com=true;
    flag=1;
   }
  }
  //运算符-
  else if(e.getSource()==bt14)
  {
   if(com==true)
   {}
   else
   {
    beforeNum=tf.getText().trim();
    tf.setText(tf.getText().trim()+"-");
    flag=2;
    com=true;
   }
  }
  //运算符*
  else if(e.getSource()==bt12)
  {
   if(com==true)
   {}
   else
   {
    beforeNum=tf.getText().trim();
    tf.setText(tf.getText().trim()+"*");
    flag=3;
    com=true;
   }
  }
  //运算符/
  else if(e.getSource()==bt11)
  {
   if(com==true)
   {}
   else
   {
    beforeNum=tf.getText().trim();
    tf.setText(tf.getText().trim()+"/");
    flag=4;
    com=true;
   }
  }
  //运算符%
  else if(e.getSource()==bt13)
  {
   tf.setText(tf.getText().trim()+"%");
   qm=true;
  }
  //运算符1/x
  else if(e.getSource()==bt15)
  {
   if(com==false&&rs==false)
   {
    double d=Double.valueOf(tf.getText().trim());
    tf.setText(String.valueOf(1/d));
   }
  }
  //运算符sqrt
  else if(e.getSource()==sqrt)
  {
   if(com==false&&rs==false)
   {
    double d=Double.valueOf(tf.getText().trim());
    tf.setText(String.valueOf(Math.sqrt(d)));
   }
  }
  //退格
  else if(e.getSource()==clear)
  {
   if(tf.getText().trim().length()<1)
   {
    tf.setText("0.");
   }
   else
   {
    if(tf.getText().trim().equals("0."))
    {
     tf.setText("0.");
    }
    else
    {
     tf.setText(tf.getText().trim().substring(0, tf.getText().trim().length()-1));
    }
    if(tf.getText().trim().indexOf('=')==-1)
    {
     rs=false;
    }
    if(tf.getText().trim().indexOf('+')==-1)
    {
     com=false;
    }
    else
    {
     com=true;
    }
    if(tf.getText().trim().indexOf('-')==-1)
    {
     com=false;
    }
    else
    {
     com=true;
    }
    if(tf.getText().trim().indexOf('*')==-1)
    {
     com=false;
    }
    else
    {
     com=true;
    }
    if(tf.getText().trim().indexOf('/')==-1)
    {
     com=false;
    }
    else
    {
     com=true;
    }
    if(tf.getText().trim().indexOf('%')==-1)
    {
     qm=false;
    }
    else
    {
     qm=true;
    }
   }
  }
  else if(e.getSource()==Backspace)
  {
   //清除文本框中的全部内容
   tf.setText("0.");
   com=false;
   rs=false;
   qm=false;
  }
  //运算符+/-
  else if(e.getSource()==bt16)
  {
   if(com==false&&rs==false&&qm==false)
   {
    String str=tf.getText().trim();
    double d=Double.parseDouble(str);
    if(d>0)
    {
     tf.setText(String.valueOf(-d));
    }
    else
    {
     tf.setText(String.valueOf(Math.abs(-d)));
    }
   }
  }
  //运算符"."
  else if(e.getSource()==bt17)
  {
   //如果点击过"+-*/"
   if(com==true)
   {
    int index=0;
    if(flag==1)//点击'+'
    {
     index=tf.getText().trim().indexOf('+');
     String str=tf.getText().trim().substring(index);
     if(str.indexOf('.')==-1)
     {
      tf.setText(tf.getText().trim()+".");
     }
    }
    else if(flag==2)//点击'-'
    {
     index=tf.getText().trim().indexOf('-');
     String str=tf.getText().trim().substring(index);
     if(str.indexOf('.')==-1)
     {
      tf.setText(tf.getText().trim()+".");
     }
    }
    else if(flag==3)//点击'*'
    {
     index=tf.getText().trim().indexOf('*');
     String str=tf.getText().trim().substring(index);
     if(str.indexOf('.')==-1)
     {
      tf.setText(tf.getText().trim()+".");
     }
    } 
    else if(flag==4)//点击'/'
    {
     index=tf.getText().trim().indexOf('/');
     String str=tf.getText().trim().substring(index);
     if(str.indexOf('.')==-1)
     {
      tf.setText(tf.getText().trim()+".");
     }
    } 
   }
   //如果没有点击过"+-*/"
   else
   {
    if(tf.getText().trim().indexOf('.')==-1)
    {
     tf.setText(tf.getText().trim()+".");
    }
   } 
  }
  //数字键'='
  else if(e.getSource()==bt19)
  {
   //先判断取模键是否为true,如果为true,就进行取模运行;否则进行“+-*/”运算
   if(qm==true)
   {
    if(com==false&&rs==false)
    {
     int index=tf.getText().trim().indexOf('%');
     String beforeStr=tf.getText().trim().substring(0, index);
     String afterStr=tf.getText().trim().substring(index+1);
     if(afterStr.length()>0)
     {
      double d1=Double.valueOf(beforeStr);
      double d2=Double.valueOf(afterStr);
      tf.setText(tf.getText().trim()+"="+String.valueOf((int)(d1%d2)));
      qm=false;
     }
    }
   }
   else
   {
    //先判断“=”键是否存在,假如不存在执行下列语句,否则下面的else语句。
    if(rs==false)
    {
     Double result=0.0;
     switch (flag)
     {
      case 1://点击'+'
      {
       int index=0;
       index=tf.getText().trim().indexOf('+');
       afterNum=tf.getText().trim().substring(index+1);
       result=Double.valueOf(beforeNum)+Double.parseDouble(afterNum);
       tf.setText(tf.getText().trim()+"="+result.toString());
       break;    
      }
      case 2://点击'-'
      {
       int index=0;
       index=tf.getText().trim().indexOf('-');
       afterNum=tf.getText().trim().substring(index+1);
       result=Double.valueOf(beforeNum)-Double.parseDouble(afterNum);
       tf.setText(tf.getText().trim()+"="+result.toString());
       break;
      }
      case 3://点击'*'
      {
       int index=0;
       index=tf.getText().trim().indexOf('*');
       afterNum=tf.getText().trim().substring(index+1);
       result=Double.valueOf(beforeNum)*Double.parseDouble(afterNum);
       tf.setText(tf.getText().trim()+"="+result.toString());
       break;
      }
      case 4://点击'/'
      {
       int index=0;
       index=tf.getText().trim().indexOf('/');
       afterNum=tf.getText().trim().substring(index+1);
       if(Double.valueOf(afterNum)==0)
       {
        tf.setText("除数不能为零");
       }
       else
       {
        result=Double.valueOf(beforeNum)/Double.parseDouble(afterNum);
        tf.setText(tf.getText().trim()+"="+result.toString());
       }
       
       break;
      }
     }
     rs=true;
    }
    else
    {
     Double result=0.0;
     switch (flag)
     {
      case 1://点击'+'
      {
       int index=0;
       int x=0;
       index=tf.getText().trim().indexOf('+');
       x=tf.getText().trim().indexOf('=');
       afterNum=tf.getText().trim().substring(index+1, x);
       result=Double.valueOf(beforeNum)+Double.parseDouble(afterNum);
       tf.setText(tf.getText().trim().substring(0,x+1)+result.toString());
       break;    
      }
      case 2://点击'-'
      {
       int index=0;
       int x=0;
       index=tf.getText().trim().indexOf('-');
       x=tf.getText().trim().indexOf('=');
       afterNum=tf.getText().trim().substring(index+1, x);
       result=Double.valueOf(beforeNum)-Double.parseDouble(afterNum);
       tf.setText(tf.getText().trim().substring(0,x+1)+result.toString());
       break;
      }
      case 3://点击'*'
      {
       int index=0;
       int x=0;
       index=tf.getText().trim().indexOf('*');
       x=tf.getText().trim().indexOf('=');
       afterNum=tf.getText().trim().substring(index+1, x);
       result=Double.valueOf(beforeNum)*Double.parseDouble(afterNum);
       tf.setText(tf.getText().trim().substring(0,x+1)+result.toString());
       break;
      }
      case 4://点击'/'
      {
       int index=0;
       int x=0;
       index=tf.getText().trim().indexOf('/');
       x=tf.getText().trim().indexOf('=');
       afterNum=tf.getText().trim().substring(index+1, x);
       if(Double.valueOf(afterNum)==0)
       {
        tf.setText("除数不能为零");
       }
       else
       {
        result=Double.valueOf(beforeNum)/Double.parseDouble(afterNum);
        tf.setText(tf.getText().trim().substring(0,x+1)+result.toString());
       }
       break;
      }
     }
    }
   } 
  }
  
 }
}  //  @jve:decl-index=0:visual-constraint="220,8"

posted on 2007-09-29 15:27 大头剑客 阅读(275) 评论(0)  编辑  收藏 所属分类: 学习笔记


只有注册用户登录后才能发表评论。


网站导航:
 
<2025年3月>
2324252627281
2345678
9101112131415
16171819202122
23242526272829
303112345

导航

统计

公告

写字楼里写字间,写字间里程序员;
程序人员写程序,又拿程序换酒钱;
酒醒只在网上坐,酒醉还来网下眠;
酒醉酒醒日复日,网上网下年复年;
但愿老死电脑间,不愿鞠躬老板前;
奔驰宝马贵者趣,公交自行程序员;
别人笑我忒疯癫,我笑自己命太贱;
不见满街漂亮妹,哪个归得程序员.
不管前面是地雷阵还是万丈深渊,
我都将勇往直前,义无反顾,
鞠躬尽瘁,死而后已。
—— 朱镕基总理

常用链接

留言簿(1)

随笔档案

文章分类

文章档案

学习园地

最新随笔

搜索

积分与排名

最新评论