GoLang-结构体版学生管理系统

首先是studentmgr.go

package main
import "fmt"

type student struct{
    id int64
    name string
    class string
}

func newStudent(id int64,name,class string) *student{
    return &student{
        id: id,
        name: name,
        class: class,
    }
}

type studentMgr struct{
    allStudents map[int64]*student
}

func StudentMgr() *studentMgr{
    return &studentMgr{
        allStudents: make(map[int64]*student,200),
    }
}

//查看所有学生信息
func(s studentMgr) showStudents(){
    for _,v := range s.allStudents{
        fmt.Printf("学号:%d 学生:%s 班级:%s\n",v.id,v.name,v.class)
    }
}

//添加学生
func(s studentMgr) addStudents(){
    var (
        id int64
        name string
        class string
    )
    //添加学生
    fmt.Print("请输入要添加的学号:")
    fmt.Scanf("%d\n",&id)

    fmt.Print("请输入要添加的姓名:")
    fmt.Scanf("%s\n",&name)

    fmt.Print("请输入要添加的班级:")
    fmt.Scanf("%s\n",&class)

    //开始判断是否存在
    if _,ok := s.allStudents[id]; !ok {
        newStu := newStudent(id,name,class)
        s.allStudents[id] = newStu
        fmt.Printf("学生学号:%d 学生姓名:%s 学生班级:%s\n",id,name,class)
    }else{
        fmt.Printf("学生学号:%d 学生姓名:%s 学生班级:%s 已存在,请勿重复添加",id,name,class)
    }
}

//删除学生
func(s studentMgr) delStudents(){
    var id int64
    fmt.Print("请输入你要删除学生的学号:")
    fmt.Scanf("%d\n",&id)

    if _,ok := s.allStudents[id]; !ok{
        fmt.Printf("学号:%d的信息不存在\n",id)
    }else{
        delete(s.allStudents,id)
        fmt.Printf("学号:%d的信息成功删除\n",id)
    }
}

//修改学生
func (s *studentMgr) modifyStudent() {
    var (
        id int64
    )
    fmt.Print("请输入你要修改学生信息的学号:")
    fmt.Scanf("%d\n",&id)
    obj,ok := s.allStudents[id];
    if !ok{
        fmt.Printf("找不到学号:%d的学生,查无此人",id)
        return
    }
    fmt.Printf("你要修改的学生信息如下: 学号:%d 姓名:%s 班级:%s\n",obj.id,obj.name,obj.class)
    //输入要修改的内容
    var (
        newID int64
    )
    fmt.Print("请输入学生新的学号:")
    fmt.Scanf("%d\n",&newID)
    obj.id = newID
    s.allStudents[id] = obj

main.go

package main

import (
    "fmt"
    "os"
)

//1.打印菜单信息
func showMenu(){
    fmt.Println("欢迎来到学生管理系统")
    fmt.Println(`
                1.查看所有学生
                2.添加学生
                3.修改学生
                4.删除学生
                5.退出系统
    `)
}
func main(){
    
    sm := StudentMgr()
    for {
        showMenu()
        var input int
        fmt.Printf("请输入你要输入的执行序号:")
        fmt.Scanf("%d\n",&input)
        fmt.Println("用户输入的是:",input)
        //3.执行用户的操作
        switch input{
        case 1:
            //查看所有学生
            sm.showStudents()
        case 2:
            //添加学生
            sm.addStudents()
        case 3:
            //修改学生
            sm.modifyStudent()
        case 4:
            //删除学生
            sm.delStudents()
        case 5:
            //退出系统  
            os.Exit(0)
        }
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值