# Golang 学生管理系统

By [Robin](https://paragraph.com/@robin-8) · 2023-02-24

---

    package main
    
    import (
        "fmt"
        "os"
    )
    
    //通过函数实现学生管理系统：增删改查
    
    type student struct {
        id   int
        name string
    }
    
    var (
        allstudnet map[int]student = make(map[int]student)
    )
    
    func selectstu() {
        for k, v := range allstudnet {
            fmt.Printf("Studnet ID:%d\t Studnet Name: %s\n", k, v.name)
        }
    }
    
    func addstu() {
        var (
            stuID   int
            stuName string
        )
        fmt.Print("Pls input student ID: ")
        fmt.Scanln(&stuID)
        fmt.Print("Pls input student Name: ")
        fmt.Scanln(&stuName)
        allstudnet[stuID] = student{id: stuID, name: stuName}
    }
    
    func deletestu() {
        var stuID int
        fmt.Print("Pls input student ID: ")
        fmt.Scanln(&stuID)
        delete(allstudnet, stuID)
    }
    
    func updatestu() {
        var (
            stuID   int
            stuName string
        )
        fmt.Print("Pls input student ID: ")
        fmt.Scanln(&stuID)
        fmt.Print("Pls input student Name: ")
        fmt.Scanln(&stuName)
        allstudnet[stuID] = student{id: stuID, name: stuName}
    }
    
    func main() {
        for {
            fmt.Println(`
        Welcome to Studnet Management System.
        1. Select studnet info
        2. Add a new studnet
        3. Delete a studnet
        4. Update a studnet info
        5. Exit
        `)
    
            fmt.Print("Pls input what operations you wanna do: ")
            var choice int
            fmt.Scanln(&choice)
            switch choice {
            case 1:
                selectstu()
            case 2:
                addstu()
            case 3:
                deletestu()
            case 4:
                updatestu()
            case 5:
                os.Exit(1)
            default:
                fmt.Println("Pls input correct options!")
            }
    
        }
    }
    

    package main
    
    import (
        "fmt"
        "os"
    )
    
    // 学生管理系统  类实现
    
    type student struct {
        id   int
        name string
    }
    
    type studnetManager struct {
        allstudnet map[int]student
    }
    
    func (s studnetManager) selectstu() {
        for k, v := range s.allstudnet {
            fmt.Printf("Studnet ID:%d\t Studnet Name: %s\n", k, v.name)
        }
    }
    
    func (s studnetManager) addsu() {
        var (
            stuID   int
            stuName string
        )
        fmt.Print("Pls input student ID: ")
        fmt.Scanln(&stuID)
        fmt.Print("Pls input student Name: ")
        fmt.Scanln(&stuName)
        s.allstudnet[stuID] = student{id: stuID, name: stuName}
    }
    
    func (s studnetManager) deletestu() {
        var stuID int
        fmt.Print("Pls input student ID: ")
        fmt.Scanln(&stuID)
        delete(s.allstudnet, stuID)
    }
    
    func (s studnetManager) updatestu() {
        var (
            stuID   int
            stuName string
        )
        fmt.Print("Pls input student ID: ")
        fmt.Scanln(&stuID)
        fmt.Print("Pls input student Name: ")
        fmt.Scanln(&stuName)
        s.allstudnet[stuID] = student{id: stuID, name: stuName}
    }
    
    func main() {
        smr := studnetManager{allstudnet: make(map[int]student, 100)}
        for {
            fmt.Println(`
        Welcome to Studnet Management System.
        1. Select studnet info
        2. Add a new studnet
        3. Delete a studnet
        4. Update a studnet info
        5. Exit
        `)
    
            fmt.Print("Pls input what operations you wanna do: ")
            var choice int
            fmt.Scanln(&choice)
            switch choice {
            case 1:
                smr.selectstu()
            case 2:
                smr.addsu()
            case 3:
                smr.deletestu()
            case 4:
                smr.updatestu()
            case 5:
                os.Exit(1)
            default:
                fmt.Println("Pls input correct options!")
            }
    
        }
    }

---

*Originally published on [Robin](https://paragraph.com/@robin-8/golang)*
