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

学生管理系统函数版

时间:2023-02-08 21:13:17浏览次数:37  
标签:函数 管理系统 studentall fmt 学生 age id name

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) //退出并返回程序执行的结果
    }
  }
}

标签:函数,管理系统,studentall,fmt,学生,age,id,name
From: https://www.cnblogs.com/suknna/p/17103298.html

相关文章

  • 学生管理系统构造函数版
    packagemainimport("fmt""os")typestudentstruct{namestringidint64}typestudenMgrstruct{allStudentmap[int64]student}funcnewS......
  • 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(上海),签到题G Fibonacci
    problem链接:https://ac.nowcoder.com/acm/problem/214895来源:牛客网示例1输入复制3输出复制2示例2输入复制10输出复制24示例3输入复制100输出复制273......
  • 函数
    很重要go语言中用的最多的就是函数定义一个标准函数func函数名(函数传参变量)(函数返回值变量){函数体return返回值}定义一个求和的函数packagemainimpo......
  • C语言填空:函数递归应用
    #include<stdio.h>//数列的第12项值为1,此后各项值均为该项前二项之和,计算数列第30项的值intf(intn);main(){printf("%d",【1】);getchar();}intf(i......
  • 字符串与内存函数(2)
     本篇文章和大家继续分享一些与字符串和内存操作相关的函数,本次分享的函数包含有strerror函数,memcpy函数,memmove函数以及memcmp函数和memset函数。以上几个函数就是我们本......
  • 库函数的模拟实现
    1.1模拟实现strlen注意:参数指向的字符串必须要以'\0'结束。函数的返回值为size_t,是无符号的。1.2代码如下:三种方式:方式1://计数器方式intmy_strlen(constchar*str){in......
  • 1.5函数的调用机制
        哪怕是高级语言编写的程序,函数调用处理也是通过把程序计数器的值设定成函数的存储地址来实现的。不过,这和条件分支、循环的机制有所不同,因此单纯的跳转指令无法......
  • C语言填空:10进制转2进制输出函数
    #include<stdio.h>//将10进制正整数转化为二进制voiddec2bin(intm){intbin[32],j;for(j=0;【1】;j++){bin[j]=【2】;m=【3】;......
  • React函数式组件使用@emotion时一定要注意的问题!
    怎么说呢,一个坑,踩了两天,总觉得是useSate和input的传值方法问题在useMemo和useCallback反复测试问题最后没办法,通过最傻方式,一点点注释代码,发现了问题constContainer=......
  • 【SQL Server】中的日期函数和日期数据类型
    SQLServerDate函数SQLServer的重要日期函数包括:函数描述参数含义GETDATE()返回当前的日期和时间 DATEPART(datepart,date) 返回日期/时间的单独部分......