用golang切片写一个简单的图书管理
时间: 2023-10-16 14:10:06 浏览: 32
以下是一个简单的图书管理系统,使用golang的切片实现:
```go
package main
import (
"fmt"
)
type Book struct {
title string
author string
price float64
}
var books []Book
func main() {
var choice int
for {
fmt.Println("请选择操作:")
fmt.Println("1. 添加图书")
fmt.Println("2. 查看所有图书")
fmt.Println("3. 退出")
fmt.Scanln(&choice)
switch choice {
case 1:
addBook()
case 2:
listBooks()
case 3:
fmt.Println("退出程序")
return
default:
fmt.Println("无效的选择,请重新输入")
}
}
}
func addBook() {
var book Book
fmt.Println("请输入书名:")
fmt.Scanln(&book.title)
fmt.Println("请输入作者:")
fmt.Scanln(&book.author)
fmt.Println("请输入价格:")
fmt.Scanln(&book.price)
books = append(books, book)
fmt.Println("添加成功")
}
func listBooks() {
fmt.Println("所有图书信息如下:")
for _, book := range books {
fmt.Printf("书名:%s,作者:%s,价格:%f\n", book.title, book.author, book.price)
}
}
```
这个程序使用了一个 `Book` 结构体来存储图书的信息,使用一个切片 `books` 来存储所有的图书。主函数中使用一个无限循环来显示菜单,根据用户的选择调用不同的函数。`addBook` 函数用来添加新的图书,首先让用户输入书名、作者和价格,然后将图书添加到 `books` 切片中。`listBooks` 函数用来显示所有的图书信息,遍历 `books` 切片并打印每个图书的信息。