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\n",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 <这个选项!\n",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("输入编号不存在")
        }
    }

}

原文地址:https://www.cnblogs.com/jasonminghao/p/12309659.html

时间: 2024-11-08 19:01:07

Golang项目之函数版学生管理系统的相关文章

Golang项目之结构体版学生管理系统

前言 学习第4天,基于结构体的方式对函数版本重构编写小项目:学生管理系统 代码 package main import ( "fmt" "os" ) // 菜单系统(将菜单系统封装到函数中) func showMenu(){ fmt.Println("欢迎光临学生管理系统") fmt.Println(` 1.查看所有学生 2.新增学生 3.删除学生 4.退出 `) } // 造一个存储学生数据的类型 type student struct{ id

函数_学生管理系统

1 def print_infos(): 2 print("=" * 30) 3 print("学生管理系统v1.0") 4 print("1.添加学生信息") 5 print("2.删除学生信息") 6 print("3.修改学生信息") 7 print("4.显示学生信息") 8 print("5.退出系统") 9 print("=" * 30

day 4 函数应用 学生管理系统

修改没有用函数的程序 具有独立功能的代码块 源程序 #1.打印功能信息 print("*"*50) print("\t名片管理系统 V3\t") print("1:添加一个名片") print("2:删除一个名片") print("3:修改一个名片") print("4:查询一个名片") print("5:显示所有") print("6:退出系统"

ORM版学生管理系统

ORM的数据库操作: 1.创建数据库 2.在项目的_init_.py文件中执行: 1 import pymysql 2 pymysql.install_as_MySQLdb() 3.在settings.py文件中连接数据库(共6步) DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'tmp', 'USER': 'root', 'PASSWORD': 'admin', 'HOST': 'localho

java版本的学生管理系统

1 import java.awt.BorderLayout; 2 import java.awt.Color; 3 import java.awt.Frame; 4 import java.awt.event.ActionEvent; 5 import java.awt.event.ActionListener; 6 import java.io.UnsupportedEncodingException; 7 import java.sql.Connection; 8 import java.

【乱写代码坑人系列】ZJUT数据库大型实验 - 学生管理系统(二):项目规划

学生管理系统(二)项目规划 学生管理系统(一)建立项目 好吧这部分应该放在第一的,但是我忘了(逃.其实也差不多啦,反正上一篇也没说什么啊哈哈. 先说项目要求.项目要求的是建立一个管理系统,用来对本地的数据库进行增删查改,把.mdf 文件直接拿来改会被老师打的,所以还是要有一个图形界面. 图形界面要有几个页面:登录,主窗口,学院.老师.学生.课程.成绩的管理,要能看到详细信息,能够批量删除什么的.为了装逼可以考虑加入与Office的连接,不过这个是后话,做好基础功能再玩. 数据库要这么几个表:学院

学生管理系统网页版

<!DOCTYPE html><html lang="en"> <head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <meta http-equiv="X-UA-Compatible&q

DJANGO 学生管理系统项目创建流程 -- 单表管理

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 17.0px ".PingFang SC"; color: #454545 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545; min-height: 14.0px } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; f

函数调用实例:学生管理系统(前面的优化版),可以弹出窗口。

1 package classwork308; 2 /* 3 * 学生管理系统 4 */ 5 import javax.swing.JOptionPane; 6 7 public class Method_StudentManage { 8 9 /*****管理账号*****/ 10 public static String[] manager={"a","b"}; 11 /*****管理密码*****/ 12 public static int [] passwo