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

Posted 温文艾尔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于GO语言学习之路结构体实战的主要内容,如果未能解决你的问题,请参考以下文章

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

c#部分---用结构体的题目- //请输入班级人数,输入每个人的学号,姓名,和语文分数数学分数和英语分数(要求使用结构体)

C语言程序设计,结构体

GO语言编程基础-复合类型结构体

Go语言学习之路

Golang入门到项目实战 | golang结构体