投票功能

转载 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. };  
总结:

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

H5页面上也能发起投票,让朋友圈HIGH起来!

我们经常在朋友圈里看到有人分享投票的活动,号召朋友们为他投票,票数最多的前几名可以获得奖品。这类投票活动非常受营销公司的欢迎,用户的参与度非常高,给营销公司带来的粉丝量非常可观。但是,使用这类投票平台...
  • ddwendy
  • ddwendy
  • 2016年10月19日 09:25
  • 2307

简单的JavaWeb投票系统

目的帮她完成JavaWeb课程设计,也做为练手的小项目;功能1、可以实现在个人登陆,在线投票,票数统计的功能; 2、规定每个投票者每天只能投一票,并要求登录成功后才可以投票;分块1、Login类:实...
  • Run_the_youth
  • Run_the_youth
  • 2016年12月23日 19:46
  • 7287

Android自定义View——投票进度条

Android自定义View——投票进度条原创作品:转载请注明出处效果展示功能属性介绍 ...
  • qq_23347751
  • qq_23347751
  • 2016年08月19日 12:14
  • 1486

公众号从菜鸟到高手的进化:微信公众平台后台投票管理功能

今天我们来讲一下,微信公众平台投票管理功能。     点开投票管理,我们首先我们看到的界面是投票结果的界面,如果你创建过投票管理,那么这里显示的就是投票结果。     如果想要创建的投票的话,点击...
  • wqbbt0415
  • wqbbt0415
  • 2017年12月04日 12:05
  • 836

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

#coding=utf8 import urllib import urllib2 import cookielib import base64 import re import json impor...
  • markximu
  • markximu
  • 2013年04月04日 20:50
  • 487

linux网络编程实现投票功能

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

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

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

easyui的datagrid整合struts2,以及Ajax,实现局部刷新功能,并设置分页的实现---------投票案例

====================================================================================================...
  • lixiao1048
  • lixiao1048
  • 2016年06月17日 13:15
  • 1417

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

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

linux网络编程实现投票功能

投票系统 1.说明: 写了一个投票系统,过程是先配置好服务器,在写一个网上投票功能,要实现网上投票功能。 其实功能实现还是很简单的,麻烦一点的在于过程比较繁杂,要做的东西还是挺多的!...
  • imxiangzi
  • imxiangzi
  • 2015年12月07日 13:23
  • 380
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:投票功能
举报原因:
原因补充:

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