2024.3.6 网络编程

思维导图

作业:数据库操作的增、删、改完成

程序代码:

#include <myhead.h>
void do_add(sqlite3 *ppDb)
{
	char *errmsg = NULL;
	char sql[128] = "insert into 'Worker' values(1001,'小张',15000);";
	// "insert into 'Worker' values(1002,'小刘',9000);"
	// "insert into 'Worker' values(1003,'小徐',21000);"
	// "insert into 'Worker' values(1004,'小于',7800);"
	if (sqlite3_exec(ppDb, sql, NULL, NULL, &errmsg) != SQLITE_OK)
	{
		printf("exec error:%s\n", errmsg);
		sqlite3_free(errmsg);
		errmsg = NULL;
		return;
	}
	printf("Add success\n");
	return;
}
 
void do_del(sqlite3 *ppDb)
{
	char *errmsg = NULL;
	char sql[128] = "delete from Worker where numb = 1001;";
	if (sqlite3_exec(ppDb, sql, NULL, NULL, &errmsg) != SQLITE_OK)
	{
		printf("exec error:%s\n", errmsg);
		sqlite3_free(errmsg);
		errmsg = NULL;
		return;
	}
	printf("Delete success\n");
}
void do_update(sqlite3 *ppDb)
{
	char *errmsg = NULL;
	char sql[128] = "update Worker set salary = 8000 where numb = 1001;";
	if (sqlite3_exec(ppDb, sql, NULL, NULL, &errmsg) != SQLITE_OK)
	{
		printf("exec error:%s\n", errmsg);
		sqlite3_free(errmsg);
		errmsg = NULL;
		return;
	}
	printf("Update success\n");
}
void do_search(sqlite3 *ppDb) {}
 
int main(int argc, const char *argv[])
{
	sqlite3 *ppDb = NULL;
	if (sqlite3_open("./my.db", &ppDb) != SQLITE_OK)
	{
		printf("sqlite3_open error:%s\n", sqlite3_errmsg(ppDb));
		return -1;
	}
	printf("sqlite3_open success\n");
 
	//创建数据表
	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("exec error:%s\n", errmsg);
		sqlite3_free(errmsg);
		errmsg = NULL;
		return -1;
	}
	printf("Worker table create success\n");
 
	int menu = -1;
	while (1)
	{
		system("clear");
		printf("\t\t=======xx公司员工管理系统xx====\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("Enter mode:");
		scanf("%d", &menu);
		getchar();
 
		switch (menu)
		{
		case 1:
		{
			do_add(ppDb);
		}
		break;
		case 2:
		{
			do_del(ppDb);
		}
		break;
		case 3:
		{
			do_update(ppDb);
		}
		break;
		case 4:
		{
			do_search(ppDb);
		}
		break;
		case 0:
			goto END;
 
		default:
			printf("输入错误,请重新输入\n");
		}
 
		printf("请输入任意键,按回车清屏\n");
		while (getchar() != '\n')
			;
	}
 
END:
	sqlite3_close(ppDb);
	return 0;
}

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

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

相关文章

Sentinel 面试题及答案整理,最新面试题

Sentinel的流量控制规则有哪些&#xff0c;各自的作用是什么&#xff1f; Sentinel的流量控制规则主要包括以下几种&#xff1a; 1、QPS&#xff08;每秒查询量&#xff09;限流&#xff1a; 限制资源每秒的请求次数&#xff0c;适用于控制高频访问。 2、线程数限流&#xf…

基于Nandflash的Bootloader的设计与实现

摘要&#xff1a;Bootloader是系统上电或复位后首先运行的一段代码&#xff0c;是连接操作系统和硬件的桥梁&#xff0c;负责初始化硬件和引导操作系统等。目前已有很多通用的Bootloader&#xff0c;但是如何根据特定的嵌入式平台&#xff0c;移植自己的引导程序是一个重点和难…

【开源项目】ollama:本地部署大模型

文章目录 1. 安装2. 使用体验2.1. 运行llama22.2. 运行llama2-chinese 项目地址&#xff1a;Github - ollama/ollama 注意&#xff1a;项目对硬盘容量、内存要求比较高。 1. 安装 从Github项目的最新release下载安装包&#xff0c;点击运行即可。 2. 使用体验 2.1. 运行ll…

个人博客系列-后端项目-用户验证(5)

介绍 创建系统管理app&#xff0c;用于管理系统的用户&#xff0c;角色&#xff0c;权限&#xff0c;登录等功能&#xff0c;项目中将使用django-rest_framework进行用户认证和权限解析。这里将完成用户认证 用户验证 rest_framework.authentication模块中的认证类&#xff…

Unity的相机跟随和第三人称视角二

Unity的相机跟随和第三人称视角二 展示介绍第二种相机模式远离代码总结 展示 我录的视频上可能看不太出来&#xff0c;但是其实今天的这个方法比原来写的那个方法更简便并且死角更少一些。 这里我也做了两个人物偏移的视角&#xff0c;按Q是原来的两个相机模式切换&#xff0c…

内容管理平台用这几个就够了,简单又好用

对于大多数企业和自由职业者来说&#xff0c;选择合适的内容管理平台已经成为一种必备的技能。良好的内容管理平台可以赋能你的团队&#xff0c;让你们更好地协作、管理和分享内容。不管你是要发布博客文章&#xff0c;还是需要管理复杂的项目文档&#xff0c;都可以通过内容管…

解读Linux文件目录权限:srw-rw----

在Linux系统中&#xff0c;文件或目录的权限由10个字符表示&#xff0c;分为四段&#xff1a; 第一个字符&#xff1a;表示文件类型。d代表目录&#xff0c;-代表普通文件&#xff0c;l代表符号链接&#xff0c;s代表套接字&#xff08;socket&#xff09;&#xff0c;c代表字符…

以太网帧格式

以太网帧格式 以太网帧格式前导码&#xff08;Preamble&#xff09;帧起始界定符&#xff08;SFD&#xff0c;Start Frame Delimiter&#xff09;以太网帧头目的MAC地址源MAC地址长度/类型 数据段帧检验序列&#xff08;FCS&#xff0c;Frame Check Sequence&#xff09;帧间隙…

Linux 文件操作命令

1 文件与目录操作 cd /home 进入 ‘/home’ 目录 cd .. 返回上一级目录cd ../.. 返回上两级目录cd - 返回上次所在目录cp file1 file2 将file1复制为file2cp -a dir1 dir2 复制一个目录 cp -a /tmp/dir1 . 复制一个…

网络安全审计是什么意思?与等保测评有什么区别?

网络安全审计和等保测评在信息安全领域中都是非常重要的环节。但不少人对于这两者是傻傻分不清楚&#xff0c;今天我们就来简单聊聊网络安全审计是什么意思&#xff1f;与等保测评有什么区别&#xff1f; 网络安全审计是什么意思&#xff1f; 网络安全审计是通过对网络系统和网…

selenium鼠标操作实战

鼠标操作实战 鼠标单击操作 click()内置鼠标操作包ActionChains鼠标双击操作double_click()鼠标右击操作context_click()鼠标指针悬浮操作move_to_element(ele)鼠标拖动操作drag_and_drop(source, target)其他鼠标操作汇总 鼠标单击操作 click() from selenium import webdriv…

MySQL存储过程2——if、case、while、repeat、loop、cursor、handler

1、if用作条件判断 1.1、语法结构 IF 条件1 THEN... ELSEIF 条件2 THEN... ELSE... END IF; 在if条件判断的结构中&#xff0c;Else if结构可以有多个&#xff0c;也可以没有。Else结构可以有&#xff0c;也可以没有 1.2、示例 根据定义的分数score变量&#xff0c;判断当…

openssl调试记录

openssl不能直接解密16进制密文&#xff0c;需要把密文转化成base64格式才能解密 调试记录如下&#xff1a;

搭建SpringBoot项目——开发环境搭建开发环境搭建

简介 SpringBoot 是 Java 社区最有影响力之一的开源的Spring后端开发框架&#xff0c;也是企业级应用开发的首选技术&#xff0c;Spring Boot 拥有良好的技术基因&#xff0c;它是伴随着Spring 4 而产生的技术框架&#xff0c;在继承了 Spirng 框架所有优点的同时也为开发者带来…

scrapy 爬虫:多线程爬取去微博热搜排行榜数据信息,进入详情页面拿取第一条微博信息,保存到本地text文件、保存到excel

如果想要保存到excel中可以看我的这个爬虫 使用Scrapy 框架开启多进程爬取贝壳网数据保存到excel文件中&#xff0c;包括分页数据、详情页数据&#xff0c;新手保护期快来看&#xff01;&#xff01;仅供学习参考&#xff0c;别乱搞_爬取贝壳成交数据c端用户登录-CSDN博客 最终…

AI智商排名:Claude-3首次突破100

用挪威门萨&#xff08;智商测试题&#xff09;中 35 个问题对chatGPT等人工智能进行了测试&#xff1a; ChatGPT 对ChatGPT进行了两次挪威门萨测试&#xff0c;在 35 个问题中&#xff0c;它平均答对了 13 个&#xff0c;智商估计为 85。 测试方法 每个人工智能都接受了两次…

【b站咸虾米】1 Vue介绍 2021最新Vue从基础到实例高级_vue2_vuecli脚手架博客案例

课程地址&#xff1a;【2021最新Vue从基础到实例高级_vue2_vuecli脚手架博客案例】 https://www.bilibili.com/video/BV1pz4y1S7bC/?share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 感觉尚硅谷的Vue看完忘得差不多了&#xff0c;且之前学过咸虾米的unia…

Java agent技术的注入利用与避坑点

什么是Java agent技术&#xff1f; Java代理&#xff08;Java agent&#xff09;是一种Java技术&#xff0c;它允许开发人员在运行时以某种方式修改或增强Java应用程序的行为。Java代理通过在Java虚拟机&#xff08;JVM&#xff09;启动时以"代理"&#xff08;agent…

Redis(十七)分布式锁

文章目录 面试题分布式锁锁的种类分布式锁需要具备的条件和刚需分布式锁 案例nginx分布式微服务部署&#xff0c;单机锁问题分布式锁注意事项lock/unlocklua脚本自研版的redis分布式锁搞定lua脚本 可重入锁可重入锁种类可重入锁hset实现&#xff0c;对比setnx&#xff08;重要&…

react高阶组件:如何同时兼容class类组件和函数式组件。

场景&#xff1a; 每个页面都要实现分享功能&#xff0c;但是页面有些是用class类&#xff0c;有些又直接是函数式。 方案1&#xff1a; 写2套方法。各自引用。&#xff08;维护不太好&#xff0c;改要改2遍&#xff09; 方案2&#xff1a; 可以封一个 jsx的组件&#xff0c…