学生管理系统函数版

package main

import (
  "fmt"
  "os"
)

/*
  函数版学生管理系统
  写一个系统能够查看、新增学生、删除学生
*/

type student struct {
  //创建一个学生对象
  name string
  age  int
  id   int64
}

// 用于存储学生信息
var studentall map[int64]student

func newStudent(name string, age int, id int64) *student {
  //向对象中录入数据
  return &student{
    name: name,
    age:  age,
    id:   id,
  }
}
func showStudentAll() {
  //使用range轮询查询学生信息
  for k, v := range studentall {
    fmt.Printf("学号:%v 名字:%v\n", k, v.name)
  }
}

func addStudent() {
  var (
    name string
    id   int64
    age  int
  )
  fmt.Print("请输入学生的学号:")
  fmt.Scanln(&id)
  fmt.Print("请输入学生的姓名:")
  fmt.Scanln(&name)
  fmt.Print("请输入学生的年龄:")
  fmt.Scanln(&age)
  newStu := newStudent(name, age, id)
  studentall[id] = *newStu
}

func deleteStudent() {
  var (
    deleteId int64
  )
  fmt.Print("请输入要删除学生的学号:")
  fmt.Scanln(&deleteId)
  _, ok := studentall[deleteId]
  if !ok {
    fmt.Println("此学号不存在请重新输入!")
  } else {
    delete(studentall, deleteId)
    fmt.Println("删除成功")
  }
}

func main() {
  //初始化数组,用来存储学生信息
  studentall = make(map[int64]student, 48)
  for {
    var Num int
    fmt.Println("\n欢迎来到学生管理系统!")
    fmt.Println(`请输入如下数值来执行对应的操作:
    1. 查询所有学生
    2. 录入学生信息
    3. 删除学生信息
    4. 退出
  `)
    fmt.Print(":")
    fmt.Scanln(&Num)
    switch Num {
    case 1:
      showStudentAll()
    case 2:
      addStudent()
    case 3:
      deleteStudent()
    default:
      os.Exit(1) //退出并返回程序执行的结果
    }
  }
}

posted @   suknna  阅读(33)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示