您的位置:首页 > 编程语言 > Java开发

个人学分计算小软件0.1--使用对象在校大学生

2014-02-28 22:30 357 查看
//这是在学习Java程序设计时的一个简单的学分计算器。有兴趣的同学可以将源码粘下来,继续编写适合自己学校的学分计算器。

import java.awt.*;

import java.awt.event.*;

public class CulFrame

{

    private Frame f;

    private Label lscore,lcredit, lscale,lallscore;

    private Button breset,bload,ballload,ballreset;

    private Panel p1,p2,p3,p4,p5,p6;

    private TextField tfscore,tfcredit,tfscale,tfallscore;    

    private float sum = 0;

    private float sumscore = 0;

    

    

    public static void main(String[] args)

    {

        new CulFrame();

    }

    

    CulFrame( )

    {    

        init();        

    }

    public void init()

    {

        f = new Frame("学分计算器");

        

        lscore = new Label("成绩:");        

        lcredit = new Label("学分:");        

        lscale = new Label("所占比例:");        

        lallscore = new Label("个人总学分:");

        

        breset = new Button ("重置  ");

        bload = new Button ("载入  ");        

        ballload = new Button("已全部载入");

        ballreset = new Button("复位");

        

        

        p1 = new Panel();

        p2 = new Panel();

        p3 = new Panel();

        p4 = new Panel();

        p5 = new Panel();

        p6 = new Panel();

        

        tfscore = new TextField(10);

        tfcredit = new TextField(10);

        tfscale = new TextField(10);

        tfallscore = new TextField(10);        

        

        p1.add(lscore);

        p1.add(tfscore);

        p1.add(lcredit);

        p1.add(tfcredit);

        

        

        p2.add(breset);

        p2.add(bload);

        

        

        p3.add(lscale);        

        p3.add(tfscale);

        

        p4.add(ballload);        

        p4.add(ballreset);

        

        p5.add(lallscore);

        p5.add(tfallscore);

        

        

        

        f.setBounds(400, 300, 320, 200);

        f.add(p1);

        f.add(p2);

        f.add(p3);

        f.add(p4);

        f.add(p5);

        

        f.setLayout(new FlowLayout());

    //f.add(p3,BorderLayout.CENTER);

        myEvent();

        

        f.setVisible(true);

    }

    

    public void myEvent()

    {

        f.addWindowListener(new WindowAdapter()    //关闭窗口的监听

        {

            public void windowClosing(WindowEvent e)

            {

                System.exit(0);

            }

        });

        

        

        breset.addMouseListener(new MouseAdapter() //鼠标监听重置

        {

            public void mouseClicked(MouseEvent e)

            {

                reset();

            }

        });

        

        breset.addKeyListener(new KeyAdapter()//键入回车执行重置

        {

            public void keyPressed(KeyEvent e)

            {                

                if(e.getKeyCode()== e.VK_ENTER)

                {

                    reset();

                }

            }

        });

        

        

        ballreset.addMouseListener(new MouseAdapter()//鼠标监听复位

        {

            public void mouseClicked(MouseEvent e)

            {

                allreset();

            }            

        });

        

        tfscore.addKeyListener( new KeyAdapter()

        {

            public void keyPressed(KeyEvent e)//要使用按下某个键时,使用。

            {

                int code = e.getKeyCode();

                if(!(code>=KeyEvent.VK_0 && code<=KeyEvent.VK_9 ) &&  code != KeyEvent.VK_PERIOD)

                {

                    System.out.println("非法的字符!");

                    e.consume();

                }

            }

        });

        

        tfcredit.addKeyListener( new KeyAdapter()

        {

            public void keyPressed(KeyEvent e)//要使用按下某个键时,使用。

            {

                

                int code = e.getKeyCode();

                if(!(code>=KeyEvent.VK_0 && code<=KeyEvent.VK_9 ) && code != KeyEvent.VK_PERIOD)

                {

                    System.out.println("非法的字符!");

                    e.consume();

                }

            }

        });

        

        tfscale.addKeyListener( new KeyAdapter()

        {

            public void keyPressed(KeyEvent e)//要使用按下某个键时,使用。

            {

                

                int code = e.getKeyCode();

                if(!(code>=KeyEvent.VK_0 && code<=KeyEvent.VK_9 ) && code != KeyEvent.VK_PERIOD)

                {

                    System.out.println("非法的字符!");

                    e.consume();

                }

            }

        });

        

        bload.addActionListener(new ActionListener()

        {

            @Override

            public void actionPerformed(ActionEvent e)

            {

                calculate();                

            }        

        });

        

        bload.addMouseListener(new MouseAdapter()

        {

            public void mouseClicked(MouseEvent e)

            {

                calculate();

            }

        });    

        

        

        bload.addKeyListener(new KeyAdapter()//键入回车执行

        {

            public void keyPressed(KeyEvent e)

            {                

                if(e.getKeyCode()== e.VK_ENTER)

                {

                    calculate();

                }

            }

        });

        

        

        ballload.addKeyListener(new KeyAdapter()//键入回车执行

        {

            public void keyPressed(KeyEvent e)

            {                

                if(e.getKeyCode()== e.VK_ENTER)

                {

                    total();

                }

            }

        });

        

        

        ballload.addMouseListener(new MouseAdapter()

        {            

            public void mouseClicked(MouseEvent e)

            {

                total();

            }

        });

        

    }    

    

    public void reset()//重置学分和成绩

    {

        tfscore.setText(" ");

        tfcredit.setText(" ");

        

    }

    

    public void allreset()//复位的方法

    {

        tfscore.setText(" ");

        tfcredit.setText(" ");

        tfscale.setText(" ");

        tfallscore.setText(" ");

        sum = 0;

    }

    

    

    public void calculate() {

//System.out.printf("sum = %.3f\n",sum);

//

//System.out.printf("sumscore = %.3f\n",sumscore);

        float credit = 0,score = 0;

        try    {            

//System.out.println("Clicked bload!");

            String str_tfscore = tfscore.getText();

            

            if(str_tfscore != null) {

//System.out.println(str_tfscore);

                score  = Float.parseFloat(str_tfscore);

//System.out.printf("score = %.3f\n",score);

            }

                

            

//System.out.println("Clicked bload!  --tfscore");

            String str_tfcredit = tfcredit.getText();

            

            if(str_tfcredit != null ) {

//System.out.println(str_tfcredit);

                credit = Float.parseFloat(str_tfcredit);

//System.out.printf("credit = %.3f\n",credit);

            }

            

            tfscore.setText(" ");

            tfcredit.setText(" ");    

//System.out.printf("%.3f\n",sum);

            sum += score*credit;

            sumscore += credit;

//System.out.printf("sum = %.3f\n",sum);

//System.out.printf("sumscore = %.3f\n", sumscore);

            

        } catch(NumberFormatException e1) {

            System.out.println("空字符串异常!");

//            e1.printStackTrace();

            

        }

    }

    

    public void total() {        

        try

        {

            String strscale = null;

            if((strscale = tfscale.getText()) != null)

            {

                float scale = Float.parseFloat(strscale );    

                

                if(sumscore != 0)

                {

//System.out.printf("sumscore = %.3f\n",sumscore);

                    sum/=sumscore;

//System.out.printf("sum = %.3f\n",sum);

                    sum*=scale;    

//System.out.printf("sum = %.3f",sum);

                }

                tfallscore.setText(String.valueOf(sum));     

            }

    

        } catch(NumberFormatException e1)

        {

//            System.out.println("比例异常");

            e1.printStackTrace();

        }    

    }    

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java
相关文章推荐