ホームページ データベース mysql チュートリアル MySQL と C++ を使用してコマンド ライン ベースのライブラリ管理システムを開発する方法

MySQL と C++ を使用してコマンド ライン ベースのライブラリ管理システムを開発する方法

Sep 20, 2023 pm 01:48 PM
mysql c++ コマンドライン

MySQL と C++ を使用してコマンド ライン ベースのライブラリ管理システムを開発する方法

MySQL と C を使用してコマンド ライン ベースのライブラリ管理システムを開発する方法

概要:
この記事では、MySQL の使用方法を紹介します。および C を使用して、シンプルなコマンドラインベースのライブラリ管理システムを開発します。データベースの設計から C コードの実装までのプロセス全体を取り上げ、具体的なコード例を示します。

はじめに:
書籍管理システムは、図書館や個人の書籍コレクションを管理するために使用される一般的なアプリケーションです。データベースとして MySQL を使用し、プログラミング言語として C を使用することで、完全な機能を備えた図書館管理システムを簡単に実装し、ユーザーに便利な書籍検索、貸出、返却機能を提供できます。

ステップ 1: データベース設計
まず、書籍と関連情報を保存するための適切なデータベース スキーマを設計する必要があります。この例では、次のテーブルを使用します。

  • books テーブル: 書籍 ID、タイトル、著者、発行日など、書籍に関する基本情報が格納されます。
  • Users テーブル: ユーザー ID、ユーザー名、パスワードなどのユーザー情報を保存します。
  • 借入テーブル: 借入 ID、書籍 ID、ユーザー ID、借用日、返却日などを含む書籍の借用記録を保存します。

以下はテーブルを作成する MySQL コードの例です:

CREATE TABLE books (
    book_id INT PRIMARY KEY,
    title VARCHAR(100),
    author VARCHAR(100),
    publication_date DATE
);

CREATE TABLE users (
    user_id INT PRIMARY KEY,
    username VARCHAR(100),
    password VARCHAR(100)
);

CREATE TABLE borrowings (
    borrowing_id INT PRIMARY KEY,
    book_id INT,
    user_id INT,
    borrowing_date DATE,
    return_date DATE,
    FOREIGN KEY (book_id) REFERENCES books(book_id),
    FOREIGN KEY (user_id) REFERENCES users(user_id)
);
ログイン後にコピー

ステップ 2: C コードの実装
次に、C を使用して MySQL データベースにリンクし、ライブラリ管理システムのさまざまな機能を実装するコードを作成します。

まず、必要な C ヘッダー ファイルをインクルードする必要があります:

#include <iostream>
#include <mysql.h>
ログイン後にコピー

次に、MySQL データベースに接続するための connect 関数を作成する必要があります:

MYSQL* connect() {
    MYSQL* conn;
    conn = mysql_init(NULL);
    if (conn == NULL) {
        std::cout << "Failed to initialize mysql client library" << std::endl;
        exit(1);
    }
    if (mysql_real_connect(conn, "localhost", "username", "password", "database_name", 0, NULL, 0) == NULL) {
        std::cout << "Failed to connect to database" << std::endl;
        exit(1);
    }
    return conn;
}
ログイン後にコピー

次に、本の追加、本の削除、本の貸し出し、本の返却など、さまざまな機能を実装できます。以下は、書籍をデータベースに追加するサンプル関数 addBook です:

void addBook(MYSQL* conn, int book_id, std::string title, std::string author, std::string publication_date) {
    std::string query = "INSERT INTO books (book_id, title, author, publication_date) VALUES ("
                      + std::to_string(book_id) + ",'" + title + "','" + author + "','" + publication_date + "')";
    if (mysql_query(conn, query.c_str()) != 0) {
        std::cout << mysql_error(conn) << std::endl;
    }
}
ログイン後にコピー

最後に、さまざまな機能関数をテストする main 関数を作成できます:

int main() {
    MYSQL* conn = connect();
    addBook(conn, 1, "C++ Primer", "Stanley B. Lippman", "1998-10-01");
    // ... 其他功能函数的调用

    mysql_close(conn);
    return 0;
}
ログイン後にコピー

概要:
この記事を通じて、MySQL と C を使用してコマンド ライン ベースのライブラリ管理システムを開発する方法を学びました。データベース設計から C コード実装まで、開発プロセス全体をカバーし、具体的なコード例を提供します。この基盤により、私たちは独自のニーズに合わせて図書館管理システムをさらに拡張し、改善することができます。

以上がMySQL と C++ を使用してコマンド ライン ベースのライブラリ管理システムを開発する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

C++ で戦略デザイン パターンを実装するにはどうすればよいですか? C++ で戦略デザイン パターンを実装するにはどうすればよいですか? Jun 06, 2024 pm 04:16 PM

C++ でストラテジ パターンを実装する手順は次のとおりです。ストラテジ インターフェイスを定義し、実行する必要があるメソッドを宣言します。特定の戦略クラスを作成し、それぞれインターフェイスを実装し、さまざまなアルゴリズムを提供します。コンテキスト クラスを使用して、具体的な戦略クラスへの参照を保持し、それを通じて操作を実行します。

MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法 MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法 Dec 09, 2024 am 11:42 AM

MySQL 8.4 (2024 年時点の最新の LTS リリース) で導入された主な変更の 1 つは、「MySQL Native Password」プラグインがデフォルトで有効ではなくなったことです。さらに、MySQL 9.0 ではこのプラグインが完全に削除されています。 この変更は PHP および他のアプリに影響します

Redis Exporter サービスを使用した Redis ドロップレットの監視 Redis Exporter サービスを使用した Redis ドロップレットの監視 Jan 06, 2025 am 10:19 AM

Redis データベースを効果的に監視することは、最適なパフォーマンスを維持し、潜在的なボトルネックを特定し、システム全体の信頼性を確保するために不可欠です。 Redis Exporter Service は、Prometheus を使用して Redis データベースを監視するように設計された堅牢なユーティリティです。 このチュートリアルでは、Redis Exporter Service の完全なセットアップと構成について説明し、監視ソリューションをシームレスに確立できるようにします。このチュートリアルに従うことで、Redis データベースのパフォーマンス メトリクスを効果的に監視するための完全に運用可能な監視セットアップを実現できます。

定量通貨取引ソフトウェア 定量通貨取引ソフトウェア Mar 19, 2025 pm 04:06 PM

この記事では、3つの主要な交換、Binance、OKX、およびgate.ioの定量的取引機能を調査し、定量的トレーダーが適切なプラットフォームを選択できるようにすることを目指しています。この記事では、最初に定量的取引の概念、利点、課題を紹介し、APIサポート、データソース、バックテストツール、リスク制御機能など、優れた定量的取引ソフトウェアが持つべき機能を説明します。その後、3つの交換の定量的取引機能を比較し、詳細に分析し、それぞれその利点と短所を指摘し、最終的にさまざまなレベルの経験の定量的トレーダーにプラットフォーム選択の提案を提供し、リスク評価と戦略的バックテストの重要性を強調しました。 あなたが初心者であろうと経験豊富な定量的トレーダーであろうと、この記事はあなたに貴重なリファレンスを提供します

PHPがMySQLに接続された後、ページは空白です。無効なDIE()関数の理由は何ですか? PHPがMySQLに接続された後、ページは空白です。無効なDIE()関数の理由は何ですか? Apr 01, 2025 pm 03:03 PM

PHPがMySQLに接続した後、ページは空白になり、DIE()関数が失敗する理由。 PHPとMySQLデータベースの間の接続を学習するとき、あなたはしばしばいくつかの混乱することに遭遇します...

Docker環境にPECLを使用して拡張機能をインストールするときにエラーが発生するのはなぜですか?それを解決する方法は? Docker環境にPECLを使用して拡張機能をインストールするときにエラーが発生するのはなぜですか?それを解決する方法は? Apr 01, 2025 pm 03:06 PM

エラーの原因とソリューションPECLを使用してDocker環境に拡張機能をインストールする場合、Docker環境を使用するときに、いくつかの頭痛に遭遇します...

AIハードウェア設計ツールとは何ですか? AIハードウェア設計ツールとは何ですか? Nov 29, 2024 am 08:37 AM

AI ハードウェア設計ツールには次のものが含まれます。 集積回路のレイアウトと検証のための Cadence Innovus や Synopsys IC Compiler などの EDA ツール。 FPGA および SoC 開発用の Xilinx Vivado Design Suite や Intel FPGA SDK などの SoC 設計プラットフォーム。 TensorFlow や PyTorch などの深層学習フレームワークは、深層学習モデルの構築とトレーニングに使用されます。 Synopsys VCS や ModelSim などのハードウェア モデリングおよびシミュレーション ツールは、ハードウェア設計の検証とシミュレーションに使用されます。チゼルなどの他のツール、

C++ ラムダ式はどのようにパフォーマンスを向上させるのでしょうか? C++ ラムダ式はどのようにパフォーマンスを向上させるのでしょうか? Jun 06, 2024 am 11:35 AM

はい、ラムダ式を使用すると、関数を変数として渡すことができ、次のようなインライン展開による関数呼び出しのオーバーヘッドが排除されるため、C++ のパフォーマンスが大幅に向上します。 インライン展開の最適化: 呼び出し位置にコードを直接挿入し、関数呼び出しのオーバーヘッドを排除します。軽量関数: ラムダ式は通常、通常の関数よりも軽量であり、オーバーヘッドがさらに削減されます。実用的な例: 並べ替えアルゴリズムでは、ラムダ式により比較関数の呼び出しが排除され、パフォーマンスが向上します。その他の使用シナリオ: コールバック関数、データ フィルタリング、コードの簡素化として。注意: 可読性を維持するために、変数を慎重にキャプチャし、メモリ使用量を考慮し、過度の使用を避けてください。

See all articles