1. 使用HashMap编写一程序实现存储某班级学生信息,要求在屏幕上打印如下列表

学号   姓名   性别   年龄

001    张三   男      23

002    李四   男      22

要求:学生信息有用户输入,且提供检索、删除操作

Student类代码,对学生信息进行封装

public class Student {
/**学号、姓名、性别、年龄*/
private int id;
private String name;
private char sex;
private int age;
public Student(int id, String name, char sex, int age) {
super();
this.id = id;
this.name = name;
this.sex = sex;
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public char getSex() {
return sex;
}
public void setSex(char sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
} }

测试类代码,实现在控制台对学生信息进行增加,删除,查询。

 import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Set; public class Test4 {
/**
* @param args
*/
public static void main(String[] args) {
Student student1 = new Student(001, "张三", '男', 20);
Student student2 = new Student(002, "王舞", '女', 21); HashMap<Integer, Student> map = new HashMap<Integer, Student>();
map.put(student1.getId(), student1);
map.put(student2.getId(), student2);
System.out.println("学生信息如下:");
print(map);
System.out.println();
while (true) {
System.out
.println("请选择你要操作的方式:\n学生信息增加请输入:1 学生信息检索请输入:2 学生信息删除请输入:3 退出请输入:4");
BufferedReader input = new BufferedReader(new InputStreamReader(
System.in));
try {
switch (Integer.parseInt(input.readLine())) {
// 增加学生信息
case 1:
System.out.println("请输入要增加的学生信息,学号、姓名、性别、年龄");
String[] split = input.readLine().split(" ");
Student student3 = new Student(Integer.parseInt(split[0]),
split[1], split[2].charAt(0),
Integer.parseInt(split[3]));
map.put(Integer.parseInt(split[0]), student3);
print(map);
break;
// 检索学生信息
case 2:
System.out.println("请输入要查询的学生的学号:");
Student search = map.get(Integer.parseInt(input.readLine()));
if (search != null) {
System.out.println("检索到学生的信息是:" + search.getId() + "\t"
+ search.getName() + "\t" + search.getSex()
+ "\t" + search.getAge());
}
break;
//删除学生信息
case 3:
System.out.println("请输入要删除的学生的学号:");
Student remove=map.remove(Integer.parseInt(input.readLine()));
if(remove!=null){
System.out.println("要删除的学生是:\n" + remove.getId()
+ "\t" + remove.getName() + "\t"
+ remove.getSex() + "\t" + remove.getAge());
}
break;
case 4:
System.exit(0); default:
break;
} } catch (IOException e) {
e.printStackTrace();
}
} } static void print(HashMap<Integer, Student> map) {
// 通过key来获取对应的值
Set<Integer> keySet = map.keySet();
System.out.println("学号\t姓名:\t性别:\t年龄:");
for (Integer id : keySet) {
System.out.println(id + "\t" + map.get(id).getName() + "\t"
+ map.get(id).getSex() + "\t" + map.get(id).getAge());
}
} }

使用HashMap编写一程序实现存储某班级学生信息的更多相关文章

  1. 程序阅读:简单C++学生信息管理系统

    课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [程序阅读]阅读并执行以下的程序,找出当中出现 ...

  2. 从零自学Java-3.在程序中存储和修改变量信息

    1.创建变量: 2.使用不同类型的变量: 3.在变量中存储值: 4.在数学表达式中使用变量: 5.把一个变量的值赋给另一个变量: 6.递增/递减变量的值. 程序Variable:使用不同类型的变量并赋 ...

  3. 基于数组或链表的学生信息管理系统(小学期C语言程序实训)

    1.基于数组的学生信息管理系统 实验内容: 编写并调试程序,实现学校各专业班级学生信息的管理.定义学生信息的结构体类型,包括:学号.姓名.专业.班级.3门成绩. 实验要求: (1) main函数:以菜 ...

  4. 大数据学习day25------spark08-----1. 读取数据库的形式创建DataFrame 2. Parquet格式的数据源 3. Orc格式的数据源 4.spark_sql整合hive 5.在IDEA中编写spark程序(用来操作hive) 6. SQL风格和DSL风格以及RDD的形式计算连续登陆三天的用户

    1. 读取数据库的形式创建DataFrame DataFrameFromJDBC object DataFrameFromJDBC { def main(args: Array[String]): U ...

  5. CSharpGL(11)用C#直接编写GLSL程序

    CSharpGL(11)用C#直接编写GLSL程序 +BIT祝威+悄悄在此留下版了个权的信息说: 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharp ...

  6. (十) 编写UVC程序

    目录 编写UVC程序 流程简述 11个ioctl函数 查询属性 VIDIOC_QUERYCAP 枚举格式 VIDIOC_ENUM_FMT 查询当前格式 VIDIOC_G_FMT 尝试某种格式 VIDI ...

  7. 编写wordcount程序

    一.程序概述 1.此次编写的程序为邹欣老师<构建之法>科书2.4.2 wordcount程序. 2.我写的wordcount程序要实现的功能整体可以总结为: ① 统计word文档中的字符数 ...

  8. 如何编写 Python 程序

    如何编写 Python 程序 从今以后,保存和运行 Python 程序的标准步骤如下: 对于 PyCharm 用户 打开 PyCharm. 以给定的文件名创建新文件. 输入案例中给出的代码. 右键并运 ...

  9. 大数据之路week07--day03(Hadoop深入理解,JAVA代码编写WordCount程序,以及扩展升级)

    什么是MapReduce 你想数出一摞牌中有多少张黑桃.直观方式是一张一张检查并且数出有多少张是黑桃. MapReduce方法则是: 1.给在座的所有玩家中分配这摞牌 2.让每个玩家数自己手中的牌有几 ...

随机推荐

  1. Linux跨PC拷贝之SCP

    命令:scp 不同的Linux之间copy文件常用有3种方法: 第一种就是ftp,也就是其中一台Linux安装ftp Server,这样可以另外一台使用ftp的client程序来进行文件的copy. ...

  2. 深入了解组件- -- Prop

    gitHub地址:https://github.com/huangpna/vue_learn/example里面的lesson08 一 Prop的大小写(camelCase vs kebab-case ...

  3. spring中关于<context:component-scan>的使用说明

    通常情况下我们在创建spring项目的时候在xml配置文件中都会配置这个标签,配置完这个标签后,spring就会去自动扫描base-package对应的路径或者该路径的子包下面的java文件,如果扫描 ...

  4. python-pygame安装教程

    网上有很多关于python,pygame的安装教程.大都比较麻烦,下面为大家介绍一种非常简单的安装方法.(因为安装大都是新手教程写详细一些) python是32位 python是3.6 1 pip配置 ...

  5. jqGrid 属性、事件全集

    <html> ... <table id="list1"></table> <div id="pager1">& ...

  6. idea2018.1.5永久破解过程

    可以根据官网推荐注册idea:http://idea.lanyus.com/ 步骤如下:1 下载破解(crack) jar 包 链接:https://pan.baidu.com/s/1-COPHVJi ...

  7. 【html、CSS、javascript-3】几个基本元素

    HTML 元素指的是从开始标签到结束标签的所有代码. 开始标签 元素内容 结束标签 <h1> h标签用来表示标题 </h1> <p> p标签表示一个段落 </ ...

  8. wsgi Python的WEB框架

    Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Python的标准库外,其不依赖任何其他模块. pip install bottle easy_i ...

  9. CF 549B Looksery Party

    题面 解题思路 如果a数组全部>0,那么都不去即可.从这个角度出发,每次选出a[i]为0的,让它们去更新a数组,相当于拓补排序. 代码 #include<iostream> #inc ...

  10. 工控安全入门(二)—— S7comm协议

    在上一次的文章中我们介绍了施耐德公司的协议modbus,这次我们把目标转向私有协议,来看看另一家巨头西门子的S7comm.首先要说明,这篇文章中的内容有笔者自己的探索,有大佬们的成果,但由于S7com ...