Java实例---简单的投票系统
代码分析
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实例---简单的投票系统的更多相关文章
- Django + mysql 快速搭建简单web投票系统
了解学习pyhton web的简单demo 1. 安装Django, 安装pyhton 自行百度 2. 执行命令创建project django-admin.py startproject mysi ...
- Java实例---简单的个人管理系统
代码分析 FileOperate.java package com.ftl.testperson; import java.io.File ; import java.io.FileInputStre ...
- Java实例---简单的数据库操作
源码分析 DAOFactory.java package cn.ftl.mysql ; public class DAOFactory { public static IEmpDAO getIEmpD ...
- Java实例---简单的宠物管理系统
代码分析 Cat.java package com.ftl.petshop; class Cat implements Pet { private String name; private Strin ...
- Java实例---简单的上课管理系统
源码分析 Course.java package com.ftl.many2many; import java.util.*; public class Course { private int cr ...
- Java实例---简单的超市管理系统
代码分析 Customer.java package test; public class Customer { private String name; private int customerTy ...
- Python实例---简单的选课系统
要求 思路: 构造方法传递过去学校名称,同时利用UUID创建一个随机字符串,用这个字符串来作为要写入的文件名 利用类的__str__方法来实现类对象接口返回学校名称的操作 利用pickle的dumps ...
- vue,一路走来(15)--简单投票系统
今天记录一下简单的投票系统,主要实现选中至少五张作品,并提交投票. 思路:选中作品,将作品id存入到数组里. 取消投票,则从数组中移除该作品id. 如图效果: <li v-for="( ...
- Django快速开发投票系统
使用Django搭建简单的投票系统:这个是官网的教程:https://docs.djangoproject.com/en/2.0/intro/tutorial01/ 在Run manage.py Ta ...
随机推荐
- Microsoft Power BI Desktop概念学习系列之Microsoft Power BI Desktop是什么?
不多说,直接上干货! 官网 https://powerbi.microsoft.com/zh-cn/desktop/ Microsoft Power BI Desktop是什么? https://p ...
- TortoiseGit学习系列之TortoiseGit基本操作拉取项目(图文详解)
前面博客 TortoiseGit学习系列之TortoiseGit基本操作克隆项目(图文详解) TortoiseGit学习系列之TortoiseGit基本操作修改提交项目(图文详解) TortoiseG ...
- cors允许的方法和contype-type
https://fetch.spec.whatwg.org/#cors-safelisted-request-header get head post text/plain multipart/for ...
- [心平气和读经典]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 ...
- 把AspDotNetCoreMvc程序运行在Docker上-part2:修改容器以及发布镜像
在上一个part<把AspDotNetCoreMvc程序运行在Docker上-part1>,已经将成功将aspdotnetcore程序运行在两个不同的容器中,目前两个容器的内容完全相同,只 ...
- nodejs学习笔记三(用户注册、登录)
1.定接口 /user 接口 输入 act=reg&user=aaa&pass=123456 输出 {& ...
- ViewPager(视图滑动切换工具)
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.Cons ...
- Angular2-三种样式封装策略的区别
Angular2有三种样式封装方式,分别是None.Native.Emulated. 可用元数据“encapsulation”配置,配置方式如下: encapsulation: ViewEncapsu ...
- jQuery 数据 - jQuery.data() 方法
打印出 hi
- 用户IP地址的三个属性的区别(HTTP_X_FORWARDED_FOR,HTTP_VIA,REM_addr)
一.没有使用代理服务器的情况: REMOTE_ADDR = 您的 IP HTTP_VIA = 没数值或不显示 HTTP_X_FORWARDED_FOR = 没数值或不显示 二.使用 ...