用Go 写一个备忘录 包括1. 查询全部备忘录 2. 新增备忘录(分别输入标题和内容) 3. 删除备忘录 4. 更新备忘录 5. 退出备忘录
时间: 2024-05-04 09:17:17 浏览: 157
好的,以下是使用 Go 语言实现的备忘录程序:
```go
package main
import (
"fmt"
"os"
)
type Memo struct {
Title string
Content string
}
type MemoList []Memo
var memos MemoList
func main() {
for {
fmt.Println("请选择操作:")
fmt.Println("1. 查询全部备忘录")
fmt.Println("2. 新增备忘录")
fmt.Println("3. 删除备忘录")
fmt.Println("4. 更新备忘录")
fmt.Println("5. 退出备忘录")
var choice int
fmt.Scanln(&choice)
switch choice {
case 1:
showMemos()
case 2:
addMemo()
case 3:
deleteMemo()
case 4:
updateMemo()
case 5:
fmt.Println("退出备忘录程序")
os.Exit(0)
default:
fmt.Println("无效的选项")
}
}
}
// 查询全部备忘录
func showMemos() {
fmt.Println("备忘录列表:")
for i, v := range memos {
fmt.Printf("%d. %s\n", i+1, v.Title)
}
}
// 新增备忘录
func addMemo() {
fmt.Println("请输入备忘录标题:")
var title string
fmt.Scanln(&title)
fmt.Println("请输入备忘录内容:")
var content string
fmt.Scanln(&content)
memo := Memo{Title: title, Content: content}
memos = append(memos, memo)
fmt.Println("备忘录添加成功")
}
// 删除备忘录
func deleteMemo() {
fmt.Println("请选择要删除的备忘录序号:")
showMemos()
var choice int
fmt.Scanln(&choice)
if choice >= 1 && choice <= len(memos) {
memos = append(memos[:choice-1], memos[choice:]...)
fmt.Println("备忘录删除成功")
} else {
fmt.Println("无效的备忘录序号")
}
}
// 更新备忘录
func updateMemo() {
fmt.Println("请选择要更新的备忘录序号:")
showMemos()
var choice int
fmt.Scanln(&choice)
if choice >= 1 && choice <= len(memos) {
fmt.Println("请输入备忘录标题:")
var title string
fmt.Scanln(&title)
fmt.Println("请输入备忘录内容:")
var content string
fmt.Scanln(&content)
memos[choice-1] = Memo{Title: title, Content: content}
fmt.Println("备忘录更新成功")
} else {
fmt.Println("无效的备忘录序号")
}
}
```
这个备忘录程序的核心是 `MemoList` 类型,它是一个 `[]Memo` 类型的别名。`Memo` 类型表示一个备忘录,包括标题和内容两个字段。程序中定义了一个全局变量 `memos` 保存所有备忘录。在主函数中,我们使用一个无限循环不断接收用户选择的操作,并根据选择调用相应的函数。`showMemos` 函数遍历 `memos` 列表并输出所有备忘录的标题。`addMemo` 函数接收用户输入的标题和内容,创建一个新的备忘录并添加到 `memos` 列表中。`deleteMemo` 函数让用户选择要删除的备忘录,然后使用 `append` 函数将其从 `memos` 列表中删除。`updateMemo` 函数让用户选择要更新的备忘录,接收新的标题和内容,并将其更新到相应的备忘录中。
这个程序还有很多可以改进的地方,比如可以将备忘录保存到文件中,支持按标题搜索备忘录等。
阅读全文