C语言图书馆管理系统

2023-10-27

C语言图书馆管理系统

全部代码如下:

#include <stdio.h>
#include<string.h>
#include<stdlib.h>
#include <mysql.h>
#pragma comment (lib,"libmysql.lib")

//#pragma comment ( lib,"xxx.lib" )  
//表示鏈接xxx.lib這個庫,告訴編譯器你要用到xxx.lib庫
//和在工程設置裡寫上鍊入xxx.lib的效果一樣,不過這種方法寫的程序別人在使用你的代碼的時候就不用再設置工程settings了。

MYSQL mysql;
MYSQL_RES *result;		//定义结果集变量
MYSQL_ROW row;		//定义行变量
char ch[2];

void inquire() {
	void menu();
	printf("\n\t显示主清单<y/n>\n");
	scanf("%s", ch);
	if (strcmp(ch, "y") == 0 || strcmp(ch, "Y") == 0) {
		menu();
	}
	else exit(0);
}

void ShowAll() {
	system("cls");
	mysql_init(&mysql);
	mysql_query(&mysql, "set names 'utf8'");
	if (!mysql_real_connect(&mysql, "localhost", "root", "密码", "db_book", 0, NULL, 0))
		printf("\ncan't connect db_book!\n");
	else
	{
		if (mysql_query(&mysql, "select * from tb_book"))
		{
			printf("查询失败\n");
		}
		else {
			puts("\t|=====================================================|\n");
			puts("\t|              显 示 所 有 图 书 信 息                |\n");
			puts("\t|=====================================================|\n");
			puts("\t|    图书编号       图书名       作者       出版社    |\n");
			result = mysql_store_result(&mysql);
			if (mysql_num_rows(result)) {
				while (row = mysql_fetch_row(result))
				{
	printf("\t\t%s\t     %s\t         %s\t    %s\n", row[0], row[1], row[2], row[3]);
				}
			}
			mysql_free_result(result);
		}
		puts("\t|=====================================================|\n");
		getchar();
		mysql_close(&mysql);//关闭连接
	}
}

void AddBook() {
	char id[10];
	char bookname[10],author[10], bookconcern[10], *sql;
	char dest[100] = { " " };
	system("cls");
	mysql_init(&mysql);
	if (!mysql_real_connect(&mysql, "localhost", "root", "xin088748*", "db_book", 0, NULL, 0))
		printf("can not connect\n");
	else {
		if (mysql_query(&mysql, "select * from tb_book")) {
			printf("can not open\n");
		}
		else
		{
			result = mysql_store_result(&mysql);
			mysql_num_rows(result);
			row = mysql_fetch_row(result);
			printf("\tID:");
			scanf("%s", id);
			if (mysql_num_rows(result)) {
				do {
					if (!strcmp(id, row[0])) {
						printf("\t记录存在");
						getchar();
						mysql_free_result(result);
						mysql_close(&mysql);
						return;
					}
				} while (row = mysql_fetch_row(result));
			}

			printf("\t图书名:");
			scanf("%s", bookname);
			printf("\t作者:");
			scanf("%s", author);
			printf("\t出版社:");
			scanf("%s", bookconcern);
			sql = "insert into tb_book (ID,bookname,author,bookconcern) values('";
			strcat(dest, sql);
			strcat(dest, id);
			strcat(dest, "','");
			strcat(dest, bookname);
			strcat(dest, "','");
			strcat(dest, author);
			strcat(dest, "','");
			strcat(dest, bookconcern);
			strcat(dest, "')");
			if (mysql_query(&mysql, dest))
				//fprintf(stderr, "error!", mysql_error(&mysql));
				printf("error!\n");
			else
			{
				mysql_free_result(result);
			}
		}
		mysql_close(&mysql);//关闭连接
	}
}

void ModifyBook() {
	system("cls");
	char dest[100];
	mysql_init(&mysql);
	mysql_query(&mysql, "set name 'utf8'");
	if (!mysql_real_connect(&mysql, "localhost", "root", "xin088748*", "db_book", 0, NULL, 0)) { puts("can't net mysql\n");
	return;
	}
	else {
		char id[10],*sql;
		char dest[100] = {" "};
		printf("请输入你要修改的图书编号:");
		scanf("%s", id);
		sql = "select * from tb_book where ID = ";
		strcat(dest, sql);
		strcat(dest, id);
		if (mysql_query(&mysql, dest)) {
			printf("\n  查询数据表失败\n");
		}
		else {
			result = mysql_store_result(&mysql);
			if (mysql_num_rows(result)) {
				puts("\t|=====================================================|\n");
				puts("\t|              显 示 所 有 图 书 信 息                |\n");
				puts("\t|=====================================================|\n");
				puts("\t|    图书编号       图书名       作者       出版社    |\n");
				while (row = mysql_fetch_row(result)) {
					printf("\t\t%s\t     %s\t          %s\t     %s\n", row[0], row[1], row[2], row[3]);
				}
				printf("Mondify? <y/n>\n");
				scanf("%s", ch);
				if (!strcmp(ch, "Y") || !strcmp(ch, "y")) {
					char bookname[10], author[10], bookconcern[10];
					char dest1[100] = {" "};
						printf("\t图书名:");
						scanf("%s", bookname);
						printf("\t作者:");
						scanf("%s", author);
						printf("\t出版社:");
						scanf("%s", bookconcern);
						sql = "update tb_book set bookname = '";
						strcat(dest1, sql);
						strcat(dest1, bookname);
						strcat(dest1, "',author = '");
						strcat(dest1, author);
						strcat(dest1, "',bookconcern = '");
						strcat(dest1, bookconcern);
						strcat(dest1, "' where ID = '");
						strcat(dest1, id);
						strcat(dest1, "'");
						if (mysql_query(&mysql,dest1)) printf("修改失败\n");
						else printf("修改成功\n");
				}
			}
			else
			{
				printf("没有发现要修改的信息\n");

			}
			mysql_free_result(result);
		}
	}
	mysql_close(&mysql);
}

void DeleteBook() {
	system("cls");
	mysql_init(&mysql);
	if (!mysql_real_connect(&mysql, "localhost", "root", "xin088748*", "db_book", 0, NULL, 0)) {
		printf("can't net mysql\n");
	}
	else {
		printf("你想要删除的编号:");
		char id[10];
		scanf("%s", id);
		char dest[100] = { " " };
		char *sql;
		sql = "select * from tb_book where ID = ";
		strcat(dest, sql);
		strcat(dest, id);
		if (mysql_query(&mysql, dest)) {
			printf("\n  查询数据表失败\n");
		}
		else {
			result = mysql_store_result(&mysql);
			if (mysql_num_rows(result)) {
				puts("\t|=====================================================|\n");
				puts("\t|              显 示 所 有 图 书 信 息                |\n");
				puts("\t|=====================================================|\n");
				puts("\t|    图书编号       图书名       作者       出版社    |\n");
				while (row = mysql_fetch_row(result)) {
					printf("\t\t%s\t     %s\t          %s\t     %s\n", row[0], row[1], row[2], row[3]);
				}
				printf("Delete? <y/n>\n");
				scanf("%s", ch);
				if (!strcmp(ch, "Y") || !strcmp(ch, "y")) {
					char dest1[100] = { " " };
					sql = "delete from tb_book where ID = ";
					strcat(dest1, sql);
					strcat(dest1, id);	
					printf("\n%s\t", dest1);
					if (mysql_query(&mysql, dest1)) printf("删除失败\n");
					else printf("删除成功\n");
				}
			}
			else puts("没有查询到此数据\n");
			mysql_free_result(result);
		}
	}
	mysql_close(&mysql);
}

void Querybook() {
	system("cls");
	mysql_init(&mysql);
	if (!mysql_real_connect(&mysql, "localhost", "root", "xin088748*", "db_book", 0, NULL, 0)) {
		puts("can't net mysql\n");
		return;
	}
	else {
		char id[10];
		char *sql, dest[100] = {" "};
		printf("请输入要查询的图书编号:\n");
		scanf("%s", id);
		sql = "select * from tb_book where ID = ";
		strcat(dest, sql);
		strcat(dest, id);
		if (mysql_query(&mysql, dest)) printf("查询失败\n");
		else {
			result = mysql_store_result(&mysql);
			if (mysql_num_rows(result)) {
				puts("\t|=====================================================|\n");
				puts("\t|              显 示 所 有 图 书 信 息                |\n");
				puts("\t|=====================================================|\n");
				puts("\t|    图书编号       图书名       作者       出版社    |\n");
				while (row = mysql_fetch_row(result)) {
					printf("\t\t%s\t     %s\t          %s\t     %s\n", row[0], row[1], row[2], row[3]);
				}
			}
			else puts("没有发现要查询的数据\n");
			mysql_free_result(result);
		}
	}
	mysql_close(&mysql);
}

void menu() {
	puts("\t|=====================================================|\n");
	puts("\t|         Welcome To Lemon Books System               |\n");
	puts("\t|=====================================================|\n");
	puts("\t|            1 - 显示所有图书信息                     |\n");
	puts("\t|            2 - 添加图书信息                         |\n");
	puts("\t|            3 - 修改图书信息                         |\n");
	puts("\t|            4 - 删除图书信息                         |\n");
	puts("\t|            5 - 查询图书信息                         |\n");
	puts("\t|            6 - 退出图书系统                         |\n");
	puts("\t|=====================================================|\n\n");

	puts("\tENTER YOUR CHOICE<1-6>\n");
	int i;
	scanf("%d", &i);
	while (i > 0 && i < 7) {
		switch (i) {
		case 1:ShowAll(); inquire(); break;
		case 2:AddBook(); inquire(); break;
		case 3:ModifyBook(); inquire(); break;
		case 4:DeleteBook(); inquire(); break;
		case 5:Querybook(); inquire(); break;
		default:puts("enter error!please enter again\n"); exit(0);
		}
		scanf("%d",&i);
	}
}

int main()
{
	menu();
}

喜欢的点个赞呗!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言图书馆管理系统 的相关文章

随机推荐

  • vscode php配置出错,VS Code 调试 PHP有关配置

    一 安装VS CODE WampServer 二 用VS Code 打开php项目后 提示 Cannot validate since no PHP executable is set Use the setting php validat
  • linux重启网卡的命令行,linux系统重启网卡命令

    关于win10系统开机总是要禁用重启网卡才能联网如何解决就为大家介绍到这边了 有遇到同样情况的用户们可以采取上面的方法步骤来解决 问题2已知win7下不需要删除qos协议 在跑无盘模式下以前最好不要安装厂商网卡驱动或修改win7网络协议种类
  • iOS_适配 iOS16 转屏

    iOS 适配 iOS16 转屏 问题1 iOS 16 屏幕旋转报错 Orientation BUG IN CLIENT OF UIKIT Setting UIDevice orientation is not supported Pleas
  • python 列表中最长字符串,Python选择列表中最长字符串的最有效方法?

    I have a list of variable length and am trying to find a way to test if the list item currently being evaluated is the l
  • 大数据量定时超时-精确到秒

    一 背景 开发过程中或多或少会遇到某些场景 要求数据在规定的时间内如果没处理就要失效掉 如 用户下单 订单在30分钟内没支付就要自动取消 防止长时间占用库存等 面对这种情况我们来扒拉一下 系统启一个定时任务 定时扫库 取出超过30分钟的数据
  • 蓝桥杯2020年第十一届国赛真题-重复字符串

    说在前面 本题的标程是存在问题的 下面会分析标程与正确程序 题目 题目连接 题解 思维吧 整体思路 将字符串分割成k段 假设每段m个字符 我们统计每段相同位置的每种字符出现的次数 每段都统计上后 每个位置 0 m 1 都取出现次数最多的字符
  • 排序算法-选择排序

    文章目录 关于选择排序 选择排序设计思路 选择排序实现代码 关于选择排序 选择排序是排序算法中最简单的一种 它的工作过程是基于多次重复性的遍历当前数字集合得出并最大值 最小值并剔除的行为来进行的 选择排序设计思路 关于选择排序设计思路 非递
  • wx.getLocation接口申请失败 失败原因总结 解决思路 解决方案 案例

    wx getLocation接口申请失败 失败原因总结 解决思路 解决方案 案例 目录 wx getLocation接口申请失败 失败原因总结 解决思路 解决方案 案例 一 添加类目和设置主营类目 基本设置 服务类目 二 在开发管理 接口设
  • python爬取京东商品列表信息

    爬遍电商之京东篇 目标是爬取指定商品的商品列表信息 包括商品名 价格 评论数 店铺名 打开京东页面 随便搜一个笔记本 F12打开NetWork开始抓包 翻个3页 遇到断点就按F8执行 然后看到第一个返回内容的ajax请求 是返回了第1页的后
  • Python Unittest简明教程

    1 概述 单元测试是一种软件测试方法 通过来测试源代码中的各个单元 例如类 方法等 以确定它们是否符合要求 直观上来说 可以将单元视为最小的可测试部分 单元测试是程序员在开发过程中创建的短代码片段 它构成了组件测试的基础 2 unittes
  • IC项目小任务(ncsim/tcl脚本实现)。提取SRAM实例层次结构、对应module名称、对应位宽深度

    层次结构对应的例化名和spec sram里面的模块名一一对应 ncsim终端命令里 可以使用脚本实现 set scope list find scope tbench U top recursive all internals wires
  • 回形数的思路,规律及输出代码(数组章节即学即练)

    整体思路图 规律解释及代码 package shuzu import java util Scanner public class shuzu public static void main String args 回形数整体思路 步骤 1
  • 如何修改容docker容器的shmsize共享内存大小

    很多同学在docker里面运行程序时会得到这样的错误 RuntimeError DataLoader worker pid 6209 is killed by signal Bus error It is possible that dat
  • uniapp引入uview组件库

    uniapp引入uview组件库 引言 引入方法 引言 新学期又双叒开始了 一看学校的教程要求少不了得做个小的demo为最后的课程设计做准备的 通常这个课程设计是比较花时间的 所以这次决定提前准备 毕竟都大三了 估计下学期就得去图书馆 坐牢
  • QT中的文件操作

    QT中的文件操作基于QFile类 1 打开文件 open bool open File fh QIODevice OpenMode mode QFileDevice FileHandleFlags handleflags DontClose
  • PCB相关知识-焊盘Pad

    文章目录 焊盘Pad 常规焊盘Reguar Pad 热焊盘Thermal Pad 隔离焊盘Anti Pad 总结 焊盘Pad 焊盘就是元器件封装中的引脚 在实际应用中使用焊锡将电阻 电容 电感 芯片等元器件的引脚和焊盘Pad连接在一起 电气
  • DeepSort算法简介

    SORT算法 SORT Simple Online and Realtime Tracking 算法是一种目标追踪算法 其简单有效 基于IOU来匹配 并且融入了卡尔曼滤波和匈牙利算法来降低ID Switch 可以说 追踪算法的目标只有两个
  • 内核态do_gettimeofday()、用户态gettimeofday()获取指令执行时间

    背景 芯片开发阶段 有个硬件有个配置一直无法生效 后面发现是软件写入使能还未能生效 硬件就开始配置了 导致不成功 加个延时就可解决 只是知道应该在纳秒级别 但具体十位还是百位级别 不太清楚了 所以就让我搞个代码测试下 写入一次寄存器需要的时
  • 瞎写

    1 小时候爱情就是一切 长大了 爱情变成可有可无的东西 就如同饭菜 有它 饭更香 没有它 饭还是饭 饿了也得吃下去 2 我想滚蛋 在这儿真的是学无所学 我都想自己开始创业 真的对不起老板给的这份工资 整天无所事事 3 不是合适不合适的问题
  • C语言图书馆管理系统

    C语言图书馆管理系统 全部代码如下 include