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)
}
}
}
}