当前位置: 首页 > news >正文

学生投票系统-课后程序(JAVA基础案例教程-黑马程序员编著-第三章-课后作业)

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

记得 关注,收藏,评论哦,作者将持续更新。。。。

【案例介绍】

  1. 案例描述

某班级投票竞选班干部,班级学生人数为100人,每个学生只能投一票。

本任务要求,编程实现一个投票程序,每个学生只能投一次票,投票成功提示“感谢你的投票”,若重复投票,提示“请勿重复投票”。当投票总数达到100时或者主观结束投票时,同时统计投票学生人数和投票结果。

  1. 运行结果

 

【实现思路】

1)通过任务描述可知,需要定义一个参与投票的学生类Voter类,它具有姓名,最大投票数,当前投票总数,和投票意见。

2)因为所有参与投票的学生都会改变同一个数据,即投票次数,一次把它定义成静态变量:private static int count

3)另外,为了防止学生重复投票,必须保存参与投票的学生信息,可采用一个集合来存放已经投票的学生对象。

private static Set<Voter> voters = new HashSet<Voter>();

4)最后编写测试Voter类的投票和打印投票结果功能。

【实现代码】

Voter.java

  1. import java.util.HashSet;
  2. import java.util.Set;
  3. public class Voter {
  4.     // 属性的定义
  5.     private static final int MAX_COUNT = 100;    // 最大投票数
  6.     private static int count;                   // 投票数
  7.     // 静态变量,存放已经投票的学生
  8.     private static Set<Voter> voters = new HashSet<Voter>();
  9.     private String name;
  10.     private String answer;
  11.     // 构造方法
  12.     public Voter(String name) {
  13.         this.name = name;
  14.     }
  15.     // 投票
  16.     public void voterFor(String answer) {
  17.         if (count == MAX_COUNT){
  18.             System.out.println("投票结束。");
  19.             return ;
  20.         }
  21.         if (voters.contains(this)){
  22.             System.out.println(name+",请勿重复投票。");
  23.         } else {
  24.             this.answer = answer;
  25.             count ++;
  26.             voters.add(this);
  27.             System.out.println(name+" 感谢你的投票。");
  28.         }
  29.     }
  30.     // 打印投票结果
  31.     public static void printVoterResult() {
  32.         System.out.println("当前投票数为:"+count);
  33.         System.out.println("参与投票的学生和结果如下:");
  34.         
  35.         for (Voter voter: voters) {
  36.             System.out.println(voter.name+" 意见 "+voter.answer);
  37.         }
  38.     }
  39.     public static void main(String[] args) {
  40.         // 创建参与投票的学生对象
  41.         Voter tom = new Voter("Tom");
  42.         Voter jack = new Voter("Jack");
  43.         Voter mike = new Voter("Mike");
  44.         // 学生开始投票
  45.         tom.voterFor("");
  46.         tom.voterFor("");
  47.         jack.voterFor("");
  48.         mike.voterFor("");
  49.         // 打印投票结果
  50.         Voter.printVoterResult();
  51.     }
  52. }

 

相关文章:

学生投票系统-课后程序(JAVA基础案例教程-黑马程序员编著-第三章-课后作业)

【案例3-4】学生投票系统 记得 关注&#xff0c;收藏&#xff0c;评论哦&#xff0c;作者将持续更新。。。。 【案例介绍】 案例描述 某班级投票竞选班干部&#xff0c;班级学生人数为100人&#xff0c;每个学生只能投一票。 本任务要求&#xff0c;编程实现一个投票程序&…...

初始化一个列表python

1.初始化递增的list&#xff1a; list1 list(range(10)) #print list1 #[0,1,2,...,9] 2.初始化每项为0的一维数组&#xff1a; list2 [0] * 5 #print list2 #[0,0,0,0,0] 3.初始化固定值的一维数组&#xff1a; initVal 1 listLen 5 list3 [ initVal for i in range(5)] …...

【electron】webview嵌入页面发送消息给父级页面

场景需求&#xff1a; 嵌入页面操作时&#xff0c;通知父级页面 涉及知识点&#xff1a; contextBridge 嵌入页面可使用暴露的对象ipc-message 监听嵌入页面发送的消息webview preload 嵌入页面运行加载的脚本 问题&#xff08;两种方式&#xff09; 使用监听ipc-message需…...

Whids:一款针对Windows操作系统的开源EDR

关于Whids Whids是一款针对Windows操作系统的开源EDR&#xff0c;该工具所实现的检测引擎基于先前的 Gene项目构建&#xff0c;并专门设计可以根据用户定义的规则匹配Windows事件。 功能特性 1、为社区提供一款功能强大且开源的Windows EDR&#xff1b; 2、支持检测规则透明化…...

初级调色转档CameraRaw

一级调色 还原-曝光-色彩-细节-质感 修图的范围 整体&#xff08;掌握基本面板&#xff09;——局部&#xff08;曲线&#xff09;——具象&#xff08;混色器&#xff09; 修片最开始的准备工作 看直方图:明暗跟色彩的数据表 分析图片是否存在以下问题&#xff1a; 1.曝光…...

Mybatis源码(3) - Executor执行过程 | 一级缓存 | 二级缓存

0. 前言&#xff1a;1. CachingExecutor#query&#xff1a;1.1. BoundSql&#xff1a;1.2. CacheKey&#xff1a;1.3. 二级缓存&#xff1a;1.4. 一级缓存&#xff1a;2. JDBC过程执行&#xff1a;3. 结果集处理&#xff1a;4. Mybatis的一级缓存、二级缓存区别&#xff1a;0. …...

成为 Seatunnel 源码贡献者保姆级教程

Apache SeaTunnel 是下一代高性能、分布式、海量数据集成平台&#xff0c;已经在 B 站、腾讯云等 100 家公司生产使用。目前处于 incubator 阶段。作为公司内部使用的 ETL 工具&#xff0c;Seatunnel 可以基于已有的 Spark、Flink 计算平台进行数据交换也可以运行在 k8s 平台上…...

MySQL的索引视图练习题

学生表&#xff1a;Student (Sno, Sname, Ssex , Sage, Sdept) 学号&#xff0c;姓名&#xff0c;性别&#xff0c;年龄&#xff0c;所在系 Sno为主键 课程表&#xff1a;Course (Cno, Cname,) 课程号&#xff0c;课程名 Cno为主键 学生选课表&#xff1a;SC (Sno, Cno, Score)…...

【C++ Primer Plus】第四章:复合类型

文章目录4.1 数组C11数组初始化的方法4.2 字符串**cin是如何确定已完成字符串输入呢&#xff1f;****如何每次读取一行字符串输入&#xff1f;****面向行的输入&#xff1a;getline()****面向行的输入&#xff1a;get( )****为什么推荐使用get( )&#xff0c;而不是getline( )呢…...

做外贸,你不能不懂的外贸流程知识

报关是履行海关进出境手续的必要环节之一&#xff0c;涉及两大类:进出境运输工具、物品和货物。由于性质不同&#xff0c;报关手续也有些不同。今天我就为大家详细介绍一下进出口报关的流程&#xff0c;包括出口货物报关的流程&#xff0c;随报关单提交的运费和商业单据&#x…...

日本机载激光雷达测深进展(一)日本启动测量90%沿岸水深项目

海洋地图项目利用航空测深绘制日本90%沿海20m以浅区域&#xff0c;是日本海道协会&#xff08;JHA&#xff09;和日本财团的一个联合项目。 迄今为止&#xff0c;只有不到2%的日本沿海水域得到了测绘&#xff0c;严重拖累了在海洋事故、防灾减灾、篮碳以及生物多样性保护等领域…...

MySQL数据库调优————创建索引的原则和索引失效及解决方案

创建索引的原则 建议创建索引的场景 select语句&#xff0c;频繁作为where条件的字段update/delete语句的where条件需要分组、排序的字段distinct所使用的字段字段的值有唯一性约束对于多表查询&#xff0c;联接字段应创建索引&#xff0c;且类型无比保持一致 避免隐式转换 …...

设计师都在看的全球设计网站,你居然还不知道!

设计师需要拥有无限的创意和熟练的技巧&#xff0c;并且对行业的前景和客户的心理有一定的了解。要能达到“陌生化”之前&#xff0c;肯定是有知识储备&#xff0c;专业能力的前提要求&#xff0c;以及创新能力。 今天为大家整理了多个优秀全球设计网站&#xff0c;这些博客内…...

c++:缺省参数,函数重载

今天介绍的是cpp中的缺省参数以及函数重载的知识。 首先我们先看看缺省参数&#xff1a; 缺省参数 缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时&#xff0c;如果没有指定实 参则采用该形参的缺省值&#xff0c;否则使用指定的实参。 例如&#…...

深度学习算法面试常问问题(二)

X86和ARM架构在深度学习侧的区别&#xff1f; X86和ARM架构分别应用于PC端和低功耗嵌入式设备&#xff0c;X86指令集很复杂&#xff0c;一条很长的指令就可以完成很多功能&#xff1b;而ARM指令集很精简&#xff0c;需要几条精简的短指令完成很多功能。 影响模型推理速度的因…...

美国CPC认证是什么?儿童玩具亚马逊CPC认证审核有哪些问题?

很多卖家都有遭遇listing下架&#xff0c;被要求提供CPC认证报告。这是因为亚马逊有时会加强对儿童产品的审查。本文带大家对CPC认证进行一个全面了解。什么是CPC认证&#xff1f;CPC认证&#xff0c;全称ChildrensProductCertification.是认可实验室&#xff0c;根据产品不同适…...

恭喜! SelectDB 五位开发者成为 Apache Doris 新晋 PMC 成员和 Committer!

近期&#xff0c;通过 Apache Doris 项目管理委员会的推荐与投票&#xff0c;Apache Doris 社区正式迎来了 2 位新晋 PMC 成员 和 8 位新晋 Committer 的加入。值得关注的是&#xff0c;2 位新晋 PMC 成员均来自 SelectDB&#xff0c;分别是衣国垒&#xff08;yiguolei&#xf…...

数据库面试题

第一范式&#xff08;1NF&#xff09; 第一范式是指数据库的每一列都是不可分割的基本数据项&#xff0c;而下面这样的就存在可分割的情况&#xff1a; 学生&#xff08;姓名&#xff0c;电话号码&#xff09; 电话号码实际上包括了家用座机电话和移动电话&#xff0c;因此它…...

[USACO2022-DEC-Bronze] T2 Feeding the Cows 题解

一、题目描述Farmer John has N (1≤N≤10^5) cows, the breed of each being either a Guernsey or a Holstein. They have lined up horizontally with the cows occupying positions labeled from 1…N.Farmer John 有 N&#xff08;1≤N≤105&#xff09;头奶牛&#xff0c…...

Unity法线贴图原理理解(为什么存在切线空间?存的值是什么?)

Unity法线贴图原理理解(为什么存在切线空间&#xff1f;存的值是什么&#xff1f;&#xff09;写在前面1、为什么用法线贴图&#xff1f;2、用什么存法线&#xff1f;3、法线向量为什么存在切线空间&#xff1f;法线贴图存得是什么&#xff1f;4、法线贴图为什么会偏蓝&#xf…...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容&#xff1b;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容&#xff08;CL&#xff09;与匹配电容&#xff08;CL1、CL2&#xff09;的关系 2. 如何选择 CL1 和 CL…...