import java.util.Set //调用java.util.Set
import java.util.HashSet//调用java.util.HashSet
import java.util.Iterator//调用java.util.Iterator
public class Voter {//定义类
private static final int MAX_COUNT=100 //静态变量,最大投票数,到达此数就停止投票
private static int count//静态变量,投票数
private static Set<Voter>voters=new HashSet<Voter>() //静态变量,存放所有已经投票的选民
private String name //实例变量,投票人姓名
public Voter(String name){this.name=name} //定义名字字符串函数
/**投票*/
public void voteFor(){ //投票函数
if(count==MAX_COUNT){//如果计数结果等于投票人数最大值
System.out.println("投票活动已经结束") //打印投票活动已经结束
return //返回主函数
}
if(voters.contains(this)) //如果已包含投票人姓名
System.out.println(name+":你不允许重复投票!") //打印投票人姓名和你不允许重复投票!
else{//否则
count++ //计数加一
voters.add(this) //调用字符串函数添加投票人姓名
System.out.println(name+":感谢你投票!") //打印投票人姓名和感谢你投票!
}
}
/**打印投票结果*/
public static void printVoteResult(){ //投票结果函数
System.out.println("当前投票数为:"+count) //打印当前投票数为,并且统计人数
System.out.println("参与投票的选民名单如下") //打印参与投票的选民名单如下
for(Voter voter:voters){//遍历voters集合
System.out.println(voter.name) //打印输出投票名称
}
}
public static void main(String args[]) { //主函数
Voter tom=new Voter("Tom") //开辟空间定义元素tom
Voter mike=new Voter("Mike")//开辟空间定义元素mike
Voter jack=new Voter("Jack")//开辟空间定义元素jack
tom.voteFor() //进入tom的投票函数
tom.voteFor() //进入tom的投票函数
mike.voteFor()//进入mike的投票函数
jack.voteFor()//进入jack的投票函数
Voter.printVoteResult() //投票结果打印函数
}
}
两种实现方式:1)sql,2)java
1)sql语句-mysql
SELECT NAME,num,rankingFROM (SELECT NAME,num,
IF (num =@num ,@ranking ,@ranking :=@ranking + 1)AS ranking,
@num := num
FROM score,
(SELECT @ranking := 0,@num:=-1) tmp
ORDER BY num DESC
)tmp
2) java实现
public static void main(String[] args) {//初始化数据
List<Rank> ranks = Arrays.asList(new Rank("薛之谦", 100l),
new Rank("陈奕迅", 102l),
new Rank("田馥甄", 100l),
new Rank("周杰伦", 99l))
//按分数降序排序
ranks.sort((r1, r2) -> r2.getNum().compareTo(r1.getNum()))
//计算排名
int ranking = 0
long num = -1
for (Rank rank : ranks) {
rank.setRanking(rank.getNum() == num ? ranking : ++ranking)
num = rank.getNum()
}
//输出
ranks.forEach(o -> System.out.println(o.getName() + "" + o.getNum() + ":" + o.getRanking()))
}
import java.io.BufferedReaderimport java.io.InputStreamReader
public class Vote {
public static void main(String args[]) {
try {
String[] persons = new String[]{"1","2","3"}
Integer[] votes = new Integer[]{0,0,0}
BufferedReader sin = new BufferedReader(new InputStreamReader(
System.in))
String readline
System.out.println("================投票开始===============")
System.out.println("请按1,2,3投票,Enter确认")
System.out.println("按0-->Enter结束投票,公布结果\n")
readline = sin.readLine()// 从系统标准输入读入一字符串
while (!readline.equals("0")) {
String voteStr = readline
if(persons[0].equals(voteStr)){
votes[0] +=1
}else if(persons[1].equals(voteStr)){
votes[1] +=1
}else if(persons[2].equals(voteStr)){
votes[2] +=1
}else{
System.out.println("无效的投票!")
}
readline = sin.readLine()// 从系统标准输入读入一字符串
} // 继续循环
System.out.println("================投票结束===============")
System.out.println("================结果公布===============")
System.out.println(persons[0]+"================"+persons[1]+"==============="+persons[2])
System.out.println(votes[0]+"================"+votes[1]+"==============="+votes[2])
} catch (Exception e) {
System.out.println("Error" + e)// 出错,则打印出错信息
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)