美文网首页
go实现简单版学生管理系统

go实现简单版学生管理系统

作者: 小王同学123321 | 来源:发表于2022-05-14 13:10 被阅读0次

实现下图所示功能


image.png

文件1student.go

package main

import (
    "fmt"
    "os"
)

//定义一个结构体临时存储每一个学生变量
var alls studentmanger

//定义一个功能菜单函数
func showMeu(){
    fmt.Println("-----welcome to student sms-----")
    fmt.Print(`
        1,展示所有的学生信息
        2,添加学生信息
        3,修改学生信息
        4,删除学生信息
        5,退出
    `)
    fmt.Print("请输入你的选择:")
}

func main(){
    //程序开始执行的时候初始化并开辟内存空间
    alls = studentmanger{
        allstu: make(map[int64]student,100),
    }
    for {
        showMeu()

        //定义一个变量接收选择
        var choice int
        fmt.Scanln(&choice)
        fmt.Printf("你输入的选择是:%d\n", choice)

        switch choice {
        case 1:
            //全部变量调用展示所有学生信息方法
            alls.Showallstus()
        case 2:
            //全部变量调用增加学生信息方法
            alls.Addstus()
        case 3:
            //全部变量调用修改学生信息方法
            alls.Modstus()
        case 4:
            //全部变量调用删除学生信息方法
            alls.Delstus()
        case 5:
            os.Exit(0)
        default:
            fmt.Println("输入的有误!!!")
        }
    }
}

文件2:plugins.go

package main

import "fmt"

//定义结构体存储每一个学生信息
type student struct {
    id int64
    name string
}

//结构体中定义一个map存储所有学生信息
type studentmanger struct {
    allstu map[int64]student
}

//结构体返回函数
func Backstruct (Sid int64,Sname string) *student{
    return &student{
        id:   Sid,
        name: Sname,
    }
}


func (s studentmanger) Showallstus(){
    //检查结构体是否为空
    if len(s.allstu) == 0{
        fmt.Println("系统中没有任何数据")
    }
    for _,stu := range s.allstu{
        fmt.Printf("id:%d,name:%s\n",stu.id,stu.name)
    }
}

func (s studentmanger) Addstus(){
    var (
        addid int64
        addname string
    )
    fmt.Print("请输入学号:")
    fmt.Scanln(&addid)
    fmt.Print("请输入姓名:")
    fmt.Scanln(&addname)
    tmps := Backstruct(addid,addname)
    s.allstu[tmps.id] = *tmps
    fmt.Println("添加成功!")
}

func (s studentmanger) Modstus(){
    //定义变量接收输入需要修改的学号
    var Id int64
    fmt.Print("请输入需要修改的学号:")
    fmt.Scanln(&Id)

    //判断输入id是否存在
    chocidId,ok := s.allstu[Id]
    if !ok {
        fmt.Println("输入id不存在!")
        return
    }
    fmt.Printf("你将要修改的是:%d,名字是:%s\n",chocidId.id,chocidId.name)

    var Name string
    fmt.Print("请输入修改后的名字:")
    fmt.Scanln(&Name)
    newstu := student{
        id:Id,
        name:Name,
    }
    s.allstu[Id] = newstu
    fmt.Println("修改完成!")
}

func (s studentmanger)Delstus(){
    var Did int64
    fmt.Print("请输入需要删除的id:")
    fmt.Scanln(&Did)
    delete(s.allstu,Did)
    fmt.Println("删除完成")
}

相关文章

网友评论

      本文标题:go实现简单版学生管理系统

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