簡單的java學生管理系統

java簡單的學生管理系統(無界面)

<span style="font-size:14px;">package Students;

public class Students {
    private String Name;
    private long Number;
    private String Class;
    private int Score;//不將數據域定義爲私有的,定義爲共有的,將使編寫代碼變得簡單一些,可以省去很多方法
    
    
    public Students(){
        this("sdiuf h",6544534,"ef esf",48);//無意義
    }
            
    public Students(String Name,long Number,String Class){
        this(Name,Number,Class,0);//主要是想嘗試一下this引用本類
    }
    
    public Students(String Name,long Number,String Class,int Score){
        this.Name = Name;
        this.Number = Number;
        this.Score = Score;
        this.Class = Class;
    }
    
    public void SetName(String Name){
        this.Name = Name;
    }
    
    public void SetNumber(long Number){
        this.Number = Number;
    }
    
    public void SetClass(String Class){
        this.Class = Class;
    }
    
    public void SetScore(int Score){
        this.Score = Score;
    }
    
    public String GetName(){
        return Name;
    }
    
    public long GetNumber(){
        return Number;
    }
    
    public String GetClass(){
        return Class;
    }
    
    public int GetScore(){
        return Score;
    } 
}
</span>
<span style="font-size:14px;"><pre name="code" class="java">package Students;

import java.util.Scanner;
import java.io.*;

public class MainStudents {
    static int i = 0;
    public static void main(String[] args) throws FileNotFoundException, IOException, Exception{
        
        Scanner Input = new Scanner(System.in);
        int choose;
        do{
            System.out.println("--------------【1】、新建學生數據庫----------------");
            System.out.println("--------------【2】、增添學生數據------------------");
            System.out.println("--------------【3】、刪除學生數據------------------");
            System.out.println("--------------【4】、修改學生數據------------------");
            System.out.println("--------------【5】、查看學生數據------------------");
            System.out.println("--------------【6】、顯示所有學生數據---------------");
            System.out.println("--------------【0】、退出應用----------------------");
            
            choose = Input.nextInt();
            
            switch(choose){
                case 1: Students1(); break;
                case 2: Students2(); break;
                case 3: Students3(); break;
                case 4: Students4(); break;
                case 5: Students5(); break;
                case 6: Students6(); break;
                case 0: Students0(); break;
                    default:
                        System.out.println("你輸入的信息有誤,請重新輸入!");
            }
        }while(choose != 0);
    }

    private static void Students1() throws FileNotFoundException{
        Students[] stu = new Students[100];//這裏只輸入一組數據,可以不用對象數組,而直接用Students類
        Scanner Input = new Scanner(System.in);
        
        stu[i] = new Students();
        System.out.println("請輸入學生的班級:");//以String類儲存漢字,可能會出現亂碼的情況
        stu[i].SetClass(Input.next());
        
        System.out.println("請輸入學生的學號:");
        stu[i].SetNumber(Input.nextLong());

        System.out.println("請輸入學生的姓名:");
        stu[i].SetName(Input.next());

        System.out.println("請輸入學生的成績:");
        stu[i].SetScore(Input.nextInt());
        
        System.out.println(stu[i].GetClass());
        File fl = new File("Students.txt");
        try (PrintWriter output = new PrintWriter(fl)) {
            output.print(stu[i].GetName() + "\t");
            output.print(stu[i].GetNumber() + "\t");
            output.print(stu[i].GetClass() + "\t");
            output.println(stu[i].GetScore());
        }
        
        i++;
        File Fl = new File("Number.txt");
        try(PrintWriter output = new PrintWriter(Fl)){
            output.print(i);
        }
        
    }

    private static void Students2() throws IOException{
       
       Scanner Input = new Scanner(System.in);
       
       File Fl = new File("Number.txt");
       try (Scanner input = new Scanner(Fl)) {
            i = input.nextInt();
        }
       
        try (FileWriter out = new FileWriter("Students.txt",true)) {//以在文件末尾添加數據的方式創建向文件內輸入數據的類
            System.out.println("請輸入學生的姓名");
            out.write("\t" + Input.next() + "\t");
            
            System.out.println("請輸入學生的學號");
            out.write(Input.nextLong() + "\t");
            
            System.out.println("請輸入學生的班級");
            out.write(Input.next() + "\t");
            
            System.out.println("請輸入學生的成績");
            out.write(Input.nextInt() + "\n");
        }
        
        i++;
        try(PrintWriter output = new PrintWriter(Fl)){
                output.print(i);
            }
    }

    private static void Students3() throws Exception{ 
        File Fl = new File("Number.txt");
        File fl = new File("Students.txt");
        try (Scanner input = new Scanner(Fl)) {
            i = input.nextInt();
        }
        
        System.out.println("請輸入你想修改學生的學號");
        Scanner input = new Scanner(System.in);
        long Number = input.nextLong();
        
        Students[] stu = new Students[i];
        try(Scanner Input = new Scanner(fl)){
            for(int j =0;j < i;j++){
                stu[j] = new Students();//要先將對象數組初始化
                stu[j].SetName(Input.next());//不能使用nextLine(),此爲輸入以\n爲結尾的所有數
                stu[j].SetNumber(Input.nextLong());
                stu[j].SetClass(Input.next());
                stu[j].SetScore(Input.nextInt());
                
                if(Number == stu[j].GetNumber()){
                    System.out.println("姓名\t學號\t班級\t成績");
                    System.out.println(stu[j].GetName() + "\t" + stu[j].GetNumber() +
                        "\t" + stu[j].GetClass() + "\t" + stu[j].GetScore());
                    System.out.println("你確定刪除這組數據?(Y/N)(不區分大小寫)");
                    String choose = input.next();
                    System.out.println(choose);
                    if("Y".equals(choose)||"y".equals(choose)){//不能使用choose == "y"語句
                        j--;
                        i--;
                    }
                }
            }
        }
        
        try(PrintWriter output = new PrintWriter(Fl)){
            output.print(i);
        }
        
        if(i == 0){
            try (PrintWriter output = new PrintWriter(fl)) {
            }
        }
        else{
            try (PrintWriter output = new PrintWriter(fl)) {
                for(int j = 0;j < i;j ++){
                    output.print(stu[j].GetName() + "\t");
                    output.print(stu[j].GetNumber() + "\t");
                    output.print(stu[j].GetClass() + "\t");
                    output.println(stu[j].GetScore());
                }
            }
        }
    }

    private static void Students4() throws FileNotFoundException {
        File Fl = new File("Number.txt");
        File fl = new File("Students.txt");
        try (Scanner input = new Scanner(Fl)) {
            i = input.nextInt();
        }
        
        System.out.println("請輸入你想修改學生的學號");
        Scanner input = new Scanner(System.in);
        long Number = input.nextLong();
        
        Students[] stu = new Students[i];
        try(Scanner Input = new Scanner(fl)){
            for(int j =0;j < i;j++){
                stu[j] = new Students();//要先將對象數組初始化
                stu[j].SetName(Input.next());//不能使用nextLine(),此爲輸入以\n爲結尾的所有數
                stu[j].SetNumber(Input.nextLong());
                stu[j].SetClass(Input.next());
                stu[j].SetScore(Input.nextInt());
                
                if(Number == stu[j].GetNumber()){
                    System.out.println("姓名\t學號\t班級\t成績");
                    System.out.println(stu[j].GetName() + "\t" + stu[j].GetNumber() +
                        "\t" + stu[j].GetClass() + "\t" + stu[j].GetScore());
                    System.out.println("請輸入學生新的班級");
                    stu[j].SetClass(input.next());
                    System.out.println("請輸入學生新的成績");
                    stu[j].SetScore(input.nextInt());
                }
            }
        }
    
        try (PrintWriter output = new PrintWriter(fl)) {
            for(int j = 0;j < i;j ++){
                output.print(stu[j].GetName() + "\t");
                output.print(stu[j].GetNumber() + "\t");
                output.print(stu[j].GetClass() + "\t");
                output.println(stu[j].GetScore());
            }
        }
    }
    
    private static void Students5() throws FileNotFoundException {
        File Fl = new File("Number.txt");
        File fl = new File("Students.txt");
        try (Scanner input = new Scanner(Fl)) {
            i = input.nextInt();
        }
        
        System.out.println("請輸入你想查看學生的學號");
        Scanner input = new Scanner(System.in);
        long Number = input.nextLong();
        
        Students[] stu = new Students[i];
        try(Scanner Input = new Scanner(fl)){
            for(int j =0;j < i;j++){
                stu[j] = new Students();//要先將對象數組初始化
                stu[j].SetName(Input.next());//不能使用nextLine(),此爲輸入以\n爲結尾的所有數
                stu[j].SetNumber(Input.nextLong());
                stu[j].SetClass(Input.next());
                stu[j].SetScore(Input.nextInt());
                
                if(Number == stu[j].GetNumber()){
                    System.out.println("姓名\t學號\t班級\t成績");
                    System.out.println(stu[j].GetName() + "\t" + stu[j].GetNumber() +
                        "\t" + stu[j].GetClass() + "\t" + stu[j].GetScore());
                }
            }
        }
    }

    private static void Students6() throws FileNotFoundException {
        File Fl = new File("Number.txt");
        File fl = new File("Students.txt");
        try (Scanner input = new Scanner(Fl)) {
            i = input.nextInt();
        }
        
        Students[] stu = new Students[i];
        System.out.println("姓名\t學號\t班級\t成績");
        try(Scanner Input = new Scanner(fl)){
            for(int j =0;j < i;j++){
                stu[j] = new Students();//要先將對象數組初始化
                stu[j].SetName(Input.next());//不能使用nextLine(),此爲輸入以\n爲結尾的所有數
                stu[j].SetNumber(Input.nextLong());
                stu[j].SetClass(Input.next());
                stu[j].SetScore(Input.nextInt());
                
                System.out.println(stu[j].GetName() + "\t" + stu[j].GetNumber() +
                        "\t" + stu[j].GetClass() + "\t" + stu[j].GetScore());
            }
        }
    }

    private static void Students0() {
        System.out.println("你將退出程序!");
    }
}</span>
爲對象數組賦值是可以用此形式代替
stu[j] = new Students(Input.next(),Input.nextLong(),Input.next(),Input.nextInt());
因爲在Students類裏面已經定義此方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章