go语言学生管理系统2

学生管理系统(结构体实现)

学习go语言的第4天,用结构体写个学生管理系统,功能不严谨,只是学习过程中随便练手的代码。前文用函数实现点击跳转

package main
import (
    "fmt"    
    "os"
)
//学生管理系统
//学生
type student struct {
    id   int64    
    name string
}
//造一个学生的管理者
type studentManager struct {
    allStudent map[int64]student
}
var stumanger studentManager

//菜单函数
func showMenu() {    
     fmt.Println("-----------------学生管理系统-------------------")
     fmt.Println(`        
      1.查看所有学生        
      2.添加学生         
      3.修改学生         
      4.删除学生         
      5.退出     
      `)
}
//查看学生
func (s studentManager) showStudent() {    
       for _, stu := range s.allStudent {        
            fmt.Printf("学号:%d  姓名:%s\n", stu.id, stu.name)    
       }
}
//增加学生
func (s studentManager) addStudent() {    
        //1.用户输入添加学生信息    
        var (        
            id   int64        
            name string    
            )    
       //获取用户输入    
       fmt.Print("请输入学号:")    
       fmt.Scanln(&id)    
       fmt.Print("请输入姓名:")    
       fmt.Scanln(&name)   
       newStu := student{        
             id:   id,        
             name: name,    
       }    
       //增加    
       s.allStudent[newStu.id] = newStu    
       fmt.Println("添加成功")
}
//修改学生
func (s studentManager) updateStudent() {    
      //获取用户输入的学号    
      var stuID int64    
      fmt.Print("请输入学号:")    
      fmt.Scanln(&stuID)    
      //show该学号对应的学生信息   
      stuObj, ok := s.allStudent[stuID]    
      if !ok {        
      fmt.Println("查无此人")        
      return    
      } else {        
      fmt.Printf("你要修改的学生信息:学号:%d  姓名:%s\n", stuObj.id, stuObj.name)    
      }    
      //输入修改后的学生名    
      fmt.Print("请输入修改后的名字:")    
      var stuName string    
      fmt.Scanln(&stuName)    
      //更新学生的姓名    
      stuObj.name = stuName    
      s.allStudent[stuID] = stuObj    
      fmt.Println("修改成功")
}
//删除学生
func (s studentManager) delectStudent() {    
      //请用户输入要删除学生的id    
      var stuID int64    
      fmt.Print("请输入要删除学生的学号:")    
      fmt.Scanln(&stuID)    
      //show该学号对应的学生信息//找有没有对应的学生   
      _, ok := s.allStudent[stuID]    
      if !ok {        f
      mt.Println("查无此人")        
      return    
      } else {
        //删除        
      delete(s.allStudent, stuID)        
      fmt.Println("删除成功")    
      }
}
//主函数func main() {    
      stumanger = studentManager{        
      allStudent: make(map[int64]student, 100),    
      }    
      for {        
      //打印功能菜单        
      showMenu()        
      //用户输入        
      fmt.Print("请输入序号:")        
      var choice int64        
      fmt.Scanln(&choice)        
      fmt.Println("你输入的是:", choice)        
      switch choice {        
      case 1:            
      stumanger.showStudent()        
      case 2:            
      stumanger.addStudent()        
      case 3:            
      stumanger.updateStudent()        
      case 4:            
      stumanger.delectStudent()        
      case 5:            
      os.Exit(1)        
      default:
      fmt.Println("输入有误,请重新输入")        
        }
    }
}
发布了59 篇原创文章 · 获赞 153 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/qq_43518645/article/details/104256809