函数版学生管理系统,实现功能点:
- 查看所有学生
- 增加学生
- 更新学生
- 删除学生
package main
import (
"fmt"
"os"
"strconv"
"strings"
)
//函数版学生管理系统
/*
1、查看所有学生
2、增加学生
3、更新学生
4、删除学生
*/
type student struct {
id int64
name string
}
type studentMgr struct {
allStudent map[int64]student
}
func (s studentMgr) showStudents() {
for _,v:=range s.allStudent{
fmt.Printf("学号:%d,学生:%v\n",v.id,v.name)
}
}
func (s studentMgr)addStudent() {
//根据输入添加学生
var(
id int64
name string
inputVal string
)
fmt.Printf("请输入: 学号|姓名\n")
fmt.Scan(&inputVal)
finvar:=strings.Split(inputVal,"|")
id, err := strconv.ParseInt(finvar[0], 10, 64)
if err!=nil{
print("字符串转整数错误")
}
fmt.Print("++++++")
name=finvar[1]
fmt.Printf("id:%d,name:%s\n",id,name)
stu:=student{
id:id ,
name: name,
}
smr.allStudent[stu.id]=stu
}
func (s studentMgr)editStudent() {
var (
inputId int64
newName string
)
fmt.Printf("请输入要编辑的id号:")
fmt.Scan(&inputId)
if val,ok:=smr.allStudent[inputId];ok{
fmt.Printf("当前要删除的用户 id:%d,name:%v\n", inputId, val)
}else {
fmt.Println("不存在value")
}
fmt.Printf("请输入新的name:")
fmt.Scan(&newName)
smr.allStudent[inputId]=student{
inputId,
newName,
}
}
func (s studentMgr)delStudent() {
fmt.Printf("当前所有学生如下:%v\n", smr.allStudent)
var(
inId int64
)
fmt.Printf("请输入要删除的学生id\n")
fmt.Scan(&inId)
delete(smr.allStudent,inId)
}
/*
打印一个菜单
*/
func showMem() {
println("--------weclcom--------\n")
println(`
1.查看所有学生
2、增加学生
3、更新学生
4、删除学生
5、退出
`)
}
var smr studentMgr
func main() {
smr=studentMgr{ //修改全局变量
allStudent:make(map[int64]student),
}
for {
showMem()
println("请输入你的选择\n")
var choice int
fmt.Scan(&choice)
switch choice {
case 1:
smr.showStudents()
case 2:
smr.addStudent()
case 3:
smr.editStudent()
case 4:
smr.delStudent()
case 5:
os.Exit(1)
default:
println("你输入的有错误,重新输入!!!")
}
}
}
持续更新中.....
*更多精彩关注公众号"1运维com"