大家可以關註作者的賬號,關註從零開始學Java筆記文集。也可以根據目錄前往作者的博客園博客進行學習。本片文件將基於黑馬程式員就業班視頻進行學習以及資料的分享,並記錄筆記和自己的看法。歡迎大家一起學習和討論。 "【從零開始學Java筆記】目錄" 學生管理系統一直是大學學習過程中無法跳過的環節,因為這個 ...
大家可以關註作者的賬號,關註從零開始學Java筆記文集。也可以根據目錄前往作者的博客園博客進行學習。本片文件將基於黑馬程式員就業班視頻進行學習以及資料的分享,並記錄筆記和自己的看法。歡迎大家一起學習和討論。
【從零開始學Java筆記】目錄
學生管理系統一直是大學學習過程中無法跳過的環節,因為這個系統囊括了很多知識,是初學者不錯的上手項目。
需求:
1.學生屬性有學號,姓名,年齡和地址
2.要有主界面
3.可以增加學生,學號唯一,不能重覆添加
4.可以查看所有學生
5.可以根據學號刪除學生
6.可以根據學號查找學生
實現:
package com.tyust.studentmanagement;
public class Student {
//成員變數
private String id;
private String name;
private String age;
private String address;
//get、set方法
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;
}
//無參構造
public Student() {
super();
// TODO Auto-generated constructor stub
}
//有參構造
public Student(String id, String name, String age, String address) {
super();
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
}
package com.tyust.studentmanagement;
import java.util.ArrayList;
import java.util.Scanner;
/*
*
*/
public class StudentAction {
public static void main(String[] args) {
// 創建一個集合
ArrayList<Student> stu = new ArrayList<Student>();
// 主界面,while(true)是一個死迴圈
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);
// 接收
int choice = sc.nextInt();
// switch選擇
switch (choice) {
case 1:
addStudent(stu);
break;
case 2:
travelStudent(stu);
break;
case 3:
deleteStudent(stu);
break;
case 4:
modifyStudent(stu);
break;
// 這個地方用了case穿透,即case 5沒有內容,直接穿透到下一個case
case 5:
default:
System.out.println("謝謝您的使用!");
// 關閉虛擬機,結束程式
System.exit(0);
}
}
}
// 增加學生
public static void addStudent(ArrayList<Student> stu) {
// 鍵盤輸入
Scanner sc = new Scanner(System.in);
// 提拉,將id的聲明提拉至迴圈外,以便迴圈後還能使用,如果在迴圈內聲明,迴圈結束後,變數也隨之消失
String id;
// while迴圈,判斷學號是否重覆
while (true) {
System.out.println("請輸入學號:");
id = sc.nextLine();
// 判斷標誌初始化
boolean index = false;
// 迴圈判斷,如果發現相同,改變判斷標誌,跳出迴圈
for (int i = 0; i < stu.size(); i++) {
if (id.equals(stu.get(i).getId())) {
index = true;
break;
}
}
// 判斷
if (index) {
System.out.println("您輸入的學號已存在!請重新輸入。");
System.out.println("如需重新輸入學生信息,請按1");
System.out.println("如需回主菜單,請按2");
System.out.println("請輸入您需要的操作:");
Scanner sc1 = new Scanner(System.in);
// 接收
int flag = sc1.nextInt();
// switch選擇
switch (flag) {
case 1:
// 跳出判斷繼續迴圈
break;
case 2:
default:
// return直接結束方法
return;
}
} 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(id, name, age, address);
stu.add(s);
System.out.println("添加成功");
}
//查看所有敘述
public static void travelStudent(ArrayList<Student> stu) {
//如果沒有學生顯示沒有學生,如果有顯示學生信息
if (stu.size() == 0) {
System.out.println("沒有學生");
} else {
System.out.println("學號\t\t姓名\t年齡\t地址\t");
for (int i = 0; i < stu.size(); i++) {
Student s = stu.get(i);
System.out.println(s.getId() + "\t\t" + s.getName() + "\t" + s.getAge() + "\t" + s.getAddress());
}
}
}
//修改學生信息
public static void modifyStudent(ArrayList<Student> stu) {
System.out.println("請輸入要修改學生的學號:");
//接收學號
Scanner sc = new Scanner(System.in);
String id = sc.nextLine();
//標誌初始化
boolean judge = false;
int index = -1;
//遍歷尋找學生,找到修改標誌
for (int i = 0; i < stu.size(); i++) {
if (id.equals(stu.get(i).getId())) {
judge = true;
index = i;
break;
}
}
if (judge) {
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(id, name, age, address);
//修改
stu.set(index,s);
System.out.println("修改成功");
} else {
System.out.println("沒有這個學生!");
}
}
//刪除學生信息
public static void deleteStudent(ArrayList<Student> stu) {
System.out.println("請輸入要刪除學生的學號:");
//接收學生學號
Scanner sc = new Scanner(System.in);
String id = sc.nextLine();
//標註初始化
boolean judge = false;
//遍歷尋找
for (int i = 0; i < stu.size(); i++) {
if (id.equals(stu.get(i).getId())) {
//移除
stu.remove(i);
judge = true;
break;
}
}
//判斷
if (judge) {
System.out.println("刪除成功!");
} else {
System.out.println("沒有這個學生!");
}
}
}