44、网络编程/数据库相关操作练习20240306

一、代码实现数据库的创建(员工信息表),并存储员工信息(工号、姓名、薪资),能实现增加人员信息、删除人员信息、修改人员薪资操作。

代码:

#include<myhead.h>

int do_update(sqlite3 *ppDb);
int do_delete(sqlite3 *ppDb);
int do_add(sqlite3 *ppDb);
int main(int argc, const char *argv[])
{
	sqlite3 *ppDb=NULL;//创建数据库操作句柄

	if(sqlite3_open("./my.db",&ppDb)!=SQLITE_OK)//打开数据库文件
	{
		printf("sqlite3_open error\n");
		return -1;
	}
	puts("sqlite3_open success");
	//创建数据表 命名Worker存放员工信息 表内包含工号、姓名、薪资
	char sql[128]="create table if not exists Worker(numb int,name char,salary double)";
	char *errmsg=NULL;

	if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
	{
		printf("create exec error:%s\n",errmsg);
		sqlite3_free(errmsg);
		errmsg=NULL;
		return -1;
	}
	printf("员工信息表创建成功\n");
	//使用数表据存储员工信息 实现增删改功能
	int menu=-1;
	for(;;)
	{
		system("clear");
		printf("\t\t---XXX公司员工信息管理系统---\n");
		printf("\t\t------1.添加员工信息------\n");
		printf("\t\t------2.删除员工信息------\n");
		printf("\t\t------3.修改员工信息------\n");
		printf("\t\t------4.查询员工信息------\n");
		printf("\t\t------0.退出------\n");

		printf("请输入操作码:");
		scanf("%d",&menu);
		getchar();
		switch(menu)
		{
		case 1:
			{
				do_add(ppDb);//增加人员信息
			}break;
		case 2:
			{
				do_delete(ppDb);//删除人员信息
			}break;
		case 3:
			{
				do_update(ppDb);//修改人员信息
			}break;
		case 4:
			{
			//	do_search(ppDb);
			}break;		
		case 0:goto END;
		default:
			   puts("您输入的功能有误,请重新输入!");
		}
		printf("请输入任意键,按回车清屏\n");
		while(getchar()!='\n');
	}
END:
	sqlite3_close(ppDb);
	return 0;
}
int do_add(sqlite3 *ppDb)
{
	char ch[64]="";//存储终端输入的信息
	char *errmsg=NULL;
	puts("请输入员工信息 格式:(工号,'姓名',薪资)");
	fgets(ch,sizeof(ch),stdin);
	char buf[128]="insert into Worker values ";
	strcat(buf,ch);//组成sqlites插入信息的命令 字符串
	if(sqlite3_exec(ppDb,buf,NULL,NULL,&errmsg)!=SQLITE_OK)//执行
	{
		printf("insert exec error:%s\n",errmsg);
		sqlite3_free(errmsg);
		errmsg=NULL;
		return -1;
	}
	printf("信息插入成功\n");
	
	return 0;
}
int do_delete(sqlite3 *ppDb)
{
	char ch[64]="";
	char *errmsg=NULL;
	puts("请输入要删除的员工工号");
	fgets(ch,sizeof(ch),stdin);
	char buf[128]="delete from Worker where numb=";
	strcat(buf,ch);//组成sqlites删除信息的命令字符串
	if(sqlite3_exec(ppDb,buf,NULL,NULL,&errmsg)!=SQLITE_OK)//执行
	{
		printf("insert exec error:%s\n",errmsg);
		sqlite3_free(errmsg);
		errmsg=NULL;
		return -1;
	}
	printf("删除成功\n");
	return 0;
}
int do_update(sqlite3 *ppDb)
{
	char ch1[64]="";
	char ch2[64]="";
	char *errmsg=NULL;
	puts("请输入要修改薪资的员工工号:");
	fgets(ch1,sizeof(ch1),stdin);
	puts("请输入修改后的薪资:");
	fgets(ch2,sizeof(ch2),stdin);
	char buf[128]="update Worker set salary=";
	strcat(buf,ch2);
	strcat(buf," where numb=");
	strcat(buf,ch1);//组成sqlites修改记录的命令字符串
	if(sqlite3_exec(ppDb,buf,NULL,NULL,&errmsg)!=SQLITE_OK)//执行
	{
		printf("insert exec error:%s\n",errmsg);
		sqlite3_free(errmsg);
		errmsg=NULL;
		return -1;
	}
	printf("修改成功\n");
	
	return 0;
}

运行:

思维导图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/434871.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深色系可视化界面看腻了,来点浅色系?安排,20页来了。

只要不放在大屏上展示&#xff0c;贝格前端工场还是非常推崇浅色系的可视化界面&#xff0c;把它作为配色的首选 。浅色系可视化界面具有以下几个优势&#xff1a; 清晰明了 浅色系界面通常使用明亮的颜色&#xff0c;如白色、浅灰色等&#xff0c;使界面元素更加清晰可见。这…

微前端之什么是微前端

什么是微前端 微前端分类 基于路由的微前端&#xff1a;组件化微前端&#xff1a;iframe嵌入式微前端&#xff1a; 优点缺点 动态加载/懒加载微前端&#xff1a;微应用容器化方案&#xff1a; 微前端解决方案 single-spa阿里巴巴 Cloud Alfaiframe 方案Web ComponentsModule Fe…

【工作记录】Threejs学习笔记-引入OrbitControls

前言 前一篇文章我们介绍了three.js中的基础概念&#xff0c;并给出了展示整体流程的一个简单示例&#xff0c; 本文我们继续研究。 问题 我们在很多3d效果图上都能看到鼠标移动或者缩进实现旋转或者放大缩小的效果&#xff0c;这个在three.js中是通过OrbitControls这个组件…

计算机系统缺少cv100.dll文件解决方法(最新)

cv100.dll 是一个Windows操作系统中的动态链接库&#xff08;DLL&#xff09;文件。DLL文件是包含可由多个程序共享的代码和数据的模块&#xff0c;以减少磁盘空间占用并提高系统性能。根据收集到的信息&#xff0c;cv100.dll 文件可能与图像处理、计算机视觉相关的功能有关。 …

springcloud:3.8测试限流

服务提供者【test-provider8001】 Openfeign远程调用服务提供者搭建 文章地址http://t.csdnimg.cn/06iz8 相关接口 测试远程调用&#xff1a;http://localhost:8001/payment/index 服务消费者【test-consumer-resilience4j8004】 Openfeign远程调用消费者搭建 文章地址http://t…

功能安全概念梳理二

什么是SEooC&#xff1f;SEooC和element有什么不一样&#xff1f; 参考链接&#xff1a;车规级 | ISO26262中对独立安全要素&#xff08;SEooC&#xff09;的开发要求 汽车功能安全(ISO 26262)系列: 到底什么是SEooC开发 安全措施(Safety measure)和安全机制(Safety mechanis…

[Redis]——缓存击穿和缓存穿透及解决方案(图解+代码+解释)

目录 一、缓存击穿&#xff08;热点Key问题&#xff09; 1.1 问题描述 1.2 解决方案及逻辑图 1.2.1 互斥锁 1.2.2 逻辑过期 二、缓存穿透 2.1 问题描述 2.2 解决方案逻辑图 2.2.1 缓存空对象 2.2.2 布隆过滤器 一、缓存击穿&#xff08;热点Key问题&#xff09; 个人理…

鸿蒙岗位大反攻:几十家头部应用加入鸿蒙后,鸿蒙工程师薪酬水涨船高

华为原生鸿蒙生态开始百花齐放&#xff1a;已经有几十家国内应用软件&#xff0c;宣布适配华为原生鸿蒙APP&#xff0c;其中就包括支付宝、美团、新浪微博、小红书、B站、高德地图、58同城等多家头部应用。 因为华为已经公开宣布&#xff1a;2024年的鸿蒙5.0系统将不再兼容安卓…

Redis(5.0)

1、什么是Redis Redis是一种开源的、基于内存、支持持久化的高性能Key-Value的NoSQL数据库&#xff0c;它同时也提供了多种数据结构来满足不同场景下的数据存储需求。 2、安装Redis&#xff08;Linux&#xff09; 2.1、去官网&#xff08;http://www.redis.cn/&#xff09;下…

Hololens 2应用开发系列(3)——MRTK基础知识及配置文件配置(中)

Hololens 2应用开发系列&#xff08;3&#xff09;——MRTK基础知识及配置文件配置&#xff08;中&#xff09; 一、前言二、输入系统2.1 MRTK输入系统介绍2.2 输入数据提供者&#xff08;Input Data Providers&#xff09;2.3 输入动作&#xff08;Input Actions&#xff09;2…

云服务器迁移--天翼云篇(最省钱解决官方未解问题)

0x00 背景 距离上次从华为云迁移到天翼云过了一年之久&#xff0c;之前买的一年期天翼云服务器快到期了&#xff0c;这次需要把这个池子(内蒙)的天翼云服务器迁移到新买的另一个池子的天翼云里。上一篇文章华为云迁移到天翼云教程在 云服务器迁移 (全网最省钱最详细攻略)_服务…

二分以及练习题目

二分模板 判断是否可以二分 &#xff08;1&#xff09;单调性 备选答案集是有序的 &#xff08;2&#xff09;二段性 在检查了mid是否符合要求之和&#xff0c;我可以舍弃左右某一边的答案 两个模板 关键词&#xff1a;满足条件的最小值&#xff0c;最大值最小&#xff0…

Django学习记录08——图表及文件上传案例

1.图表Echarts的应用 Apache ECharts 1.1 使用方法 引用echarts.js即可到官方文档中查询使用 1.2 常用图标的使用 图表展示页面的部署&#xff08;主要展示折线图、柱状图、饼图&#xff09; {% block content %}<div class"container"><div class&qu…

李沐动手学习深度学习——4.1练习

1. 计算pReLU激活函数的导数。 pReLU激活函数公式根据课本有如下&#xff1a; p R e L U ( x ) max ⁡ ( 0 , x ) α min ⁡ ( 0 , x ) \mathrm{pReLU}(x) \max(0, x)\alpha \min(0,x) pReLU(x)max(0,x)αmin(0,x) 对应的函数图像为: 对应的导数计算为&#xff1a; d p R…

github双因子认证

最近换了个安卓手机&#xff0c;打算让之前的苹果手机退役了&#xff0c;所以需要重新搞GitHub的Two-factor authentication 步骤如下&#xff1a; 1. 访问安全中心 https://github.com/settings/security 2. 点击Authenticator app右侧按钮 3. 下载腾讯身份验证器&#xff…

解密程序员的“藏宝图”:我的祖传代码大公开

程序员是如何看待“祖传代码”的&#xff1f; 大家好&#xff0c;我是小明&#xff0c;一位充满好奇心和分享热情的程序员。今天&#xff0c;我要为大家揭开我心中的“藏宝图”——那些我认为值得传世的祖传代码。让我们一同踏上这场奇妙的代码冒险之旅吧&#xff01; 宝物一…

WMS仓储管理系统在电子企业中的应用效果如何

一、WMS仓储管理系统的概念与重要性 在当今信息化与自动化的时代&#xff0c;仓储管理不再仅仅是简单的物品存储和分发。仓库作为供应链中的核心环节&#xff0c;其管理效率和准确性直接影响到企业的运营成本和客户满意度。WMS仓储管理系统应运而生&#xff0c;成为电子企业提…

代码随想录算法训练营第三十八天|509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

509. 斐波那契数 刷题https://leetcode.cn/problems/fibonacci-number/description/文章讲解https://programmercarl.com/0509.%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0.html#%E7%AE%97%E6%B3%95%E5%85%AC%E5%BC%80%E8%AF%BE视频讲解https://www.bilibili.com/video/BV…

微服务如何保证对外接口的安全?可以这样做!

如果你的微服务需要向第三方开放接口&#xff0c;如何确保你提供的接口是安全的呢&#xff1f; 1. 什么是安全接口 通常来说&#xff0c;要将暴露在外网的 API 接口视为安全接口&#xff0c;需要实现防篡改和防重放的功能。 1.1 什么是篡改问题&#xff1f; 1.1.1 如何解决篡…

GEE 依照范围裁剪 下载Sentinel-2数据

0. GEE介绍 Google Earth Engine&#xff08;GEE&#xff09; 是由Google开发的一种云端平台&#xff0c;旨在提供强大的地理空间数据处理和分析工具。GEE集成了大量的遥感影像数据和地理空间数据集&#xff0c;以及高性能的计算资源&#xff0c;使用户能够在云端高效地进行大规…