• 初学Go语言的学生管理系统


    package main
    
    import (
    	"fmt"
    	"os"
    )
    
    // Student struct represents a student (一般在结构体上面加一个注释解释)
    type Student struct {
    	id     int
    	name   string
    	age    int
    	gender string
    	score  int
    }
    
    var students map[int]*Student
    
    func showAllStudents() {
    	for _, v := range students {
    		fmt.Println(*v)
    	}
    }
    
    func newStudent() *Student {
    	var (
    		i int
    		n string
    		a int
    		g string
    		s int
    	)
    	fmt.Println("学号  姓名 年龄  性别  绩点")
    	fmt.Scanln(&i, &n, &a, &g, &s)
    	return &Student{
    		id:     i,
    		name:   n,
    		age:    a,
    		gender: g,
    		score:  s,
    	}
    }
    
    func addStudent() {
    	fmt.Println("请输入待添加学生数据:")
    	newStu := newStudent()
    	students[newStu.id] = newStu
    	fmt.Println("添加成功")
    }
    
    func findStudent() {
    	var i int
    	fmt.Println("请输入要查询的学生学号")
    	fmt.Scanln(&i)
    	fmt.Println(*students[i])
    }
    
    func deleteStudent() {
    	var i int
    	fmt.Println("请输入要删除的学生学号")
    	fmt.Scanln(&i)
    	fmt.Printf("即将删除学生:")
    	fmt.Println(*students[i])
    	delete(students, i)
    	fmt.Println("删除成功")
    }
    
    func updateStudent() {
    	var i int
    	fmt.Println("请输入要修改的学生学号")
    	fmt.Scanln(&i)
    	fmt.Println("该学生信息如下所示:")
    	fmt.Println(*students[i])
    	fmt.Println("请输入该学生数据修改后的值")
    	students[i]= newStudent()
    	fmt.Println("修改成功")
    }
    
    func main() {
    	// allocate 50 size places to the map -- students
    	students = make(map[int]*Student, 50)
    	for {
    		fmt.Println("欢迎光临学生管理系统:")
    		fmt.Println(`
    		1、查看所有学生信息
    		2、添加学生
    		3、删除学生
    		4、查看学生信息
    		5、修改学生信息
    		6、退出
    	`)
    		fmt.Printf("请输入你的操作:")
    		var choice int
    		fmt.Scanln(&choice)
    		switch choice {
    		case 1:
    			showAllStudents()
    		case 2:
    			addStudent()
    		case 3:
    			deleteStudent()
    		case 4:
    			findStudent()
    		case 5:
    			updateStudent()
    		case 6:
    			os.Exit(1)
    		default:
    			fmt.Println("gun去重新输入")
    		}
    	}
    }
    
    
  • 相关阅读:
    springboot-配置文件
    system--属性
    url--web路径
    jquery--遍历
    javascript---知识点2
    iframe
    linux--磁盘挂载
    jquery--插件
    javascript窗口宽高
    vue--知识点
  • 原文地址:https://www.cnblogs.com/Luweir/p/14147251.html
Copyright © 2020-2023  润新知