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.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
}
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.edit(2, 22, "zqs")
}
type Class struct {
Title string
Students map[int]*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
}
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
}
func (class *Class) showJson() {
data, err := json.Marshal(class)
if err != nil {
}
fmt.Printf("%s", data)
}
func (class *Class) unshowJosn() {
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)
}