C语言实现图书管理系统开发
作者:D@@
这篇文章主要为大家详细介绍了C语言实现图书管理系统开发,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了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); /*将图书编号追加到sql语句后面*/ 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); /*将图书编号追加到sql语句后面*/ //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); /*追加sql语句*/ printf("\t 出版社:"); scanf("%s",bookconcern); /*输入出版社*/ strcat(dest1,"', bookconcern = '"); strcat(dest1,bookconcern); /*追加sql语句*/ 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); /*将图书编号追加到sql语句后面*/ //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); /*将图书编号追加到sql语句后面*/ 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); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。