Golang语言实现学生信息管理系统

1.student.go

Go语言基础知识巩固,学生信息管理系统使用的语法有:基本数据类型,切片,结构体,条件判断,循环,函数,方法等基础知识。

student.go

package main

import "fmt"

// 定义学生类型
type student struct {
	id    string
	name  string
	class string
}

// NewStudent 构造方法,构造一个学生
func NewStudent(id, name, class string) *student {
	return &student{
		id:    id,
		name:  name,
		class: class,
	}
}

// 学生管理类型
type students struct {
	allStudent []*student
}

// NewStudents 的构造方法
func NewStudents() *students {
	return &students{
		allStudent: make([]*student, 0, 10),
	}
}

// AddStudentInfo 添加学生信息
func (s *students) AddStudentInfo(NewStu *student) {
	s.allStudent = append(s.allStudent, NewStu)
}

// ShowStudentInfo 展示学生信息
func (s *students) ShowStudentInfo(id string) int {
	for _, v := range s.allStudent {
		if id == v.id {
			fmt.Printf("学生ID:%s\n", v.id)
			fmt.Printf("学生姓名:%s\n", v.name)
			fmt.Printf("学生班级:%s\n", v.class)
			return 1
		}
	}
	return 0
}

// SetStudentInfo 修改学生信息
func (s *students) SetStudentInfo(NewStu *student) int {
	for i, v := range s.allStudent {
		if NewStu.id == v.id {
			s.allStudent[i] = NewStu
			fmt.Println("修改成功")
			return 1
		}
	}
	return 0
}

// DelStudentInfo 删除学生信息
func (s *students) DelStudentInfo(id string) int {
	for i, v := range s.allStudent {
		if id == v.id {
			s.allStudent = append(s.allStudent[:i], s.allStudent[i+1:]...)
			fmt.Println("删除成功")
			return 1
		}

	}
	return 0
}

2.main.go

main.go

package main

import (
	"fmt"
	"os"
)

// GetStuInfo 获取用户输入的学生信息
func GetStuInfo() *student {
	var (
		id, name, class string
	)
	fmt.Printf("请输入学生ID:%s\n", id)
	fmt.Scanf("%s\n", &id)
	fmt.Printf("请输入学生姓名:%s\n", name)
	fmt.Scanf("%s\n", &name)
	fmt.Printf("请输入学生班级:%s\n", class)
	fmt.Scanf("%s\n", &class)
	stu := NewStudent(id, name, class)
	return stu
}
func manu() {
	fmt.Println("1.展示学生信息")
	fmt.Println("2.添加学生信息")
	fmt.Println("3.修改学生信息")
	fmt.Println("4.删除学生信息")
	fmt.Println("5.退出系统")
}

func main() {

	sm := NewStudents()
	for {
		var input int
		manu()
		fmt.Printf("请您输入功能编号:")
		fmt.Scanf("%d\n", &input)

		switch input {
		case 1:
			{
				var id string
				fmt.Printf("请输入显示学生的ID:")
				fmt.Scanf("%s\n", &id)
				if sm.ShowStudentInfo(id) == 0 {
					fmt.Println("该学生不存在")
				}
			}
		case 2:
			{
				stu := GetStuInfo()
				sm.AddStudentInfo(stu)
			}
		case 3:
			{
				stu := GetStuInfo()
				if sm.SetStudentInfo(stu) == 0 {
					fmt.Println("该学生不存在")
				}
			}
		case 4:
			{
				var id string
				fmt.Printf("请输入要删除学生的ID:")
				fmt.Scanf("%s\n", &id)
				if sm.DelStudentInfo(id) == 0 {
					fmt.Println("该学生不存在")
				}
			}
		case 5:
			{
				os.Exit(0)
			}
		}
	}

}

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值