分类: Java
〖JAVA IO〗_实例操作:投票程序笔记
- public class Student implements Comparable<Student>{
- private int stuNo ; // 学生编号
- private String name ; // 学生姓名
- private int vote ; // 学生票数
- public Student(int stuNo,String name,int vote){
- this.setStuNo(stuNo) ;
- this.setName(name) ;
- this.setVote(vote) ;
- }
- public int compareTo(Student o){
- if(this.vote<o.vote){
- return 1 ;
- }else if(this.vote>o.vote){
- return -1 ;
- }else{
- return 0 ;
- }
- }
- public void setStuNo(int stuNo){
- this.stuNo = stuNo ;
- }
- public void setName(String name){
- this.name = name ;
- }
- public void setVote(int vote){
- this.vote = vote ;
- }
- public int getStuNo(){
- return this.stuNo ;
- }
- public String getName(){
- return this.name ;
- }
- public int getVote(){
- return this.vote ;
- }
- };
- import java.io.BufferedReader ;
- import java.io.InputStreamReader ;
- import java.io.IOException ;
- public class InputData{
- private BufferedReader buf = null ; // 接收数据
- public InputData(){
- 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 ;
- }
- };
- public 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() ; // 得到结果
- }
- private void getResult(){ // 得到最终的投票结果
- java.util.Arrays.sort(this.stu) ; // 排序
- System.out.println("投票最终结果:" + this.stu[0].getName()+"同学,最后以"+this.stu[0].getVote()+"票当选班长!") ;
- }
- public void vote(){ // 此方法完成投票功能
- InputData input = new InputData() ; // 输入数据
- 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("此选票无效,请输入正确的候选人代号!") ;
- }
- }
- }
- public void printInfo(){
- for(int i=0;i<stu.length;i++){
- System.out.println(this.stu[i].getStuNo() + ":"
- + this.stu[i].getName() + "【"+this.stu[i].getVote()+"】") ;
- }
- }
- };
- public class ExecDemo{
- public static void main(String args[]){
- new Operate() ;
- }
- };