IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 学生信息管理系统java -> 正文阅读

[移动开发]学生信息管理系统java

目录

首先定义一个student类

建立一个Map集合用于存放学生学号以及信息。

?存放学生信息

?添加学生信息

?删除学生信息

改动学生信息

查找学生信息

打印获得的所有学生信息

界面处理(加了个密码)

?主函数

源代码

运行结果?

我们分块来看:

//  学生的信息,学号,姓名,班级
class Student {
	private String id;
	private String name;
	private String age;
	private String sex;
	private String clazz;
	private String sub;

	public Student() {
		super();
	}

	public Student(String id, String name, String age, String sex, String clazz, String sub) {
		super();
		this.id = id;
		this.name = name;
		this.age = age;
		this.sex = sex;
		this.clazz = clazz;
		this.sub = sub;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public String getSub() {
		return sub;
	}

	public void setSub(String sub) {
		this.sub = sub;
	}

	public String getAge() {
		return age;
	}

	public void setAge(String age) {
		this.age = age;
	}

	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 String getClazz() {
		return clazz;
	}

	public void setClazz(String clazz) {
		this.clazz = clazz;
	}

	@Override
	public String toString() {
		return "Student [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + ", clazz=" + clazz + ", sub="
				+ sub + "]";
	}

}

首先定义一个student类

存放学生的基本信息,get方法与set方法以及tostring不予解释?。

建立一个Map集合用于存放学生学号以及信息。

在这里需要提及Map集合知识点:

?Map集合没有继承collection接口,其提供的是key到value的映射。Map集合中不能包含相同的key,每个key只能映射一个value。key还决定了存储对象映射中的存储位置,但不是由key对象本身决定的,而是通过一种散列计数进行处理,产生一个散列码的整数值。散列码通常用作一个偏移量,该偏移量对应分配给映射的内存区域的起始位置,从而确定存储对象在映射中的存储位置。Map结合包括Map接口以及Map接口的所有实现类。

private Map<String, Student> map = new HashMap<String, Student>();

?存放学生信息

public StudentManager() {
		this.map.put("01", new Student("01", "张三", "18", "男", "08", "c++"));
		this.map.put("02", new Student("02", "李四", "19", "男", "09", "java"));
		this.map.put("03", new Student("03", "王五", "18", "男", "10", "python3"));
	}

?添加学生信息

判断

public int add(Student student) {
		String id = student.getId();// 将获得的学号放进临时变量id中

		if (!this.map.containsKey(id)) {// 如果map集合中不包含此学生的id
			this.map.put(id, student);// 则将此学生的信息放入
			return 1;// 返回true
		}
		return 0;
	}

添加?

	public void addByStr(String info) {
		String[] infos = info.split("-");

		if (infos != null && infos.length == 6) {
			String id = infos[0];
			String name = infos[1];
			String age = infos[2];
			String sex = infos[3];
			String clazz = infos[4];
			String sub = infos[5];

			Student student = new Student();
			student.setId(id);
			student.setName(name);
			student.setAge(age);
			student.setSex(sex);
			student.setClazz(clazz);
			student.setSub(sub);

			if (this.add(student) == 1) {
				System.out.println("添加学生信息成功");
			} else {
				System.out.println("学号已存在[" + id + "],添加学生信息失败");
			}
		} else {
			System.out.println("输入信息格式不正确[" + info + "],添加学生信息失败");
		}
	}

?删除学生信息

判断

public int remove(String id) {
		if (this.map.containsKey(id)) {
			this.map.remove(id);
			return 1;
		}
		return 0;
	}

?删除

public void removeByStr(String id) {
		if (this.remove(id) == 1) {
			System.out.println("删除学生信息成功");
		} else {
			System.out.println("学号不存在[" + id + "],删除学生信息失败");
		}
	}

改动学生信息

判断

	public int edit(Student student) {
		String id = student.getId();

		if (!this.map.containsKey(id)) {
			this.map.put(id, student);
			return 1;
		}
		return 0;
	}

改动

public void editByStr(String info) {
		String[] infos = info.split("-");

		if (infos != null && infos.length == 6) {
			String id = infos[0];
			String name = infos[1];
			String age = infos[2];
			String sex = infos[3];
			String clazz = infos[4];
			String sub = infos[5];

			Student student = new Student();
			student.setId(id);
			student.setName(name);
			student.setAge(age);
			student.setSex(sex);
			student.setClazz(clazz);
			student.setSub(sub);

			if (this.edit(student) == 1) {
				System.out.println("修改学生信息成功");
			} else {
				System.out.println("学号已存在[" + id + "],修改学生信息失败");
			}
		} else {
			System.out.println("输入信息格式不正确[" + info + "],修改学生信息失败");
		}
	}

查找学生信息

public List<Student> getAll() {
		List<Student> list = new ArrayList<Student>();// 将已经排好序的list放入列表中
		Set<String> set = this.map.keySet();
		List<String> keyList = new ArrayList<String>();
		keyList.addAll(set);

		Collections.sort(keyList);

		for (String key : keyList) {
//			System.out.println(this.map.get(key));
			list.add(this.map.get(key));
		}
		return list;
	}

打印获得的所有学生信息

public void printAll() {
		List<Student> all = this.getAll();

		for (Student student : all) {
			System.out.println(student);
		}
	}

界面处理(加了个密码)

private static final int COMMAND_SHOW = 1;// 用一个变量
	private static final int COMMAND_ADD = 2;
	private static final int COMMAND_EDIT = 3;
	private static final int COMMAND_REMOVE = 4;
	private static final int COMMAND_EXIT = 9;
public void printCommand() {
		System.out.println(COMMAND_SHOW + "查看所有学生信息");
		System.out.println(COMMAND_ADD + "添加学生信息");
		System.out.println(COMMAND_EDIT + "修改学生信息");
		System.out.println(COMMAND_REMOVE + "删除学生信息");
		System.out.println(COMMAND_EXIT + "退出系统");
	}

	public void start(InputStream in) {
		System.out.println("欢迎登陆学生信息管理系统");

		Scanner scanner = new Scanner(in);

		int command = COMMAND_SHOW;
		do {
			printCommand();
			command = scanner.nextInt();
			switch (command) {
			case COMMAND_SHOW: {
				System.out.println("显示所有学生信息:");
				this.printAll();
				break;
			}
			case COMMAND_ADD: {
				String info = scanner.next();
				this.addByStr(info);
				break;
			}
			case COMMAND_EDIT: {
				String info = scanner.next();
				this.editByStr(info);
				break;
			}
			case COMMAND_REMOVE: {
				String id = scanner.next();
				this.removeByStr(id);
				break;
			}
			case COMMAND_EXIT:
				break;
			default:
				break;
			}
//			scanner.close();
		} while (command != COMMAND_EXIT);
	}

	public static boolean login(String username, String password) {
		for (int i = 0; i < 3; i++) {
			Scanner scanner = new Scanner(System.in);
			System.out.println("请输入用户名:");
			String name = scanner.nextLine();
			System.out.println("请输入密码:");
			String pwd = scanner.nextLine();
			// 登录判断
			if (name.equals(username) && pwd.equals(password)) {
				System.out.println("登录成功,欢迎您:" + username);
				return true;
			} else {
				if (2 - i == 0) {
					System.out.println("你的登录次数已经用完,如有问题请与管理员联系! 电话 : *************");
				} else {
					System.out.println("登录失败,你今天还有" + (2 - i) + "次登录的机会!");
				}
			}
		}
		return false;
	}

?主函数

public static void main(String[] args) {
		String username = "god";
		String password = "123456";
		if (login(username, password) == true) {
			StudentManager manager = new StudentManager();
			manager.start(System.in);
		} else
			System.exit(0);

	}

源代码

/*collection 接口是层次结构中的根接口,构成collection的单位称为元素。collection接口通常不能直接使用,但该接口提供了增删改查的方法。由于list接口和set接口都继承了collection接口,
* 因此这些方法对list集合和set集合都是通用的.
*/
package ccut.edu.c10;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

public class StudentManager {
	private static final int COMMAND_SHOW = 1;// 用一个变量
	private static final int COMMAND_ADD = 2;
	private static final int COMMAND_EDIT = 3;
	private static final int COMMAND_REMOVE = 4;
	private static final int COMMAND_EXIT = 9;
	private Map<String, Student> map = new HashMap<String, Student>();
//	Map集合没有继承collection接口,其提供的是key到value的映射。Map集合中不能包含相同的key,每个key只能映射一个value。key还决定了存储对象映射中的存储位置,但不是由key对象本身决定的,
//	而是通过一种散列计数进行处理,产生一个散列码的整数值。散列码通常用作一个偏移量,该偏移量对应分配给映射的内存区域的起始位置,从而确定存储对象在映射中的存储位置。Map结合包括Map接口
//	以及Map接口的所有实现类。

	public StudentManager() {
		this.map.put("01", new Student("01", "张三", "18", "男", "08", "c++"));
		this.map.put("02", new Student("02", "李四", "19", "男", "09", "java"));
		this.map.put("03", new Student("03", "王五", "18", "男", "10", "python3"));
	}

//	增
	public int add(Student student) {
		String id = student.getId();// 将获得的学号放进临时变量id中

		if (!this.map.containsKey(id)) {// 如果map集合中不包含此学生的id
			this.map.put(id, student);// 则将此学生的信息放入
			return 1;// 返回true
		}
		return 0;
	}

//	删
	public int remove(String id) {
		if (this.map.containsKey(id)) {
			this.map.remove(id);
			return 1;
		}
		return 0;
	}

//	改
	public int edit(Student student) {
		String id = student.getId();

		if (!this.map.containsKey(id)) {
			this.map.put(id, student);
			return 1;
		}
		return 0;
	}

//	获得所有学生的信息
	public List<Student> getAll() {
		List<Student> list = new ArrayList<Student>();// 将已经排好序的list放入列表中
		Set<String> set = this.map.keySet();
		List<String> keyList = new ArrayList<String>();
		keyList.addAll(set);

		Collections.sort(keyList);

		for (String key : keyList) {
//			System.out.println(this.map.get(key));
			list.add(this.map.get(key));
		}
		return list;
	}

	public void printAll() {
		List<Student> all = this.getAll();

		for (Student student : all) {
			System.out.println(student);
		}
	}

	public void addByStr(String info) {
		String[] infos = info.split("-");

		if (infos != null && infos.length == 6) {
			String id = infos[0];
			String name = infos[1];
			String age = infos[2];
			String sex = infos[3];
			String clazz = infos[4];
			String sub = infos[5];

			Student student = new Student();
			student.setId(id);
			student.setName(name);
			student.setAge(age);
			student.setSex(sex);
			student.setClazz(clazz);
			student.setSub(sub);

			if (this.add(student) == 1) {
				System.out.println("添加学生信息成功");
			} else {
				System.out.println("学号已存在[" + id + "],添加学生信息失败");
			}
		} else {
			System.out.println("输入信息格式不正确[" + info + "],添加学生信息失败");
		}
	}

	public void editByStr(String info) {
		String[] infos = info.split("-");

		if (infos != null && infos.length == 6) {
			String id = infos[0];
			String name = infos[1];
			String age = infos[2];
			String sex = infos[3];
			String clazz = infos[4];
			String sub = infos[5];

			Student student = new Student();
			student.setId(id);
			student.setName(name);
			student.setAge(age);
			student.setSex(sex);
			student.setClazz(clazz);
			student.setSub(sub);

			if (this.edit(student) == 1) {
				System.out.println("修改学生信息成功");
			} else {
				System.out.println("学号已存在[" + id + "],修改学生信息失败");
			}
		} else {
			System.out.println("输入信息格式不正确[" + info + "],修改学生信息失败");
		}
	}

	public void removeByStr(String id) {
		if (this.remove(id) == 1) {
			System.out.println("删除学生信息成功");
		} else {
			System.out.println("学号不存在[" + id + "],删除学生信息失败");
		}
	}

	public void printCommand() {
		System.out.println(COMMAND_SHOW + "查看所有学生信息");
		System.out.println(COMMAND_ADD + "添加学生信息");
		System.out.println(COMMAND_EDIT + "修改学生信息");
		System.out.println(COMMAND_REMOVE + "删除学生信息");
		System.out.println(COMMAND_EXIT + "退出系统");
	}

	public void start(InputStream in) {
		System.out.println("欢迎登陆学生信息管理系统");

		Scanner scanner = new Scanner(in);

		int command = COMMAND_SHOW;
		do {
			printCommand();
			command = scanner.nextInt();
			switch (command) {
			case COMMAND_SHOW: {
				System.out.println("显示所有学生信息:");
				this.printAll();
				break;
			}
			case COMMAND_ADD: {
				String info = scanner.next();
				this.addByStr(info);
				break;
			}
			case COMMAND_EDIT: {
				String info = scanner.next();
				this.editByStr(info);
				break;
			}
			case COMMAND_REMOVE: {
				String id = scanner.next();
				this.removeByStr(id);
				break;
			}
			case COMMAND_EXIT:
				break;
			default:
				break;
			}
//			scanner.close();
		} while (command != COMMAND_EXIT);
	}

	public static boolean login(String username, String password) {
		for (int i = 0; i < 3; i++) {
			Scanner scanner = new Scanner(System.in);
			System.out.println("请输入用户名:");
			String name = scanner.nextLine();
			System.out.println("请输入密码:");
			String pwd = scanner.nextLine();
			// 登录判断
			if (name.equals(username) && pwd.equals(password)) {
				System.out.println("登录成功,欢迎您:" + username);
				return true;
			} else {
				if (2 - i == 0) {
					System.out.println("你的登录次数已经用完,如有问题请与管理员联系! 电话 : *************");
				} else {
					System.out.println("登录失败,你今天还有" + (2 - i) + "次登录的机会!");
				}
			}
		}
		return false;
	}

	public static void main(String[] args) {
		String username = "god";
		String password = "123456";
		if (login(username, password) == true) {
			StudentManager manager = new StudentManager();
			manager.start(System.in);
		} else
			System.exit(0);

	}

}

//  学生的信息,学号,姓名,班级
class Student {
	private String id;
	private String name;
	private String age;
	private String sex;
	private String clazz;
	private String sub;

	public Student() {
		super();
	}

	public Student(String id, String name, String age, String sex, String clazz, String sub) {
		super();
		this.id = id;
		this.name = name;
		this.age = age;
		this.sex = sex;
		this.clazz = clazz;
		this.sub = sub;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public String getSub() {
		return sub;
	}

	public void setSub(String sub) {
		this.sub = sub;
	}

	public String getAge() {
		return age;
	}

	public void setAge(String age) {
		this.age = age;
	}

	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 String getClazz() {
		return clazz;
	}

	public void setClazz(String clazz) {
		this.clazz = clazz;
	}

	@Override
	public String toString() {
		return "Student [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + ", clazz=" + clazz + ", sub="
				+ sub + "]";
	}

}

运行结果?

?

?

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-04-15 00:12:54  更:2022-04-15 00:13:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 20:31:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码