クイック スタート: Go 言語関数を使用してシンプルなライブラリ管理システムを実装する

王林
リリース: 2023-07-30 09:18:02
オリジナル
886 人が閲覧しました

クイック スタート: Go 言語関数を使用してシンプルなライブラリ管理システムを実装する

はじめに:
コンピューター サイエンスの分野の継続的な発展に伴い、ソフトウェア アプリケーションのニーズはますます多様化しています。 。図書館管理システムは、共通の管理ツールとして、多くの図書館、学校、企業にとって必要なシステムの 1 つとなっています。この記事では、Go 言語の関数を使用して、簡単なライブラリ管理システムを実装します。この例を通じて、読者は Go 言語の関数の基本的な使い方と実践的なプログラムの構築方法を学ぶことができます。

1. 設計上のアイデア:
まず、図書館管理システムに必要な機能を見てみましょう:

  1. 書籍の追加: 新しい書籍情報をシステムに追加します。
  2. ブックの削除: ブック番号または名前に基づいて、指定されたブックをシステムから削除します。
  3. 書籍の検索:書籍番号、名前、著者に基づいてシステムから書籍の詳細情報をクエリします。
  4. 書籍の変更: 書籍番号に従って、書籍の関連情報を変更します。
  5. 書籍の表示: システム内のすべての書籍を特定の形式に従って表示します。

設計上のアイデアは次のとおりです。

  1. 構造体を使用して、番号、名前、著者、出版社、価格などの書籍情報を表します。
  2. スライスを使用して書籍情報をシステムに保存します。
  3. 上記の要件に対応するように各関数を定義します。

2. コード例:
次は、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("输入有误,请重新输入!")
        }
    }
}
ログイン後にコピー

3. 概要:
この記事では、Go言語機能を使って簡単なライブラリ管理システムを実現する方法を紹介します。簡単な例を通じて、読者は Go 言語関数の基本的な使用法と実践的な応用を学ぶことができます。もちろん、これは単なるライブラリ管理システムであり、より複雑な機能を実装するには、さらなる拡張と最適化が必要です。この記事が読者の Go 言語関数の学習と使用に少しでも役立つことを願っています。

以上がクイック スタート: Go 言語関数を使用してシンプルなライブラリ管理システムを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!