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

根据题目信息书写信息代码块

package voter;public class message {private int count ;  //投票数private String name;  //投票人姓名private String advice;  //投票建议private static String list[] = new String[10];   //已投票人名单(所有成员共用一个成员名单)private static String selected[] = new String[10];  //选举人名单private static int selected_count[] = new int [10]; //选举人票数private static int num = 0;         //投票名单下标private static int figure = 0;        //选举者名单下标//含参构造函数public message(String name) {this.name = name;}//无参构造函数public message() { }//赋值名字public void set_Name(String name) {this.name = name;}//投票public void vote(message voter,message constituent) {if(vote_advice(voter.name)) {advice  =  "请勿重复投票";System.out.println(advice);}else {advice  =  "感谢你的投票";System.out.println(advice);list[num] = voter.name;   //投票者名字加入名单num++;constituent.count++;         //选举者票数+1int k = voter_in(constituent);if(k==figure) {selected[k] = constituent.name;  //选举者名字加入名单selected_count[k]++;                   //更新票数figure++;}else {selected_count[k]++;                    //更新票数}}   }//判断是否已投票private boolean vote_advice(String name) {for(int i = 0;i<num;i++) {if(list[i].equals(name)) {return true;    //该成员已经投票}  }return false;     //该成员尚未投票}private int voter_in(message constituent) {for(int i = 0;i < figure;i++) {if(selected[i].equals(constituent.name)) {            //该选举者已存在return i;}}return figure;                                //新的提名者}//显示得票数public void show() {System.out.println(count);}//显示最后结果public void result() {System.out.println("投票人数:" + num);for(int i =0;i<figure;i++) {                          //冒泡排序for(int j = 0; j<figure-i-1;j++) {if(selected_count[j]>selected_count[j+1]) {int temp = selected_count[j];                    //对得票数进行排序selected_count[j] = selected_count[j+1];selected_count[j+1] = temp;//更新选举者位置String str_temp = selected[j];selected[j] = selected[j+1];selected[j+1] = str_temp;}}}for(int i = 0;i<figure;i++) {System.out.println(selected[i] + ":" + selected_count[i]);}System.out.println("程序结束...");}//输出名字public String get_name() {return name;}public void get_count() {System.out.println(name + ":" + count);}}

题目中要求满足10人进行投票,定义一个message类型的数组保存这10人的信息然后不同的成员通过自己的代号调用投票函数,投票结束后用户还可以通过成员的代号查询投票情况,结束查询时,输出所有选举人的得票情况(按得票数目从小到大排序输出)

package voter;import java.util.Scanner;public class Voter {private message vote[] = new message[10] ;private int num = 10;//投票人员初始化(程序运行阶段赋值)public  void initialize() {for(int i = 0;i<num;i++) {String str_name;Scanner name = new Scanner(System.in);System.out.print("请输入成员姓名:");str_name = name.next();vote[i] = new message("str_name");}}//初始化成员将成员直接赋值public void set() {for(int i = 0;i<num;i++) {vote[i] =new message();}vote[0].set_Name("Jan");vote[1].set_Name("Michale");vote[2].set_Name("KangKang");vote[3].set_Name("Jack");vote[4].set_Name("Mera");vote[5].set_Name("Win");vote[6].set_Name("June");vote[7].set_Name("July");vote[8].set_Name("Auget");vote[9].set_Name("Bank");}//代号public void show() {for(int i = 0;i<num;i++) {System.out.print(i + ":" + vote[i].get_name() +" \t");}System.out.println("("+"10" + "退出系统"+")");}public static void main(String[] args) {Voter voter = new Voter();int j;int number = 0; int i;voter.set();OUT:while(true) {Scanner in = new Scanner(System.in);voter.show();System.out.print("请输入你的身份代号:");            j = in.nextInt();//以某一成员的身份结束程序System.out.print("请问需要给谁投票 (输入10直接退出系统):");i = in.nextInt();if(i==10||number==10) {for(;;) {               //查询得票信息voter.show();System.out.println("(0~9):查询对应人员的得票数,10:退出系统(输出所有选举者得票情况)");System.out.print("查询:");int k = in.nextInt();if(k==10){voter.vote[0].result();break OUT;}voter.vote[k].get_count();}}else{voter.vote[j].vote(voter.vote[j],voter.vote[i]);}}}}

需要注意的是:创建自定义类后,新建一个自定义类的数组,Java语言本身是不提供在自定义类数组声明时候自动创建新对象的方式的,需要为每一位成员开辟空间

public void initialize() {for(int i = 0;i<num;i++) {String str_name;Scanner name = new Scanner(System.in);System.out.print("请输入成员姓名:");str_name = name.next();vote[i] = new message("str_name");}}//初始化成员将成员直接赋值
public void set() {for(int i = 0;i<num;i++) {vote[i] =new message();}vote[0].set_Name("Jan");vote[1].set_Name("Michale");vote[2].set_Name("KangKang");vote[3].set_Name("Jack");vote[4].set_Name("Mera");vote[5].set_Name("Win");vote[6].set_Name("June");vote[7].set_Name("July");vote[8].set_Name("Auget");vote[9].set_Name("Bank");}

案例: 学生投票系统相关推荐

  1. Java基础案例3-4:学生投票系统

    [案例3-4]学生投票系统 [案例介绍] 某班级投票竞选班干部,班级学生人数为100人,每个学生只能投一票. 本任务要求,编程实现一个投票程序,每个学生只能投一次票,投票成功提示"感谢你的投 ...

  2. 【Java编程学习】案例3-4:学生投票系统

    某班级投票竞选班干部,班级学生人数为10人,每个学生只能投一票,投票成功提示"感谢你的投票".若重复投票,提示"请勿重复投票".当投票总数达到10或者主观结束投 ...

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

    某班级投票竞选班干部,班级学生人数为10人,每个学生只能投一票,投票成功提示"感谢你的投票".若重复投票,提示"请勿重复投票".当投票总数达到10或者主观结束投 ...

  4. [案例3-4]学生投票系统

    案例描述: 某班级投票竞选班干部,班级学生人数为10人,每个学生只能投一票. 本任务要求,编程实现一个投票程序,每个学生只能投一次票,投票成功提示"感谢你的投票",若重复投票,提示 ...

  5. Java Web案例 - 学生选课系统

    1.登录界面显示 首先通过IDEA 创建maven 项目,会自动生成pom.xml 文件.目录结构如下: web.xml文件内容: index.jsp文件内容: 404.jsp.500.jsp以及lo ...

  6. (附源码)springboot 校园学生兼职系统 毕业设计 742122

    目  录 摘要 1 绪论 1.1研究背景 1.2研究现状 1.3系统开发技术的特色 1.4论文结构与章节安排 2校园学生兼职系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流 ...

  7. (附源码)spring boot校园学生兼职系统 毕业设计 742122

    目  录 摘要 1 绪论 1.1研究背景 1.2研究现状 1.3系统开发技术的特色 1.4论文结构与章节安排 2校园学生兼职系统系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流 ...

  8. 学籍管理系统 c语言流程图,程序设计基础 ——C语言第10章 综合应用案例——学生学籍管理系统...

    程序设计基础 第 10章 综合应用 案例 -学生学籍 管理系统 1 详细设计 需求分析 总体设计 第 10章 综合应用 案例 -学生学籍管理系统 编码实现 运行结果 2 设计一个利用 文件 处理方式, ...

  9. java选课系统_java实现学生选课系统

    本文为大家分享了java实现学生选课系统的具体代码,供大家参考,具体内容如下 案例要求: 学生(学号,姓名,专业,所选课程{<3}) 老师(工号,姓名,所教课程{<3}) 课程(课程号,课 ...

最新文章

  1. 【算法练习】校招研发工程师笔试题
  2. 三容水箱液位控制系统_三容水箱液位控制系统的建模及仿真.doc
  3. java大string排序_java中字符串排序,String 转化为int比较大小
  4. Android startActivityForResult的使用
  5. win7 iis7 配置如何让局域网内其它用户访问
  6. 在ios开发中使用 try 和 catch 来捕获错误。
  7. Linux下SQLPlus中文乱码处理
  8. linux ubuntu bionic,尝试在Linux Ubuntu 18.04 Bionic上安装Docker CE时出现错误?
  9. 无法打开文件“libboost_python-vc120-mt-sgd-1_59.lib”
  10. php远程读取几行文件,PHP读取远程文件的三种方法
  11. python中int什么意思_python3中int(整型)的使用教程
  12. win10安装rqalpha开源回测框架
  13. 华为云域名转入到阿里云的基本流程
  14. VirtualBox+CentOS6.5安装增强功能包 - Building the main Guest Additions module [失败]
  15. 人工智能之知识图谱概述(一)
  16. win10下装win7双系统_Win10用不惯?试试Win10加Win7双系统吧
  17. 可视化工具不知道怎么选?深度评测5大Python数据可视化工具
  18. 织梦php的api,DedeCMS提交百度熊掌号API接口PHP提交
  19. Yupoo!(又拍网)架构 是目前国内最大的图片服务提供商,整个网站构建于大量的开源软件之上
  20. 基于matlab的复杂背景下不规则目标边缘提取算法的仿真

热门文章

  1. openmv学习四:定时器
  2. Wakeup linux system from sleep mode
  3. Java List 分割
  4. 2020 CCPC Wannafly Winter Camp Day3 部分题解(ACEFG)
  5. 数据结构 —— 数组,列表和树的家族
  6. 联想B450笔记本拆解步骤
  7. 如何更好的帮Siri提升“听力水平”,浅析多语种语音识别Multi-lingual ASR挑战
  8. jumpserver堡垒机V2.2.2 详细部署
  9. YJK软件与PKPM相比具有哪些优点?
  10. 结合案例讲解MapReduce重要知识点 --------- MapReduce各组件之间数据传递