?項目介紹:用java實現(xiàn)學(xué)生信息的管理,其中錄入的數(shù)據(jù)包括:學(xué)號、姓名、年齡、居住地等,并且能夠?qū)崿F(xiàn)對學(xué)生信息的添加、修改、刪除、查看功能。
一、創(chuàng)建項目
1、項目名稱:myStudentManager
二、創(chuàng)建包
1、包名稱:study
2、名字也可以自己進(jìn)行命名
三、創(chuàng)建兩個類
1、學(xué)生類(Studnet)
package Study;
/*
學(xué)生類
Alt + Insert 根據(jù)自己的需要進(jìn)行選擇
*/
public class Student {
//學(xué)號
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;
}
}
2、學(xué)生測試類(StudentManager)
package Study;
import jdk.swing.interop.SwingInterOpUtils;
import java.util.ArrayList;
import java.util.Scanner;
/*
學(xué)生管理系統(tǒng)
*/
public class StudentManager {
/*
1:用輸出語句完成主界面的編寫
2:用Scanner實現(xiàn)鍵盤錄入數(shù)據(jù)
3:用switch語句完成操作的選擇
4:用循環(huán)完成再次回到主界面
*/
public static void main(String[] args) {
//創(chuàng)建一個集合對象用于儲存學(xué)生數(shù)據(jù)
ArrayList<Student> array = new ArrayList<>();
//用循環(huán)完成再次回到主界面
while (true) {
//用輸出語句完成主界面的編寫
System.out.println("--------歡迎來到學(xué)生管理系統(tǒng)--------");
System.out.println("1 添加學(xué)生");
System.out.println("2 刪除學(xué)生");
System.out.println("3 修改學(xué)生");
System.out.println("4 查看所有學(xué)生");
System.out.println("5 退出");
System.out.println("請輸入您的選擇:");
//用Scanner實現(xiàn)鍵盤錄入數(shù)據(jù)
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
//用switch語句完成操作的選擇
switch (line) {
case "1":
// System.out.println("添加學(xué)生");
addStudent(array);
break;
case "2":
// System.out.println("刪除學(xué)生");
deleteStudent(array);
break;
case "3":
// System.out.println("修改學(xué)生");
updateStudent(array);
break;
case "4":
// System.out.println("查看所有學(xué)生");
findAllStudent(array);
break;
case "5":
System.out.println("謝謝使用");
// break;
System.exit(0); //JVM(java虛擬機(jī))退出
}
}
}
//定義一個方法,用于添加學(xué)生信息
public static void addStudent(ArrayList<Student> array) {
//鍵盤錄入學(xué)生對象所需要的數(shù)據(jù),顯示提示信息,提示要輸入何種信息
Scanner sc = new Scanner(System.in);
//為了能使得sid能在while循環(huán)外面被訪問到,我們就把他定義到了循環(huán)外面
String sid;
while (true) {
System.out.println("請輸入學(xué)生學(xué)號:");
sid = sc.nextLine();
boolean flag = isUsed(array, sid);
if (flag) {
System.out.println("你輸入的學(xué)號已經(jīng)被使用,請重新輸入");
} else {
break;
}
}
System.out.println("請輸入學(xué)生姓名:");
String name = sc.nextLine();
System.out.println("請輸入學(xué)生年齡:");
String age = sc.nextLine();
System.out.println("請輸入學(xué)生居住地:");
String address = sc.nextLine();
//創(chuàng)建學(xué)生對象,把鍵盤錄入的數(shù)據(jù)賦值給學(xué)生對象成員變量
Student s = new Student();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
//將學(xué)生對象添加到集合中
array.add(s);
//給出添加成功提示
System.out.println("添加學(xué)生成功");
}
//定義一個方法,判斷學(xué)號是否被使用
public static boolean isUsed(ArrayList<Student> array, String sid){
//如果與集合中的某一學(xué)生學(xué)號相同,返回ture;如果都不相同,返回false
boolean 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;
}
//定義一個方法,用于查看學(xué)生信息
public static void findAllStudent(ArrayList<Student> array) {
//判斷集合中是否有數(shù)據(jù),如果沒有顯示提示信息
if (array.size() == 0) {
System.out.println("無信息,請先添加信息再查詢");
} else {
//顯示表頭信息
//\t 其實就是tab鍵的位置
System.out.println("學(xué)號\t\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());
}
}
}
//定義一個方法,用于刪除學(xué)生信息
public static void deleteStudent(ArrayList<Student> array) {
//鍵盤錄入要刪除的學(xué)生學(xué)號,顯示提示信息
Scanner sc = new Scanner(System.in);
System.out.println("請輸入你要刪除的學(xué)生學(xué)號:");
String sid = sc.nextLine();
//在刪除學(xué)生操作前,對學(xué)號是否存在進(jìn)行判斷
//如果不存在,顯示提示信息
//遍歷集合將對應(yīng)學(xué)生對象從集合中刪除
int index = -1;
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
if (s.getSid().equals(sid)) {
// array.remove(i);
index = i;
break;
}
}
if (index == -1){
System.out.println("該信息不存在,請重新輸入");
} else{
array.remove(index);
//給出提示刪除學(xué)生成功
System.out.println("刪除學(xué)生成功");
}
}
//定義一個方法,用于修改學(xué)生信息
public static void updateStudent(ArrayList<Student> array) {
//鍵盤輸入要修改的學(xué)生學(xué)號,顯示提示信息
Scanner sc = new Scanner(System.in);
System.out.println("請輸入你要修改的學(xué)生學(xué)號:");
String sid = sc.nextLine();
int index = -1;
//遍歷結(jié)合修改學(xué)生的對應(yīng)信息
for(int i = 0; i < array.size(); i++){
Student student = array.get(i);
if (student.getSid().equals(sid)){
index = i;
// array.set(i,s);
break;
}
}
if (index == -1) {
System.out.println("不存在要修改的學(xué)生學(xué)號,請重新輸入");
} else {
//鍵盤錄入要修改的學(xué)生信息
System.out.println("請輸入學(xué)生新的姓名:");
String name = sc.nextLine();
System.out.println("請輸入學(xué)生新的年齡:");
String age = sc.nextLine();
System.out.println("請輸入學(xué)生新的居住地:");
String address = sc.nextLine();
//創(chuàng)建一個學(xué)生對象
Student s = new Student();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
array.set(index, s);
//給出修改成功提示
System.out.println("修改學(xué)生信息成功");
}
}
}
四、主要代碼解析
1、主界面的編寫
//用循環(huán)完成再次回到主界面
while (true) {
//用輸出語句完成主界面的編寫
System.out.println("--------歡迎來到學(xué)生管理系統(tǒng)--------");
System.out.println("1 添加學(xué)生");
System.out.println("2 刪除學(xué)生");
System.out.println("3 修改學(xué)生");
System.out.println("4 查看所有學(xué)生");
System.out.println("5 退出");
System.out.println("請輸入您的選擇:");
//用Scanner實現(xiàn)鍵盤錄入數(shù)據(jù)
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
//用switch語句完成操作的選擇
switch (line) {
case "1":
// System.out.println("添加學(xué)生");
addStudent(array);
break;
case "2":
// System.out.println("刪除學(xué)生");
deleteStudent(array);
break;
case "3":
// System.out.println("修改學(xué)生");
updateStudent(array);
break;
case "4":
// System.out.println("查看所有學(xué)生");
findAllStudent(array);
break;
case "5":
System.out.println("謝謝使用");
// break;
System.exit(0); //JVM(java虛擬機(jī))退出
}
}
}
?2、添加學(xué)生信息(解決重復(fù)添加問題)
public static void addStudent(ArrayList<Student> array) {
//鍵盤錄入學(xué)生對象所需要的數(shù)據(jù),顯示提示信息,提示要輸入何種信息
Scanner sc = new Scanner(System.in);
//為了能使得sid能在while循環(huán)外面被訪問到,我們就把他定義到了循環(huán)外面
String sid;
while (true) {
System.out.println("請輸入學(xué)生學(xué)號:");
sid = sc.nextLine();
boolean flag = isUsed(array, sid);
if (flag) {
System.out.println("你輸入的學(xué)號已經(jīng)被使用,請重新輸入");
} else {
break;
}
}
System.out.println("請輸入學(xué)生姓名:");
String name = sc.nextLine();
System.out.println("請輸入學(xué)生年齡:");
String age = sc.nextLine();
System.out.println("請輸入學(xué)生居住地:");
String address = sc.nextLine();
//創(chuàng)建學(xué)生對象,把鍵盤錄入的數(shù)據(jù)賦值給學(xué)生對象成員變量
Student s = new Student();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
//將學(xué)生對象添加到集合中
array.add(s);
//給出添加成功提示
System.out.println("添加學(xué)生成功");
}
2.1、定義一個方法判斷學(xué)生學(xué)號是否被使用
public static boolean isUsed(ArrayList<Student> array, String sid){
//如果與集合中的某一學(xué)生學(xué)號相同,返回ture;如果都不相同,返回false
boolean 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;
}
3、修改學(xué)生信息(解決修改學(xué)生不存在的問題)
public static void updateStudent(ArrayList<Student> array) {
//鍵盤輸入要修改的學(xué)生學(xué)號,顯示提示信息
Scanner sc = new Scanner(System.in);
System.out.println("請輸入你要修改的學(xué)生學(xué)號:");
String sid = sc.nextLine();
int index = -1;
//遍歷結(jié)合修改學(xué)生的對應(yīng)信息
for(int i = 0; i < array.size(); i++){
Student student = array.get(i);
if (student.getSid().equals(sid)){
index = i;
// array.set(i,s);
break;
}
}
if (index == -1) {
System.out.println("不存在要修改的學(xué)生學(xué)號,請重新輸入");
} else {
//鍵盤錄入要修改的學(xué)生信息
System.out.println("請輸入學(xué)生新的姓名:");
String name = sc.nextLine();
System.out.println("請輸入學(xué)生新的年齡:");
String age = sc.nextLine();
System.out.println("請輸入學(xué)生新的居住地:");
String address = sc.nextLine();
//創(chuàng)建一個學(xué)生對象
Student s = new Student();
s.setSid(sid);
s.setName(name);
s.setAge(age);
s.setAddress(address);
array.set(index, s);
//給出修改成功提示
System.out.println("修改學(xué)生信息成功");
}
}
4、刪除學(xué)生信息(解決刪除學(xué)生不存在的問題)文章來源:http://www.zghlxwxcb.cn/news/detail-761689.html
public static void deleteStudent(ArrayList<Student> array) {
//鍵盤錄入要刪除的學(xué)生學(xué)號,顯示提示信息
Scanner sc = new Scanner(System.in);
System.out.println("請輸入你要刪除的學(xué)生學(xué)號:");
String sid = sc.nextLine();
//在刪除學(xué)生操作前,對學(xué)號是否存在進(jìn)行判斷
//如果不存在,顯示提示信息
//遍歷集合將對應(yīng)學(xué)生對象從集合中刪除
int index = -1;
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
if (s.getSid().equals(sid)) {
// array.remove(i);
index = i;
break;
}
}
if (index == -1){
System.out.println("該信息不存在,請重新輸入");
} else{
array.remove(index);
//給出提示刪除學(xué)生成功
System.out.println("刪除學(xué)生成功");
}
}
5、查看所有學(xué)生文章來源地址http://www.zghlxwxcb.cn/news/detail-761689.html
public static void findAllStudent(ArrayList<Student> array) {
//判斷集合中是否有數(shù)據(jù),如果沒有顯示提示信息
if (array.size() == 0) {
System.out.println("無信息,請先添加信息再查詢");
} else {
//顯示表頭信息
//\t 其實就是tab鍵的位置
System.out.println("學(xué)號\t\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());
}
}
}
到了這里,關(guān)于【超詳細(xì)】Java實現(xiàn)學(xué)生信息管理系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!