Java 9天入门(黑马程序员) 课程收尾 学生管理系统 (9.13)

1 实现功能

 2 结构概述

分为两个包,各自一个类 Student.java 为学生类,目的是储存学生信息

StudentManager.java 是主程序的代码

3 Student.java 的代码如下

 可以快捷生成(eciplise--->右键代码区----->选择source----->选择 generate)

 1 package com.itheima.domain;
 2 
 3 public class Student {
 4     private String sid;//学生学号
 5     private String name;//学生姓名
 6     private int age;//学生年龄
 7     private String birthday;//学生生日
 8    //无参数构造方法
 9     public Student() {
10         super();
11     }
12    //有参数构造方法
13     public Student(String sid, String name, int age, String birthday) {
14         super();
15         this.sid = sid;
16         this.name = name;
17         this.age = age;
18         this.birthday = birthday;
19     }
20 
21     public String getSid() {
22         return sid;
23     }
24 
25     public void setSid(String sid) {
26         this.sid = sid;
27     }
28 
29     public String getName() {
30         return name;
31     }
32 
33     public void setName(String name) {
34         this.name = name;
35     }
36 
37     public int getAge() {
38         return age;
39     }
40 
41     public void setAge(int age) {
42         this.age = age;
43     }
44 
45     public String getBirthday() {
46         return birthday;
47     }
48 
49     public void setBirthday(String birthday) {
50         this.birthday = birthday;
51     }
52 
53 }

4 StudentManager.java 代码如下 (各个功能以自定义方法实现)

 具体代码如下:

  1 package com.itheima.test;
  2 import java.util.ArrayList;
  3 import java.util.Scanner;
  4 
  5 import com.itheima.domain.Student;
  6 
  7 public class StudentManager {
  8 
  9     public static void main(String[] args) {
 10 
 11         // TODO Auto-generated method stub
 12         Scanner sc = new Scanner(System.in);
 13 //        创建集合容器对象
 14         ArrayList<Student> list = new ArrayList<Student>();
 15         lo: while (true) {
 16 //            lo 为循环标号 break lo;
 17 //            1、搭建主界面菜单
 18             System.out.println("--------------欢迎来到学生管理系统--------------");
 19             System.out.println("1 添加学生");
 20             System.out.println("2 删除学生");
 21             System.out.println("3 修改学生");
 22             System.out.println("4 查看学生");
 23             System.out.println("5 退出");
 24             System.out.println("请输入您的选择:");
 25             int sel = sc.nextInt();
 26             switch (sel) {
 27             case 1:
 28                 System.out.println("开始添加学生");
 29                 addStudent(list);
 30                 break;
 31             case 2:
 32                 System.out.println("删除学生");
 33                 deleteStudent(list);
 34                 break;
 35             case 3:
 36                 System.out.println("修改学生");
 37                 updateStudent(list);
 38                 break;
 39             case 4:
 40                 System.out.println("查看学生");
 41                 viewStudent(list);
 42                 break;
 43             case 5:
 44                 System.out.println("感谢您的使用");
 45                 break lo;
 46             default:
 47                 System.out.println("输入的数字不在我识别之内,请重新输入");
 48                 break;
 49             }
 50 
 51         }
 52     }
 53 
 54     // 修改学生的方法
 55     private static void updateStudent(ArrayList<Student> list) {
 56         // TODO Auto-generated method stub
 57         System.out.println("请输入您要修改的学号");
 58         Scanner sc = new Scanner(System.in);
 59         String updateSid = sc.next();
 60         int index = getIndex(list, updateSid);
 61         if (index == -1) {
 62             System.out.println("查无信息,请重新输入");
 63         } else {
 64 //            存在: 接受新的学生信息
 65             System.out.println("请输入新的学生姓名");
 66             String name = sc.next();
 67             System.out.println("请输入新的学生年龄");
 68             int age = sc.nextInt();
 69             System.out.println("请输入新的学生生日");
 70             String birthday = sc.next();
 71 //            封装为一个新的学生对象
 72             Student stu = new Student(updateSid, name, age, birthday);
 73 //            调用集合的set方法,完成修改
 74             list.set(index, stu);
 75             System.out.println("修改成功");
 76         }
 77 
 78     }
 79 
 80     // 删除学生的方法
 81     public static void deleteStudent(ArrayList<Student> list) {
 82         // TODO Auto-generated method stub
 83         System.out.println("请输入您要删除的学号");
 84         Scanner sc = new Scanner(System.in);
 85         String deleteSid = sc.next();
 86         int index = getIndex(list, deleteSid);
 87         if (index == -1) {
 88             System.out.println("查无信息,请重新输入");
 89         } else {
 90             list.remove(index);
 91             System.out.println("删除成功");
 92         }
 93     }
 94 
 95     // 查看学生的方法
 96     public static void viewStudent(ArrayList<Student> list) {
 97 
 98         // TODO Auto-generated method stub
 99 //        判断是否为空数据
100         if (list.size() == 0) {
101             System.out.println("无信息,请添加后重新查询");
102             return;
103         }
104         System.out.println("学号\t姓名\t年龄\t生日");
105         for (int i = 0; i < list.size(); i++) {
106             Student stu = list.get(i);
107             System.out.println(stu.getSid() + "\t" + stu.getName() + "\t" + stu.getAge() + "\t" + stu.getBirthday());
108         }
109     }
110 
111 //    添加学生的方法
112     public static void addStudent(ArrayList<Student> list) {
113         Scanner sc = new Scanner(System.in);
114         String sid;
115         while (true) {
116             System.out.println("请输入学号");
117             sid = sc.next();
118             int index = getIndex(list, sid);
119             if (index == -1) {
120 //                sid can use
121                 break;
122             }
123         }
124 //        1 给出录入的提示信息
125 
126         System.out.println("请输入姓名");
127         String name = sc.next();
128         System.out.println("请输入年龄");
129         int age = sc.nextInt();
130         System.out.println("请输入生日");
131         String birthday = sc.next();
132 //        2 将键盘录入的信息封装为学生对象
133         Student stu = new Student(sid, name, age, birthday);
134 //        3 将封装好的学生对象添加到集合容器中
135         list.add(stu);
136 //        4 给出添加成功的提示信息
137         System.out.println("添加成功");
138     }
139 
140     /*
141      * 定义getIndex方法 : 接受一个集合对象,接受一个学生学号 查找这个学号在集合中出现的索引位置
142      */
143     public static int getIndex(ArrayList<Student> list, String sid) {
144 //        假设传入的学号,在集合中不存在
145         int index = -1;
146 //        遍历集合,获取每一个学生对象,准备进行查找
147         for (int i = 0; i < list.size(); i++) {
148             Student stu = list.get(i);
149             String id = stu.getSid();
150 //            和传入的sid进行比对
151             if (id.equals(sid)) {
152 //            存在:让index变量记录正确的索引位置
153                 index = i;
154             }
155 
156         }
157         return index;
158     }
159 
160 }

5 小结:

这个项目融合了Java入门级别的知识,综合性强!(总计约210行代码)

                              ------ BTLord 小白工作室

                                       2020.9.13

原文地址:https://www.cnblogs.com/btlord/p/13662706.html