学生管理系统CLI版
学生管理系统CLI版
学生类
package com.itheima_03;
public class Student {
String sid;
String name;
String age;
String address;
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public Student(String sid, String name, String age, String address) {
this.sid = sid;
this.name = name;
this.age = age;
this.address = address;
}
public Student() {
}
}
主函数
package com.itheima_03;
import javax.swing.plaf.synth.SynthEditorPaneUI;
import java.util.ArrayList;
import java.util.Scanner;
public class StudentManager {
public static void main(String[] args) {
//创建一个集合存储学生对象
ArrayList<Student> array = new ArrayList<Student>();
while (true){
System.out.println("========欢迎来到学生管理系统========");
System.out.println("1 添加学生");
System.out.println("2 删除学生");
System.out.println("3 修改学生");
System.out.println("4 查看所有学生");
System.out.println("5 退出系统");
System.out.print("请输入你的选择:");
//用Scanner录入数据
Scanner sc = new Scanner(System.in);
String choice = sc.nextLine();
switch (choice){
case "1":
System.out.println("********添加学生********");
addStudent(array);
break;
case "2":
System.out.println("********删除学生********");
deleteStudent(array);
break;
case "3":
System.out.println("********修改学生********");
updateStudent(array);
break;
case "4":
System.out.println("********查看所有学生********");
showAllStudent(array);
break;
case "5":
System.out.println("谢谢使用");
// break;
System.exit(0);//JVM退出
}
}
}
//定义一个方法,用于添加学生信息
public static void addStudent(ArrayList<Student> array){
//通过键盘录入数据
Scanner sc = new Scanner(System.in);
//录入学生信息
System.out.print("请输入学生学号:");
String sid = sc.nextLine();
while (true) {
if (isUsed(array, sid)) {
System.out.println("您输入的学号已经存在!请重新输入");
sid = sc.nextLine();
}else {
break;
}
}
System.out.print("请输入学生姓名:");
String name = sc.nextLine();
System.out.print("请输入学生年龄:");
String age = sc.nextLine();
System.out.print("请输入学生住址:");
String address = sc.nextLine();
//新建学生对象并对其信息进行赋值
Student s = new Student();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
//将学生添加到集合中
array.add(s);
//给出提示信息
System.out.println("添加学生信息成功!");
}
//定义一个方法,用于显示全部学生信息
public static void showAllStudent(ArrayList<Student> array){
//判断集合中是否有元素,如果没有给出提示信息
if (array.size() == 0){
System.out.println("目前没有信息,请试试添加一下吧~");
return;
}
//如果有元素,打印表头
System.out.println("学号\t\t\t姓名\t\t年龄\t\t家庭住址");
//循环打印集合中的学生
for (int i = 0;i < array.size();i++){
Student s = array.get(i);
System.out.println(s.getSid()+"\t"+s.getName()+"\t\t"+s.getAge()+"\t\t\t"+s.getAddress());
}
}
//定义一个方法,用于删除学生信息
public static void deleteStudent(ArrayList<Student> array){
//提示用户输入所要删除学生的学号
Scanner sc = new Scanner(System.in);
System.out.print("请输入你要删除的学生学号:");
String line = sc.nextLine();
//遍历集合,找到对应的学生并删除
//建立一个索引来判断所要删除的学生是否在集合内
int index = -1;
for (int i = 0;i < array.size();i++){
Student s = array.get(i);
if (s.getSid().equals(line)){ //字符串进行比较用equals()
index = i;
break;
}
}
if(index == -1){
System.out.println("该学生不存在!");
}else {
array.remove(index);
//给出提示消息
System.out.println("删除成功!");
}
}
//定义一个方法,用户修改学生信息
public static void updateStudent(ArrayList<Student> array){
//键盘录入要修改的学生学号
Scanner sc = new Scanner(System.in);
System.out.print("请输入你要修改的学生的学号:");
String sid = sc.nextLine();
//创建一个新对象并提示用户输入其信息
Student s_new = new Student();
System.out.print("请输入学生新姓名:");
String name = sc.nextLine();
System.out.print("请输入学生新年龄:");
String age = sc.nextLine();
System.out.print("请输入学生新住址:");
String address = sc.nextLine();
//赋值给新对象
s_new.setSid(sid);
s_new.setName(name);
s_new.setAge(age);
s_new.setAddress(address);
//遍历集合,找到旧对象并用新对象进行替换
for (int i = 0;i < array.size();i++){
Student s = array.get(i);
if (s.getSid().equals(sid)){
array.set(i,s_new);//根据索引用s_new进行替换
break;
}
}
//给出提示信息
System.out.println("修改学生信息成功!");
}
//定义一个方法,用来判断学号是否重复
public static boolean isUsed(ArrayList<Student> array,String sid){
//创建标志位作为返回值
boolean flag = false;
//遍历集合,查找有没有相同的学号
for (int i = 0;i < array.size();i++){
Student s = array.get(i);
if (s.getSid().equals(sid)){
flag = true;
break;
}else {
continue;
}
}
//返回标志位
return flag;
}
}
学生管理系统CLI版的更多相关文章
- 模拟斗地主和学生管理系统 IO 版
1.模拟斗地主 public class PlayCards { public static void main(String[] args) { String[] color = {"黑桃 ...
- C语言学生管理系统完善版
#include<stdio.h>#include<string.h>#include <stdlib.h>#define M 100struct score ...
- Java小例子(学习整理)-----学生管理系统-控制台版
1.功能介绍: 首先,这个小案例没有使用数据库,用集合的形式暂时保存数据,做测试! 功能: 增加学生信息 删除学生信息 修改学生信息 查询学生信息: 按照学号(精确查询) 按照姓名(模糊查询) 打 ...
- python 学生管理系统 文件版 增删改查
# 在程序开始之前完成数据的读取 # 存在着循环 # 循环的内容 # 将操作内容分解为函数 def sel_student(students_list): """ 查看所 ...
- Java 简化版学生管理系统(IO版)
Student management system 学生管理系统IO版 详细知识点可参考一下几篇文章 常用API Java 之ArrayList集合及应用 Java 之IO流及应用 Compreh ...
- python开发的学生管理系统
python开发的学生管理系统(基础版) #定义一个函数,显示可以使用的功能列表给用户 def showInfo(): print("-"*30) print(" 学生管 ...
- 史上最强学生管理系统之IO版
既上一博发布的ArrayList版本之后,新一版的IO版又来了,其实只是在上一个版本里面添加了IO流的内容,将存入更改的信息更新到了文件中而已,这个版本网上仍然很多,本人只是在某些方面稍加修改,因为自 ...
- 学生管理系统(SSM简易版)总结
之前用 Servlet + JSP 实现了一个简易版的学生管理系统,在学习了 SSM 框架之后,我们来对之前写过的项目重构一下! 技术准备 为了完成这个项目,需要掌握如下技术: Java 基础知识 前 ...
- “石家庄铁道大学软件工程系学生学籍管理系统2019版”java小程序制作分享
首先附上完整代码: import java.util.Scanner; public class SocreInformation { public SocreInformation(){}; pub ...
- Java 石家庄铁道大学软件工程系 学生学籍管理系统 2019 版
本系统的作用是简单实现一些学生成绩管理操作:录入,修改,绩点计算,以及系统退出等. 首先建一个主函数实现界面的实现,然后建一个数据类用来定义存放数据.之后建立一个工具类,用来实现所有要进行的操作.首先 ...
随机推荐
- 升级安装cuda
下载驱动: https://www.nvidia.com/Download/Find.aspx 在这里下载并按照指导安装: https://developer.nvidia.com/cuda-down ...
- 思科IPsecVPN建立
实验拓扑 实验目标: 1.不配置中间的三个路由器的路由实现router0和router2的vpn隧道 2.PC0能够ping通PC1 实验IP预定: PC0 10.1.1.1/24 PC1 20.1. ...
- java.3 Java数据类型1
数据类型讲解 Java属于强类型语言 即要求变量的使用要严格符合规定,所有变量都必须严格定义以后才能使用 优点:安全性高 缺点:速度慢(相对而言) Java数据类型分为引用类型和基本类型 基本数据类型 ...
- 重试机制的实现(Guava Retry)
重试机制的实现 重试作用: 对于重试是有场景限制的,参数校验不合法.写操作等(要考虑写是否幂等)都不适合重试. 远程调用超时.网络突然中断可以重试.外部 RPC 调用,或者数据入库等操作,如果一次操作 ...
- css 多行隐藏
overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box- ...
- vscode 开发Vue项目
写在开头 Vue作为前端项目,本身不依赖IDE,完全可以使用任何文本编辑器进行开发.我使用vscode仅是因为比较习惯,vscode几乎可以作为任何项目的开发IDE. 环境安装 安装nodejs,去官 ...
- 【C++复习】第八章 多态性(2)(虚函数,纯虚函数)
虚函数是动态绑定的基础,必须是非静态的成员函数 1.一般虚函数 1.1 引例 程序 运行结果&解释 #include <iostream> using namespace std; ...
- zabbix housekeeper 太大 清理
217G housekeeper.ibd rename table housekeeper to housekeeper_bak_20220801;Query OK, 0 rows affected ...
- Cupboard and Balloons CodeForces - 342C
Cupboard and Balloons CodeForces - 342C 找到不变的点 抓住不确定的点进行讨论 #include<iostream> #include<cmat ...
- Java方法之方法的重载
方法的重载 重载就是在一个类中,有相同的函数名称,但形参不同的函数. 方法的重载的规则: 1.方法名称必须相同. 2.参数列表必须不同(个数不同.或类型不同.参数排列顺序不同等). 3.方法的返回类型 ...