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)
		}
	}
}
原文地址:https://www.cnblogs.com/cl94/p/13811208.html