首页 > 其他分享 >利用HashMap制作简单的在线教学系统

利用HashMap制作简单的在线教学系统

时间:2024-08-15 17:54:12浏览次数:12  
标签:String System 教学系统 public println out HashMap id 在线

制作一个在线教学系统,通过控制台录入,学生信息要保存到HashMap,有如下功能:

1、增加学生信息
2、删除学生信息
3、修改学生信息
4、根据学号查看学生信息
5、查看成绩排行榜
6、退出系统功能

首先创建一个Student类
package hashmap;

public class Student {
    private String id;
    private String name;
    private double score;

    public Student(String id, String name, double score) {
        this.id = id;
        this.name = name;
        this.score = score;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getScore() {
        return score;
    }

    public void setScore(double score) {
        this.score = score;
    }

    // toString方法,方便打印学生信息
    @Override
    public String toString() {
        return "学生的" +
                "id是'" + id + '\'' +
                ", 名字是'" + name + '\'' +
                ", 成绩是" + score ;
    }
}

创建一个TeachSystem类

package hashmap;
import java.util.*;

public class TeachSystem {

        private HashMap<String, Student> students;

        public TeachSystem() {
            students = new HashMap<>();
        }

        // 增加学生信息
        public void addStudent(String id, String name, double score) {
            if (!students.containsKey(id)) {
                students.put(id, new Student(id, name, score));
                System.out.println("添加成功");
            } else {
                System.out.println("该学生已经存在");
            }
        }
    public String removeStudent(String id) {
        Student student = students.get(id);
        if (student!=null) {
            students.remove(id);
            return "删除成功";
        } else {
            return "该学生不存在";
        }
    }


    public void LookStudent(String id) {
        Student student = students.get(id);
        if (student!=null) {
            System.out.println(student);
        } else {
            System.out.println("学生不存在");
        }
    }
    public void Rank() {
        System.out.println("成绩降序排名如下:");

        List<Map.Entry<String, Student>> sortedStudents = new ArrayList<>(students.entrySet());

        sortedStudents.sort((entry1, entry2) -> Double.compare(entry2.getValue().getScore(), entry1.getValue().getScore()));

        for (Map.Entry<String, Student> entry : sortedStudents) {
            System.out.println(entry.getValue());
        }
    }


}

创建一个test类

package hashmap;
import java.util.Scanner;

public class test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        TeachSystem system = new TeachSystem();
        System.out.println("欢迎来到教学系统,请按下方提示继续操作");
        messsage();

        while (true){
            int x=sc.nextInt();
            if(x==1){
                System.out.println("请输入学生的学号: ");
                String id = sc.next();
                System.out.println("请输入学生的姓名: ");
                String name = sc.next();
                System.out.println("请输入学生的得分: ");
                double score = sc.nextDouble();
                system.addStudent(id, name, score);
                messsage();
            }
            if(x==2){
                System.out.println("请输入要删除的学生的学号: ");
                    String id = sc.next();

                String m =system.removeStudent(id);
                if(m.equals("删除成功")){
                    System.out.println("删除成功");
                }else
                {System.out.println("该学生不存在");}
                messsage();
            }
            if(x==3){
                System.out.println("请输入要修改的学生的学号: ");
                String id1 = sc.next();
                String m =system.removeStudent(id1);
                if(m.equals("删除成功")){
                System.out.println("请输入修改后的学生的学号: ");
                String id = sc.next();
                System.out.println("请输入修改后的学生的姓名: ");
                String name = sc.next();
                System.out.println("请输入修改后的学生的得分: ");
                double score = sc.nextDouble();
                system.addStudent(id, name, score);}
                else
                {System.out.println("该学生不存在");}
                messsage();
            }
            if(x==4){
                System.out.println("请输入要查看的学生信息的学生的学号: ");
                String id = sc.next();
                System.out.print("您要查找的");
                system.LookStudent(id);
                messsage();
            }
            if(x==5){
                    system.Rank();
                    messsage();
            }
            if(x==6){System.out.println("退出成功");
            break;
                }
        }
    }
    public static void messsage(){
        System.out.println("1、增加学生信息 \n" +
                "2、删除学生信息 \n" +
                "3、修改学生信息 \n" +
                "4、根据学号查看学生信息\n" +
                "5、查看成绩排行榜 \n" +
                "6、退出系统\n"+"请输入您要查找的内容前面的序号");
    }

}

标签:String,System,教学系统,public,println,out,HashMap,id,在线
From: https://blog.csdn.net/2301_81937222/article/details/141228408

相关文章

  • 乐器在线购物商城系统解决方案毕设毕业设计.web期末作业设计网页.css网页成品参考
     博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。所有项目都配有从入门到精通的基础知识视频课程,学习后应对毕业设计答辩。项目配有对应开发文档、开题报告、任务书、P......
  • 面试鸭上线了!程序员在线面试刷题神器
    大家好,我是程序员鱼皮。耗时几个月,我们的新项目【面试鸭】已经正式上线了。面试鸭是一个React前端+Node后端+云开发全栈项目。上线后的鸭鸭是一个题目全面、命中率高、题解优质、持续更新的面试刷题神器!题库包括java基础,Java集合、Java并发编程,JVM,Spring,SpringBoot......
  • 基于Java Springboot超市在线销售系统
    一、作品包含源码+数据库+设计文档万字+PPT+全套环境和工具资源+部署教程二、项目技术前端技术:Html、Css、Js、Vue、Element-ui数据库:MySQL后端技术:Java、SpringBoot、MyBatis三、运行环境开发工具:IDEA/eclipse数据库:MySQL5.7数据库管理工具:Navicat10以上版本环境......
  • The Cambridge Dictionary 在线英汉互译词典 All In One
    TheCambridgeDictionary在线英汉互译词典AllInOne最地道(美式/英式)英语口语发音练习https://dictionary.cambridge.org/dictionary/https://dictionary.cambridge.org/translate/demos英汉词典https://dictionary.cambridge.org/dictionary/english-chinese-si......
  • 5个神级在线网络安全工具网站(非常详细)零基础入门到精通,收藏这一篇就够了
    1Haveibeenpwned一个可以查信息安全的网站,打开之后输入你的邮箱或者是电话,就可以查询是否有泄露的情况,红色代表已经账号密码已经被泄露,绿色代表是安全的。你还可以测试你的密码是否安全,在密码界面输入你想设置的密码,就可以看到这个密码被使用的次数,如果使用过多的话,建议大......
  • SSM基于的小区物业管理系统4c9w9 论坛 在线投诉
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统内容;报修信息,业主,车位信息,业主缴费,物业制度开题报告内容一、选题背景随着城市化进程的加快,小区物业管理工作日益复杂,传统的人工管理模式已难以满足......
  • ConcurrentHashMap源码阅读
    finalVputVal(Kkey,Vvalue,booleanonlyIfAbsent){if(key==null||value==null)thrownewNullPointerException();inthash=spread(key.hashCode());intbinCount=0;for(Node<K,V>[]tab=table;;){Node<K,V>......
  • springboot+vue《Python数据分析》的教学系统【程序+论文+开题】-计算机毕业设计
    系统程序文件列表开题报告内容研究背景随着大数据时代的到来,数据分析技能已成为各行各业不可或缺的核心竞争力之一。Python,作为一门高效、灵活且拥有丰富数据分析库的编程语言,正逐步成为数据分析领域的主流工具。然而,当前高等教育体系中,《Python数据分析》课程的教学仍面临......
  • HashMap和Hashtable的区别 day15
    /*Map:存储元素的特点是每一个元素是一个键值对{【name:"魏一民"】,【age:18】}Map集合的共同拥有的特点:1、Map集合中的元素,键是唯一的,不会在一个Map集合发现两个相同的键1001:魏一民1002:陈真1001:小虎2......
  • HashMap源码全解析
    1.源码全集如下查看代码 publicclassHashMap<K,V>extendsAbstractMap<K,V>implementsMap<K,V>,Cloneable,Serializable{@java.io.SerialprivatestaticfinallongserialVersionUID=362498820763181265L;staticfinalinthash(O......