一个比较容易理解的图书管理系统。

用go语言写的一个简单的图书管理系统,包含了基本的增删改查代码。希望大家能从中获得帮助。

package main

import "fmt" 


type book struct{
    id   string
    name string
    author string
    price int
}
//用来存储book类
var books[] book
var b book

func Add(){
    fmt.Print("请输入图书的书号:")
    fmt.Scan(&b.id)
    
    fmt.Print("请输入图书的作者:")
    fmt.Scan(&b.author)
   
    fmt.Print("请输入要图书的书名:")
    fmt.Scan(&b.name)
  
    fmt.Print("请输入图书的价钱:")
    fmt.Scan(&b.price)
   
    books = append(books,b)
    fmt.Println("添加成功!!!")
}


//删除
func Delete(){
    //声明图书的书号
    var number string
    //记录符合条件的下标
    var result int
   //判断系统中是否存在书籍
    if len(books)==0{
    fmt.Println("抱歉,你还未添加图书!")
    fmt.Println("删除失败!")
   }else {
     fmt.Print("请输入图书的书号:")
     fmt.Scan(&number)
    
     for index,book :=range books{
     if number == book.id{
        result = index    
    }
   }
     //走到这里代表已经找到了
     books = append(books[:result],books[result+1:]...)
     fmt.Println("删除成功!")
 }
}


//修改
func Modify(){
     if len(books)==0{
      fmt.Println("抱歉,你还未添加图书!")
      fmt.Println("修改失败!")     
}else{
     //记录索引
     var result int
     fmt.Print("请输入你要修改的图书的书号:")
     fmt.Scan(&b.id)
     for index,book := range books{
           if b.id == book.id{
            result = index  
       }
    }
     //这里以找到对应的下标 
     fmt.Printf("你要修改的图书书号为:%s\n",b.id)
     var choose int
     fmt.Print("1:修改书号   2:修改书名  3:修改价钱  4:修改作者  5:退出")
     fmt.Println("请选项你要修改的内容:")
     fmt.Scan(&choose)
     fmt.Printf("你选择的选项是:%d\n",choose)
     switch choose {
     case 1:
           fmt.Print("请输入修改后的书号:")
           fmt.Scan(&b.id)
           books[result].id = b.id
           fmt.Println("修改成功!") 
     case 2:
           fmt.Print("请输入修改后的书名:")
           fmt.Scan(&b.name)
           books[result].name = b.name
           fmt.Println("修改成功!")
     case 3:
           fmt.Print("请输入修改后的价钱:")
           fmt.Scan(&b.price)
           books[result].price = b.price
           fmt.Println("修改成功!")
     case 4:
           fmt.Print("请输入修改后的作者名:")
           fmt.Scan(&b.author)
           books[result].author = b.author
           fmt.Println("修改成功!")
     case 5:
     default:
           fmt.Println("没有这个选项!")
     }  
  }

func Search(){
    if len(books)==0{
        fmt.Println("抱歉,还未添加图书!")
    }else {
    fmt.Println("1: 书号查找  2:书名查找  3:作者查找  4:退出查找")
    fmt.Print("请输入你的查找方式:")
    var choose int
    fmt.Scan(&choose)
    
    var result int
    switch choose{
      case 1:
            fmt.Print("请输入您想要查找的书号:")
            fmt.Scan(&b.id)
            for index,book := range books{
                if b.id == book.id {
                result = index
              }else{
                fmt.Println("抱歉,没有该图书的信息!")
              }
           }
           fmt.Printf("书号为 %s 的信息如下:\n",books[result].id)
           fmt.Printf("书号:%s\n",books[result].id)
           fmt.Printf("书名: %s\n",books[result].name)
           fmt.Printf("作者: %s\n",books[result].author)
           fmt.Printf("价钱: %d\n",books[result].price)
       case 2:
            fmt.Print("请输入您想要查询的书名:")
            fmt.Scan(&b.name)
            for index,book := range books{
                 if b.name == book.name{
                      result = index
                  }else {
                     fmt.Println("抱歉,没有该图书的消息!")
                }
              }
           fmt.Printf("书名为 %s 的信息如下:\n",books[result].name)
           fmt.Printf("书号:%s\n",books[result].id)
           fmt.Printf("书名: %s\n",books[result].name)
           fmt.Printf("作者: %s\n",books[result].author)
           fmt.Printf("价钱: %d\n",books[result].price)
        case 3:
              fmt.Println("请输入您想要查询的作者:")
              fmt.Scan(&b.name)
              for index,book := range books{
              if  b.author == book.author{
                     result = index
                }else {
                  fmt.Println("抱歉,没有该图书的消息")
               }
             }
           fmt.Printf("作者名为 %s 的信息如下:\n",books[result].author)
           fmt.Printf("书号:%s\n",books[result].id)
           fmt.Printf("书名: %s\n",books[result].name)
           fmt.Printf("作者: %s\n",books[result].author)
           fmt.Printf("价钱: %d\n",books[result].price)
        case 4:
        default: 
              fmt.Println("没有这个选项!")
   }
 }
}

func SearchAllName(){
     if len(books) == 0{
      fmt.Println("抱歉,还未添加书籍!")
  }else{
     fmt.Println("书名:")
     for _,book := range books{
         fmt.Println(book.name)
    }
 }
}


func main() {
    for{
    fmt.Println("-----------------------")
    fmt.Println("欢迎来到图书管理系统!")
    fmt.Println("1:添加图书信息")
    fmt.Println("2:删除图书信息")
    fmt.Println("3:修改图书信息")
    fmt.Println("4:查找图书信息")
    fmt.Println("5:查看所有图书的书名")
    fmt.Println("6:退出图书管理系统!")
    fmt.Println("-----------------------")
    
    var flag bool 
    var choose int
    fmt.Print("请输入你的选项:")
    fmt.Scan(&choose)
   
    switch choose {
    case 1:
          Add()
    case 2: 
          Delete()
    case 3: 
          Modify()
    case 4:
          Search()
    case 5:
          SearchAllName()
    case 6:
          flag = true
    default :
          fmt.Println("没有这个选项,请重新输入!")   
  }
    if flag{
     fmt.Println("欢迎您的下次登录!")
     break
  }
 }     
}
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值