代码分析

 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. memcached 学习笔记 3

    适合什么场合 memcached不是万能的,它也不是适用在所有场合. Memcached是“分布式”的内存对象缓存系统,那么就是说,那些不需要“分布”的,不需要共享的,或者干脆规模小到只有一台服务器的 ...

  2. Redis 【string】 一句话说明

    APPEND----------------------------------------------在字符串后面追加 BITCOUNT------------------------------- ...

  3. Unity 动态加载资源的方式。

    方式 特点  用法  Resource.load  安装包会比较大  在Asset文件夹下建一个Resources命名的文件夹,在打包安装包时会把 Resources文件夹下的所有文件都打包进去,不管 ...

  4. 总结:Python学习 和 Python与C/C++交互

    本篇仅仅是Python的学习和Python和C++数据对接过程中的一些总结. 由于工作的需要,用一周的时间学习 Python. Python是基于C实现的一门解释型语言,由于其易用性,俘获了不少开发者 ...

  5. [转]C# 6.0 的新特性

    本文的内容包括引入C#6.0中的新的语言特性有哪些. 还有已经被引入的代码名称为 “Roslyn”新编译器. 编译器是开放源码的,并且可以从 codeplex 网站的这个地址下载到源代码: https ...

  6. spring mongodb分页,动态条件、字段查询

    使用MongRepository public interface VideoRepository extends MongoRepository<Video, String> { Vid ...

  7. Asp.Net 之Jquery知识点运用

    1.先把要用的body内的代码写好. <div id="ulBox"> <h3>下面的Ulid为"ulList1"</h3> ...

  8. 十一、curator recipes之联锁InterProcessMultiLock

    简介 curator实现了一个类似容器的锁InterProcessMultiLock,它可以把多个锁包含起来像一个锁一样进行操作,简单来说就是对多个锁进行一组操作.当acquire的时候就获得多个锁资 ...

  9. 在jsp里调用out.flush()和response.flushBuffer()有什么区别

    out.flush(); out是PrintWriter的实例 public void flush()        Flush the stream. response.flushBuffer(): ...

  10. mybatis必知必会二

    关联: 嵌套查询:通过执行另外一个 SQL 映射语句来返回预期的复杂类型. 嵌套结果:使用嵌套结果映射来处理重复的联合结果的子集.首先,然让我们来查看这个元素的属性.所有的你都会看到,它和普通的只由 ...