java:投个票程序

投票城市用到了: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();

	}

}

  

时间: 2024-10-25 11:31:46

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

java火车站卖票程序(线程等待)

1 package com.java.thread.synch; 2 3 /** 4 * 卖票演示 5 * @author Administrator 6 * 两个车站卖100张票 7 */ 8 public class SellTicket { 9 static Object obj=new Object(); 10 static int Count=100; 11 public static void main(String[] args){ 12 // StationOne one =ne

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

/*需求:简单的卖票程序多个窗口买票 */ class Ticket extends Thread{    private static int tick=100;    public void run()    {        while(true)        {            if(tick>0)            {                System.out.println(Thread.currentThread().getName()+"sale:--

用Java写的爬虫程序

这是一个web查找的根本程序,从命令行输入查找条件(开端的URL.处置url的最大数.要查找的字符串), 它就会逐一对Internet上的URL进行实时查找,查找并输出匹配查找条件的页面. 这个程序的原型来自<java编程艺术>, 为了非常好的剖析,站长去掉了其间的GUI有些,并稍作修改以适用jdk1.5.以这个程序为基础,可以写出在互联网上查找 比如图像.邮件.页面下载之类的"爬虫". 先请看程序运转的进程: D:\java>javac  SearchCrawler

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

Java 常用排序算法/程序员必须掌握的 8大排序算法 本文由网络资料整理转载而来,如有问题,欢迎指正! 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排序(直接选择排序.堆排序) 4)归并排序 5)分配排序(基数排序) 所需辅助空间最多:归并排序 所需辅助空间最少:堆排序 平均速度最快:快速排序 不稳定:快速排序,希尔排序,堆排序. 先来看看 8种排序之间的关系: 1.直接插入排序 (1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2]

【Java】对服务器程序的理解

Login:------------->方法 Data:----->类.API数据 Collection:-------->集合 Data Source File: Database: Networking:------->java.net/javax.net Web Service: Stream [Java]对服务器程序的理解,布布扣,bubuko.com

我为什么要录制Java Swing桌面应用程序开发课程

首先在我从事Swing编程的几年中我听到过各种奇谈怪论.大致意思就是Swing桌面软件不合适.我只能呵呵.一个人能力有高低.对事物的看法有不同,都可以接受.但是把无知当个性只能说你太勇敢了.尽管甲骨文如今力推JavaFX.但是Swing还是目前Java桌面开发的主流技术. 本人从事Java语言编程超过11年.其中有五年左右的时间是在从事Java Swing桌面应用程序开发.其它几年是在从事J2EE与spring3 MVC开发,结合自身实践感慨颇多,感觉自己技术进步最大最快的几年恰恰是从事J2SE

C++实现一个航空订票程序

转载请注明出处:明桑Android 这是帮我同学写的一个C++作业,说实话好久没写过C++都有些生疏了.但他们好像还没学面向对象编程,所以只能是简单的结构体和输入输出的逻辑. 题目要求: 编写一个航空订票程序: 假设一等舱5个座位,编号为1~5,经济舱20个座位,编号为1~20 具体要求如下: 当程序开始时,提示输入乘客姓名,一个名字只能订一个座位,如果该名字已经订过座位了,则提示该乘客座位已定及座位号,否则提示输入舱位类型: 当输入舱位类型后,如果该舱位已全部订出,则提示此舱全部订完,重新选择

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

java 书籍推荐 JavaEE程序员必读图书大推荐 转自:http://www.cnblogs.com/xlwmin/articles/2192775.html 下面是我根据多年的阅读和实践经验,给您推荐的一些图书: 第一部分: Java语言篇 1 <Java编程规范> 星级: 适合对象:初级,中级 介绍:作者James Gosling(Java之父),所以这本书我觉得你怎么也得读一下.对基础讲解的很不错. 2 <Java核心技术:卷Ⅰ基础知识> 星级: 适合对象:初级,中级 介

将java开发的wordcount程序部署到spark集群上运行

1 package cn.spark.study.core; 2 3 import java.util.Arrays; 4 5 import org.apache.spark.SparkConf; 6 import org.apache.spark.api.java.JavaPairRDD; 7 import org.apache.spark.api.java.JavaRDD; 8 import org.apache.spark.api.java.JavaSparkContext; 9 impo