C语言与MySQL结合开发项目案例研究(c mysql开发案例)

在现代软件开发中,数据库是一个非常重要的组成部分。为了更好地利用数据库的功能,程序员需要使用各种编程语言将其与数据库进行结合开发。其中,C语言是比较经典的编程语言之一,因此在本文中,我们将介绍C语言与MySQL结合开发的项目案例研究。

1. 简介

本项目是一款简单的图书管理系统,采用C语言和MySQL数据库开发。这个系统主要用于记录图书馆的图书信息和借阅信息。用户可以通过该系统查询图书信息和借阅情况,管理员可以管理图书和借阅信息。

2. 开发环境和工具

该系统的开发环境是Windows操作系统。开发工具包括代码编辑器Visual Studio Code和MySQL数据库管理工具Navicat for MySQL。

3. 数据库设计

该系统的数据库包括两个关系表:Book和Borrow。Book表包括图书编号、图书名、作者、出版社、价格等字段,Borrow表包括借阅编号、读者编号、图书编号、借阅日期、归还日期等字段。

4. 程序设计

该系统的程序主要包括以下几个模块:连接数据库、添加图书、查询图书、删除图书、添加借阅、查询借阅、归还图书等。

(1)连接数据库

在程序中连接数据库需要使用MySQL的C语言库。在本项目中,我们使用了mysql.h和mysqlclient.lib这两个库。连接数据库的代码如下:

“`c

#include

MYSQL mysql;

char *host = “localhost”;

char *user = “root”;

char *pwd = “123456”;

char *db = “Library”;

mysql_init(&mysql);

if(!mysql_real_connect(&mysql, host, user, pwd, db, 0, NULL, 0))

{

printf(“Connect to database fled!\n”);

return -1;

}


(2)添加图书

添加图书的代码如下:

```c
void addBook()
{
MYSQL_RES* res;
char sql[256] = {0};
int num;
char name[32];
char author[32];
char press[32];
float price;
printf("请输入图书编号:");
scanf("%d", &num);
printf("请输入图书名称:");
scanf("%s", name);
printf("请输入作者:");
scanf("%s", author);
printf("请输入出版社:");
scanf("%s", press);
printf("请输入价格:");
scanf("%f", &price);
sprintf(sql, "INSERT INTO Book VALUES(%d, '%s', '%s', '%s', %.2f)", num, name, author, press, price);
mysql_query(&mysql, sql);
printf("添加成功!\n");
}

(3)查询图书

查询图书的代码如下:

“`c

void queryBook()

{

MYSQL_RES* res;

MYSQL_ROW row;

char sql[256] = {0};

int num;

printf(“请输入图书编号:”);

scanf(“%d”, &num);

sprintf(sql, “SELECT * FROM Book WHERE Num = %d”, num);

mysql_query(&mysql, sql);

res = mysql_use_result(&mysql);

if(mysql_fetch_row(res))

{

printf(“编号\t名称\t作者\t出版社\t价格\n”);

printf(“%d\t%s\t%s\t%s\t%.2f\n”, atoi(row[0]), row[1], row[2], row[3], atof(row[4]));

}

else

{

printf(“该图书不存在!\n”);

}

mysql_free_result(res);

}


(4)删除图书

删除图书的代码如下:

```c
void delBook()
{
MYSQL_RES* res;
char sql[256] = {0};
int num;
printf("请输入要删除的图书编号:");
scanf("%d", &num);
sprintf(sql, "DELETE FROM Book WHERE Num = %d", num);
mysql_query(&mysql, sql);
if(mysql_affected_rows(&mysql) > 0)
{
printf("删除成功!\n");
}
else
{
printf("该图书不存在!\n");
}
}

(5)添加借阅

添加借阅的代码如下:

“`c

void addBorrow()

{

MYSQL_RES* res;

char sql[256] = {0};

int bnum, rnum, lnum;

char date[20];

printf(“请输入借阅编号:”);

scanf(“%d”, &bnum);

printf(“请输入读者编号:”);

scanf(“%d”, &rnum);

printf(“请输入图书编号:”);

scanf(“%d”, &lnum);

printf(“请输入借阅日期:”);

scanf(“%s”, date);

sprintf(sql, “INSERT INTO Borrow VALUES(%d, %d, %d, ‘%s’, NULL)”, bnum, rnum, lnum, date);

mysql_query(&mysql, sql);

printf(“添加成功!\n”);

}


(6)查询借阅

查询借阅的代码如下:

```c
void queryBorrow()
{
MYSQL_RES* res;
MYSQL_ROW row;
char sql[256] = {0};
int num;

printf("请输入借阅编号:");
scanf("%d", &num);
sprintf(sql, "SELECT * FROM Borrow WHERE BNum = %d", num);
mysql_query(&mysql, sql);
res = mysql_use_result(&mysql);

if(mysql_fetch_row(res))
{
printf("编号\t读者编号\t图书编号\t借阅日期\t归还日期\n");
printf("%d\t%d\t%d\t%s\t%s\n", atoi(row[0]), atoi(row[1]), atoi(row[2]), row[3], row[4]);
}
else
{
printf("该借阅不存在!\n");
}

mysql_free_result(res);
}

(7)归还图书

归还图书的代码如下:

“`c

void returnBook()

{

MYSQL_RES* res;

char sql[256] = {0};

int num;

char date[20];

printf(“请输入归还编号:”);

scanf(“%d”, &num);

printf(“请输入归还日期:”);

scanf(“%s”, date);

sprintf(sql, “UPDATE Borrow SET RDate = ‘%s’ WHERE BNum = %d”, date, num);

mysql_query(&mysql, sql);

if(mysql_affected_rows(&mysql) > 0)

{

printf(“归还成功!\n”);

}

else

{

printf(“该借阅不存在!\n”);

}

}


5. 总结

本文介绍了一个简单的图书管理系统,采用C语言和MySQL数据库开发。该系统的设计和代码实现都比较简单,并且方便学习者进行模仿和学习。在实际开发中,我们需要注意代码的可维护性和可扩展性,这样才能更好地适应软件的发展需求。

数据运维技术 » C语言与MySQL结合开发项目案例研究(c mysql开发案例)