当前位置:网站首页>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测试一下是否可行。
边栏推荐
- How Redis handles concurrent access
- How to switch remote server in gerrit
- Codeforces Round #796 (Div. 2) (A-D)
- Character pointer assignment [easy to understand]
- npm安装时卡在sill idealTree buildDeps,npm安装速度慢,npm安装卡在一个地方不动
- C程序是如何跑起来的01 —— 普通可执行文件的构成
- Kubernetes principle analysis and practical application manual, too complete
- 删除表格数据或清空表格
- hough变换检测直线原理(opencv霍夫直线检测)
- 删除 状态良好(恢复分区)的磁盘
猜你喜欢
随机推荐
Baidu cloud web speed playback (is there any website available)
Linux查看redis版本(查看mongodb版本)
Why is the field of hacking almost filled with boys?
tensorflow2.0 cnn(layerwise)
How to switch remote server in gerrit
第05章 存储引擎【1.MySQL架构篇】【MySQL高级】
Premiere Pro 2022 for (pr 2022)v22.5.0
【TypeScript】深入学习TypeScript类型操作
C language - function
Matlab矩阵基本操作(定义,运算)
The new BMW 3 Series is on the market, with safety and comfort
The principle of hough transform detection of straight lines (opencv hough straight line detection)
JVM parameter analysis Xmx, Xms, Xmn, NewRatio, SurvivorRatio, PermSize, PrintGC "recommended collection"
C语言”三子棋“升级版(模式选择+AI下棋)
Precautions and solutions when SIGABRT error is reported
The 2nd China PWA Developer Day
11 pinia使用
mongo enters error
MySQL基础篇【单行函数】
The use of button controls









