学生管理系统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版的更多相关文章

  1. 模拟斗地主和学生管理系统 IO 版

    1.模拟斗地主 public class PlayCards { public static void main(String[] args) { String[] color = {"黑桃 ...

  2. C语言学生管理系统完善版

    #include<stdio.h>#include<string.h>#include <stdlib.h>#define M 100struct score    ...

  3. Java小例子(学习整理)-----学生管理系统-控制台版

    1.功能介绍: 首先,这个小案例没有使用数据库,用集合的形式暂时保存数据,做测试! 功能: 增加学生信息 删除学生信息 修改学生信息 查询学生信息:  按照学号(精确查询)  按照姓名(模糊查询) 打 ...

  4. python 学生管理系统 文件版 增删改查

    # 在程序开始之前完成数据的读取 # 存在着循环 # 循环的内容 # 将操作内容分解为函数 def sel_student(students_list): """ 查看所 ...

  5. Java 简化版学生管理系统(IO版)

    Student management system   学生管理系统IO版 详细知识点可参考一下几篇文章 常用API Java 之ArrayList集合及应用 Java 之IO流及应用 Compreh ...

  6. python开发的学生管理系统

    python开发的学生管理系统(基础版) #定义一个函数,显示可以使用的功能列表给用户 def showInfo(): print("-"*30) print(" 学生管 ...

  7. 史上最强学生管理系统之IO版

    既上一博发布的ArrayList版本之后,新一版的IO版又来了,其实只是在上一个版本里面添加了IO流的内容,将存入更改的信息更新到了文件中而已,这个版本网上仍然很多,本人只是在某些方面稍加修改,因为自 ...

  8. 学生管理系统(SSM简易版)总结

    之前用 Servlet + JSP 实现了一个简易版的学生管理系统,在学习了 SSM 框架之后,我们来对之前写过的项目重构一下! 技术准备 为了完成这个项目,需要掌握如下技术: Java 基础知识 前 ...

  9. “石家庄铁道大学软件工程系学生学籍管理系统2019版”java小程序制作分享

    首先附上完整代码: import java.util.Scanner; public class SocreInformation { public SocreInformation(){}; pub ...

  10. Java 石家庄铁道大学软件工程系 学生学籍管理系统 2019 版

    本系统的作用是简单实现一些学生成绩管理操作:录入,修改,绩点计算,以及系统退出等. 首先建一个主函数实现界面的实现,然后建一个数据类用来定义存放数据.之后建立一个工具类,用来实现所有要进行的操作.首先 ...

随机推荐

  1. html的table多级表头表格的代码

    1,两级表头的代码 <html> <head> <title>多层表头</title> <link rel="stylesheet&qu ...

  2. uniapp 中获取微信小程序的原生导航栏高度

    const custom = wx.getMenuButtonBoundingClientRect() // console.log(custom) that.yuansheng= custom.he ...

  3. HIVE - HIVEQL学习笔记

    Hive Learning HIVEQL和MYSQL最为接近 数据操作 SHOW TABLES IN crm_integration Show tables 'dim_con*' DESCRIBE E ...

  4. 原生js实现折线图

    不借助Echarts等图形框架原生JS快速实现折线图效果 1. 折线图效果预览 例如下图所示的折线图效果实现就很简单: 调用下面这段JS代码中的方法就好了: 假设页面上需要连接的所有点元素集合是ele ...

  5. 做文件上传功能时,dubbo对MultipartFile文件传输时,一个bug:Fail to decode request due to: RpcInvocation

    三月 22, 2019 2:37:27 下午 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() fo ...

  6. constexpr和const

    const表示一个变量的值不能改变,这个值可以使运行期间得到的const int sz = get_size(); constexpr是提示编译器,该值可以在编译期间就计算出来,并进行替换,不用等到运 ...

  7. Python学习笔记调试之取得反向跟踪的字符串

    随笔记录方便自己和同路人查阅. #------------------------------------------------我是可耻的分割线--------------------------- ...

  8. SSH反向隧道实现内网穿透

    1.客户端配置 /home/tsingyundev/zyy bind209.sh内容 ssh -fCNL *:1234:localhost:10022 localhost ssh209.sh内容 ss ...

  9. 有关箭头函数的this知识

    总结: 结果: 2,箭头函数正确的使用方法. 结果: 总结: 箭头函数不要直接在对象的属性上用.比如上面的函数3.

  10. vue 页面嵌入pdf文件

    1.pdf分页显示 2.没有分页