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

⭐️写在前面


  • 这里是温文艾尔的学习之路
  • 👍如果对你有帮助,给博主一个免费的点赞以示鼓励把QAQ
  • 👋博客主页🎉 温文艾尔的学习小屋
  • ⭐️更多文章👨‍🎓请关注温文艾尔主页📝
  • 🍅文章发布日期:2022.05.025
  • 👋java学习之路!
  • 欢迎各位🔎点赞👍评论收藏⭐️
  • 🎄冲冲冲🎄
  • ⭐️上一篇内容:【GO语言学习之路】GO语言中的变量

文章目录


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

  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

  • 28
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 31
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

温文艾尔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值