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();
}
}
java:投个票程序的更多相关文章
- Java实现卖票程序(两种线程实现)
/** * 2019年8月8日16:05:05 * 目的:实现火车站卖票系统(第一种创建线程的方式) * @author 张涛 * */ //第一种方式直接继承Thread来创建线程 class T1 ...
- Java多线程练习:ticket卖票程序
/*需求:简单的卖票程序多个窗口买票 */ class Ticket extends Thread{ private static int tick=100; public void ru ...
- Java常用排序算法+程序员必须掌握的8大排序算法+二分法查找法
Java 常用排序算法/程序员必须掌握的 8大排序算法 本文由网络资料整理转载而来,如有问题,欢迎指正! 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排 ...
- Java 常用排序算法/程序员必须掌握的 8大排序算法
Java 常用排序算法/程序员必须掌握的 8大排序算法 分类: 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排序(直接选择排序.堆排序) 4)归并排序 5)分配 ...
- Java 获取APK安装程序的包名
Java 获取APK安装程序的包名核心的两个类: ResPackage ApkDecoder package com.temobi.util; import java.io.File; impo ...
- java 书籍推荐 JavaEE程序员必读图书大推荐
java 书籍推荐 JavaEE程序员必读图书大推荐 转自:http://www.cnblogs.com/xlwmin/articles/2192775.html 下面是我根据多年的阅读和实践经验,给 ...
- 将 Java Spring Framework 应用程序迁移到 Windows Azure
我们刚刚发布了一个新教程和示例代码,以阐述如何在Windows Azure中使用 Java 相关技术.在该指南中,我们提供了分步教程,说明如何将 Java Spring Framework 应用程序( ...
- Java学习之国际化程序
国际化程序就是把程序的语言根据用户使用的语言显示,各个国家的用户都可以看懂 实现方法就是把输出文字都写在配置文件里,然后根据用户系统语言选择不同的语言输出 package com.gh; import ...
- Java 后端微信小程序支付demo (网上说的坑里面基本上都有)
Java 后端微信小程序支付 一.遇到的问题 1. 商户号该产品权限未开通,请前往商户平台>产品中心检查后重试 2.签名错误 3.已经调起微信统一下单接口,可以拿到预支付ID,但是前端支付的时候 ...
随机推荐
- Web - <a>标签中href="javascript:;"
javascript: 是一个伪协议,其他的伪协议还有 mail: tel: file: 等等. 1 <a id="jsPswEdit" class="set ...
- 吃着火锅唱着歌学会Docker
第一篇:Docker概述 第二篇:Docker之版本与安装 第三篇:Docker之镜像 第四篇:Docker之容器 第五篇:Dcoker之容器与镜像 第六篇:Docker之网络管理 第七篇:Docke ...
- K8S 笔记,请坚持
service 通过 selector 来选择指定 label 的 pod. 如何访问 service 呢?集群内部访问,使用 cluster ip:集群外部访问,使用 NodePort. clust ...
- 阶段3 1.Mybatis_03.自定义Mybatis框架_3.自定义mybatis的编码-根据测试类中缺少的创建接口和类
先认识一下这几个类.Resources是一个class SqlSessionFactoryBuilder 创建新项目 复制相关的依赖 复制之前的代码 复制到当前项目的src下 把Mybits的依赖删除 ...
- Jmeter之HTTP常用配置元件(默认、头信息和cookies)
在进行HTTP接口的测试时,会用到部分常用的配置元件,现在简单的说明: 一.HTTP请求默认值 在测试同一个项目的HTTP请求接口时,会存在部分相同的信息,可以将这些相同的信息提取出来,使用HTTP请 ...
- win7旗舰版C盘无写入权限别拒绝怎么办? 精选
win7旗舰版C盘无写入权限别拒绝怎么办? 精选 https://zhidao.baidu.com/question/366277826663554972.html 浏览 42 次 1个回答 [热点话 ...
- excel 字母变大写 宏
Sub ConvertToUpperCase() Dim Rng As Range Worksheets("Sheet1").UsedRange.Select For Each R ...
- CentOS7搭建NTP服务器及客户端同步时间
一.服务器配置 1.查看服务器.客户端操作系统版本 [root@hadoop101 ~]# cat /etc/redhat-release CentOS Linux release (Core) 2. ...
- SVN与Git的优点差异比较
今天自己还是很有进步的,但是 下午的进度很慢,学习还是得回去,不能在工位进行 在网上看到一篇有关于SVN与Git的区别 复制下来了,以后可以经常看看 一. 集中式vs分布式 1. Subversion ...
- 《剑指offer》面试题27 二叉搜索树与双向链表 Java版
(将BST改成排序的双向链表.) 我的方法一:根据BST的性质,如果我们中序遍历BST,将会得到一个从小到大排序的序列.如果我们将包含这些数字的节点连接起来,就形成了一个链表,形成双向链表也很简单.关 ...