当前位置:网站首页>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测试一下是否可行。
边栏推荐
- TextBlock控件入门基础工具使用用法,取上法入门
- JVM parameter analysis Xmx, Xms, Xmn, NewRatio, SurvivorRatio, PermSize, PrintGC "recommended collection"
- 使用 GraphiQL 可视化 GraphQL 架构
- ASP.NET Core 产生连续 Guid
- "Autumn Recruitment Series" MySQL Interview Core 25 Questions (with answers)
- 【7.28】代码源 - 【Fence Painting】【合适数对(数据加强版)】
- 2020微信小程序反编译教程(小程序反编译源码能用吗)
- 浏览器自带的拾色器
- mongo进入报错
- Qt实战案例(54)——利用QPixmap设计图片透明度
猜你喜欢
随机推荐
Delete table data or clear table
LeetCode_733_Image rendering
Implement anti-shake and throttling functions
Foreign media right, apple on May be true in inventory
Kubernetes principle analysis and practical application manual, too complete
org.apache.jasperException(could not initialize class org)
mongo enters error
Deployment application life cycle and Pod health check
全新宝马3系上市,安全、舒适一个不落
Internet banking stolen?This article tells you how to use online banking safely
Vb how to connect mysql_vb how to connect to the database collection "advice"
01 邂逅typescript,环境搭建
【MySQL】Mysql范式及外键作用
11 pinia使用
json到底是什么(c# json)
Single-cell sequencing workflow (single-cell RNA sequencing)
ASP.NET Core 产生连续 Guid
网站漏洞修复服务商关于越权漏洞分析
SringMVC中个常见的几个问题
2020微信小程序反编译教程(小程序反编译源码能用吗)






