使用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.让每个玩家数自己手中的牌有几 ...
随机推荐
- LOJ#3119 随机立方体
解:极大值至少为1.我们尝试把最大那个数的影响去掉. 最大那个数所在的一层(指一个三维十字架)都是不可能成为最大值的. 考虑容斥.我们试图求除了最大值以外至少有k个极大值的概率. 我们钦定某k个位置是 ...
- __autoreleasing 修饰符
将对象赋值给附有__autoreleasing 修饰符的变量等同于ARC 无效时调用对象的autorelease方法.我们通过以下源代码来看一下. @autoreleasepool { id __au ...
- 深入浅出 Java Concurrency (8): 锁机制 part 3[转]
接上篇,这篇从Lock.lock/unlock开始.特别说明在没有特殊情况下所有程序.API.文档都是基于JDK 6.0的. public void java.util.concurrent.lock ...
- JDBC2 --- 获取数据库连接的方式二 --- 技术搬运工(尚硅谷)
/** * 方式二,对方式一的迭代 * 在如下的程序中,不出现第三方的api,使得程序具有更好的可移植性. * @throws Exception */ @Test public void testC ...
- create user
create创建的用户,只有usage权限,即,连接数据库的权限,最低的权限. # 1.新建用户,这里的用户是由user_name 和ip一起唯一确定一个用户.# 2.若省略ip表达式,则表示%,即所 ...
- JAVA面试常见问题之开源框架和容器篇
1.Servlet的生命周期 加载:加载到虚拟机 初始化:init() 一个生命周期中只会被调用一次. 服务:service() 销毁:destroy() 2.转发与重定向的区别 转发在服务器端完成的 ...
- IDEA设置使空格处显示小点
- DevCloud会员权益升级!日常领码豆,轻松换好礼!
为了回馈每一位用户的使用和支持, 华为云DevCloud上线了会员中心, 大家在会员中心可以通过完成任务赚取码豆, 并在兑换商城兑换精美礼品. 如何通过任务获得码豆? 我们为大家准备了各种日常任务, ...
- Django项目:CRM(客户关系管理系统)--36--28PerfectCRM实现King_admin编辑限制
#admin.py # ————————01PerfectCRM基本配置ADMIN———————— from django.contrib import admin # Register your m ...
- js的几种继承方式
1.原型链方式 function Super(){ this.val = 1; this.arr = [1]; } function Sub(){ // ... } Sub.prototype = n ...