代码分析

 InputData.java

 package vote;

 import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader; public class InputData { private BufferedReader buf ; public InputData()
{
this.buf = new BufferedReader(new InputStreamReader(System.in));
} public String getString(String info)
{
String str = null;
System.out.println(info);
try {
str = this.buf.readLine();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
return str; } public int getInt(String info,String error)
{
int temp = 0;
String str = null;
str = this.getString(info);
if(str.matches("\\d+")){
temp = Integer.parseInt(str);
}else{
System.out.println(error);
} return temp;
} }

Person.java

 package vote;

 public class Person implements Comparable<Person>{
private String name;
private int stu_Id; public Person(String name, int stu_Id, int voteNum) {
super();
this.name = name;
this.stu_Id = stu_Id;
this.voteNum = voteNum;
} public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getStu_Id() {
return stu_Id;
}
public void setStu_Id(int stu_Id) {
this.stu_Id = stu_Id;
}
public int getVoteNum() {
return voteNum;
}
public void setVoteNum(int voteNum) {
this.voteNum = voteNum;
}
private int voteNum; @Override
public int compareTo(Person o) {
// TODO 自动生成的方法存根
if(this.getVoteNum() > o.getVoteNum())
{
return -1;
}else if(this.getVoteNum() < o.getVoteNum())
{
return 1;
}else
{
return 0;
}
}
}

VoteOperate.java

 package vote;

 import java.io.File;
import java.util.Arrays; public class VoteOperate {
private Person[] per = {new Person("小米",001,0),new Person("大米",002,0), new Person("玉米",003,0),
new Person("稀饭",004,0),new Person("刘能",005,0),new Person("逼",006,0)}; private InputData input ;
private boolean flag = true;
private int sum;
private int errorVote; public VoteOperate()
{
this.input = new InputData();
while(flag)
{
++sum;
this.voteForCandidate();
}
this.printInfo();
this.getResulet();
} public void voteForCandidate()
{
int temp = 0;
temp = input.getInt("请输入候选人编号(0表示投票结束)", "投票只能是数字,范围0-" + per.length);
switch (temp) {
case 1:
{
this.per[0].setVoteNum(this.per[0].getVoteNum() + 1);
break;
} case 2:
{
this.per[1].setVoteNum(this.per[1].getVoteNum() + 1);
break;
} case 3:
{
this.per[2].setVoteNum(this.per[2].getVoteNum() + 1);
break;
} case 4:
{
this.per[3].setVoteNum(this.per[3].getVoteNum() + 1);
break;
} case 5:
{
this.per[4].setVoteNum(this.per[4].getVoteNum() + 1);
break;
}
case 6:
{
this.per[5].setVoteNum(this.per[5].getVoteNum() + 1);
break;
}
case 0:
{
System.out.println("退出系统");
this.flag = false;
break;
}
default:{
System.out.println("请重新输入一个数字:");
this.errorVote++;
}
}
} //打印候选人信息:
public void printInfo(){
for(int i=0;i<per.length;i++){
System.out.println(this.per[i].getStu_Id() + ":"
+ this.per[i].getName() + "【"+this.per[i].getVoteNum()+"】") ;
}
} //获取结果
public void getResulet(){
Arrays.sort(per);
if ((sum - 1 )==0)
{
System.out.println("投票故障...");
}
else
{
System.out.println("投票最终结果:" + "\n共投出:" + ( this.sum - 1 )+ "票,其中,错误投票 : " + this.errorVote + "票,有效票" + ( this.sum - 1 - this.errorVote) + "\n"
+ this.per[0].getName()+"同学,最后以"+this.per[0].getVoteNum()+"票当选班长!") ;
}
}; }

Test.java

 package vote;

 public class Test {
public static void main(String[] args) {
new VoteOperate();
}
}

效果截图

源码下载

点击下载

Java实例---简单的投票系统的更多相关文章

  1. Django + mysql 快速搭建简单web投票系统

    了解学习pyhton web的简单demo 1. 安装Django, 安装pyhton 自行百度 2. 执行命令创建project  django-admin.py startproject mysi ...

  2. Java实例---简单的个人管理系统

    代码分析 FileOperate.java package com.ftl.testperson; import java.io.File ; import java.io.FileInputStre ...

  3. Java实例---简单的数据库操作

    源码分析 DAOFactory.java package cn.ftl.mysql ; public class DAOFactory { public static IEmpDAO getIEmpD ...

  4. Java实例---简单的宠物管理系统

    代码分析 Cat.java package com.ftl.petshop; class Cat implements Pet { private String name; private Strin ...

  5. Java实例---简单的上课管理系统

    源码分析 Course.java package com.ftl.many2many; import java.util.*; public class Course { private int cr ...

  6. Java实例---简单的超市管理系统

    代码分析 Customer.java package test; public class Customer { private String name; private int customerTy ...

  7. Python实例---简单的选课系统

    要求 思路: 构造方法传递过去学校名称,同时利用UUID创建一个随机字符串,用这个字符串来作为要写入的文件名 利用类的__str__方法来实现类对象接口返回学校名称的操作 利用pickle的dumps ...

  8. vue,一路走来(15)--简单投票系统

    今天记录一下简单的投票系统,主要实现选中至少五张作品,并提交投票. 思路:选中作品,将作品id存入到数组里. 取消投票,则从数组中移除该作品id. 如图效果: <li v-for="( ...

  9. Django快速开发投票系统

    使用Django搭建简单的投票系统:这个是官网的教程:https://docs.djangoproject.com/en/2.0/intro/tutorial01/ 在Run manage.py Ta ...

随机推荐

  1. python-wsgi测试服务器

    #!/usr/bin/python from wsgiref.simple_server import make_server def application(environ,start_respon ...

  2. 事务实现,redo,undo,锁

    事务(Transaction)是数据库区别于文件系统的重要特性之一.在文件系统中,如果你正在写文件,但是操作系统突然崩溃了,这个文件就很有可能被破坏.当然,有一些机制可以把文件恢复到某个时间点.不过, ...

  3. 查看windows系统块大小

    C:\Users\xyw>fsutil fsinfo ntfsinfo 用法 : fsutil fsinfo ntfsinfo <volume pathname> 例如 : fsut ...

  4. SQL注入原理讲解

    1.1.1 摘要 日前,国内最大的程序员社区CSDN网站的用户数据库被黑客公开发布,600万用户的登录名及密码被公开泄露,随后又有多家网站的用户密码被流传于网络,连日来引发众多网民对自己账号.密码等互 ...

  5. R语言格式化数字和字符串format函数

    数字和字符串可以使用 format()函数的格式化为特定样式. 语法 format()函数的基本语法是: format(x, digits, nsmall,scientific,width,justi ...

  6. 费了个劲的git

    终于学会了git,表示不容易,个人表示总结一下... 1.设置个人PC上的git  master路径,ok没问题,用时1min 2.从码云代码仓库克隆已写代码,也很简单,用时2min 3.将本机器内文 ...

  7. Paypal如何实现循环扣款(订阅)?

    起因 业务需求要集成Paypal,实现循环扣款功能,然而百度和GOOGLE了一圈,除官网外,没找到相关开发教程,只好在Paypal上看,花了两天后集成成功,这里对如何使用Paypal的支付接口做下总结 ...

  8. 标准Trie字典树学习二:Java实现方式之一

    特别声明: 博文主要是学习过程中的知识整理,以便之后的查阅回顾.部分内容来源于网络(如有摘录未标注请指出).内容如有差错,也欢迎指正! 系列文章: 1. 标准Trie字典树学习一:原理解析 2.标准T ...

  9. Java https认证的坑

    https单向认证的服务端证书不是权威机构颁发的,网上找了点代码不对https证书进行认证后,报如下异常 javax.net.ssl.SSLHandshakeException: Received f ...

  10. hadoop classpath 的作用

    HADOOP_CLASSPATH 是设置要运行的类的路径.否则当你用hadoop classname [args]方式运行程序时会报错,说找不到要运行的类.用hadoop jar jar_name.j ...