案例:学生管理系统

学生管理系统实现思路

  1. 定义学生类
  2. 主界面的代码编写
  3. 添加学生的代码编写
  4. 查看学生代码的编写
  5. 删除学生代码的编写
  6. 修改学生代码的编写

1.定义学生类

学生类:
Student
成员变量:
学号:sid
姓名:name
年龄:age
居住地:address
构造方法:
无参构造
带四个参数的构造
成员方法:
每个成员变量对应给出get/set方法

/*学生类
*/
public class Student {private String sid;private String name;private String age;private String address;public Student() {}public Student(String sid, String name, String age, String address) {this.sid = sid;this.name = name;this.age = age;this.address = 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;}
}

提醒:可以用idea快捷键Alt+Insert快速添加构造及成员方法。

2. 主界面的代码编写

  1. 用输出语句完成主界面的缩写
  2. 用Scanner实现键盘录入数据
  3. 用switch语句完成操作的选择
  4. 用循环完成再次回到主界面
import java.util.Scanner;
/*
*       学生管理系统
*/
public class StudentManager {public static void main(String[] args) {//用循环完成再次回到主界面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.println();System.out.println("请输入你的选择:");//用Scanner实现键盘录入数据Scanner sc = new Scanner(System.in);String line = sc.nextLine();//用switch语句完成操作的选择switch (line) {case "1":System.out.println("添加学生");break;case "2":System.out.println("删除学生");break;case "3":System.out.println("修改学生");break;case "4":System.out.println("查看所有学生");break;case "5":System.out.println("谢谢使用");System.exit(0);  //JVM退出}}
}}

3. 添加学生的代码编写

  1. 用键盘录入选择添加学生
  2. 定义一个方法,用于添加学生
    1)现实提示信息,提示要输入何种信息
    2)键盘录入学生对象所学要的数据
    3)创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
    4)将学生对象添加到集合中(保存)
    5)给出添加成功提示
  3. 调用方法
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.println();System.out.println("请输入你的选择:");//用Scanner实现键盘录入数据Scanner sc = new Scanner(System.in);String line = sc.nextLine();//用switch语句完成操作的选择switch (line) {case "1"://System.out.println("添加学生");addStudent(array);break;case "2":System.out.println("删除学生");break;case "3":System.out.println("修改学生");break;case "4":System.out.println("查看所有学生");break;case "5":System.out.println("谢谢使用");System.exit(0);  //JVM退出}}
}//定义一个方法,用于添加学生public static void addStudent(ArrayList<Student> array){//键盘录入学生对象所学要的数据,现实提示信息,提示要输入何种信息Scanner sc=new Scanner(System.in);System.out.println("请输入学生学号");String sid= sc.nextLine();System.out.println("请输入学生姓名");String name= sc.nextLine();System.out.println("请输入学生年龄");String age= sc.nextLine();System.out.println("请输入学生居住地");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("添加学生成功");}
}

4. 查看学生代码的编写

  1. 用键盘录入选择查看所有学生信息
  2. 定义一个方法,用于查看学生信息
    1)显示表头信息
    2)将集合中的数据取出安装对应格式显示学生信息,年龄显示补充“岁”
  3. 调用方法
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.println();System.out.println("请输入你的选择:");//用Scanner实现键盘录入数据Scanner sc = new Scanner(System.in);String line = sc.nextLine();//用switch语句完成操作的选择switch (line) {case "1"://System.out.println("添加学生");addStudent(array);break;case "2":System.out.println("删除学生");break;case "3":System.out.println("修改学生");break;case "4"://System.out.println("查看所有学生");findAllStudent(array);break;case "5":System.out.println("谢谢使用");System.exit(0);  //JVM退出}}
}//定义一个方法,用于添加学生public static void addStudent(ArrayList<Student> array){//键盘录入学生对象所学要的数据,现实提示信息,提示要输入何种信息Scanner sc=new Scanner(System.in);System.out.println("请输入学生学号");String sid= sc.nextLine();System.out.println("请输入学生姓名");String name= sc.nextLine();System.out.println("请输入学生年龄");String age= sc.nextLine();System.out.println("请输入学生居住地");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 findAllStudent(ArrayList<Student> array){//判断集合中是否有数据,如果没有显示提示信息if(array.size()==0){System.out.println("无信息,请先添加信息再查询");//为了让程序不在往下执行,给出return;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"+s.getAge()+"岁\t"+s.getAddress());}}
}

5. 删除学生代码的编写

  1. 用键盘录入选择删除学生信息
  2. 定义一个方法,用于删除学生信息
    1)显示提示信息
    2)键盘录入要删除的学生学号
    3)遍历集合将对应学生对象从集合中删除
    4)给出删除成功的提示
  3. 调用方法
 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.println();System.out.println("请输入你的选择:");//用Scanner实现键盘录入数据Scanner sc = new Scanner(System.in);String line = sc.nextLine();//用switch语句完成操作的选择switch (line) {case "1"://System.out.println("添加学生");addStudent(array);break;case "2"://System.out.println("删除学生");deleteStudent(array);break;case "3":System.out.println("修改学生");break;case "4"://System.out.println("查看所有学生");findAllStudent(array);break;case "5":System.out.println("谢谢使用");System.exit(0);  //JVM退出}}
}//定义一个方法,用于添加学生public static void addStudent(ArrayList<Student> array){//键盘录入学生对象所学要的数据,现实提示信息,提示要输入何种信息Scanner sc=new Scanner(System.in);System.out.println("请输入学生学号");String sid= sc.nextLine();System.out.println("请输入学生姓名");String name= sc.nextLine();System.out.println("请输入学生年龄");String age= sc.nextLine();System.out.println("请输入学生居住地");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 findAllStudent(ArrayList<Student> array){//判断集合中是否有数据,如果没有显示提示信息if(array.size()==0){System.out.println("无信息,请先添加信息再查询");//为了让程序不在往下执行,给出return;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"+s.getAge()+"岁\t"+s.getAddress());}}//定义一个方法,用于删除学生信息public static void deleteStudent(ArrayList<Student> array){//键盘录入要删除的学生学号,显示提示信息Scanner sc=new Scanner(System.in);System.out.println("请输入你要删除的学生学号:");String sid=sc.nextLine();//遍历集合将对应学生对象从集合中删除for (int i=0;i<array.size();i++){Student s=array.get(i);if(s.getSid().equals(sid)){array.remove(i);break;}}//给出删除成功提示System.out.println("删除学生成功");}
}

6. 修改学生代码的编写

  1. 用键盘录入选择修改学生信息
  2. 定义一个方法,用于修改学生信息
    1)显示提示信息
    2)键盘录入要修改的学生学号
    3)键盘录入要修改的学生信息
    4)遍历集合修改对应的学生信息
    5)给出修改成功提示
  3. 调用方法
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.println();System.out.println("请输入你的选择:");//用Scanner实现键盘录入数据Scanner sc = new Scanner(System.in);String line = sc.nextLine();//用switch语句完成操作的选择switch (line) {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("查看所有学生");findAllStudent(array);break;case "5":System.out.println("谢谢使用");System.exit(0);  //JVM退出}}
}//定义一个方法,用于添加学生public static void addStudent(ArrayList<Student> array){//键盘录入学生对象所学要的数据,现实提示信息,提示要输入何种信息Scanner sc=new Scanner(System.in);System.out.println("请输入学生学号");String sid= sc.nextLine();System.out.println("请输入学生姓名");String name= sc.nextLine();System.out.println("请输入学生年龄");String age= sc.nextLine();System.out.println("请输入学生居住地");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 findAllStudent(ArrayList<Student> array){//判断集合中是否有数据,如果没有显示提示信息if(array.size()==0){System.out.println("无信息,请先添加信息再查询");//为了让程序不在往下执行,给出return;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"+s.getAge()+"岁\t"+s.getAddress());}}//定义一个方法,用于删除学生信息public static void deleteStudent(ArrayList<Student> array){//键盘录入要删除的学生学号,显示提示信息Scanner sc=new Scanner(System.in);System.out.println("请输入你要删除的学生学号:");String sid=sc.nextLine();//遍历集合将对应学生对象从集合中删除for (int i=0;i<array.size();i++){Student s=array.get(i);if(s.getSid().equals(sid)){array.remove(i);break;}}//给出删除成功提示System.out.println("删除学生成功");}//定义一个方法,用于修改学生信息public  static void updateStudent(ArrayList<Student> array) {//键盘录入要修改的学生学号,显示提示信息Scanner sc = new Scanner(System.in);System.out.println("请输入你要修改学生的学号:");String sid = sc.nextLine();//键盘录入要修改的学生信息System.out.println("请输入学生新姓名:");String name = sc.nextLine();System.out.println("请输入学生新年龄:");String age = sc.nextLine();System.out.println("请输入学生新居住地:");String address = sc.nextLine();//创建学生对象Student s = new Student();s.setSid(sid);s.setName(name);s.setAge(age);s.setAddress(address);//遍历集合修改对应的学生信息for(int i=0;i<array.size();i++){Student student=array.get(i);if(student.getSid().equals(sid)){array.set(i,s);break;}}//给出修改成功提示System.out.println("修改学生成功");}
}

7.解决删除/修改学生学号不存在的问题

  1. 在删除/修改学生操作之前,对学号是否存在进行判断
    1)如果不存在,显示提示信息
    2)如果存在,执行删除/修改操作

8.解决添加学生学号重复问题

  1. 定义一个方法,对学号是否被使用进行判断
    1)如果与集合中的某一个学生学号相同,返回true
    2)如果都不相同,返回false
  2. 在添加学生录入学号后调用该方法
    1)如果返回true,弹出提示,重新输入学号
    2)如果返回false,正常添加学生对象
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.println();System.out.println("请输入你的选择:");//用Scanner实现键盘录入数据Scanner sc = new Scanner(System.in);String line = sc.nextLine();//用switch语句完成操作的选择switch (line) {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("查看所有学生");findAllStudent(array);break;case "5":System.out.println("谢谢使用");System.exit(0);  //JVM退出}}
}//定义一个方法,用于添加学生public static void addStudent(ArrayList<Student> array){//键盘录入学生对象所学要的数据,现实提示信息,提示要输入何种信息Scanner sc=new Scanner(System.in);//为了让sid在while循环外面被访问到,我们把它定义在循环外String sid;//为了让程序能够回到这里,我们使用循环实现while (true){System.out.println("请输入学生学号");sid= sc.nextLine();boolean flag=isUsed(array,sid);if (flag){System.out.println("你输入的学号已被使用,请重新输入");}else{break;}}/*System.out.println("请输入学生学号");String sid= sc.nextLine();*/System.out.println("请输入学生姓名");String name= sc.nextLine();System.out.println("请输入学生年龄");String age= sc.nextLine();System.out.println("请输入学生居住地");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 boolean isUsed(ArrayList<Student> array,String sid){//如果与集合中的某一个学生学号相同,返回true;如果都不相同,返回falseboolean flag = false;for (int i=0;i<array.size();i++){Student s=array.get(i);if (s.getSid().equals(sid)){flag=true;break;}}return flag;}//定义一个方法,用于查看学生信息public static void findAllStudent(ArrayList<Student> array){//判断集合中是否有数据,如果没有显示提示信息if(array.size()==0){System.out.println("无信息,请先添加信息再查询");//为了让程序不在往下执行,给出return;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"+s.getAddress());}}//定义一个方法,用于删除学生信息public static void deleteStudent(ArrayList<Student> array){//键盘录入要删除的学生学号,显示提示信息Scanner sc=new Scanner(System.in);System.out.println("请输入你要删除的学生学号:");String sid=sc.nextLine();//遍历集合将对应学生对象从集合中删除//在删除/修改学生操作之前,对学号是否存在进行判断//如果不存在,显示提示信息//如果存在,执行删除/修改操作int index = -1;for (int i=0;i<array.size();i++){Student s=array.get(i);if(s.getSid().equals(sid)){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.println("请输入你要修改学生的学号:");String sid = sc.nextLine();//键盘录入要修改的学生信息System.out.println("请输入学生新姓名:");String name = sc.nextLine();System.out.println("请输入学生新年龄:");String age = sc.nextLine();System.out.println("请输入学生新居住地:");String address = sc.nextLine();//创建学生对象Student s = new Student();s.setSid(sid);s.setName(name);s.setAge(age);s.setAddress(address);//遍历集合修改对应的学生信息//在删除/修改学生操作之前,对学号是否存在进行判断//如果不存在,显示提示信息//如果存在,执行删除/修改操作int index=-1;for(int i=0;i<array.size();i++){Student student=array.get(i);if(student.getSid().equals(sid)){index=i;break;}}if (index==-1){System.out.println("该信息不存在,请重新输入");}else{array.set(index,s);//给出修改成功提示System.out.println("修改学生成功");}}
}

个人疑问:

在修改方法里怎么先执行判断学号重复问题再提示输入学号,姓名,年龄,居住地。

Java实现:学生管理系统相关推荐

  1. java编写学生管理系统_Java实现学生管理系统

    导读热词 项目描述:通过管理员帐号登录,对学员信息进行管理.可以实现学员信息的增加.修改.删除.查询. 知识点:数组.do{}while循环.for循环.if语句.switch条件语句 学生管理系统的 ...

  2. Java实现学生管理系统(完整代码)

    案例需求 完成一个综合案例:学生管理系统!该系统主要功能如下: 添加学生:通过键盘录入学生信息,添加到集合中 删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除 修改学生:通过键盘录入要 ...

  3. 用java实现学生管理系统

    需求:完成一个学生管理系统,具体功能如下: 通过键盘录入实现,查看学生.添加学生.删除学生.修改学生,完成操作后退出系统 实现思路:先定义一个标准类用来定义学生的基本属性,基本属性[学号.姓名.年龄. ...

  4. 【Java实现学生管理系统】

    在你要写一个项目的时候首先要做的是 "项目分析" 即此项目要实现的功能,然后再去一步一步的完善功能. 注:下面的代码存在一定的功能缺陷以及异常没有完善,但是所有的功能都能使用. 已 ...

  5. java ee学生管理系统_基于JAVAEE的学生管理系统

    [实例简介] 基于JAVAEE的学生管理系统,配合oracle与glassfish使用即可 [实例截图] [核心代码] students-information-management-system-m ...

  6. JAVA实现——学生管理系统

    实现一个学生信息管理系统: 1.学生的信息至少包括:身份证号.学号.姓名.成绩 2.学生的身份证号.学号.姓名可在对象诞生时初始化,也可以在对象诞生后赋值: 3.包含如下功能: (1)学生信息存储:从 ...

  7. Java mysql学生管理系统(简易)源

    学校要求搞了一个小项目.实习生写的代码还有很多不足,但是基本功能都实现 懂得都懂,还缺少优化!各位可以自己加功能 (想要完整代码直接拖到下面复制) 1.第一步搭建mysql 首先我是采用了小皮面板8. ...

  8. java swing 学生管理系统数据库CRUD操作解析

    Java学生管理系统程序,很常见的一个程序,因为流程简单,很受java新手喜欢,很适合学习练手,尤其是数据库操作,这里我们看看具体怎么做?连接Access数据库,这里我直接给出操作代码,可以直接拿来用 ...

  9. java实现学生管理系统(集合HashMap实现)-学号唯一

    文章目录 一.功能需求 二.代码框架 三.代码 1.学生类 Student.java 2.学生管理类 StudentManage.java 3.主程序 StudentMain.java 四.运行结果 ...

  10. 中南林业科技大学Java实验报告十二:数据库系统设计 - 从0到1搭建java可视化学生管理系统源代码

    文章目录 实验12 数据库系统设计 12.1 实验目的 12.2 实验内容 12.2.1 设计一个数据库Student,包含成绩表Score,其中属性包含学号,姓名,专业,班级,平均成绩.字段名和类型 ...

最新文章

  1. (chap1 web网络基础) TCP/IP协议层
  2. 第三百一十节,Django框架,模板语言
  3. 【转】光栅化操作阶段
  4. 为什么操作dom会消耗性能
  5. Python | Xpath实战训练
  6. vs 正则表达式转大写_liunx之通配符amp;正则表达式
  7. idea 编译spring_《Spring源码解析(二)》构建 Spring5 源码工程,开启研读Spring源码之路...
  8. 服务器Context、虚拟主机配置(管理、配置)
  9. CMakeLists语法参考
  10. nginx同一域名下部署多个vue项目
  11. 深度学习之神经网络(一)
  12. 基于PHP+MySQL的大学生健康管理系统
  13. 计算机桌面如何分区,讲解电脑如何分区
  14. Redis入门完整教程:CacheCloud接入应用
  15. 17.半拗(小拗)可救可不救
  16. python读HDF数据
  17. 什么使格瓦拉风行至今
  18. 27.Python中的猴子补丁 (Monkey Patching)
  19. 数据传输过程加密方案
  20. Linux 对整个系统备份和还原

热门文章

  1. eclipse安装svn插件时,Subclipse与Subversive的选择与区别
  2. 《算法设计与分析基础》第2版
  3. 欧拉角科普介绍 Roll Pitch Yaw
  4. 如何通过OCJP认证考试
  5. “乘风破浪”的芒果超媒,能上岸吗?
  6. python综合应用_班级管理系统
  7. 华三模拟器(路由器)实现ipsec穿越NAT实验
  8. 实用机器人设计(一)-机器人技术基础
  9. Latex 安装与配置
  10. VB2010的时间表示