• Go学生管理系统(基于map增删改查)


    package main
    
    import (
    	"fmt"
    	"os"
    )
    
    //学生管理系统
    //2.1声明一个全局变量名为allstudent的map主键为id(每个学生都有一个id编号,学生名字可能重复但id不会。)值为名为student的结构体。
    var (
    	allstudent map[int64]*student
    )
    
    type student struct {
    	id   int64
    	name string
    }
    
    //1.构建一个循环菜单
    func mem() {
    	var choice int
    	for {
    		fmt.Print(`欢迎来到学生管理系统
    1.退出系统
    2.增加学生
    3.删除学生
    4.修改学生
    5.查看学生
    请输入您的选择:`)
    		fmt.Scanln(&choice)
    		switch choice {
    		case 1:
    			os.Exit(0)
    		case 2:
    			createStudent()
    		case 3:
    			delStudent()
    		case 4:
    			chStudent()
    		case 5:
    			searchStudent()
    		default:
    			fmt.Println("==输入有误!==")
    		}
    	}
    }
    
    //3.3构造函数 名为newStudent
    func newStudent(id int64, name string) *student {
    	return &student{
    		id:   id,
    		name: name,
    	}
    }
    
    //3 创建学生
    func createStudent() {
    	////3.1 创建接收学生
    	var (
    		id   int64
    		name string
    	)
    	//3.2 接收学生信息输入
    	fmt.Print("请输入学生id:")
    	fmt.Scanln(&id)
    	for k := range allstudent {
    		if id == k {
    			fmt.Printf("学生id:%d已存在\n", k)
    			mem()
    		}
    	}
    	fmt.Print("请输入学生姓名:")
    	fmt.Scanln(&name)
    	//3.4 使用构造函数接收
    	stu := newStudent(id, name)
    	allstudent[id] = stu
    }
    
    //4 删除学生
    func delStudent() {
    	var (
    		deleteID int64
    	)
    	fmt.Print("请输入学生id:")
    	fmt.Scanln(&deleteID)
    	delete(allstudent, deleteID)
    }
    
    //5 修改学生
    func chStudent() {
    	////5.1 创建接收学生
    	var (
    		id   int64
    		name string
    	)
    	//5.2 接收学生信息输入
    	fmt.Print("请输入要修改的id:")
    	fmt.Scanln(&id)
    	for k := range allstudent {
    		fmt.Printf("学生id:%d\n", k)
    		//5.3 根据id判断学生是否存在
    		if id != k {
    			fmt.Printf("学生id:%d不存在\n", k)
    			mem()
    		}
    	}
    	fmt.Print("请输入学生姓名:")
    	fmt.Scanln(&name)
    	//5.4 使用构造函数接收
    	stu := newStudent(id, name)
    	allstudent[id] = stu
    	fmt.Print("修改成功!")
    }
    
    //2.查询学生
    func searchStudent() {
    	//2.3循环输出allstudent的学生
    	for k, v := range allstudent {
    		fmt.Printf("学生id:%d 学生姓名:%s\n", k, v.name)
    	}
    }
    func main() {
    	//2.2初始化allstudent使用make开辟空间
    	allstudent = make(map[int64]*student, 64)
    	mem()
    }
    
    
  • 相关阅读:
    第六课 使用oflash软件烧写bin文件至开发板
    Linux查看、添加、修改PATH环境变量
    第七课 Linux裸机开发+SourceInsight3.5使用+notepad++使用
    第五课 Linux高级命令
    数组的方法总结
    浅谈 return false 和preventDefault stopPropagation stopImmediatePropagation 的正确用法
    实时统计输入的文字
    滚轮滚动事件
    window.onload和DOMReady
    JS获取浏览器可视区域的尺寸
  • 原文地址:https://www.cnblogs.com/iXiAo9/p/15842921.html
Copyright © 2020-2023  润新知