public class ExecDemo{
public static void main(String args[]){
new Operate() ;
}
};
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 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 ;
}
};

最新文章

  1. iOS - 模拟器
  2. loadRunner录制脚本常见问题及解决方法
  3. 轨迹记录App是怎样对定位轨迹进行过滤、优化和平滑处理的
  4. [转]window10系统安装oracle11g时遇到INS-13001环境不满足最低要求
  5. Dubbo分布式服务框架入门
  6. STL总结之queue, priority_queue, stack
  7. 【转】 C++库常用函数一览
  8. iOS 开发-单元测试
  9. USB VID PID 查询
  10. ssh原理[转]
  11. C# 语法学习整理
  12. vue 单独页面body css 样式设置
  13. Maven 环境搭建及使用(win10)
  14. java多线程的认识
  15. GDAL添加ECW格式支持
  16. .net4.5使用async和await异步编程实例
  17. CLR、内存分配和垃圾回收
  18. 单纯形法MATALAB实现
  19. UESTC--1300
  20. c# 图片加密解密的实例代码

热门文章

  1. 【C语言】求1到100的和
  2. 本地简单HTTP服务器
  3. 在xwindows界面中切换KDE与GNOME
  4. MAC系统 -java开发环境搭建
  5. java 抛出异常与finally的混用对于语句块的执行顺序的影响
  6. 【Java excel】导出excel文件
  7. 关于数据库中的三值逻辑(Tree-Value-Logic)
  8. Fedora26下Mysql改密码Unknown column &#39;password&#39; in &#39;field list&#39;
  9. QWidget: “Must construct a QApplication before a QWidget”
  10. .NET Runtime at IP 791F7E06 (79140000) with exit code 80131506.