go struct 学生管理

本文介绍了一个使用Go语言实现的学生管理系统的源代码。该系统具备显示、添加、删除及更新学生信息的功能。通过命令行界面进行交互,适用于初学者了解Go语言的基础用法及面向对象编程思想。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

student.go

package main

import "fmt"

type student struct {
	id   int64
	name string
}

type studentMgr struct {
	allStudent map[int64]student
}

func (sm studentMgr) showStudent() {
	for _, v := range sm.allStudent {
		fmt.Printf("%d %s", v.id, v.name)
	}
}

func (s studentMgr) addStudent() {
	var (
		id   int64
		name string
	)
	fmt.Println("please input your id")
	fmt.Scanln(&id)
	fmt.Println("please input your name")
	fmt.Scanln(&name)

	newstu := student{id, name}
	s.allStudent[id] = newstu
}

func (s studentMgr) delStudent() {
	s.showStudent()
	var (
		id int64
	)
	fmt.Println("please input your id")
	fmt.Scanln(&id)
	b, ok := s.allStudent[id]
	if !ok {
		fmt.Print("have some issue in checking stu")
	} else {
		fmt.Println(b.id, b.name)
	}

	delete(s.allStudent, id)
}

func (s studentMgr) update() {
	s.showStudent()
	var (
		id   int64
		name string
	)
	fmt.Println("please input your id")
	fmt.Scanln(&id)
	b, ok := s.allStudent[id]
	if !ok {
		fmt.Print("have some issue")
	} else {
		fmt.Println(b.id, b.name)
	}
	fmt.Println("please input your id")
	fmt.Scanln(&name)
	b.name = name
	s.allStudent[id] = b
}

main.go

package main

import (
	"fmt"
)

var smr studentMgr

func showMenu() {
	fmt.Println(`
	welcome to the stu manage
	1.show student
	2.add
	3.del stu
	4.update
	`)
}

func main() {
	var choice int
	smr = studentMgr{
		allStudent: make(map[int64]student, 20),
	}

	for {
		showMenu()
		fmt.Print("please inout number")

		fmt.Scanln(&choice)
		fmt.Println("your input is ")
		switch choice {
		case 1:
			smr.showStudent()
		case 2:
			smr.addStudent()
		case 3:
			smr.delStudent()
		case 4:
			smr.update()
		}
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值