投票城市用到了:system.in, 正则pattern,matcher,排序接口comparable 复写compareTo排序方法

一个班级在选班长,按序号进行投票,并将票数最高的放在第一位显示

设计:

student学生类

投票菜单类

投票操作类

接受输入数据类

主程序调用

public class Student implements Comparable{

	private int id;
private String name;
private int vote; public Student(int id, String name, int vote) {
super();
this.id = id;
this.name = name;
this.vote = vote;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getVote() {
return vote;
} public void setVote(int vote) {
this.vote = vote;
} @Override
public String toString() {
return "姓名::" + name + ", 票数:" + vote + "]";
} public int compareTo(Student stu) {
// TODO 自动生成的方法存根
if(this.vote > stu.vote)
{
return 1;
}else if(this.vote < stu.vote)
{
return -1;
}else{
return 0;
}
} }

  

public class Menu {

	private Student stu[] = {new Student(1,"张三",0), new Student(2,"李四",0), new Student(3,"王五",0), new Student(4,"田七",0)};

	public Menu() throws IOException
{
Operater oper = new Operater(this.stu);
//输出全部需要投票的姓名
oper.list();
//投票
while(oper.vote())
{
;
}
//投票结束后,列出所有的飘数
oper.list(); } }

  

ublic class Operater {

	private Student stu[]=null;
private InputData inputData = null; public Operater(Student stu[])
{
this.stu = stu;
this.inputData = new InputData();
} public void list()
{
for(int i =0; i< this.stu.length; i++)
{
System.out.println(this.stu[i].getId()+"号,姓名:"+this.stu[i].getName()+":【"+this.stu[i].getVote()+"】票");
}
} public boolean vote() throws IOException
{
boolean flag = true;
int stuno = this.inputData.getInt("请输入你要选择的班长候选人ID:", "抱歉您输入的数据有误");
switch(stuno)
{
case 1:{
this.stu[0].setVote( this.stu[0].getVote() + 1);
break;
}
case 2:{
this.stu[1].setVote( this.stu[1].getVote() + 1);
break;
}
case 3:{
this.stu[2].setVote( this.stu[2].getVote() + 1);
break;
}
case 4:{
this.stu[3].setVote( this.stu[3].getVote() + 1);
break;
}
case 0:
{
flag = false;
break;
}
default:
{
flag = false;
break;
}
}
return flag;
} }

  

public class InputData {	

	/*public static void main(String[] args) throws IOException
{ InputStream ipt = System.in;
System.out.println("请输入:");
int temp=0;
StringBuffer buf = new StringBuffer();
while( (temp = ipt.read()) != -1 )
{
char c = (char)temp;
if(c == '\n')
{
break;
}
buf.append(c);
} String IpuStr = new String(buf);
//IpuStr = IpuStr.matches("\\s*|\r|\n|\t"); System.out.println( replace(IpuStr) );
IpuStr = replace(IpuStr);
if(IpuStr.matches("^\\d$"))
{
System.out.println( new Integer(IpuStr) );
}else{
System.out.println( "0" );
}
}
public static String replace(String str)
{
if(str != null && !"".equals(str))
{
Pattern p = Pattern.compile("\\s*|\r|\n|\t");
Matcher m = p.matcher(str);
return m.replaceAll("");
}else{
return str;
}
}
*/ public String replace(String str)
{
if(str != null && !"".equals(str))
{
Pattern p = Pattern.compile("\\s*|\r|\n|\t");
Matcher m = p.matcher(str);
return m.replaceAll("");
}else{
return str;
}
} public int getInt(String str, String str2) throws IOException
{
InputStream ipt = System.in;
System.out.println(str);
int temp=0;
StringBuffer buf = new StringBuffer();
while( (temp = ipt.read()) != -1 )
{
char c = (char)temp;
if(c == '\n')
{ break;
}
buf.append(c);
} String IpuStr = new String(buf);
IpuStr = this.replace(IpuStr);
if(IpuStr.matches("\\d"))
{
return new Integer(IpuStr);
}else{
return 0;
} } }

  

public class Test {

	public static void main(String[] args) throws IOException {
// TODO 自动生成的方法存根 new Menu(); } }

  

java:投个票程序的更多相关文章

  1. Java实现卖票程序(两种线程实现)

    /** * 2019年8月8日16:05:05 * 目的:实现火车站卖票系统(第一种创建线程的方式) * @author 张涛 * */ //第一种方式直接继承Thread来创建线程 class T1 ...

  2. Java多线程练习:ticket卖票程序

    /*需求:简单的卖票程序多个窗口买票 */ class Ticket extends Thread{    private static int tick=100;    public void ru ...

  3. Java常用排序算法+程序员必须掌握的8大排序算法+二分法查找法

    Java 常用排序算法/程序员必须掌握的 8大排序算法 本文由网络资料整理转载而来,如有问题,欢迎指正! 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排 ...

  4. Java 常用排序算法/程序员必须掌握的 8大排序算法

    Java 常用排序算法/程序员必须掌握的 8大排序算法 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排序(直接选择排序.堆排序) 4)归并排序 5)分配 ...

  5. Java 获取APK安装程序的包名

     Java 获取APK安装程序的包名核心的两个类:  ResPackage ApkDecoder  package com.temobi.util; import java.io.File; impo ...

  6. java 书籍推荐 JavaEE程序员必读图书大推荐

    java 书籍推荐 JavaEE程序员必读图书大推荐 转自:http://www.cnblogs.com/xlwmin/articles/2192775.html 下面是我根据多年的阅读和实践经验,给 ...

  7. 将 Java Spring Framework 应用程序迁移到 Windows Azure

    我们刚刚发布了一个新教程和示例代码,以阐述如何在Windows Azure中使用 Java 相关技术.在该指南中,我们提供了分步教程,说明如何将 Java Spring Framework 应用程序( ...

  8. Java学习之国际化程序

    国际化程序就是把程序的语言根据用户使用的语言显示,各个国家的用户都可以看懂 实现方法就是把输出文字都写在配置文件里,然后根据用户系统语言选择不同的语言输出 package com.gh; import ...

  9. Java 后端微信小程序支付demo (网上说的坑里面基本上都有)

    Java 后端微信小程序支付 一.遇到的问题 1. 商户号该产品权限未开通,请前往商户平台>产品中心检查后重试 2.签名错误 3.已经调起微信统一下单接口,可以拿到预支付ID,但是前端支付的时候 ...

随机推荐

  1. 【linux】的文件按时间排序

    > ls -alt # 按修改时间排序 > ls --sort=time -la # 等价于> ls -alt > ls -alc # 按创建时间排序 > ls -alu ...

  2. java网络通信:伪异步I/O编程(PIO)

    缺点:避免了线程资源耗尽的问题,但是根本上来说,serversocket的accept方法和inputstream的输入流方法都是阻塞型方法. 服务端:加了一个线程池,实现线程复用.客户端不变 pub ...

  3. python 接口测试时,后端报错no String-argument constructor/factory method

    解决方法: 1.先将字典转化为序列化的数据类型 data = {"pageNo":0,"pageSize":10,"shopId":15,& ...

  4. 源特定组播(SSM:Source Specific Multicast)

    源特定组播(SSM:Source Specific Multicast)是一种区别于传统组播的新的业务模型,它使用组播组地址和组播源地址同时来标识一个组播会话,而不是向传统的组播服务那样只使用组播组地 ...

  5. Shiro Demo 示例(SpringMVC-Mybatis-Shiro-redis)

    Shiro Demo 准备工作 运行前申明 请看完本页面的所有细节,对你掌握这个项目来说很重要,别一上来就搞,你不爽,我也不爽. 本项目需要一定的Java功底,需要对SpringMvc,Mybatis ...

  6. powershell下载网站图片

    $picurl = "https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=10" $data = ...

  7. vue分别打包测试环境和正式环境

    vue打包时使用不同的环境变量 需求 同一个项目通过打包使用不同的环境变量,目前的环境有三个: 一.本地------开发环境 二.线上------测试环境 三.线上------正式环境 我们都知道vu ...

  8. STL 函数适配器(function adapter)

    函数适配器(function adapter):通过不同函数适配器的绑定,组合和修饰能力,可以实现强大的功能,配合STL泛型算法完成复杂功能. 绑定(bind) template <class ...

  9. 为企业服务器配置RAID0、raid1、 raid10、raid5、raid6、等常见RAID

    RAID卡操作手册先从开机启动时如何进入管理界面开始介绍: 1)当机器开启后,显示器出现阵列卡检测信息时,会提示用户是否要进入管理界面对阵列卡进行操作,此时按下Ctrl + H 即可,如下图 2)按下 ...

  10. [Git] 025 标签命令

    0. 前言 小时候看<剑花-烟雨-江南>,惊讶于那个多重身份的"小侯爷" 后来发现,现实中拥有比小侯爷更多身份的人多如牛毛 其实,在 "Git" 中 ...