作者:shuaibing.huo@gmail.com
<代码>包主要 导入( “fmt” “操作系统” )//使用函数实现一个简单的图书管理系统//每本书有书名,作者,价格,上架信息//用户可以在控制台添加书籍,修改书籍信息,打印所有书籍列表//需求分析//0。定义结构体 类型的书结构{ 标题字符串 作者字符串 价格float32 发布bool }//1。打印菜单 func showmenu () { fmt.Println(“欢迎登陆百时美施贵宝!”) fmt.Println(“1。添加书籍”) fmt.Println(“2。修改书籍”) fmt.Println(“3。展示所有书籍”) fmt.Println(“4。退出”) } func userInput() *书{ var ( 标题字符串 作者字符串 价格float32 发布bool ) fmt.Println(“请根据提示输入相关内容”) fmt.Print(“请输入书名:“) fmt.Scanln(及标题) fmt.Print(“请输入作者:“) fmt.Scanln(及作者) fmt.Print(“请输入价格:“) fmt.Scanln(及价格) fmt.Print(“请输入是否上架(真|假):”) fmt.Scanln(及发布) fmt.Println(标题、作者、价格发布) 书:=newbook(标题、作者、价格发布) 返回的书 }//2。等待用户输入菜单选项//定义一个书指针的切片,用来存储所有书籍 var allbooks=使([]*书,0200)//定义一个创建新书的构造函数 字符串函数newbook(标题、作者、价格float32,发布bool) *书{ 返回,书{ 标题:标题、 作者:作者, 价格:价格, 发布:发布, } }//3。添加书籍的函数 函数用于(){ var ( 标题字符串 作者字符串 价格float32 发布bool ) fmt.Println(“请根据提示输入相关内容”) fmt.Print(“请输入书名:“) fmt.Scanln(及标题) fmt.Print(“请输入作者:“) fmt.Scanln(及作者) fmt.Print(“请输入价格:“) fmt.Scanln(及价格) fmt.Print(“请输入是否上架(真|假):”) fmt.Scanln(及发布) fmt.Println(标题、作者、价格发布) 书:=newbook(标题、作者、价格发布) _,b:=范围allbooks { 如果b。标题==book.title { fmt.Printf (“《% s》这本书已经存在”,book.title) 返回 } } allbooks=append (allbooks书) fmt.Println(“添加书籍成功!”) }//4。修改书籍的函数 func updatebook () { 书:=userInput () 指数,b:=范围allbooks { 如果b。标题==book.title { allbooks(指数)=书 fmt.Printf(“书名:《% s》更新成功!”,book.title) 返回 } } fmt。Printf("书名:《% s》不存在!”,书。标题) }//5。展示书籍的函数 func showbook () { 如果len (allbooks)==0 { fmt.Println(“啥也么有”) } _,b:=范围allbooks { fmt。《Printf (" % s》% s价格:%。2 f是否上架销售:% t \ n”, b.title, b.author, b.price, b.publish) } }//6。退出os.Exit (0) 函数main () { 为{ showmenu () var选择int fmt.Scanln(和选项) 开关选项{ 案例1: 用于() 案例2: updatebook () 案例3: showbook () 案例4: os.Exit (0) } } }代码>