zoukankan      html  css  js  c++  java
  • Golang项目之函数版学生管理系统

    前言

    学习第3天,基于函数的方式编写小项目:学生管理系统

    代码

    package main
    
    import (
    	"fmt"
    	"os"
    )
    /*
    	函数版学生管理系统
    	写一个系统能够查看所有的学生/新增学生/删除学生
    */
    var (
    	allStudent map[int64]*student // 变量声明
    )
    
    type student struct{
    	id int64
    	name string
    }
    
    // newStudent是一个student类型的构造函数
    func newStudent(id int64,name string)*student{
    	return &student{
    		id: id,
    		name: name,
    	}
    }
    
    func showAllStudent(){
    	if len(allStudent) != 0{
    		// 如果map不为空,把所有学生都打印出来
    		for k,v := range allStudent{
    			fmt.Printf("学号:%d 姓名:%s
    ",k,v.name)
    		}
    	} else{
    		// 否则,提示学生信息为空
    		fmt.Println("msg:学生信息为空")
    	}
    
    
    }
    
    func addStudent(){
    	// 想allStudent中添加一个新的学生
    	// 1.创建一个新学生
    	// 1.1 获取用户输入
    	var (
    		id int64
    		name string
    	)
    	fmt.Print("请输入学生的学号:")
    	fmt.Scanln(&id)
    	fmt.Print("请输入学生的姓名:")
    	fmt.Scanln(&name)
    
    	// 1.2 判断学生是否存在
    	if _,ok := allStudent[id];! ok{
    		// 学生不存在,则添加
    		// 1.3造学生(调用student的构造函数)
    		newStu := newStudent(id,name)
    		// 2.追加到allStudent这个map中
    		allStudent[id] = newStu
    	}else{
    		// 学生存在,则提示
    		fmt.Println("msg:添加的学生已存在")
    	}
    
    }
    
    func deleteStudent(){
    	// 1.请用户输入要删除的学生的序号
    	var (
    		deleteId int64
    	)
    	fmt.Print("请输入学生的学号:")
    	fmt.Scanln(&deleteId)
    	// 2.判断学生是否存在
    	if _,ok := allStudent[deleteId];!ok{
    		fmt.Println("msg:学生不存在")
    	}else{
    		// 2.去allStudent这个map中根据学号删除对应的键值对
    		delete(allStudent,deleteId)
    	}
    }
    
    
    func main(){
    	allStudent = make(map[int64]*student, 48)  // 初始化(开辟内存空间)
    
    
    	for {
    		// 1.打印菜单
    		fmt.Println("欢迎光临学生管理系统!")
    		fmt.Println(`
    			1.查看所有学生
    			2.新增学生
    			3.删除学生
    			4.退出
    		`)
    		fmt.Print("请输入编号:")
    		// 2.等待用户选择下一步要做什么
    		var choice int
    		fmt.Scanln(&choice)
    		fmt.Printf("你选择了> %d <这个选项!
    ",choice)
    		// 3.执行对应的函数
    		switch choice {
    		case 1:
    			fmt.Println("------学生信息-----")
    			showAllStudent()
    			fmt.Println("--------end-------")
    		case 2:
    			addStudent()
    		case 3:
    			deleteStudent()
    		case 4:
    			os.Exit(1)
    		default:
    			fmt.Println("输入编号不存在")
    		}
    	}
    
    }
    
  • 相关阅读:
    实习日记11
    实习日记10
    实习日记9
    实习日记7
    我自己的颜色库
    实习日记5
    实习日记4
    算法导论2:几个习题 2016.1.2
    算法导论1:插入排序和归并排序 2016.1.1
    和算法导论没什么关系0.手电筒过桥问题详解
  • 原文地址:https://www.cnblogs.com/jasonminghao/p/12309659.html
Copyright © 2011-2022 走看看