golang实现书籍管理系统

  

作者: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)
  }
  }
  } 

golang实现书籍管理系统