-
Notifications
You must be signed in to change notification settings - Fork 0
/
todolist_v1.go
125 lines (109 loc) · 2.67 KB
/
todolist_v1.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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
package main
import (
"fmt"
"strconv"
"strings"
)
//做一个命令行管理--任务管理器
//用户管理
//1、函数,输入,输出,复合数据结构,基本数据类型
//2、了解流程(对数据的操作流程、增删改查)
//1、任务输出--添加任务
//2、任务列表--任务查询
//3、任务修改--
//4、任务删除
//5、详情
// 任务
// 任务名称,开始时间,结束时间,状态,负责人
// ID,name,star_time,end_time,status,owner
// []map[string][string]
var todos = []map[string]string{
{"id": "1", "name": "复习", "startTime": "18:00", "endTime": "19:00", "status": "完成", "owner": "limi"},
{"id": "3", "name": "打架", "startTime": "18:00", "endTime": "19:00", "status": "完成", "owner": "limi"},
}
const (
id = "id"
name = "name"
startTime = "startTime"
endTime = "endTime"
status = "status"
owner = "owner"
)
const (
statusNew = "未执行"
statusCompele = "完成"
)
func genId() int {
var rt int
for _, todo := range todos {
todoId, _ := strconv.Atoi(todo["id"])
if rt < todoId {
rt = todoId
}
}
return rt + 1
}
func newTask() map[string]string {
//id生成(todolist 中最大的ID+1)
task := make(map[string]string)
task[id] = strconv.Itoa(genId())
task[name] = ""
task[startTime] = ""
task[endTime] = ""
task[status] = ""
task[owner] = ""
return task
}
func printTask(task map[string]string) {
fmt.Println(strings.Repeat("+", 20))
fmt.Println("ID:", task[id])
fmt.Println("任务名称:", task[name])
fmt.Println("开始时间:", task[startTime])
fmt.Println("结束时间:", task[endTime])
fmt.Println("状态:", task[status])
fmt.Println("负责人信息:", task[owner])
fmt.Println(strings.Repeat("+", 20))
}
func input(prompt string) string {
var text string
fmt.Printf("%v\n", prompt)
fmt.Scan(&text)
return strings.TrimSpace(text)
}
func makeTask() {
task := newTask()
fmt.Println("请输入任务信息:")
task["name"] = input("请输入任务名称")
task["startTime"] = input("请输入开始时间")
task["endTime"] = input("请输入结束时间")
task["status"] = input("请输入状态")
task["owner"] = input("请输入负责人信息")
//fmt.Println(todos)
todos = append(todos, task)
}
func queryTask() {
q := input("请输入查询信息")
//all,显示所有信息
for _, todo := range todos {
if q == "all" || strings.Contains(todo[name], q) {
printTask(todo)
}
}
}
func main() {
EXIT:
for {
switch input("请输入操作 (add /query / exit) ") {
case "add":
makeTask()
case "query":
queryTask()
case "exit":
//return 也可以
break EXIT
//break + 标签
default:
fmt.Println("指令错误")
}
}
}