zoukankan      html  css  js  c++  java
  • Go实现学生管理系统

    student.go

    
    package main
    import (
    	"fmt"
    )
    
    // 学生
    type student struct{
    	id int
    	name string
    	class string
    }
    
    // 学生的构造函数
    func newStudent(id int, name, class string) *student{
    	return &student{
    		id: id,
    		name: name,
    		class: class,
    	}
    }
    // 学生管理
    type manage  struct {
    	allStudent []*student
    }
    
    // 学生管理的构造函数
    func newManage() *manage{
    	return &manage{
    		allStudent: make([]*student, 0, 100),
    	}
    }
    
    // 添加学生
    func (s *manage) addStudent(newstu *student){
    	s.allStudent = append(s.allStudent, newstu)
    }
    // 编辑学生信息
    func (s *manage)modifystudent(newstu *student){
    	for i, v := range s.allStudent{
    		if newstu.id == v.id{
    			s.allStudent[i] = newstu
    			return
    		}
    	}
    	fmt.Printf("系统不存在学号为%d的这个学生!
    ", newstu.id)
    }
    // 展示所有学生信息
    func (s *manage) showAllStudent(){
    	for _, v := range s.allStudent{
    		fmt.Printf("学号:%d---姓名:%s---班级%s
    ", v.id, v.name, v.class)
    	}
    }
    
    

    main.go

    package main
    import (
    	"fmt"
    	"os"
    )
    
    func menu(){
    	fmt.Println("欢迎使用go学生管理系统")
    	fmt.Println("1:添加学生")
    	fmt.Println("2:编辑学生信息")
    	fmt.Println("3:展示所有学生信息")
    	fmt.Println("4:退出")
    }
    
    func getInput() *student{
    	var (
    		id int
    		name string 
    		class string
    	)
    	fmt.Println("请输入学生的学号:")
    	fmt.Scanf("%d
    ", &id)
    	fmt.Println("请输入学生的姓名:")
    	fmt.Scanf("%s
    ", &name)
    	fmt.Println("请输入学生的班级")
    	fmt.Scanf("%s
    ", &class)
    	stu := newStudent(id, name, class)
    	return stu
    }
    
    func main(){
    	sm := newManage()
    	for{
    		//1.打印系统
    		menu()
    
    		//2.用户选择操作
    		var input int
    		fmt.Print("请输入你要的操作数:")
    		fmt.Scanf("%d
    ", &input)
    		fmt.Println("你选择的操作是:", input)
    		// 3.执行操作
    		switch input{
    			case 1:
    				stu := getInput()
    				sm.addStudent(stu)
    				break
    			case 2:
    				stu := getInput()
    				sm.modifystudent(stu)
    				break
    			case 3:
    				sm.showAllStudent()
    				break
    			case 4:
    				os.Exit(0)
    		}
    	}
    }
    
  • 相关阅读:
    常用正则、正则表达式
    移动端虚拟手机键盘
    如何隐藏滚动条还能实现滚动的功能
    醉盏的第一篇博客-关于title的换行处理
    Mybatis-Generator自动生成Dao、Model、Mapping等相关映射文件(懒人版)
    java学习笔记----@Override的作用
    web项目生成web.xml的两种方式
    angular分页插件tm.pagination二次触发问题解决歪方案
    Ubuntu Server17.10配置静态IP
    cors 的深入细节
  • 原文地址:https://www.cnblogs.com/cl94/p/13811208.html
Copyright © 2011-2022 走看看