Go函数版本和面向对象版本实现学生管理系统

Go函数版本和面向对象版本实现学生管理系统

函数版本实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package main

import (
"fmt"
"os"
)

type student struct {
id int64
name string
}

var (
allStudent map[int64]*student // 变量声明
)

func newStudent(id int64, name string) *student {
return &student{name: name, id: id,}
}

// 打印所有的学生
func showStudent() {
for k, v := range allStudent {
fmt.Printf("学号: %d, 姓名: %s", k, v.name)
}
}

func addStudent() {
// 向allStudent中添加一个新的学生
var (
id int64
name string
)
fmt.Print("请输入学生学号: ")
fmt.Scanln(&id)
fmt.Print("请输入学生姓名: ")
fmt.Scanln(&name)

stu := newStudent(id, name)
allStudent[id] = stu
}

func delStudent() {
var (
deleteID int64
)
fmt.Print("请输入需要删除的学生ID: ")
fmt.Scanln(&deleteID)
delete(allStudent, deleteID)
}

func main() {
allStudent = make(map[int64]*student, 48)
for {
// 1. 打印菜单
fmt.Println("欢迎光临学生管理系统!")
fmt.Println(`
1. 查看所有学生
2. 新增学生
3. 删除学生
4. 退出
`)
fmt.Print("请输入你要干啥: ")
var choice int
fmt.Scanln(&choice)
fmt.Printf("你选择了%d ...\n", choice)
switch choice {
case 1:
showStudent()
case 2:
addStudent()
case 3:
delStudent()
case 4:
os.Exit(127)
default:
fmt.Println("end...")
}
}
}

面向对象版本实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package main

import (
"fmt"
"os"
)

// 面向对象版本
type student struct {
id int64
name string
}

var (
allStudent map[int64]*student
)

// 构造函数
func newStudent(id int64, name string) *student {
return &student{id: id, name: name}
}

func (s student) showAllStudent() {
for k, v := range allStudent {
fmt.Printf("学号: %d, 姓名: %s\n", k, v.name)
}
fmt.Printf("学生总数: %d\n", len(allStudent))
}

func (s student) addStudent() {
var (
id int64
name string
)
fmt.Print("请输入学号: ")
fmt.Scanln(&id)
fmt.Print("请输入学生姓名: ")
fmt.Scanln(&name)
stu := newStudent(id, name)
allStudent[id] = stu
}

func (s student) delStudent() {
var (
deleteId int64
)
fmt.Print("请输入需要删除的学生学号: ")
fmt.Scanln(&deleteId)
delete(allStudent, deleteId)
}

func main() {
allStudent = make(map[int64]*student, 48)
s := new(student)
for {
fmt.Println("欢迎光临学生管理系统!")
fmt.Println(`
1. 查看所有学生
2. 新增学生
3. 删除学生
4. 退出
`)
fmt.Print("请输入您的选择: ")
var choice int
fmt.Scanln(&choice)
switch choice {
case 1:
s.showAllStudent()
case 2:
s.addStudent()
case 3:
s.delStudent()
case 4:
os.Exit(127)
default:
fmt.Printf("end...")
}
}
}

本文标题:Go函数版本和面向对象版本实现学生管理系统

文章作者:shuke

发布时间:2020年07月01日 - 20:07

最后更新:2020年07月01日 - 20:07

原始链接:https://shuke163.github.io/2020/07/01/Go%E5%87%BD%E6%95%B0%E7%89%88%E6%9C%AC%E5%92%8C%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E7%89%88%E6%9C%AC%E5%AE%9E%E7%8E%B0%E5%AD%A6%E7%94%9F%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------本文结束感谢您的阅读-------------

本文标题:Go函数版本和面向对象版本实现学生管理系统

文章作者:shuke

发布时间:2020年07月01日 - 20:07

最后更新:2020年07月01日 - 20:07

原始链接:https://shuke163.github.io/2020/07/01/Go%E5%87%BD%E6%95%B0%E7%89%88%E6%9C%AC%E5%92%8C%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E7%89%88%E6%9C%AC%E5%AE%9E%E7%8E%B0%E5%AD%A6%E7%94%9F%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%