代码分析

 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. Microsoft Power BI Desktop概念学习系列之Microsoft Power BI Desktop是什么?

    不多说,直接上干货! 官网 https://powerbi.microsoft.com/zh-cn/desktop/ Microsoft  Power BI Desktop是什么? https://p ...

  2. TortoiseGit学习系列之TortoiseGit基本操作拉取项目(图文详解)

    前面博客 TortoiseGit学习系列之TortoiseGit基本操作克隆项目(图文详解) TortoiseGit学习系列之TortoiseGit基本操作修改提交项目(图文详解) TortoiseG ...

  3. cors允许的方法和contype-type

    https://fetch.spec.whatwg.org/#cors-safelisted-request-header get head post text/plain multipart/for ...

  4. [心平气和读经典]The TCP/IP Guide(002)

    The TCP/IP Guide [Page 41, 42] Goals of The TCP/IP Guide | 本书的目标 Every author who sets out to write ...

  5. 把AspDotNetCoreMvc程序运行在Docker上-part2:修改容器以及发布镜像

    在上一个part<把AspDotNetCoreMvc程序运行在Docker上-part1>,已经将成功将aspdotnetcore程序运行在两个不同的容器中,目前两个容器的内容完全相同,只 ...

  6. nodejs学习笔记三(用户注册、登录)

    1.定接口      /user 接口               输入    act=reg&user=aaa&pass=123456               输出     {& ...

  7. ViewPager(视图滑动切换工具)

    <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.Cons ...

  8. Angular2-三种样式封装策略的区别

    Angular2有三种样式封装方式,分别是None.Native.Emulated. 可用元数据“encapsulation”配置,配置方式如下: encapsulation: ViewEncapsu ...

  9. jQuery 数据 - jQuery.data() 方法

    打印出 hi

  10. 用户IP地址的三个属性的区别(HTTP_X_FORWARDED_FOR,HTTP_VIA,REM_addr)

    一.没有使用代理服务器的情况: REMOTE_ADDR = 您的 IP      HTTP_VIA = 没数值或不显示      HTTP_X_FORWARDED_FOR = 没数值或不显示 二.使用 ...