本文实例为大家分享了C语言实现图书管理系统的具体代码,供大家参考,具体内容如下
程序介绍
图书管理系统主要有以下功能:
1、录入图书信息。
2、实现删除功能,即输入图书号删除相应的记录。
3、实现查找功能,即输入图书号或图书名查询该书相关信息
4、实现修改功能,即输入图书号或图书名修改相应信息。
5、添加会员信息,只有会员才可借书。
6、实现借书功能,即输入图书号及会员号进行借书。
7、实现还书功能,还书时也同样需输入图书号及会员号。
8、保存添加的图书信息。
9、保存添加的会员信息。
代码
#include <stdio.h>
#include <windows.h>
#include <mysql.h>
#pragma comment(lib,"libmysql.lib")
MYSQL mysql; //
MYSQL_RES *result; //定义结果集变量
MYSQL_ROW row; //定义行变量
char ch[2];
void ShowAll();
void AddBook();
void ModifyBook();
void DeleteBook();
void QueryBook();
void showmenu()
{
system("cls");
printf("\n\n\n\n\n");
printf("\t╔═══════════════════════════╗\n");
printf("\t║ Welcome To Lemon Books System ║\n");
printf("\t╠═══════════════════════════╣\n");
printf("\t║\t\t 1 - 显示所有图书信息 ║\n");
printf("\t║\t\t 2 - 添加图书信息 ║\n");
printf("\t║\t\t 3 - 修改图书信息 ║\n");
printf("\t║\t\t 4 - 删除图书信息 ║\n");
printf("\t║\t\t 5 - 查询图书信息 ║\n");
printf("\t║\t\t 6 - 退出 ║\n");
printf("\t╚═══════════════════════════╝\n");
printf("\n ENTER YOUR CHOICE(1-6):");
}
void inquire()
{
printf("\t 显示主菜单?(y/n):");
scanf("%s",ch);
if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
{
showmenu();
}
else
{
exit(0);
}
}
int main()
{
int n ; //定义变量 存储用户输入的编号
mysql_init(&mysql); //初始化mysql结构
showmenu();
scanf("%d",&n);
while(n)
{
switch(n)
{
case 1:
ShowAll();
break;
case 2:
AddBook();
break;
case 3:
ModifyBook();
break;
case 4:
DeleteBook();
break;
case 5:
QueryBook();
break;
case 6:
exit(0);
default:break;
}
scanf("%d",&n);
}
}
void ShowAll()
{
if(!mysql_real_connect(&mysql,"localhost","root","root","db_books",3306,NULL,0))
{
printf("\n\t 不能连接数据库!\n");
}
else
{
if(mysql_query(&mysql,"select * from tb_book"))
{ //如果查询失败
printf("\n\t 查询 tb_book 数据表失败!\n");
}
else
{
result=mysql_store_result(&mysql); //获得结果集
if(mysql_num_rows(result)!=NULL)
{ //有记录的情况,只有有记录取数据才有意义
printf("\t ════════════════════════════ \n");
printf("\t 显 示 所 有 图 书 信 息 \n");
printf("\t ════════════════════════════ \n");
printf("\t 图书编号 图书名 作者 出版社 \n");
printf("\t -------------------------------------------------------- \n");
while((row=mysql_fetch_row(result)))
{ //取出结果集中记录
fprintf(stdout,"\t %s %s %s %s \n",row[0],row[1],row[2],row[3]); //输出这行记录
}
printf("\t ════════════════════════════ \n");
}
else
{
printf("\n\t 没有记录信息 !\n");
}
mysql_free_result(result); //释放结果集
}
mysql_close(&mysql); //释放连接
}
inquire();
}
void AddBook()
{
int rowcount;
char id[10];
char *bookname;
char *author;
char *bookconcern;
char *sql;
char dest[500] ={" "};
if(!mysql_real_connect(&mysql,"127.0.0.1","root","root","db_books",0,NULL,0))
{
printf("\n\t 不能连接数据库!\n");
}
else
{
printf("\t ════════════════════════════ \n");
printf("\t 添 加 图 书 信 息 \n");
printf("\t ════════════════════════════ \n");
if(mysql_query(&mysql,"select * from tb_book"))
{ //如果查询失败
printf("\n\t 查询 tb_book 数据表失败!\n");
}
else
{
result=mysql_store_result(&mysql); //获得结果集
rowcount=mysql_num_rows(result) ; //获得行数
row=mysql_fetch_row(result); //获取结果集的行
printf("\t 图书编号:");
scanf("%s",id);
sql="insert into tb_book (ID,bookname,author,bookconcern) values (";
strcat(dest,sql);
strcat(dest,"'");
strcat(dest,id);
strcat(dest,"', '");
if(mysql_num_rows(result)!=NULL)
{
do
{ //存在相同编号
if(!strcmp(id,row[0]))
{
// printf("%s",row[0]);
printf("\n\t 记录存在,按任意键继续!\n");
getch();
mysql_free_result(result);
mysql_close(&mysql);
inquire();
return;
}
}while(row=mysql_fetch_row(result));
}
bookname = (char*)malloc(50);
author = (char*)malloc(50);
bookconcern = (char*)malloc(50);
//不存在相同的编号
printf("\t 图书名:");
scanf("%s",bookname);
strcat(dest,bookname);
printf("\t 作者:");
scanf("%s",author);
strcat(dest,"', '");
strcat(dest,author);
printf("\t 出版社:");
scanf("%s",bookconcern);
strcat(dest,"', '");
strcat(dest,bookconcern);
strcat(dest,"')");
//printf("%s",dest);
if ( mysql_query(&mysql,dest)!=0)
{
fprintf(stderr,"\t 不能插入记录!",mysql_error(&mysql));
}
else
{
printf("\t 插入成功!\n");
}
mysql_free_result(result); //释放结果集
}
mysql_close(&mysql); //释放连接
}
exit(0);
}
void ModifyBook()
{
char id[10];
char *sql;
char dest[500] ={" "};
char dest1[500] ={" "};
char *bookname;
char *author;
char *bookconcern;
if (!mysql_real_connect(&mysql,"127.0.0.1","root","root","db_books",0,NULL,0))
{
printf("\t 不能连接数据库!\n");
}
else
{
// printf("连接成功");
printf("\t 请输入您想要修改的图书编号.");
scanf("%s",id);
sql = "select * from tb_book where id=";
strcat(dest,sql);
strcat(dest,id);
//printf("%s\n",dest);
if(mysql_query(&mysql,dest))
{ //如果查询失败
printf("\n 查询 tb_book 数据表失败! \n");
}
else
{
result=mysql_store_result(&mysql); //获得结果集
if(mysql_num_rows(result)!=NULL)
{
//有记录的情况,只有有记录取数据才有意义
printf("\t 发现记录信息,是否显示?(y/n) ");
scanf("%s",ch);
if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
{
printf("\t ════════════════════════════ \n");
printf("\t ***** 显示图书信息 ***** \n");
printf("\t ════════════════════════════ \n");
printf("\t图书编号 图书名 作者 出版社 \n");
printf("\t -------------------------------------------------------- \n");
while((row=mysql_fetch_row(result)))
{ //取出结果集中记录
fprintf(stdout,"\t %s %s %s %s \n",row[0],row[1],row[2],row[3]); //输出这行记录
}
printf("\t ════════════════════════════ \n");
}
printf("\t Modify?(y/n)");
scanf("%s",ch);
if (strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
{
sql = "update tb_book set bookname= '";
strcat(dest1,sql);
// printf("%s",sql);
bookname = (char*)malloc(20);
author = (char*)malloc(20);
bookconcern = (char*)malloc(20);
printf("\t 图书名:");
scanf("%s",bookname);
strcat(dest1,bookname);
// printf("%s",&bookname);
printf("\t 作者:");
scanf("%s",author);
strcat(dest1,"', author= '");
strcat(dest1,author);
printf("\t 出版社:");
scanf("%s",bookconcern);
strcat(dest1,"', bookconcern = '");
strcat(dest1,bookconcern);
strcat(dest1,"' where id= ");
strcat(dest1,id);
//printf("%s",dest1);
if(mysql_query(&mysql,dest1)!=0)
{
fprintf(stderr,"\t 不能修改记录!\n",mysql_error(&mysql));
}
else
{
printf("\t 修改成功!\n");
}
}
}
else
{
printf("\t 没有发现要修改的信息!\n");
}
}
mysql_free_result(result); //释放结果集
}
mysql_close(&mysql); //释放连接
exit(0);
}
void DeleteBook()
{
char id[10];
char *sql;
char dest[100] ={" "};
char dest1[100] ={" "};
if(!mysql_real_connect(&mysql,"127.0.0.1","root","root","db_books",0,NULL,0))
{
printf("\t 不能连接数据库!\n");
}
else
{
printf("\t 请输入您想要删除的图书编号. ");
scanf("%s",id);
sql = "select * from tb_book where id=";
strcat(dest,sql);
strcat(dest,id);
//printf("%s\n",dest);
if(mysql_query(&mysql,dest))
{ //如果查询失败
printf("\n 查询 tb_book 数据表失败! \n");
}
else
{
result=mysql_store_result(&mysql); //获得结果集
if(mysql_num_rows(result)!=NULL)
{ //有记录的情况,只有有记录取数据才有意义
printf("\t 发现记录信息,是否显示?(y/n) ");
scanf("%s",ch);
if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
{
printf("\t ════════════════════════════ \n");
printf("\t ***** 显示图书信息 ***** \n");
printf("\t ════════════════════════════ \n");
printf("\t图书编号 图书名 作者 出版社 \n");
printf("\t -------------------------------------------------------- \n");
while((row=mysql_fetch_row(result)))
{ //取出结果集中记录
fprintf(stdout,"\t %s %s %s %s \n",row[0],row[1],row[2],row[3]); //输出这行记录
}
printf("\t ════════════════════════════ \n");
}
printf("\t 是否删除?(y/n) ");
scanf("%s",ch);
if (strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
{
sql = "delete from tb_book where ID= ";
printf("%s",dest1);
strcat(dest1,sql);
strcat(dest1,id);
// printf("%s",dest1);
if(mysql_query(&mysql,dest1)!=0)
{
fprintf(stderr,"\t 不能删除记录! \n",mysql_error(&mysql));
}
else
{
printf("\t 删除成功!\n");
}
}
}
else
{
printf("\t 没有发现要删除的信息!\n");
}
}
mysql_free_result(result); //释放结果集
}
mysql_close(&mysql);
exit(0);
}
void QueryBook()
{
char id[10];
char *sql;
char dest[100] ={" "};
if(!mysql_real_connect(&mysql,"127.0.0.1","root","root","db_books",0,NULL,0))
{
printf("\t 不能连接数据库!\n");
}
else
{
printf("\t 请输入您想要查询的图书编号:");
scanf("%s",id);
sql = "select * from tb_book where id=";
strcat(dest,sql);
strcat(dest,id);
if(mysql_query(&mysql,dest))
{ //如果查询失败
printf("\n 查询 tb_book 数据表失败!\n");
}
else
{
result=mysql_store_result(&mysql); //获得结果集
if(mysql_num_rows(result)!=NULL)
{ //有记录的情况,只有有记录取数据才有意义
printf("\t ════════════════════════════ \n");
printf("\t 显示图书信息 \n");
printf("\t ════════════════════════════ \n");
printf("\t图书编号 图书名 作者 出版社 \n");
printf("\t -------------------------------------------------------- \n");
while((row=mysql_fetch_row(result)))
{ //取出结果集中记录
fprintf(stdout,"\t %s %s %s %s \n",row[0],row[1],row[2],row[3]); //输出这行记录
}
printf("\t ════════════════════════════ \n");
}
else
{
printf("\t 没有发现要查询的信息!\n");
}
mysql_free_result(result); //释放结果集
}
mysql_close(&mysql); //释放连接
}
exit(0);
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。