使用HashMap编写一程序实现存储某班级学生信息
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编写一程序实现存储某班级学生信息的更多相关文章
- 程序阅读:简单C++学生信息管理系统
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [程序阅读]阅读并执行以下的程序,找出当中出现 ...
- 从零自学Java-3.在程序中存储和修改变量信息
1.创建变量: 2.使用不同类型的变量: 3.在变量中存储值: 4.在数学表达式中使用变量: 5.把一个变量的值赋给另一个变量: 6.递增/递减变量的值. 程序Variable:使用不同类型的变量并赋 ...
- 基于数组或链表的学生信息管理系统(小学期C语言程序实训)
1.基于数组的学生信息管理系统 实验内容: 编写并调试程序,实现学校各专业班级学生信息的管理.定义学生信息的结构体类型,包括:学号.姓名.专业.班级.3门成绩. 实验要求: (1) main函数:以菜 ...
- 大数据学习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 ...
- CSharpGL(11)用C#直接编写GLSL程序
CSharpGL(11)用C#直接编写GLSL程序 +BIT祝威+悄悄在此留下版了个权的信息说: 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharp ...
- (十) 编写UVC程序
目录 编写UVC程序 流程简述 11个ioctl函数 查询属性 VIDIOC_QUERYCAP 枚举格式 VIDIOC_ENUM_FMT 查询当前格式 VIDIOC_G_FMT 尝试某种格式 VIDI ...
- 编写wordcount程序
一.程序概述 1.此次编写的程序为邹欣老师<构建之法>科书2.4.2 wordcount程序. 2.我写的wordcount程序要实现的功能整体可以总结为: ① 统计word文档中的字符数 ...
- 如何编写 Python 程序
如何编写 Python 程序 从今以后,保存和运行 Python 程序的标准步骤如下: 对于 PyCharm 用户 打开 PyCharm. 以给定的文件名创建新文件. 输入案例中给出的代码. 右键并运 ...
- 大数据之路week07--day03(Hadoop深入理解,JAVA代码编写WordCount程序,以及扩展升级)
什么是MapReduce 你想数出一摞牌中有多少张黑桃.直观方式是一张一张检查并且数出有多少张是黑桃. MapReduce方法则是: 1.给在座的所有玩家中分配这摞牌 2.让每个玩家数自己手中的牌有几 ...
随机推荐
- HZOI20190906模拟39 工业,卡常,玄学
题面:https://www.cnblogs.com/Juve/articles/11484209.html 工业: 推一个式子,AC 没有用组合数....推了2个多小时 我sbsbsbsbsbsbs ...
- Python - 集合与元素之集合定义和基本操作方法
集合(set) 定义:由不同元素组成的集合,集合中是一组无序排列可hash的值(不可变的值)例如数字.字符串.元组,可以作为字典的key 定义集合: # 定义集合 s = {1, 2, 3, 3, 3 ...
- python多进程,进程池,数据共享,进程通信,分布式进程
一.操作系统中相关进程的知识 Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊.普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前 ...
- Vue. 之 替换 左上角 title标签处的图标
Vue. 之 替换 左上角 title标签处的图标 1.icon命名为favicon.ico放在项目的位置:src/assets/favicon.ico 2.在index.html中写入: <l ...
- 【xlwings1】多线程写入excel数据
#!/ufr/bin/env python # -*- coding:utf-8 -*- import xlwings as xw import queue import threading impo ...
- css3动画曲线运动
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 使用uni-app(Vue.js)创建运行微信小程序项目步骤
使用uni-app(Vue.js)开发微信小程序项目步骤 1. 新建一个uni-app项目 创建完成后的目录结构 2. 打开微信小程序开发工具端的端口调试功能 3. 运行创建的项目 效果
- android的AIDL
一.AIDL的意义: AIDL全称是Android Interface Definition Language,是android接口定义语言.AIDL就是为了避免我们一遍遍的写一些 ...
- PHP实现微信申请退款流程实例源码
https://www.jb51.net/article/136476.htm 目录 前期准备: 前面讲了怎么实现微信支付,详见博文:PHP实现微信支付(jsapi支付)流程 和ThinkPHP中实 ...
- java并发系列(三)-----ReentrantLock(重入锁)功能详解和应用演示
1. ReentrantLock简介 jdk中独占锁的实现除了使用关键字synchronized外,还可以使用ReentrantLock.虽然在性能上ReentrantLock和synchronize ...