首頁  >  文章  >  後端開發  >  快速入門:使用Go語言函數實現簡單的圖書管理系統

快速入門:使用Go語言函數實現簡單的圖書管理系統

王林
王林原創
2023-07-30 09:18:02939瀏覽

快速入門:使用Go語言函數實現簡單的圖書管理系統

引言:
隨著電腦科學領域的不斷發展,軟體應用的需求也越來越多樣化。圖書管理系統作為常見的管理工具,也成為許多圖書館、學校和企業必備的系統之一。在本文中,我們將使用Go語言函數來實作一個簡單的圖書管理系統。透過這個例子,讀者可以學習到Go語言中函數的基本用法以及如何建立一個實用的程式。

一、設計想法:
我們先來看看圖書管理系統需要具備哪些功能:

  1. 新增圖書:新增圖書在系統中的資訊。
  2. 刪除圖書:根據圖書的編號或名稱,從系統中刪除指定的圖書。
  3. 尋找圖書:根據圖書的編號、名稱或作者,從系統中查詢圖書的詳細資訊。
  4. 修改書籍:根據圖書的編號,修改圖書的相關資訊。
  5. 展示書籍:依照一定的格式展示系統中的所有書籍。

設計想法如下:

  1. 使用結構體表示圖書的訊息,包括編號、名稱、作者、出版社和價格等。
  2. 使用切片來儲存系統中的圖書資訊。
  3. 定義各個功能函數,分別對應上述的需求。

二、程式碼範例:
以下是使用Go語言函數實作簡單圖書管理系統的程式碼範例:

package main

import (
    "fmt"
)

// 图书结构体
type Book struct {
    Id     int
    Name   string
    Author string
    Press  string
    Price  float64
}

// 图书列表
var bookList []Book

// 添加图书
func addBook() {
    var book Book
    fmt.Println("请输入图书的编号:")
    fmt.Scanln(&book.Id)
    fmt.Println("请输入图书的名称:")
    fmt.Scanln(&book.Name)
    fmt.Println("请输入图书的作者:")
    fmt.Scanln(&book.Author)
    fmt.Println("请输入图书的出版社:")
    fmt.Scanln(&book.Press)
    fmt.Println("请输入图书的价格:")
    fmt.Scanln(&book.Price)

    bookList = append(bookList, book)
}

// 删除图书
func deleteBook() {
    var input string
    fmt.Println("请输入要删除的图书的编号或名称:")
    fmt.Scanln(&input)

    for i, book := range bookList {
        if book.Name == input || fmt.Sprintf("%v", book.Id) == input {
            bookList = append(bookList[:i], bookList[i+1:]...)
            fmt.Println("删除成功!")
            return
        }
    }

    fmt.Println("未找到要删除的图书!")
}

// 查找图书
func findBook() {
    var input string
    fmt.Println("请输入要查找的图书的编号、名称或作者:")
    fmt.Scanln(&input)

    for _, book := range bookList {
        if book.Name == input || fmt.Sprintf("%v", book.Id) == input || book.Author == input {
            fmt.Printf("编号:%v
名称:%v
作者:%v
出版社:%v
价格:%v
", book.Id, book.Name, book.Author, book.Press, book.Price)
            return
        }
    }

    fmt.Println("未找到相关图书!")
}

// 修改图书
func modifyBook() {
    var input string
    fmt.Println("请输入要修改的图书的编号:")
    fmt.Scanln(&input)

    for i, book := range bookList {
        if fmt.Sprintf("%v", book.Id) == input {
            fmt.Println("请输入新的图书名称:")
            fmt.Scanln(&bookList[i].Name)
            fmt.Println("请输入新的图书作者:")
            fmt.Scanln(&bookList[i].Author)
            fmt.Println("请输入新的图书出版社:")
            fmt.Scanln(&bookList[i].Press)
            fmt.Println("请输入新的图书价格:")
            fmt.Scanln(&bookList[i].Price)
            fmt.Println("修改成功!")
            return
        }
    }

    fmt.Println("未找到要修改的图书!")
}

// 展示图书
func showBooks() {
    fmt.Println("图书列表:")
    for _, book := range bookList {
        fmt.Printf("编号:%v
名称:%v
作者:%v
出版社:%v
价格:%v

", book.Id, book.Name, book.Author, book.Press, book.Price)
    }
}

// 主函数
func main() {
    for {
        fmt.Println("欢迎使用图书管理系统,请输入相应的操作序号:")
        fmt.Println("1. 添加图书")
        fmt.Println("2. 删除图书")
        fmt.Println("3. 查找图书")
        fmt.Println("4. 修改图书")
        fmt.Println("5. 展示图书")
        fmt.Println("6. 退出系统")

        var choice int
        fmt.Scanln(&choice)

        switch choice {
        case 1:
            addBook()
        case 2:
            deleteBook()
        case 3:
            findBook()
        case 4:
            modifyBook()
        case 5:
            showBooks()
        case 6:
            fmt.Println("感谢使用图书管理系统,再见!")
            return
        default:
            fmt.Println("输入有误,请重新输入!")
        }
    }
}

三、總結:
本文介紹了使用Go語言函數實作簡單的圖書管理系統的方法。透過一個簡單的範例,讀者可以學習到Go語言函數的基本使用方法和實際應用。當然,這只是一個簡單的圖書管理系統,如果要實現更複雜的功能,還需要進一步的擴展和最佳化。希望本文能對讀者在學習和使用Go語言函數上有一定的幫助。

以上是快速入門:使用Go語言函數實現簡單的圖書管理系統的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn