首页 > 其他分享 >学生管理系统构造函数版

学生管理系统构造函数版

时间:2023-02-08 21:12:46浏览次数:30  
标签:name 管理系统 fmt 学生 int64 student id 构造函数

package main

import (
  "fmt"
  "os"
)

type student struct {
  name string
  id   int64
}
type studenMgr struct {
  allStudent map[int64]student
}

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

func (s studenMgr) showStudent() {
  for k, v := range s.allStudent {
    fmt.Printf("学生学号为:%v,学生名字为:%v\n", k, v.name)
  }
}

func (s studenMgr) addStudent() {
  var (
    name string
    id   int64
  )
  fmt.Print("请输入学生的id:")
  fmt.Scanln(&id)
  fmt.Print("请输入学生的姓名:")
  fmt.Scanln(&name)
  stu := newStudent(name, id)
  s.allStudent[id] = *stu
}

func (s studenMgr) deleteStudent() {
  var (
    stuId int64
  )
  fmt.Print("请输入你要删除的学生id:")
  fmt.Scanln(&stuId)
  delete(s.allStudent, stuId)
}

func main() {
  smr := studenMgr{
    allStudent: make(map[int64]student, 64),
  }
  for {
    fmt.Println("欢迎使用学生管理系统!")
    fmt.Println(`请输入序号来执行对应的命令:
    1.查看所有学生信息
    2.添加学生信息
    3.删除学生信息
    4.退出! `)
    fmt.Print(": ")
    var num int
    fmt.Scanln(&num)
    switch num {
    case 1:
      smr.showStudent()
    case 2:
      smr.addStudent()
    case 3:
      smr.deleteStudent()
    default:
      os.Exit(1)
    }
  }
}

错误总结:

面向对象程序,就是面向你定义的这个对象编程

标签:name,管理系统,fmt,学生,int64,student,id,构造函数
From: https://www.cnblogs.com/suknna/p/17103299.html

相关文章