投票 java_Java基础之简单投票程序
/*=======================================
* 題目:
* 1)用面向對象方法,編寫學生類Student,
* 將候選人如姓名、代號、票數保存到Student中,并實現相應的get set 方法
* 2)輸入數據之前,顯示出各位候選人的代號及姓名:(提示;建立一個候選人數組)
* 3)循環(huán)執(zhí)行接收鍵盤輸入的班長候選人代號,直接輸入的數字為0,結束投票的輸入工作
* 4)在接收每次輸入的候選票后要求驗證該后選票是否有效,
* 即如果輸入的數不是0、1、2、3、4這5個數字之一,或者輸入一串字母,應顯示出錯誤提示信息:
* 此選票無效,請輸入正確的候選人代號,并繼續(xù)輸入
* 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;//定義循環(huán)標記符
while(flag){
str=this.getString(info);
if(str.matches("\\d+")){//利用正則表達式,判斷輸入的字符全是數字的話
temp=Integer.parseInt(str);
flag=false;//更改循環(huán)標記,退出
}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.vote
return 1;//
}else if(this.vote>o.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
System.out.println(this.stu[i].getStuNo()+": "+
this.stu[i].getName()+"【" +this.stu[i].getVote()+ "】'");
}
}
//完成投票
public void vote(){
InputMyData input =new InputMyData();
int num = input.getInt("請輸入候選人代號(數字0結束):", "輸入信息錯誤!重新輸入:");
switch(num){
case 0: {
this.flag=false;
break;
}
case 1:{
this.stu[0].setVote(this.stu[0].getVote()+1);
break;
}
case 2:{
this.stu[1].setVote(this.stu[1].getVote()+1);
break;
}
case 3:{
this.stu[2].setVote(this.stu[2].getVote()+1);
break;
}
case 4:{
this.stu[3].setVote(this.stu[3].getVote()+1);
break;
}
default:{
System.out.println("輸入數據無效,請重新輸入:");
break;
}
}
}
}
public class DemoVote {
public static void main(String args[]){
new Operate();
}
}
總結
以上是生活随笔為你收集整理的投票 java_Java基础之简单投票程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Scrapy-spiders下项目运行方
- 下一篇: 常见计算机病毒种类及特征介绍与分析