Java基础之简单投票程序

/*=======================================
 * 题目:
 * 1)用面向对象方法,编写学生类Student,
 * 将候选人如姓名、代号、票数保存到Student中,并实现相应的get set 方法
 * 2)输入数据之前,显示出各位候选人的代号及姓名:(提示;建立一个候选人数组)
 * 3)循环执行接收键盘输入的班长候选人代号,直接输入的数字为0,结束投票的输入工作
 * 4)在接收每次输入的候选票后要求验证该后选票是否有效,
 * 即如果输入的数不是0、1、2、3、4这5个数字之一,或者输入一串字母,应显示出错误提示信息:
 * 此选票无效,请输入正确的候选人代号,并继续输入
 * 5)输入结束后显示所有候选人的得票情况,如下所示
 * 6)输入最终当选者的相关信息,如下所示。
 * 
 *====================================*/

package demo014;

import java.io.*;
/**
 * 先把轮子造好,再干大家伙
 * 是一个工具类,用于数据输入;
 * @author R
 *
 */
class InputMyData{
	private BufferedReader buf=null;
	//Constructer
	public InputMyData(){
		this.buf=new BufferedReader(new InputStreamReader(System.in));
	}
	public String getString(String info){
		String temp=null;
		System.out.print(info);
			try {
				temp=this.buf.readLine();//读数据
			} catch (IOException e) {
				e.printStackTrace();
			}
		return temp;
	}
	public int getInt(String info,String err){//得到整形
		int temp =0;
		String str = null;
		boolean flag=true;//定义循环标记符
		while(flag){
			str=this.getString(info);
			if(str.matches("\\d+")){//利用正则表达式,判断输入的字符全是数字的话
				temp=Integer.parseInt(str);
				flag=false;//更改循环标记,退出
			}else{
				System.out.println(err);
			}
		}
		return temp;
	}
	
};
class Student implements Comparable{
	private int stuNo;
	private String name;
	private int vote;
	public Student(int stuNo,String name,int vote){
		this.stuNo=stuNo;
		this.name=name;
		this.vote=vote;
	}
	public int getStuNo() {
		return stuNo;
	}
	public void setStuNo(int stuNo) {
		this.stuNo = stuNo;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getVote() {
		return vote;
	}
	public void setVote(int vote) {
		this.vote = vote;
	}
	//实现比较方法
	@Override
	public int compareTo(Student o) {//按大--》小排序
		if(this.voteo.vote){
			return -1;
		}else{
		    return 0;
		}
	}
	
};

class Operate{
	private Student stu[]={new Student(1,"张三",0),
			               new Student(2,"李四",0),
			               new Student(3,"王五",0),
			               new Student(4,"赵六",0)};
	private boolean flag=true;
	public Operate(){
		    this.printInfo();
			while(flag){
				this.vote();
			}
			this.printInfo();
			this.getResult();
	}
	
	public void getResult(){
	   	java.util.Arrays.sort(this.stu);
	   	System.out.println("投票结果:"+this.stu[0].getName()+"以"+this.stu[0].getVote()+"赢得投票");
	}
	
	public void printInfo(){
		for(int i=0;i

你可能感兴趣的:(Java基础)