专栏首页Java帮帮-微信公众号-技术文章全总结Java基础-day09-对象;类;封装 学生管理系统

Java基础-day09-对象;类;封装 学生管理系统

Java基础-day09-对象&类&封装

学生管理系统

●★●★●★●★●★●★●★●★●★●★●★●★●★●★●★●★●★●★●★●★●★●★●★●★

代码实现:

package StudentJavaSE;
/**
 * 标准学生类
 * @author 奋斗蒙
 */
public class Student {
 // 学号
 private String id;
 // 姓名
 private String name;
 // 年龄
 private String age;
 // 居住地
 private String address;
 public Student() {
 }
 public Student(String id, String name, String age, String address) {
 this.id = id;
 this.name = name;
 this.age = age;
 this.address = address;
 }
 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 getAge() {
 return age;
 }
 public void setAge(String age) {
 this.age = age;
 }
 public String getAddress() {
 return address;
 }
 public void setAddress(String address) {
 this.address = address;
 }
}
package StudentJavaSE;
import java.util.ArrayList;
import java.util.Scanner;
public class StudentAdmin {
 public static void main(String[] args) {
 // 创建集合对象,用于存储学生数据
 ArrayList<Student> list = 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("请输入你的选择:");
 // 创建键盘录入对象
 Scanner sc = new Scanner(System.in);
 String choiceString = sc.nextLine();
 // 用switch语句实现选择
 switch (choiceString) {
 case "1":
 // 查看所有学生
 findAllStudent(list);
 break;
 case "2":
 // 添加学生
 addStudent(list);
 break;
 case "3":
 // 删除学生
 deleteStudent(list);
 break;
 case "4":
 // 修改学生
 updateStudent(list);
 break;
 case "5":
 // 退出
 // System.out.println("谢谢你的使用");
 // break;
 default:
 System.out.println("谢谢你的使用");
 System.exit(0); // JVM退出
 break;
 }
 }
 }
 /*
  * 修改学生的方法 修改学生的思路:键盘录入一个学号,到集合中去查找,看是否有学生使用的是该学号,如果有就修改该学生
  */
 public static void updateStudent(ArrayList<Student> list) {
 // 创建键盘录入对象
 Scanner sc = new Scanner(System.in);
 System.out.println("请输入你要修改的学生的学号:");
 String id = sc.nextLine();
 // 定义一个索引
 int index = -1;
 // 遍历集合
 for (int x = 0; x < list.size(); x++) {
 // 获取每一个学生对象
 Student s = list.get(x);
 // 拿学生对象的学号和键盘录入的学号进行比较
 if (s.getId().equals(id)) {
 index = x;
 break;
 }
 }
 if (index == -1) {
 System.out.println("不好意思,你要修改的学号对应的学生信息不存在,请回去重新你的选择");
 } else {
 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.setId(id);
 s.setName(name);
 s.setAge(age);
 s.setAddress(address);
 // 修改集合中的学生对象
 list.set(index, s);
 // 给出提示
 System.out.println("修改学生成功");
 }
 }
 /*
  * 删除学生的方法 删除学生的思路:键盘录入一个学号,到集合中去查找,看是否有学生使用的是该学号,如果有就删除该学生
  */
 public static void deleteStudent(ArrayList<Student> list) {
 // 创建键盘录入对象
 Scanner sc = new Scanner(System.in);
 System.out.println("请输入你要删除的学生的学号:");
 String id = sc.nextLine();
 // 我们必须给出学号不存在的时候的提示
 // 定义一个索引
 int index = -1;
 // 遍历集合
 for (int x = 0; x < list.size(); x++) {
 // 获取到每一个学生对象
 Student s = list.get(x);
 // 拿这个学生对象的学号和键盘录入的学号进行比较
 if (s.getId().equals(id)) {
 index = x;
 break;
 }
 }
 if (index == -1) {
 System.out.println("不好意思,你要删除的学号对应的学生信息不存在,请回去重新你的选择");
 } else {
 list.remove(index);
 System.out.println("删除学生成功");
 }
 }
 // 添加学生的方法
 public static void addStudent(ArrayList<Student> list) {
 // 创建键盘录入对象
 Scanner sc = new Scanner(System.in);
 // 为了让id能够被访问到,我们就把id定义在了循环的外面
 String id;
 // 为了让代码能够回到这里,用循环
 while (true) {
 System.out.println("请输入学生学号:");
 // String id = sc.nextLine();
 id = sc.nextLine();
 // 判断学号有没有被人占用
 // 定义标记
 boolean flag = false;
 // 遍历集合,得到每一个学生
 for (int x = 0; x < list.size(); x++) {
 Student s = list.get(x);
 // 获取该学生的学号,和键盘录入的学号进行比较
 if (s.getId().equals(id)) {
 flag = true; // 说明学号被占用了
 break;
 }
 }
 if (flag) {
 System.out.println("你输入的学号已经被占用,请重新输入");
 } else {
 break; // 结束循环
 }
 }
 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.setId(id);
 s.setName(name);
 s.setAge(age);
 s.setAddress(address);
 // 把学生对象作为元素添加到集合
 list.add(s);
 // 给出提示
 System.out.println("添加学生成功");
 }
 // 查看所有学生
 public static void findAllStudent(ArrayList<Student> list) {
 // 首先来判断集合中是否有数据,如果没有数据,就给出提示,并让该方法不继续往下执行
 if (list.size() == 0) {
 System.out.println("不好意思,目前没有学生信息可供查询,请回去重新选择你的操作");
 return;
 }
 // \t 其实就是一个tab键的位置
 System.out.println("学号\t\t姓名\t年龄\t居住地");
 for (int x = 0; x < list.size(); x++) {
 Student s = list.get(x);
 System.out.println(s.getId() + "\t" + s.getName() + "\t" + s.getAge() + "\t" + s.getAddress());
 }
 }
}

运行结果:

本文分享自微信公众号 - Java帮帮(javahelp)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-06-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 深入Java虚拟机——JVM内存详解

    在C++中,程序员拥有每一个对象的所有权,但与此同时还肩负着释放对象内存空间的责任;而Java由于有了虚拟机的帮助,程序员拥有对象的所有权的同时不再需要释放对象...

    大闲人柴毛毛
  • java处理高并发高负载类网站的优化方法

    一:高并发高负载类网站关注点之数据库 没错,首先是数据库,这是大多数应用所面临的首个SPOF。尤其是Web2.0的应用,数据库的响应是首先要解决的。   ...

    大闲人柴毛毛
  • Java基础笔记——学习Java前的准备

            接下来的一个月我会和大家分享我学JavaSE时候的笔记,分享是最好的老师,希望我的笔记能给大家一些帮助。 我会每天发一篇文章,这些都是我学Jav...

    大闲人柴毛毛
  • 那些年遇到的bug(2)

    bug系列又出炉了,过来瞧瞧啦 1、webview常出现的问题 之前android虚拟机一直都可以直接联网,今天写了一个WebView之后,突然报出了...

    用户1337002
  • 深入Java虚拟机——JVM内存详解

    在C++中,程序员拥有每一个对象的所有权,但与此同时还肩负着释放对象内存空间的责任;而Java由于有了虚拟机的帮助,程序员拥有对象的所有权的同时不再需要释放对象...

    大闲人柴毛毛
  • Java基础深入解析——类与对象

    成员变量与局部变量的区别 1.成员变量定义在类中,整个类中都能够访问。   局部变量定义在局部代码块中,只能在局部代码块中访问。 2.成员变量存在于堆内存中,有...

    大闲人柴毛毛
  • 那些年遇到的Bug(1)

    一、SHA-1混淆 Found 2 versions of android-support-v4.jar in the dependency list, bu...

    用户1337002
  • Java基础全面解析——Java语言基础

    高级编程语言的组成:关键字、标识符、注释、常量与变量、语句、函数、数组,下面一一介绍各个组成元素。 a)  关键字 i.  定义:关键字是一些英文单词,但在ja...

    大闲人柴毛毛
  • 提高Java代码质量的Eclipse插件之Checkstyle的使用详解

    CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具。它能够自动化代码规范检查过程,从而使得开发人员...

    大闲人柴毛毛
  • 深入理解java异常处理机制

     1. 引子        try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,...

    大闲人柴毛毛

扫码关注云+社区

领取腾讯云代金券