package Homework08;
/*
Student stus[]=new Student[2];
for (int i=0;i<stus.length;i++){
stus[i]=new Student();應該寫在循環外面,否則每次都被初始化。
}
*/
import java.util.Scanner;
public class Main {
public static void main(String[]args){
/**
* 1:製作一個簡單的學生信息管理系統,通過鍵盤選擇操作進行添加學生(學號,姓名,性別,年齡,成績)的信息,
* 這些信息通過數組存儲,
* 2:可以進行查詢某個或全體學生信息
* 3:修改學生信息
* 4:刪除學生信息的操作。(要求有一定的優化,例如對用戶輸入信息是否符合要求的處理)。
*/
Student stus[]=new Student[2];
for (int i=0;i<stus.length;i++){
stus[i]=new 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("0:退出系統");
System.out.println("-----------請輸入選項----------------");
Scanner scanner=new Scanner(System.in);
int m=scanner.nextInt();
int js;
switch(m){
//輸入學生信息
case 1:
{ //輸入學生姓名
int z=0;
System.out.println("請您輸入學生信息");
System.out.println("請您輸入學生姓名:");
String name=scanner.next();
stus[z].setName(name);
//輸入學生學號
System.out.println("請您輸入學生學號:");
String stuNum=scanner.next();
stus[z].setStuNum(stuNum);
//輸入學生性別
System.out.println("請您輸入學生性別:");
String gender=scanner.next();
stus[z].setGender(gender);
//輸入學生年齡
System.out.println("請您輸入學生年齡:");
int age=scanner.nextInt();
stus[z].setAge(age);
//輸入學生成績
System.out.println("請您輸入學生成績:");
float score=scanner.nextFloat();
stus[z].setScore(score);
System.out.println("-----------------輸入結束------------------");
z++;}
break;
case 2:{
boolean beep=false;//beep確定是否找到學生信息
System.out.println("請您輸入您要改變的學生的學號:");
String stuNum4=scanner.next();
for(int i=0;i<stus.length;i++){
if(stuNum4.equals(stus[i].getStuNum())){
//重新輸入學生的姓名
System.out.println("請您輸入學生姓名");
String name1=scanner.next();
stus[i].setName(name1);
//重新輸入學生的學號
System.out.println("請您輸入學生學號");
String stuNum1=scanner.next();
stus[i].setStuNum(stuNum1);
//重新輸入學生的性別
System.out.println("請您輸入學生性別");
String gender1=scanner.next();
stus[i].setGender(gender1);
//重新輸入學生的年齡
System.out.println("請您輸入學生年齡");
int age1=scanner.nextInt();
stus[i].setAge(age1);
//重新輸入學生的成績
System.out.println("請您輸入學生成績");
Float score1=scanner.nextFloat();
stus[i].setScore(score1);
System.out.println("----------修改完成--------------");
beep=true;
}
}
if(beep) {
System.out.println("沒有找到給學生信息,請重新定義");
}
}
break;
case 3:{
boolean bo=false;//bo確定是否找到該學生信息
int w=0;
System.out.println("請您輸入您要刪除的學生的學號:");
String stuNum2=scanner.next();
for(int i=0;i<stus.length;i++)
{if(stus[i].getStuNum().equals(stuNum2)){
System.out.println("找到給學生,請說明是否刪除。請輸入是或否:");
String sf=scanner.next();
if (sf=="是"){
/**
* 把後一位的學生信息都放到前一個數組元素內
*/
for (int j=i;j<stus.length-w;j++){
stus[j]=stus[j+1];
}
for(int k=999;k>stus.length-w;k--){
stus[k]=null;
}
bo=true;
}
else if(sf=="否"){
break;
}
}
if(bo){
System.out.println("您輸入的數據有錯誤,請重新輸入");
break;
}
}
}
break;
//查詢學生信息
case 4:{
boolean boo=false;
System.out.println("請輸入您要查詢的學生的學號");
String stuNum3=scanner.next();
for(int i=0;i<stus.length;i++){
if(stuNum3.equals(stus[i].getStuNum())){
System.out.println("這位學生的姓名:" + stus[i].getName());
System.out.println("這位學生的學號:"+stus[i].getStuNum());
System.out.println("這位學生的性別:"+stus[i].getGender());
System.out.println("這位學生的年齡:"+stus[i].getAge());
System.out.println("這位學生的成績:"+stus[i].getScore());
}
}
}
break;
//退出系統
case 0:{
System.out.println("--------退出系統---------------");
scanner.close();//scanner.close()表示輸入關閉
System.exit(0);//System.exit(0)表示系統關閉
}
}
}
}
}
package Homework08;
//創建一個學生Student類,包含屬性和功能。
public class Student {
//屬性(學號,姓名,性別,年齡,分數)
String stuNum;
String name;
String gender;
int age;
float score;
//功能如下
//輸入學號
public void setStuNum(String stuNum){
this.stuNum=stuNum;
}
//輸出學號
public String getStuNum(){
return stuNum;
}
//輸入名字
public void setName(String name){
this.name=name;
}
//輸出名字
public String getName(){
return name;
}
//輸入性別
public void setGender(String gender){
this.gender=gender;
}
//輸出性別
public String getGender(){
return gender;
}
//輸入年齡
public void setAge(int age){
this.age=age;
}
//輸出年齡
public int getAge(){
return age;
}
//輸入分數
public void setScore(float score){
this.score=score;
}
//輸出分數
public float getScore(){
return score;
}
}