java实现学生投票系统

这篇具有很好参考价值的文章主要介绍了java实现学生投票系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

代码

0x1 构思

0x2核心

 0x3功能


代码

import java.util.Scanner;

class info{
    // 定义班干人数为3
    String monitor = "DPW-班长";
    String hygiene = "WYQ-卫生";
    String study = "ZR-学习";

    public int getW() {
        return w;
    }

    public void setW(int w) {
        this.w = w;
    }

    public int getD() {
        return d;
    }

    public void setD(int d) {
        this.d = d;
    }

    public int getZ() {
        return z;
    }

    public void setZ(int z) {
        this.z = z;
    }

    private int w = 0;
    private int d = 0;
    private int z = 0;

    // 输出最后的统计
    public void statistics(){
        System.out.println("DPW班长有"+getD()+"票\n"+"WYQ卫生有"+getW()+"票\n"+"ZR学习有"+getZ()+"票");
        if (getD() >getZ() && getD() > getW() ){
            System.out.println("票数最多者为"+monitor+getD()+"票");
        }else  if (getW() >getD() && getW() >getD()){
            System.out.println("票数最多者为"+hygiene+getW()+"票");
        }else {
            System.out.println("票数最多者为"+study+getZ()+"票");
        }
    }
  
}
public class Student {
    public static void main(String[] args) {
       // 定义学生数组 里面有10个数组
        String[] Student = {
                "", "A同学", "B同学", "C同学", "D同学", "E同学", "F同学", "G同学", "H同学", "Y同学", "Z同学",
        };
        Scanner sc = new Scanner(System.in);
        info elm  = new info();
        System.out.println("请通过首字母来选择投票给谁" +"\n"+elm.study+"\n"+elm.monitor+"\n"+elm.hygiene+"\n"+"按E退出"+"\n"+"-----------------------------------------");
//        while (true) {
            for (int i = 1; i < Student.length; i++) {
                System.out.println("您是第" + i + "位,姓名是" + Student[i]);
//                System.out.println("请选择你要投票给谁, 1.A同学, 2.B同学, 3.C同学, 4.D同学, 5.E同学, 6.F同学, 7.G同学, 8.H同学, 9.Y同学, 10.Z同学");
                String classmate = sc.nextLine(); // 接收到是谁
                if (classmate.equals("D") | classmate.equals("d")) {
                    // 投票成功那么就将票数加1
                   elm.setD(elm.getD()+1);
                    System.out.println("目前DPW的票数是"+elm.getD());

                } else if (classmate.equals("W") | classmate.equals("w")) {
                    elm.setW(elm.getW()+1);
                    System.out.println("目前WYQ的票数是"+elm.getW());

                } else if (classmate.equals("Z") || classmate.equals("z")) {
                    elm.setZ(elm.getZ()+1);
                    System.out.println("目前ZR的票数是"+elm.getZ());

                } else if (classmate.equals("E") | classmate.equals("e")) {
                    System.out.println("你选择为退出不作为票数,投票结束最终的结果为");
                    elm.statistics();
                    break;
                } else {
                    System.out.println("检测到非法字符 退出系统");
                    break;
                }
                if(i ==10) {
                    System.out.println("投票结束最终的结果为");
                    elm.statistics();
                }
            }

        }
}

| 以上就是完成投票系统的全部代码,花费一个晚自习的时间,还是有难点的,但是我完成此功能利用到的知识点不是很多,只有封装get和set构造方法来传递数据,整体的逻辑为  数组定义10个值为学生的姓名, 利用for循环搭配 Scanner键盘录入,遍历数组的长度,每次来确定投票给谁,给出三个“班干部”,接收输入来对票数进行统计........

0x1 构思

常规 定义class info 起手, 定义需要被投票的三个班干名称, monitor(班长), hygiene(卫生),study(学习);

而后定义票数统计w,d,z对应三个干部,并且私密private 下方也是需要通过get set 方法进行传递赋值 这里就不写出,

Statisticss是定义的是普通的方法用于最后的统计票数环节,先定义好方便后续直接使用。 

Mian方法里面定义了字符串数组,放置了11个值,我们知道数组是从0开始取值,为了方便后续的for循环遍历 出现问题 我提前设置好空值,后面可以直接跳过值,暂时我也想不到更好的方式解决,只能是手动length+1

然后引入键盘录入类Scanner实例化class info

class info{
    String monitor = "DPW-班长";
    String hygiene = "WYQ-卫生";
    String study = "ZR-学习";
    
    private int w = 0;
    private int d = 0;
    private int z = 0;
    
    
       // 输出最后的统计
    public void statistics(){
    
    }
}

public class Student {
    public static void main(String[] args) {
       // 定义学生数组 里面有10个数组
        String[] Student = {
                "", "A同学", "B同学", "C同学", "D同学", "E同学", "F同学", "G同学", "H同学", "Y同学", "Z同学",
        };
        Scanner sc = new Scanner(System.in);
        info elm  = new info();
      }  

0x2核心

最核心的判断代码就在 10-38 此处需要好好理解,请跟着我的思路来一一剥析

9 行是一个提示语,告诉用户投票方式为首字母即可,并且呢利用 elm 实例出的类来成员变量,我也是多写出了一个选择那就是E 可以直接退出投票

10 行的for循环从i=1开始遍历数组,至于长度肯定就是学生数组的length,搭配键盘录入就可以起到妙蛙种子进了妙蛙屋 妙到家了,遍历10 次键盘输入就有10次

11-12 提示语句判断第几位和是哪个学生在投票, classmate 键盘录入保存的值

13-38 里面全部是if判断语句,因为我们是通过首字母判断的,所以我肯定是判断 classmate 这个字符串的值

13-16 行判断我是使用的是equals() 去做比较,只是简单的  classmate == "d" 一直无法判断到,这时候肯定要打开搜索引擎去找找办法,就找到了equal() 方式,并且考虑了 | 逻辑或的情况,因为上方的提示语句虽然是 大写的 D W Z 但不排除会有小写 d w z 的情况,所以这 这里的代码就是   if (classmate.equals("D") | classmate.equals("d")) {}  这里就可以成功的判断到值,并且进行下一步的票数累加

java实现学生投票系统

if (classmate.equals("D") | classmate.equals("d")) {
      elm.setD(elm.getD()+1);
      System.out.println("目前DPW的票数是"+elm.getD());
}

这里就是判断到用户输入而后去利用实例化类的 elm.setD 赋值 +1 而后输出打印
余下的判断同样遵循这个原理

java实现学生投票系统

 0x3功能

统计

25-28 是定义程序的退出功能,用户 E 键 退出后我们提示  System.out.println("你选择为退出不作为票数,投票结束最终的结果为");

给到 统计票数功能方法  elm.statistics(); 我们在 class info 类定义的统计方法就派上了用场,退出后调用 statistics() 方法统计票数

break 跳出并结束当前所在循环的执行 也就是退出了整个程序

java实现学生投票系统

statistics 方法类逻辑就非常简单了,getD.... 拿到每位的票数,if判断进行比较出最大值,这个比较方式比较傻瓜,但我也没有找别的就这样用上了,最后的结果是无误的就可以了

  public void statistics(){
        System.out.println("DPW班长有"+getD()+"票\n"+"WYQ卫生有"+getW()+"票\n"+"ZR学习有"+getZ()+"票");
        if (getD() >getZ() && getD() > getW() ){
            System.out.println("票数最多者为"+monitor+getD()+"票");
        }else  if (getW() >getD() && getW() >getD()){
            System.out.println("票数最多者为"+hygiene+getW()+"票");
        }else {
            System.out.println("票数最多者为"+study+getZ()+"票");
        }
    }

java实现学生投票系统

强制退出

此处功能是自己加入,因为考虑到非法输入 索性就强制退出即可,else 没有在我们选项中的选择就强制break。

 else {
         System.out.println("检测到非法字符 退出系统");
          break;
     }

投票10次结束

结束其实是不难统计的,计算到i=10即可,但是呢常规大家肯定都会是在在程序结束统计不就好了,程序结束的条件不就是for循环10次结束,循环结束是没错,结束了就可以统计,但是这是正常的结束才可以这样做,但程序中还存在强制退出的功能点,如果写在下方的话那么就不满足10次,10次不到可能就会执行elm.statistics(); 导致强制退出和投票结束都会输出就有两个统计。 但是满足10次又需要 正常执行完,所以我就想到了一个折中的方案,额外在 for 里面加入 判断 if的语句 对i进行判断 到10次即可,10次结束了也能正常调用统计。

  if(i ==10) {
        System.out.println("投票结束最终的结果为");
        elm.statistics();
  }

java实现学生投票系统

以上就是程序的全部讲解,其实还是有很多需要优化改进的地方,而且还有一些不严谨之处 比如如果有2者票数一致的情况,比如输入非法字符如何不退出整个程序还可以在当次重新输入的情况..... 还需要继续努力学习,如有不正确不恰当之处 望老师同学不吝赐教!文章来源地址https://www.toymoban.com/news/detail-491222.html

到了这里,关于java实现学生投票系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java开发一个学生选课系统【附代码】

    (1)选课系统环境要求 1、搭建java开发环境并配置JDK、安装Intellij IDEA、Navicat、mysql等工具。 2、使用java自带的swing实现窗口化图形界面。 (2)选课系统功能及模块图 学生选课系统具体后端实现和功能为: 1、后端java逻辑层:实体类、dao层、util工具类、view展示类。 2、数据

    2024年02月06日
    浏览(35)
  • 【Java】学生管理系统-登录、注册、CRUD(附完整代码)

    为学生管理系统书写一个登陆、注册、忘记密码的功能。 只有用户登录成功之后,才能进入到学生管理系统中进行增删改查操作。 采取控制台的方式去书写学生管理系统。 属性:id、姓名、年龄、家庭住址 属性:用户名、密码、身份证号码、手机号码 1,用户名需要满足以

    2024年02月03日
    浏览(42)
  • 学生管理系统(Java实现)

    学生管理系统效果图 使用Java提供的Javax库来实现图形化界面,在使用这个库的时候,我发现它和Qt十分相似,但和Qt相比感觉更方便使用。 效果图: 1.主页面 2.添加学生页面 3.查找学生页面 4.总结 该图形化界面核心代码其实和第一个在控制台操作的管理系统基本一样,只是进

    2024年02月09日
    浏览(49)
  • java实现管理学生选课系统

    项目简介 基于Java Swing+MySQL的学生选课管理系统,支持对课程的发布,查询,添加,删除操作,同时支持对学生及教师信息的管理。       2.项目采用技术 该项目主要使用Java Swing+SQLServer        3.功能需求分析 学生选课管理系统中要实现管理者对于学生和教师信息的管理以

    2024年02月07日
    浏览(43)
  • 使用C++实现的学生成绩管理系统(附完整代码)

    学生成绩管理系统可以录入、查询、修改学生的成绩,它包括:信息条目序号、学生姓名、课程名称、课程学分数、学生该课程的成绩(百分制成绩, 等级制成绩,绩点)。学生成绩管理系统能够提供以下功能: 1)录入学生的成绩信息:从键盘输入数据,依次输入:学生姓

    2024年02月06日
    浏览(36)
  • 用JAVA实现一个学生管理系统和登录系统

    目录 一、学生管理系统: 1.创建学生对象Student的javabean类: 2.创建出学生管理系统 StudentSystem类: 1.addStudent方法:添加学生 2.ifOne方法,用来判断我们输入的学生id是否唯一(如果存在学生就不用再添加此学生): 3.queryStudent方法,把我们表中的所有学生显示出来 4.getIndex()如果

    2024年02月11日
    浏览(44)
  • 基于django框架的学生选课系统jsp学校教务信息java源代码Mysql

    本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 基于django框架的学生选课系统 系统有2权限:学生、教师 分为学生端和教师端 学生端有登录注册功能,学生

    2024年02月11日
    浏览(48)
  • 【超详细】Java实现学生信息管理系统

     项目介绍:用java实现学生信息的管理,其中录入的数据包括:学号、姓名、年龄、居住地等,并且能够实现对学生信息的添加、修改、删除、查看功能。 一、创建项目 1、项目名称:myStudentManager 二、创建包 1、包名称:study 2、名字也可以自己进行命名 三、创建两个类 1、

    2024年02月04日
    浏览(43)
  • 学生信息管理系统springboot学校学籍专业数据java jsp源代码mysql

    本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 学生信息管理系统springboot 系统3权限:超级管理员,学生,老师。 管理员登录主要包括:用户管理,专业管

    2024年02月14日
    浏览(45)
  • 用Java实现一个学生管理系统(附源码)

    目录 一、题目要求  二、设计思路 (2)代表课程的类——Course类 (3)具体功能实现类——Function类 (4)测试类——Test类 三、代码实现 (1)Student.java文件 (2)Course.java文件 (3)Function.java文件 (4)Test.java文件         编写一个学生成绩管理系统。学生的属性包括学

    2024年02月08日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包