JAVA【案列3-4】学生投票系统

【学生投票系统】

1、案例描述

某班级投票选举班干部,班级学生人数为10人,每个学生只能投一票,投票成功提示“感谢你的投票”。若重复投票,提示“请勿重复投票”。当票数达到10人或者人为结束投票时,统计投票学生人数和投票结果。本案例要求编写一个程序实现学生投票系统。

2、案例目的

(1)学会分析“学生投票系统”案例的实现思路

(2)根据思路完成“学生投票系统”案例的代码编写、编译及运行

(3)掌握static关键字的使用

(4)区分实例变量和类变量、实例方法和类方法的区别

3、运行结果

4、代码实现

package cn.itcast.example;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Random;
import java.util.Scanner;
import java.util.Set;

public class example {
	//属性的定义
	private static final int MAX_COUNT = 100;//最大投票数
	private static int count;//投票数
	//静态变量,存放已经投票的学生
	private static Set<example> voters = new HashSet<example>();
	private String name;
		private String answer;
		//构造方法
		public example(String name) {
			this.name = name;
		}
		//投票
		public void voterFor(String answer) {
			if (count == MAX_COUNT) {
				System.out.println("投票结束");
				return;
			}
			if (voters.contains(this)) {
				System.out.println(name+",请勿重复投票。");
			}else {
				this.answer = answer;
				count ++;
				voters.add(this);
				System.out.println(name+"感谢你的投票。");
			}
		}
		//打印投票结果
		public static void printVoterResult() {
			System.out.println("当前投票数为:"+count);
			System.out.println("参与投票的学生和结果如下:");
			for(example voter: voters) {
				System.out.println(voter.name+"意见"+voter.answer);
			}
		}
	public static void main (String[] arge) {
		//创建参与投票的学生对象
		example tom = new example("Tom");
		example jack = new example("Jack");
		example mike = new example("Mike");
		//学生开始投票
		tom.voterFor("是");
		tom.voterFor("否");
		jack.voterFor("是");
		mike.voterFor("是");
		//打印投票结果
		example.printVoterResult();
		
	}
}

Java中实现一个简单的班级投票竞选班干部系统,我们可以构建以下几个核心组件: 1. **学生类(Student)**: 包含学生的姓名、学号以及票数属性。 ```java public class Student { private String name; private int id; private int vote; // 构造函数、getter和setter等 } ``` 2. **候选人接口(Candidate)**: 描述竞选者的基本功能,如展示信息和增加票数。 ```java public interface Candidate { void displayInfo(); void addVote(); } ``` 3. **班长(B班长)、学习委员(L委员)等具体实现类**: 按照候选接口,分别创建具体的班干部类并实现方法。 ```java class President implements Candidate { // 实现displayInfo()和addVote() } class Secretary implements Candidate { // 实现displayInfo()和addVote() } ``` 4. **投票类(Vote)**: 管理投票过程,包括收集选票、统计结果等。 ```java public class Vote { private List<Candidate> candidates; public void collectVotes(Student[] voters) { for (Student voter : voters) { if (voter.getVoteable()) { voter.addCandidateVote(); } } } public void announceResult() { // 根据票数排序并显示结果 } } ``` 5. **主程序(Main)**: 用户界面,接收用户输入,创建学生对象,并启动投票过程。 ```java public class Main { public static void main(String[] args) { // 创建学生数组,模拟投票过程 Student[] students = new Student[10]; // ... Vote vote = new Vote(); vote.collectVotes(students); vote.announceResult(); // 结果输出 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值