当前位置:网站首页>【GO语言学习之路】结构体实战

【GO语言学习之路】结构体实战

2022-06-09 15:44:00 温文艾尔

️写在前面



文章目录


实战目标,利用结构体等实现对学生的

  1. 增加
  2. 修改
  3. 查询
package main

import "fmt"

//学员信息管理系统
/** 1.学生有id、姓名、年龄、分数等信息 2.程序提供展示学生列表、添加学生、编辑学生信息、删除学生等功能 */

type Student struct {
    
	id    int
	name  string
	class string
}

func newStudent(id int, name string, class string) *Student {
    
	return &Student{
    
		id:    id,
		name:  name,
		class: class,
	}
}

type studentMgr struct {
    
	allStudents []*Student
}

func newStudentMgr() *studentMgr {
    
	return &studentMgr{
    
		allStudents: make([]*Student, 0, 100),
	}
}

//添加学生
func (s *studentMgr) addStudent(stu *Student) {
    
	s.allStudents = append(s.allStudents, stu)
}

//编辑学生
func (s *studentMgr) editStudent(stu *Student) {
    
	for i, v := range s.allStudents {
    
		if v.id == stu.id {
    
			s.allStudents[i] = stu
			return
		}
	}
	//走到这里说明没有找到指定的学生
	fmt.Printf("输入的学生信息有误,系统中没有学号是 %d 的学生\n", stu.id)
}

//删除学生
func (s *studentMgr) deleteStudent(stu *Student) {
    
	for i, v := range s.allStudents {
    
		if v.id == stu.id {
    
			s.allStudents = append(s.allStudents[:i], s.allStudents[i+1:]...)
			return
		}
	}
	//走到这里说明没有找到指定的学生
	fmt.Printf("输入的学生信息有误,系统中没有学号是 %d 的学生\n", stu.id)
}

//展示学生
func (s *studentMgr) showStudent() {
    
	for _, v := range s.allStudents {
    
		fmt.Printf("学号:%d 姓名: %s 班级: %s\n", v.id, v.name, v.class)
	}
}


package main

import (
	"fmt"
	"os"
)

//获取用户输入的函数
func getInput() *Student {
    
	var (
		id    int
		name  string
		class string
	)
	fmt.Println("请按要求输入学员信息")
	fmt.Print("请输入学员的学号:")
	fmt.Scanf("%d\n", &id)
	fmt.Print("请输入学员的姓名:")
	fmt.Scanf("%s\n", &name)
	fmt.Print("请输入学员的班级:")
	fmt.Scanf("%s\n", &class)
	return newStudent(id, name, class)
}

func main() {
    
	sm := newStudentMgr()
	for {
    
		//1.打印系统菜单
		showMenu()
		//2.等待用户选择选项
		var input int
		fmt.Println("请输入你要操作的序号")
		fmt.Scanf("%d\n", &input)
		fmt.Println("用户输入的是", input)
		//3.执行用户选择的动作
		switch input {
    
		case 1:
			//添加学员
			sm.addStudent(getInput())
			fmt.Println("添加成功")
		case 2:
			//编辑学员信息
			sm.editStudent(getInput())
			fmt.Println("编辑成功")
		case 3:
			//展示所有学员信息
			sm.showStudent()
		case 4:
			//删除学员信息
			sm.deleteStudent(getInput())
			fmt.Println("删除成功")
		case 5:
			//退出系统
			os.Exit(0)
		}

	}
}

func showMenu() {
    
	fmt.Println("欢迎来到学员信息管理系统")
	fmt.Println("1.添加学员")
	fmt.Println("2.编辑学员信息")
	fmt.Println("3.展示所有学员信息")
	fmt.Println("4.删除学员信息")
	fmt.Println("5.退出系统")
}


测试
添加

欢迎来到学员信息管理系统
1.添加学员
2.编辑学员信息
3.展示所有学员信息
4.删除学员信息
5.退出系统
请输入你要操作的序号
1
用户输入的是 1
请按要求输入学员信息
请输入学员的学号:100
请输入学员的姓名:zs
请输入学员的班级:201913
添加成功
欢迎来到学员信息管理系统
1.添加学员
2.编辑学员信息
3.展示所有学员信息
4.删除学员信息
5.退出系统
请输入你要操作的序号
1
用户输入的是 1
请按要求输入学员信息
请输入学员的学号:101
请输入学员的姓名:ls
请输入学员的班级:201914
添加成功


删除

欢迎来到学员信息管理系统
1.添加学员
2.编辑学员信息
3.展示所有学员信息
4.删除学员信息
5.退出系统
请输入你要操作的序号
4
用户输入的是 4
请按要求输入学员信息
请输入学员的学号:100
请输入学员的姓名:zs
请输入学员的班级:201913
删除成功

修改

请输入你要操作的序号
3
用户输入的是 3
学号:101 姓名: ls 班级: 201914
欢迎来到学员信息管理系统
1.添加学员
2.编辑学员信息
3.展示所有学员信息
4.删除学员信息
5.退出系统
请输入你要操作的序号
2
用户输入的是 2
请按要求输入学员信息
请输入学员的学号:101
请输入学员的姓名:zs
请输入学员的班级:201913
编辑成功
欢迎来到学员信息管理系统
1.添加学员
2.编辑学员信息
3.展示所有学员信息
4.删除学员信息
5.退出系统
请输入你要操作的序号
3
用户输入的是 3
学号:101 姓名: zs 班级: 201913

查询

欢迎来到学员信息管理系统
1.添加学员
2.编辑学员信息
3.展示所有学员信息
4.删除学员信息
5.退出系统
请输入你要操作的序号
3
用户输入的是 3
学号:101 姓名: zs 班级: 201913

原网站

版权声明
本文为[温文艾尔]所创,转载请带上原文链接,感谢
https://blog.csdn.net/wenwenaier/article/details/125197473