Go语言基础练习四

2021-12-25  本文已影响0人  羋学僧

结构体版学生管理系统

student_magr.go

package main

import "fmt"

// 有一个个体
//     1.它保存了一些数据 ---> 结构体的字段
//     2.它有4个功能     ---> 结构体的方法

// 造一个学生
type student struct {
    id int64
    name string
}

// 造一个学生的管理者
type studentMgr struct {
    allStudent map[int64]student

}

// 查看学生
func (s studentMgr) showStudent() {
    // 从s.allStudent这个map中把所有的学生stu逐个遍历
    for _, stu := range s.allStudent {
        fmt.Printf("学号:%d 姓名:%s\n", stu.id, stu.name)

    }
}
// 增加学生
func (s studentMgr) addStudent() {
    // 1.根据用户输入的内容创建一个新的学生
    var (
        stuID int64
        stuName string
    )
    // 获取用户输入
    fmt.Print("请输入学生学号:")
    fmt.Scanln(&stuID)
    fmt.Print("请输入学生姓名:")
    fmt.Scanln(&stuName)
    // 根据用户输入创建构造体对象
    newStu := student {
        id : stuID,
        name : stuName,
    }
    // 2.把新的学生放到s.allStudent这个map中
    s.allStudent[newStu.id] = newStu
    fmt.Println("添加成功!")

}
// 修改学生
func (s studentMgr) editStudent() {
    //1.获取用户输入的学号
     var stuID int64
    fmt.Print("请输入你要修改的学生学号:")
    fmt.Scanln(&stuID)
    //2.展示该学号对应的学生信息,如果没有,提示查无此人
    stuObj, ok := s.allStudent[stuID]
    if !ok {
        fmt.Println("查无此人!")
        return
    }
    fmt.Printf("你要修改的学生信息如下:学号:%d 姓名:%s\n", stuObj.id, stuObj.name)
    //3.请输入修改后的学生名
    var newNmae string
    fmt.Print("请输入学生新名字:")
    fmt.Scanln(&newNmae)
    //4.更新学生的姓名
    stuObj.name = newNmae
    s.allStudent[stuID] = stuObj
}
// 删除学生
func (s studentMgr) deleteStudent() {
    //1.获取用户输入的学号
    var stuID int64
    fmt.Print("请输入你要删除的学生学号:")
    fmt.Scanln(&stuID)
    //2.展示该学号对应的学生信息,如果没有,提示查无此人
    stuObj, ok := s.allStudent[stuID]
    if !ok {
        fmt.Println("查无此人!")
        return
    }
    fmt.Printf("你要删除的学生信息如下:学号:%d 姓名:%s\n", stuObj.id, stuObj.name)
    //3.请输入修改后的学生名
    delete(s.allStudent,stuID)
    fmt.Println("删除成功!")

}

main.go

package main

import (
    "fmt"
    "os"
)

// 学生管理系统

// 声明一个全局的变量学生管理对象神秘人
var smr studentMgr

// 菜单函数
func showMenu() {
    fmt.Println("--------welcome sms!--------")
    fmt.Println(`
    1. 查看所有学生
    2. 添加学生
    3. 修改学生
    4. 删除学生
    5. 退出
    `)
}

func main() {

    var smr = studentMgr {
        allStudent: make(map[int64]student,100),
    }

    for {
        
        showMenu()
        // 等待用户输入选项
        fmt.Print("请输入序号:")
        var choice int
        fmt.Scanln(&choice)
        fmt.Println("你输入的是:",choice)

        switch choice {
        case 1:
            smr.showStudent()
        case 2:
            smr.addStudent()
        case 3:
            smr.editStudent()
        case 4:
            smr.deleteStudent()
        case 5:
            os.Exit(1)
        default:
            fmt.Println("请离开!")

        }
    }

}
上一篇下一篇

猜你喜欢

热点阅读