美文网首页
Go语言基础练习四

Go语言基础练习四

作者: 羋学僧 | 来源:发表于2021-12-25 20: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("请离开!")

        }
    }

}

相关文章

  • Go语言基础练习四

    结构体版学生管理系统 student_magr.go main.go

  • go语言基础

    go语言基础 go 语言接口

  • GO语言基础(四)

    方法 Go 没有类。不过你可以为结构体类型定义方法。方法就是一类带特殊的 接收者 参数的函数。方法接收者在它自己的...

  • 初识Go语言-1

    Go语言学习路径 初识Go语言 Go语言环境搭建与IDE安装 Go语言基础语法 Go语言数据类型 Go语言变量和常...

  • Go语言基础练习一

    一、字符统计 1、判读字符串汉字的数量 2、how do you do 单词出现的次数 二、回文判断 字符串从左往...

  • Go语言基础练习六

    ini配置文件解析 conf.ini main.go

  • Go语言基础练习五

    自定义日志库实现 需求分析 1.支持往不同的地方输出日志 2.日志分级别 (1) Debug (2) Trace ...

  • Go语言基础练习二

    一、分金币

  • Go语言基础练习三

    函数版学生管理系统 写一个系统能够查看、新增、删除学生

  • Go实战项目【前言】

    本项目是作为学习了Go语言基础后的一个练习实战项目。使用Go语言开发api接口,为以Flutter开发的移动端AP...

网友评论

      本文标题:Go语言基础练习四

      本文链接:https://www.haomeiwen.com/subject/oifjqrtx.html