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 ...
随机推荐
- mongo 聚合
public Object testAggregation1() { TypedAggregation<News> aggregation = Aggregation.newAggrega ...
- EF4.4增删改查实例
第一.先创建一个名为Store数据库,将下面脚本代码执行创建表: USE [Store] GO /****** Object: Table [dbo].[Category] Script Date: ...
- js 继承介绍
js中继承的方式并不是明确的,这里介绍常用的几种 一.对象冒充(构造函数绑定) 原理:使用对象冒充继承基类,实质上是使用call或apply方法改变this 指针的指向 function Monkey ...
- hadoop学习笔记(二):简单启动
一.hadoop组件依赖关系 二.hadoop日志格式: 两种日志,分别以out和log结尾: 1 以log结尾的日志:通过log4j日志记录格式进行记录的日志,采用日常滚动文件后缀策略来命名日志文件 ...
- 数组相关方法积累(vue\ag等特别常用)
改变原数组的: shift:将第一个元素删除并且返回删除元素,空即为undefined unshift:向数组开头添加元素,并返回新的长度 pop:删除最后一个并返回删除的元素 push:向数组末尾添 ...
- 数据集DataSet
ADO.NET数据访问技术的一个突出的特点就是支持离线访问,而实现这种离线访问技术的核心就是DateSet对象,该对象通过将数据驻留在内存来实现离线访问. DataSet对象由一组DataTable对 ...
- 简单明了区分escape、encodeURI和encodeURIComponent(转)
一.前言 讲这3个方法区别的文章太多了,但是大部分写的都很绕.本文试图从实践角度去讲这3个方法. 二.escape和它们不是同一类 简单来说,escape是对字符串(string)进行编码(而另外两种 ...
- 503 Service Unavailable
转自:https://jingyan.baidu.com/article/6b1823099a258eba58e15902.html 第一 服务是不是被关闭了. 第二 原因IIS设置最大并发连接数 网 ...
- 撩课-Web架构师养成系列(第二篇)-async
前言 Web架构师养成系列共15篇,每周更新一篇,主要分享.探讨目前大前端领域(前端.后端.移动端)企业中正在用的各种成熟的.新的技术.部分文章也会分析一些框架的底层实现,让我们做到知其然知其所以然. ...
- css3 常用动画 随笔
/* animation */.a-bounce,.a-flip,.a-flash,.a-shake,.a-swing,.a-wobble,.a-ring{-webkit-animation:1s e ...