c语言图书管理系统_c语言版图书管理系统
c语言图书管理系统由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言版图书管理系统”。
C语言——图书管理系统
代码部分: #include #include #include #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(“nnnnn”);
printf(“t╔═══════════════════════════╗n”);
printf(“t║
Welcome To Lemon Books System
║n”);
printf(“t╠═══════════════════════════╣n”);
printf(“t║t 1添加图书信息
║n”);
printf(“t║t 3删除图书信息
║n”);
printf(“t║t 5退出
║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,“127.0.0.1”,“root”,“111”,“db_books”,0,NULL,0))
{
printf(“nt 不能连接数据库!n”);
}
else
{
/*数据库连接成功*/
if(mysql_query(&mysql,“select * from tb_book”))
{
//如果查询失败
printf(“nt 查询 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(“nt 没有记录信息!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”,“111”,“db_books”,0,NULL,0))
{
printf(“nt 不能连接数据库!n”);
}
else
{
/*数据库连接成功,插入数据*/
printf(“t ════════════════════════════ n”);
printf(“t
添 加 图 书 信 息
n”);
printf(“t ════════════════════════════ n”);
if(mysql_query(&mysql,“select * from tb_book”))
{
//如果查询失败
printf(“nt 查询 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(“nt 记录存在,按任意键继续!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);
//释放连接
}
inquire();
/*询问是否显示主菜单*/ }
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”,“111”,“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(“%sn”,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);
//释放连接
inquire();
/*询问是否显示主菜单*/ }
void DeleteBook()
/*删除图书信息*/ {
char id[10];
/*结果集中的行数*/
char *sql;
char dest[100] ={“
”};
char dest1[100] ={“
”};
if(!mysql_real_connect(&mysql,“127.0.0.1”,“root”,“111”,“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(“%sn”,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);
inquire();
/*询问是否显示主菜单*/ }
void QueryBook()
/*查询图书信息*/ {
char id[10];
/*结果集中的行数*/
char *sql;
char dest[100] ={“
”};
if(!mysql_real_connect(&mysql,“127.0.0.1”,“root”,“111”,“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);
//释放连接
}
inquire();
/*询问是否显示主菜单*/ }
说明部分
附加MySQL数据库
将工程文件夹中的data文件夹下的db_books文件夹拷贝到本地Mysql数据库安装文件夹的data文件夹中。即可完成对数据库的附加。
连接MySql的步骤
MySQL为C语言提供了连接数据库的API,要想正常使用这些API,需要做以下两件事情:(1)包含这些API的声明文件,即mysql.h。
(2)让编译器找到这些API的可执行程序,即DLL库。下面介绍一下详细的步骤: 1.
下面解决,让编译器找到mysql.h的问题。需要在编译环境中作如下的设置: 在Visual C++ 6.0中,选择Tools(工具)/Options(选项)菜单项,如下图所示。
选择菜单命令
即可打开Options对话框,在Options对话框中选择Directories选项卡,在Show directories for下拉列表框中选择Include files选项,在Directiories列表框中添加本地安装MySQL的include目录路径。如下图所示。默认的路径应该在C:Program FilesMySQLMySQL Server 5.0include。
添加mysql.h文件
通过上述设置,编译器就可以知道MySQL的API接口中有哪些函数,以及函数的原型是怎样的。在编译时,所编写的程序已经能够通过编译(compile)这步了。
2.引入库函数
经过上一步的设置,程序已经可以编译通过了,但是编译通过并不等于可以生成可执行文件。还需要告诉编译器这些API函数的可执行文件在哪个DLL文件(libmysql.dll)中。
在工程中选择Tools/Options菜单命令,将弹出Options对话框,在该对话框中选择Directories选项卡,在Show directories for下拉列表框中选择Include files选项。添加本地安装的MySQL的Lib目录路径。默认的安装路径是C:Program FilesMySQLMySQL Server 5.0libdebug 或者C:Program
FilesMySQLMySQL Server 5.0libopt)。设置完成的效果如下图所示。
引用库
单击OK按钮,关闭Options对话框。选择Project/Settings菜单命令。如下图所示。
选择Project/Settings菜单项
下面添加libmysql.lib到工程中。选择Project/Settings菜单项,将弹出Project Settings对话框,在该对话框中选择Link选项卡。在Object/library modules文本框末尾添加libmysql.lib。如下图所示。
添加libmysql.lib到工程中
最好将libmysql.lib以及libmysql.dll文件拷贝到工程的目录下。设置完成后就可以运行程序了程序运行界面如下图所示:
C语言程序设计实验报告题 目: 图书管理管理系统 院 系: 信息科技学院 专 业: 姓 名: 学 号:指导教师: 杨呈勇 日 期: 09-09-181 问题定义 …………………………………………………......
图书管理系统源代码#include #include cla Book{ // 书籍基类 protected: char Title[40]; // 书名 long Code; // 条码 int Type; // 0表示书,1表示杂志 public: Book();......
经过大学四年理论课程的学习,以及校内校外的实践,极大的丰富了自身的理论基础,并且也具备了一些处理简单问题的能力,但即将踏上社会的我深知这还远远不够,因此我利用了毕业设计的......
图书管理系统背景:当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使......
课程设计任务书一、题目:二、课程设计班级及小组成员:三、课程设计起止时间:四、原始数据及主要任务:1、系统分析与设计:对系统进行调研,详细分析系统,设计出图书管理系统网络版实......
