欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java实现投票程序设计

程序员文章站 2024-03-07 18:48:03
本文实例为大家讲述了java实现投票程序设计代码,分享给大家供大家参考,具体内容如下 运行效果图: 程序如下: import java.awt.*;...

本文实例为大家讲述了java实现投票程序设计代码,分享给大家供大家参考,具体内容如下

运行效果图:

java实现投票程序设计

程序如下:

import java.awt.*;
import java.awt.event.*;
import java.awt.event.actionevent;
import java.awt.event.actionlistener;
import java.util.stringtokenizer;

import javax.swing.*;

public class votetest implements actionlistener{
    private jframe frame;
    private jpanel p1,p2,p3,p2_1;
    private jlabel label1,label2,label3;
    private jtextfield name,votemess;
    private jtextfield schoolvote[];
    private jbutton com,con,sure,resh,sort;
    private checkbox checkbox[];
    private int[] count;
    private int totalvote,schoolnumber,max,dis,giveup;
    
    public votetest(){
        frame=new jframe("中国大学排行榜选票系统v1.0");
        
        p1=new jpanel();
        p2=new jpanel();
        p3=new jpanel();
        
        label1=new jlabel("首先输入候选学校的名字(数量不超过10,名字之间用逗号分隔):");
        label2=new jlabel("用下面的选择框统计选票:",jlabel.center);
        label3=new jlabel("选举结果:");
        
        name=new jtextfield(10);
        votemess=new jtextfield(46);
        schoolvote=new jtextfield[10];
        
        com=new jbutton("确认");
        con=new jbutton("取消");
        sure=new jbutton("确定");
        resh=new jbutton("刷新");
        sort=new jbutton("排序");
        
        checkbox=new checkbox[10];
        p2_1=new jpanel();
        
        count=new int[10];//记录学校的选票数
        totalvote=0;
        schoolnumber=0;
        max=3;
        dis=0;
        giveup=0;
        
        init();
    }
    
    public void init(){
        frame.setlayout(new gridlayout(3,1));
        frame.add(p1);
        frame.add(p2);
        frame.add(p3);
        
        p1.setlayout(new borderlayout());
        p1.add(label1,borderlayout.north);
        p1.add(name,borderlayout.center);
        jpanel p1_3;
        p1_3=new jpanel();
        p1_3.add(com);p1_3.add(con);p1_3.add(label2);
        p1.add(p1_3,borderlayout.south);
        
        p2.setlayout(new borderlayout());
        jpanel p2_2;
        p2_2=new jpanel();
        p2_1.setlayout(new gridlayout(2,5));
        for(int i=0;i<=9;i++){
            checkbox=new checkbox();
            p2_1.add(checkbox);
        }
        p2_2.add(sure);p2_2.add(resh);p2_2.add(sort);
        p2.add(p2_1,borderlayout.center);
        p2.add(p2_2,borderlayout.south);
        
        p3.setlayout(new borderlayout());
        jpanel p3_1,p3_2;
        p3_1=new jpanel();
        p3_2=new jpanel();
        p3_1.add(label3);p3_1.add(votemess);
        p3_2.setlayout(new gridlayout(10,1));
        for(int i=0;i<=9;i++){
            schoolvote=new jtextfield();
            p3_2.add(schoolvote);
        } 
        scrollpane scroll=new scrollpane();
        scroll.add(p3_2);
        p3.add(p3_1,borderlayout.north);p3.add(scroll,borderlayout.center);
        
        com.addactionlistener(this);con.addactionlistener(this);
        sure.addactionlistener(this);resh.addactionlistener(this);
        sort.addactionlistener(this);
        
    }
    
    public void show(){
        frame.pack();
        frame.setvisible(true);
        frame.setdefaultcloseoperation(jframe.exit_on_close);
    }
    
    /* (non-javadoc)
     * @see java.awt.event.actionlistener#actionperformed(java.awt.event.actionevent)
     */
    public void actionperformed(actionevent e) {
        // todo auto-generated method stub
        string s[]=new string[10];
        if(e.getsource()==com){
            p2_1.removeall();
            string s_name=name.gettext();
            //提取候选的名字,名字用逗号(英文逗号或汉文逗号)分隔;
            stringtokenizer fenxi=new stringtokenizer(s_name,",,");
            schoolnumber=fenxi.counttokens();//获取候选的个数
            int i=0;
            while(fenxi.hasmoretokens()){    //用单选框代表候选,并添加到面板p2_1
                s=fenxi.nexttoken();
                p2_1.add(checkbox);
                checkbox.setlabel(s);
                i++;
            }
            for(int k=0;k<schoolnumber;k++){
                schoolvote[k].settext(null);
            }
        }else if(e.getsource()==con){
            name.settext(null);
            com.setenabled(true);
            for(int k=0;k<schoolnumber;k++){
                schoolvote[k].settext(null);
            }
        }else if(e.getsource()==sure){
            totalvote=totalvote+1;
            com.setenabled(false);
            int number=0;
            for(int k=0;k<schoolnumber;k++){
                if(checkbox[k].getstate()){
                    number++;
                }
            }
            if(number>max){
                dis++;
                for(int k=0;k<schoolnumber;k++){
                    checkbox[k].setstate(false);
                }
            }else if(number==0){
                giveup++;
            }else if(number>0&&number<=max){
                for(int k=0;k<schoolnumber;k++){
                    if(checkbox[k].getstate()){
                        count[k]=count[k]+1;
                        checkbox[k].setstate(false);
                        schoolvote[k].settext(checkbox[k].getlabel()+"的得票数:"+count[k]);
                    }else{
                        schoolvote[k].settext(checkbox[k].getlabel()+"的得票数:"+count[k]);
                    }
                }
            }
            votemess.settext("己统计了:"+totalvote+"张选票,其中弃权票:"+giveup+"作废票:"+dis);
        }else if(e.getsource()==sort){
            for(int i=0;i<schoolnumber;i++){
                for(int j=i+1;j<schoolnumber;j++){
                    if(count[j]>count){
                        string str_temp=schoolvote.gettext();
                        schoolvote.settext(schoolvote[j].gettext());
                        schoolvote[j].settext(str_temp);
                        int nnn=count;count=count[j];count[j]=nnn;
                    }
                }
            }
            sort.setenabled(false);sure.setenabled(false);
        }else if(e.getsource()==resh){
            totalvote=0;
            votemess.settext("己统计了:"+totalvote+"张选票");
            name.settext(null);
            com.setenabled(true);sure.setenabled(true);sort.setenabled(true);
            for(int i=0;i<=4;i++){
                count=0;
                schoolvote.settext(null);
                p2_1.removeall();
            }
        }
    }

    /**
     * @param args
     */
    public static void main(string[] args) {
        // todo auto-generated method stub
        new votetest().show();
    }    

}

希望本文所述对大家学习java软件编程有所帮助。