当前位置:网站首页>go图书管理系统
go图书管理系统
2022-07-31 15:53:00 【漫漫行程路】
Go图书管理系统1.0
package main
import "fmt"
/* 使用函数实现一个简单的图书管理系统,每本书有书名作者,价格,上架信息 用户可以在控制台添加书籍,修改书籍信息,打印所有书籍列表 书:书名,作者,价格,上架信息 添加书籍 修改书籍 打印所有书籍 */
func bookmenu() {
fmt.Println("********************")
fmt.Println("1. add book")
fmt.Println("2. update book")
fmt.Println("3. show book")
fmt.Println("0. exit")
fmt.Println("********************")
}
func addbook() []string {
var bookname string
var author string
var price string
var data string
fmt.Println("please input bookname:")
fmt.Scanln(&bookname)
fmt.Println("please input author:")
fmt.Scanln(&author)
fmt.Println("please input price:")
fmt.Scanln(&price)
fmt.Println("please input data:")
fmt.Scanln(&data)
books_temp := [...]string{
bookname, author, price, data}
fmt.Println("add success", books_temp)
return books_temp[:]
}
func updatebook(booklist [][]string) {
fmt.Println(booklist)
for key, value := range booklist {
fmt.Println(key, value)
}
var inputnum int
var bookvaluenum int
var bookvalue string
fmt.Println("please input update num:")
fmt.Scanln(&inputnum)
fmt.Println("please input update book value num:")
fmt.Scanln(&bookvaluenum)
fmt.Println("please input update book value:")
fmt.Scanln(&bookvalue)
booklist[inputnum][bookvaluenum] = bookvalue
fmt.Println(booklist)
}
func main() {
book_list := [][]string{
}
// books_temp := []string{"go", "shuai", "58.8", "20220620"}
var num_input int
for {
bookmenu()
fmt.Println("please input num:")
fmt.Scanln(&num_input)
if num_input == 1 {
fmt.Println(1)
books_temp := addbook()
book_list = append(book_list, books_temp)
fmt.Println(book_list)
}
if num_input == 2 {
fmt.Println(3)
updatebook(book_list)
}
if num_input == 3 {
fmt.Println(3)
fmt.Println("all books :", book_list)
}
if num_input == 0 {
fmt.Println(0)
break
}
}
}
踩到的坑
scanf
刚开始输入的时候直接就是这样fmt.Scanf("please input bookname:%s", &bookname),然后很好奇为什么不能输入
查看源码
func Scanf(format string, a ...any) (n int, err error) {
return Fscanf(os.Stdin, format, a...)
}
发现是没问题的,但是我需要一行一行输入,所以放弃scanf
接着查看fmt.Scanln("%s",&bookname)
func Scanln(a ...any) (n int, err error) {
return Fscanln(os.Stdin, a...)
}
好家伙,原来前面不需要说明,嗯。搞定。
修改完毕,发现能输入了。所以在刚开始写go的时候,最好先写个小demo测试一下是否可行。
边栏推荐
猜你喜欢
随机推荐
MySQL的相关问题
leetcode303 Weekly Match Replay
Implementing distributed locks based on Redis (SETNX), case: Solving oversold orders under high concurrency
多主复制的适用场景(2)-需离线操作的客户端和协作编辑
Summary of the implementation method of string inversion "recommended collection"
删除表格数据或清空表格
Replication Latency Case (3) - Monotonic Read
mongo进入报错
What is the difference between BI software in the domestic market?
gerrit中如何切换远程服务器
Getting Started with TextBlock Control Basic Tools Usage, Get Started
org.apache.jasperException(could not initialize class org)
Grafana安装后web打开报错
The use of button controls
MySQL数据库操作
tensorflow2.0 cnn(layerwise)
Linux check redis version (check mongodb version)
tooltips使用教程(鼠标悬停时显示提示)
基于C语言的编译器设计与实现
json到底是什么(c# json)



![[TypeScript] In-depth study of TypeScript type operations](/img/d9/ee240ccba72e8d3114ee5c52ed0c8f.png)




