⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 example13_3.java

📁 选票统计程序
💻 JAVA
字号:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.util.StringTokenizer;
public class Example13_3 extends Applet implements ActionListener
{
	Label 候名字=new Label("首先输入候选人的名字(人数不超过10,名字之间用逗号分隔):"),
	统计选票=new Label("用下面的选择框统计选票:",Label.CENTER),
	结果=new Label("选举结果:");
	Button 确认=new Button("确认"),取消=new Button("取消"),
	确定=new Button("确定"),刷新=new Button("刷新"),
	排序=new Button("排序");
	TextField name=new TextField(48);
	TextField voteMessage=new TextField(46);
	Checkbox checkbox[]=new Checkbox[10];
	TextField personVote[]=new TextField[10];
	int count[]=new int[10],
	totalVote=0,
	peopleNumber=0;
	Panel p2_1=new Panel();
	int 有效人数=3,
	废票数=0,弃权票数=0;
	public void init()
	{
		setLayout(new GridLayout(3,1));
		Panel p1=new Panel(),
		p1_1=new Panel(),p1_2=new Panel(),p1_3=new Panel();
		p1.setLayout(new BorderLayout());
        p1_1.add(候名字);p1_2.add(name);
        p1_3.add(确认);p1_3.add(取消);p1_3.add(统计选票);
        p1.add(p1_1,BorderLayout.NORTH);
        p1.add(p1_2,BorderLayout.CENTER);
        p1.add(p1_3,BorderLayout.SOUTH);
        Panel p2=new Panel(),p2_2=new Panel();
        p2.setLayout(new BorderLayout());
        p2.setBackground(Color.cyan);
        p2_1.setLayout(new GridLayout(2,5));
        p2_2.add(确定);p2_2.add(刷新);p2_2.add(排序);
        p2.add(p2_1,BorderLayout.CENTER);
        p2.add(p2_2,BorderLayout.SOUTH);
        for(int i=0;i<=9;i++)
        {
        	checkbox[i]=new Checkbox();
        	p2_1.add(checkbox[i]);
        }
        Panel p3=new Panel(),
        p3_1=new Panel(),p3_2=new Panel();
        p3.setLayout(new BorderLayout());
        p3_1.add(结果);
        p3_1.add(voteMessage);
        p3_2.setLayout(new GridLayout(10,1));
        for(int i=0;i<=9;i++)
        {
        	personVote[i]=new TextField();
        	p3_2.add(personVote[i]);
        }
        ScrollPane scroll=new ScrollPane();
        scroll.add(p3_2);
        p3.add(p3_1,BorderLayout.NORTH);
        p3.add(scroll,BorderLayout.CENTER);
        add(p1);add(p2);add(p3);
        确认.addActionListener(this);取消.addActionListener(this);
        确定.addActionListener(this);刷新.addActionListener(this);
        排序.addActionListener(this);
    }
    public void actionPerformed(ActionEvent e)
    {
    	String s[]=new String[10];
    	if(e.getSource()==确认)
    	{
    		p2_1.removeAll();
    		String s_name=name.getText();
    		StringTokenizer fenxi=new StringTokenizer(s_name,",,");
    		peopleNumber=fenxi.countTokens();
    		int i=0;
    		while(fenxi.hasMoreTokens()) 
    		{
    			s[i]=fenxi.nextToken();
    			p2_1.add(checkbox[i]);
    			checkbox[i].setLabel(s[i]);
    			i++;
    		}
    		for(int k=0;k<peopleNumber;k++)
    		{
    			personVote[k].setText(null);
    		}
    	}
    	else if(e.getSource()==取消)
    	{
    		name.setText(null);
    		确认.setEnabled(true);
    		for(int k=0;k<peopleNumber;k++)
    		{
    			personVote[k].setText(null);
    		}
    	}
    	else if(e.getSource()==确定)
    	{
    		totalVote=totalVote+1;
    		确认.setEnabled(false);
    		int number=0;
    		for(int k=0;k<peopleNumber;k++)
    		{
    			if(checkbox[k].getState())
    			{
    				number++;
    			}
    		}
    		if(number>有效人数)
    		{
    			废票数++;
    			for(int k=0;k<peopleNumber;k++)
    			{
    				checkbox[k].setState(false);
    			}
    		}
    		else if(number==0)
    		{
    			弃权票数++;
    		}
    		else if(number>0&&number<=有效人数)
    		{
    			for(int k=0;k<peopleNumber;k++)
    			{
    				if(checkbox[k].getState())
    				{
    					count[k]=count[k]+1;
    					checkbox[k].setState(false);
    					personVote[k].setText(checkbox[k].getLabel()+"的得票数:"+count[k]);
    				}
    				else
    				{
    					personVote[k].setText(checkbox[k].getLabel()+"的得票数:"+count[k]);
    				}
    			}
    		}
    		voteMessage.setText("已统计了:"+totalVote+"张选票,其中弃权票:"+弃权票数+"作废票:"+废票数);
    	}
    	else if(e.getSource()==排序)
    	{
    		for(int i=0;i<peopleNumber;i++)
    		{
    			for(int j=i+1;i<peopleNumber;j++)
    			{
    			if(count[j]>count[i])
    			{
    				String str_temp=personVote[i].getText();
    				personVote[i].setText(personVote[j].getText());
    				personVote[j].setText(str_temp);
    				int nnn=count[i];
    				count[i]=count[j];
    				count[j]=nnn;
    				}
    			}
    		}
    		排序.setEnabled(false);
    		确定.setEnabled(false);
    	}
    	else if(e.getSource()==刷新)
    	{
    		totalVote=0;
    		voteMessage.setText("已统计了:"+totalVote+"张选票");
    		name.setText(null);
    		确认.setEnabled(true);
    		确定.setEnabled(true);
    		排序.setEnabled(true);
    		for(int i=0;i<=4;i++)
    		{
    			count[i]=0;
    			personVote[i].setText(null);
    			p2_1.removeAll();
    		}
    	}
    }
}
    				    		       
        

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -