习题:增删改查 学生信息

2 篇文章 0 订阅
package main

import (
	"fmt"
	"sort"
)

func main() {
	class := &Class{}
	class.stuinfo = make(map[int]*Student, 50)
	class.add("lwl", 2, 22, 222)
	class.add("zq", 1, 11, 111)
	class.edit("lovezq", 1, 11, 111)
	//class.delete(2)
	class.list()

}

type Class struct {
	stuinfo map[int]*Student
}

type Student struct {
	Name           string
	Id, Age, Score int
}

func (c *Class) add(name string, id int, age int, score int) {
	_, isSave := c.stuinfo[id]
	if isSave {
		fmt.Println("学生ID已存在!")
		return
	}
	student := &Student{
		Id:    id,
		Name:  name,
		Age:   age,
		Score: score,
	}
	c.stuinfo[id] = student
	// fmt.Printf("%s新增成功", c.stuinfo[1].Name)
}

func (c *Class) list() {

	fmt.Printf("\t%s\t%s\t%s\t%s\n", "ID", "姓名", "年龄", "分数")
	idKey := make([]int, 0)
	for key := range c.stuinfo {
		idKey = append(idKey, key)
	}
	sort.Ints(idKey)
	for _, value := range idKey {
		s := c.stuinfo[value]
		fmt.Printf("\t%d\t%s\t%d\t%d\n", s.Id, s.Name, s.Age, s.Score)
	}
}

func (c *Class) delete(id int) {
	_, isSave := c.stuinfo[id]
	if !isSave {
		fmt.Println("该学生不存在")
	}
	delete(c.stuinfo, id)
}

func (c *Class) edit(name string, id int, age int, score int) {
	_, isSave := c.stuinfo[id]
	if !isSave {
		fmt.Println("该学生不存在")
		return
	}
	student := &Student{
		Id:    id,
		Name:  name,
		Age:   age,
		Score: score,
	}
	c.stuinfo[id] = student
}

package main

import (
	"fmt"
	"sort"
)

func main() {
	var class Class
	class.Students = make(map[int]*Student)
	class.add(1, 11, "lwl")
	class.add(2, 22, "zq")

	// class.list()

	// class.show(3)

	// class.delete(1)

	// class.list()

	class.edit(2, 22, "zqs")
	// class.list()

}

//Class 班级结构体
type Class struct {
	Title    string
	Students map[int]*Student
}

//Student 学生结构体
type Student struct {
	Id, Age int
	Name    string
}

//构造函数
func NewStudent(id int, age int, name string) *Student {
	return &Student{
		Id:   id,
		Age:  age,
		Name: name,
	}
}

//新增学生
func (class *Class) add(id int, age int, name string) {
	res := NewStudent(id, age, name)
	class.Students[id] = res
	//fmt.Println(class.Students[id])
}

//学生列表
func (class *Class) list() {
	stuKey := make([]int, 0)
	for key, _ := range class.Students {
		stuKey = append(stuKey, key)
	}
	fmt.Println(stuKey)
	sort.Ints(stuKey)
	for _, v := range stuKey {
		fmt.Println(class.Students[v])
	}
}

//查询单条学生
func (class *Class) show(id int) {
	student, err := class.Students[id]
	if !err {
		fmt.Println("该学生不存在")
		return
	}
	fmt.Println(student)
}

//删除学生
func (class *Class) delete(id int) {
	_, err := class.Students[id]
	if !err {
		fmt.Println("该学生不存在")
		return
	}
	delete(class.Students, id)
}

//编辑学生
func (class *Class) edit(id int, age int, name string) {
	_, err := class.Students[id]
	if !err {
		fmt.Println("该学生不存在")
		return
	}
	student := NewStudent(id, age, name)
	class.Students[id] = student
	// class.list()
}


//查询单条学生 json 展示
func (class *Class) showJson() {
	data, err := json.Marshal(class)
	if err != nil {

	}
	fmt.Printf("%s", data)
}

//将 json 反序列化
func (class *Class) unshowJosn() {
	//var student Student
	jsonStr := `{"Title":"33","Students":{"1":{"Id":1,"Age":11,"Name":"lwl"},"2":{"Id":2,"Age":22,"Name":"zq"}}}`
	err := json.Unmarshal([]byte(jsonStr), &class)
	if err != nil {

	}
	fmt.Println(class)
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值