投票功能

转载 2015年11月21日 17:15:04

 

本实例主要采用的 知识点

1、Comparable比较器

2、Arrays 类

3、对象数组



因为程序中要使用对象数组的排序方式,所以在Student 类里需要实现Comparable 接口,并覆写compartTo() 方法,指定排序规则

侯选班长:Student 类:

[java] view plaincopy
  1. public class Student implements Comparable<Student>{  
  2. private int stuNo ; // 学生编号  
  3. private String name ;   // 学生姓名  
  4. private int vote ;  // 学生票数  
  5. public Student(int stuNo,String name,int vote){  
  6.     this.setStuNo(stuNo) ;  
  7.     this.setName(name) ;  
  8.     this.setVote(vote) ;  
  9. }  
  10. public int compareTo(Student o){  
  11.     if(this.vote<o.vote){  
  12.         return 1 ;  
  13.     }else if(this.vote>o.vote){  
  14.         return -1 ;  
  15.     }else{  
  16.         return 0 ;  
  17.     }  
  18. }  
  19. public void setStuNo(int stuNo){  
  20.     this.stuNo = stuNo ;  
  21. }  
  22. public void setName(String name){  
  23.     this.name = name ;  
  24. }  
  25. public void setVote(int vote){  
  26.     this.vote = vote ;  
  27. }  
  28. public int getStuNo(){  
  29.     return this.stuNo ;  
  30. }  
  31. public String getName(){  
  32.     return this.name ;  
  33. }  
  34. public int getVote(){  
  35.     return this.vote ;  
  36. }  
  37. };  

此类的对象数组可以使用Arrays.sort() 直接排序。

InputData 类:

[java] view plaincopy
  1. import java.io.BufferedReader ;  
  2. import java.io.InputStreamReader ;  
  3. import java.io.IOException ;  
  4. public class InputData{  
  5.     private BufferedReader buf = null ;     // 接收数据  
  6.     public InputData(){  
  7.         this.buf = new BufferedReader(new InputStreamReader(System.in)) ;  
  8.     }  
  9.     public String getString(String info){   // 得到字符串  
  10.         String temp =  null ;   // 接收输入内容  
  11.         System.out.print(info) ;  
  12.         try{  
  13.             temp = this.buf.readLine() ;    // 接收数据  
  14.         }catch(IOException e){  
  15.             e.printStackTrace() ;  
  16.         }  
  17.         return temp ;  
  18.     }  
  19.     public int getInt(String info,String err){  // 得到整型数据  
  20.         int temp = 0 ;  
  21.         String str = null ;  
  22.         boolean flag = true ;   // 定义一个循环标记  
  23.         while(flag){  
  24.             str = this.getString(info) ;  
  25.             if(str.matches("\\d+")){  
  26.                 temp = Integer.parseInt(str) ;  
  27.                 flag = false ;  // 更改标志位,将退出循环  
  28.             }else{  
  29.                 System.out.println(err) ;  
  30.             }  
  31.         }  
  32.         return temp ;  
  33.     }  
  34. };  
定义操作类Operate:

[java] view plaincopy
  1. public class Operate{  
  2.     private Student stu[] = {new Student(1,"张三",0),new Student(2,"李四",0),  
  3.         new Student(3,"王五",0),new Student(4,"赵六",0)} ;// 侯选人信息  
  4.     private boolean flag = true ;  
  5.     public Operate(){  
  6.         this.printInfo() ;  // 先输出候选人信息  
  7.         while(flag){  
  8.             this.vote() ;   // 循环调用投票  
  9.         }  
  10.         this.printInfo() ;  // 输出投票之后的侯选人信息  
  11.         this.getResult() ;  // 得到结果  
  12.     }  
  13.     private void getResult(){   // 得到最终的投票结果  
  14.         java.util.Arrays.sort(this.stu) ;   // 排序  
  15.         System.out.println("投票最终结果:" + this.stu[0].getName()+"同学,最后以"+this.stu[0].getVote()+"票当选班长!") ;  
  16.     }  
  17.     public void vote(){ // 此方法完成投票功能  
  18.         InputData input = new InputData() ; // 输入数据  
  19.         int num = input.getInt("请输入班长侯选人代号(数字0结束):","此选票无效,请输入正确的侯选人代号!") ;  
  20.         switch(num){  
  21.             case 0:{  
  22.                 this.flag = false ; // 中断循环  
  23.                 break ;  
  24.             }  
  25.             case 1:{  
  26.                 this.stu[0].setVote(this.stu[0].getVote() + 1) ;  
  27.                 break ;  
  28.             }  
  29.             case 2:{  
  30.                 this.stu[1].setVote(this.stu[1].getVote() + 1) ;  
  31.                 break ;  
  32.             }  
  33.             case 3:{  
  34.                 this.stu[2].setVote(this.stu[2].getVote() + 1) ;  
  35.                 break ;  
  36.             }  
  37.             case 4:{  
  38.                 this.stu[3].setVote(this.stu[3].getVote() + 1) ;  
  39.                 break ;  
  40.             }  
  41.             default:{  
  42.                 System.out.println("此选票无效,请输入正确的候选人代号!") ;  
  43.             }  
  44.         }  
  45.     }  
  46.     public void printInfo(){      
  47.         for(int i=0;i<stu.length;i++){  
  48.             System.out.println(this.stu[i].getStuNo() + ":"  
  49.                 + this.stu[i].getName() + "【"+this.stu[i].getVote()+"】") ;    
  50.         }  
  51.     }  
  52. };  
main方法 :

[java] view plaincopy
  1. public class ExecDemo{  
  2.     public static void main(String args[]){  
  3.         new Operate() ;  
  4.     }  
  5. };  
总结:

在实际开发中字节流的操作是非常多的,而且还有对象序列化

相关文章推荐

Jsoup+JavaMail实现自动投票,验证邮箱功能

前几天,突然接到boss任务,说客户要在手机上,实现一个自动投票的功 能。而且要一天搞出来。让暴风雨来的更猛烈吧!加班的节奏吗? 虽然是个小工具,但是麻雀虽小,五脏俱全。首先,先拆分下自动投票的...
  • juishi
  • juishi
  • 2017年05月27日 15:22
  • 269

C++学习大作业之实现投票功能

1.任务是实现一个投票系统. 2.投票规则: 1.每个投票者只可以投一次票。投票者通过生成的随机数,在第一个到最后一个候选人之间选择一个候选人来进行投票。2.每一个候选人都保存着投票者给他...

PHP+MySql+jQuery实现的“顶”和“踩”投票功能

当我们浏览网页时,我们想对网页内容如文章、评论中的观点持赞同或反对意见时,可以通过点击网页中的“顶”和“踩”来进行投票。而整个交互过程,开发者可以通过ajax异步来实现,从而提高用户体验。 本文...

div+css+jQuery简单实现投票功能..

昨天看到C#群里有人问一个投票功能如何实现... 我对此很感兴趣,为了练习一下,就有了以下代码。 投票功能使用jQuery实现..纯html代码...数据通过json字符串传递,通过 eval转换...
  • isea533
  • isea533
  • 2012年08月15日 13:31
  • 7065

Python模拟登陆新浪微博并实现投票功能

#coding=utf8 import urllib import urllib2 import cookielib import base64 import re import json impor...

linux网络编程实现投票功能

投票系统 1.说明: 写了一个投票系统,过程是先配置好服务器,在写一个网上投票功能,要实现网上投票功能。 其实功能实现还是很简单的,麻烦一点的在于过程比较繁杂,要做的东西还是挺多的! 2.过程...

PHP+jQuery+MySql实现红蓝投票功能

这是一个非常实用的投票实例,应用在双方观点对抗投票场景。用户可以选择支持代表自己观点的一方进行投票,本文以红蓝双方投票为例,通过前后台交互,直观展示红蓝双方投票数和所占比例,应用非常广泛。 查看...

java编写投票功能需求分析

原文地址:http://www.phome.asia/forum/thread/20689.html

自定义View-Same投票功能

第一次写博客,看得不爽,请不要打死我今天打开了Same,然后发现了投票频道这货,然后发现投票功能长得还行,于是就觉得来自定义来实现 下面的投票功能,same效果图如下:实现方法有两种: 通过组合系统...
  • jsggl
  • jsggl
  • 2015年09月08日 11:34
  • 428

PHP+MySql+jQuery实现的“顶”和“踩”投票功能

当我们浏览网页时,我们想对网页内容如文章、评论中的观点持赞同或反对意见时,可以通过点击网页中的“顶”和“踩”来进行投票。而整个交互过程,开发者可以通过ajax异步来实现,从而提高用户体验。 本文...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:投票功能
举报原因:
原因补充:

(最多只允许输入30个字)