package test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* 投票系统
* 功能描述:从控制台输入总投票数、候选人数,再输入id,程序得出投票结果 本程序能处理最高票数的候选人不唯一的情况,并能随时查看投票情况
*
* @author xiehaisheng 2006-11-6
*/
public class NoseCount {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO 自动生成方法存根
int maxResult = 1;// 记录最大的票数
int maxResultId = 1;// 记录票数最大的id
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入总投票数:");
String s = br.readLine();
int total = Integer.parseInt(s);
System.out.println("请输入候选人数:");// 控制id的范围
s = br.readLine();
int personNumber = Integer.parseInt(s);
int id[] = new int[personNumber + 1];// 记录id号
int result[] = new int[personNumber + 1];// 记录id为personNumber的票数
// 给id[]赋初值
for (int i = 0; i < id.length; i++) {
id[i] = i;
}
// 给result[]赋初值0
for (int i = 0; i < result.length; i++) {
result[i] = 0;
}
// 输入id并开始记录票数
for (int i = total; i > 0; i--) {
System.out.println("第" + (total + 1 - i) + "票 此次投票完毕还可投" + (i - 1)
+ "票\t查看目前投票结果输入0\n请输入候选人id:(1~" + personNumber + ")");
String idin = br.readLine();
int temp = Integer.parseInt(idin);
while ((temp < 1 && temp != 0) || temp > personNumber) {// 控制id只能为1~personNumber
System.out.println("候选人id只能为1~" + personNumber
+ ";查看结果输入0;请重新输入!");
idin = br.readLine();
temp = Integer.parseInt(idin);
}
if (temp == 0) {// 查看结果
i++;
for (int j = 1; j < result.length; j++) {
System.out.println("候选人:" + id[j] + "\t票数:" + result[j]);
}
}
result[temp] += 1;
}
// 找出最大的票数,并记录id
for (int i = 2; i < result.length - 1; i++) {
maxResult = result[1];
if (result[i] > maxResult) {
maxResultId = i;
maxResult = result[i];
}
}
// 打印所有候选人票数
for (int i = 1; i < result.length; i++) {
System.out.println("候选人:" + id[i] + "\t票数:" + result[i]);
}
// 判断最高票数的候选人是否唯一
int maxResultIdArrary[] = new int[id.length - 1];
int maxResultIdCount = 1;// 记录最高票数的id的个数
for (int i = 1; i < result.length; i++) {// result[0]=0,不参与记数与打印输出
if (result[i] == maxResult && i != maxResultId) {
maxResultIdArrary[maxResultIdCount - 1] = i;
maxResultIdCount++;
}
}
// 打印最高票数的候选人
if (maxResultIdCount == 1) {// 最高票数候选人唯一的输出
System.out.println("恭喜!id为" + id[maxResultId] + "的候选人以最高票"
+ maxResult + "票获胜!");
} else {
System.out.println("最高票数为:" + maxResult);
System.out.println("这些候选人是:");
System.out.print(maxResultId + ",");
for (int i = 0; i < maxResultIdCount - 1; i++) {// 由于maxResultIdCount的初始值为1故i
// <
// maxResultIdCount
// - 1
System.out.print(maxResultIdArrary[i] + ",");
}
}
}
}
网上投票系统完整项目 java
1星 需积分: 10 58 浏览量
2010-05-08
11:42:47
上传
评论 2
收藏 8KB RAR 举报
jinpengaigo929
- 粉丝: 5
- 资源: 34
最新资源
- MMDF1N05ER2G-VB一款SOP8封装2个N-Channel场效应MOS管
- zipkin-server-3.3.0-exec.jar
- MI9933-VB一款SOP8封装2个P-Channel场效应MOS管
- zipkin-server-2.24.4-exec.jar
- MI4953-VB一款SOP8封装2个P-Channel场效应MOS管
- 基于Akka模拟实现Spark Standalone.pdf
- MI4946-VB一款SOP8封装2个N-Channel场效应MOS管
- 毕业答辩模板(动态模板)苹果IOS星空通用论文答辩模板
- 有效cookie值获取方式汇总
- 基于python实现的英雄联盟知识图谱问答系统源码(期末大作业).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈