2025.1.2
练习:
1> 创建一个工人信息库,包含工号(主键)、姓名、年龄、薪资。
2> 添加三条工人信息(可以完整信息,也可以非完整信息)
3> 修改某一个工人的薪资(确定的一个)
4> 展示出工资在10000到20000之间的所有工人信息
5> 删除掉指定姓名工人的信息
6> 删除工人信息库
#include<myhead.h>
#include<sqlite3.h>sqlite3 * creat_sqlite() //创建数据库并返回数据库句柄
{const char *p = "./my.db";sqlite3 *ppDb;if(sqlite3_open(p,&ppDb)!=SQLITE_OK) //调用数据库提供的第三方库函数{printf("打开数据库失败\n");printf("%s\n",sqlite3_errmsg(ppDb)); //错误信息printf("%d\n",sqlite3_errcode(ppDb)); //错误码printf("sqlite3_open");}return ppDb; //返回数据库句柄
}
void insert_worker(sqlite3 *ppDb) //插入员工信息
{char sql[1024];char *errmsg; //存储错误信息的指针sprintf(sql,"%s","create table worker(num int primary key,name char,age int,salary int);");if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK){printf("%s\n",sqlite3_errmsg(ppDb)); //错误信息printf("%d\n",sqlite3_errcode(ppDb)); //错误码}printf("创建表格成功\n");int num;char name[100];int age;int salary;printf("请输入你要添加的工人信息:\n");scanf("%d %s %d %d",&num,name,&age,&salary);getchar();snprintf(sql,sizeof(sql),"insert into worker values(%d,\"%s\",%d,%d);",num,name,age,salary);if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK){printf("%s\n",sqlite3_errmsg(ppDb)); //错误信息printf("%d\n",sqlite3_errcode(ppDb)); //错误码}printf("添加成功\n");}void update_worker(sqlite3 *ppDb)
{int num;int salary;char * errmsg;char sql[1024];printf("请输入你要修改的工人的工号:\n");scanf("%d",&num);getchar();printf("请你输入改的值:\n");scanf("%d",&salary);getchar();snprintf(sql,sizeof(sql),"update worker set salary=%d where num=%d",salary,num);if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK){printf("%s\n",sqlite3_errmsg(ppDb));printf("%d\n",sqlite3_errcode(ppDb));}printf("修改成功\n");
}
void show(sqlite3 *ppDb)
{char sql[1024];char * errmsg;int salary;const char *sq = "select * from worker where salary>10000 and salary<20000";sqlite3_stmt *stmt;snprintf(sql,sizeof(sql),"select * from worker where salary>10000 and salary<20000");if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK){printf("%s\n",sqlite3_errmsg(ppDb));printf("%d\n",sqlite3_errcode(ppDb));}int res = sqlite3_prepare_v2(ppDb,sq,-1,&stmt,NULL);printf("工资在10000到20000的工人:\n");while((res = sqlite3_step(stmt))==SQLITE_ROW){printf("num = %d,name = %s,age = %d,salary = %d\n",sqlite3_column_int(stmt,0),sqlite3_column_text(stmt,1),sqlite3_column_int(stmt,2),sqlite3_column_int(stmt,3));}sqlite3_finalize(stmt);
}
void delete_worker(sqlite3 *ppDb)
{char name[20];char * errmsg;char sql[1024];printf("请输入你要删除的工人的姓名:\n");scanf("%s",name);getchar();snprintf(sql,sizeof(sql),"delete from worker where name = '%s' ",name);if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK){printf("%s\n",sqlite3_errmsg(ppDb));printf("%d\n",sqlite3_errcode(ppDb));}printf("删除成功\n");
}
void delete(sqlite3 *ppDb)
{char name[20];char * errmsg;char sql[1024];snprintf(sql,sizeof(sql),"drop table worker ");if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK){printf("%s\n",sqlite3_errmsg(ppDb));printf("%d\n",sqlite3_errcode(ppDb));}printf("删除成功\n");
}
void menu()
{int ch;sqlite3 *ppDb;while(1){printf("\t\t\t1、创建数据库\n");printf("\t\t\t2、添加工人信息\n");printf("\t\t\t3、修改工人信息\n");printf("\t\t\t4、展示所有信息\n");printf("\t\t\t5、删除指定工人信息\n");printf("\t\t\t6、删除整表\n");printf("\t\t\t0、退出\n");printf("请输入你的选择:");scanf("%d",&ch);getchar();switch(ch){case 1:{ppDb = creat_sqlite();}break;case 2:{insert_worker(ppDb);}break;case 3:{update_worker(ppDb);}break;case 4:{show(ppDb);}break;case 5:{delete_worker(ppDb);}break;case 6:{delete(ppDb);}break;case 0:exit(0);break;default:printf("输入错误,请重新输入\n");}}
}
int main(int argc, const char *argv[])
{menu(); //调用菜单函数 return 0;
}
相关文章:
2025.1.2
练习: 1> 创建一个工人信息库,包含工号(主键)、姓名、年龄、薪资。 2> 添加三条工人信息(可以完整信息,也可以非完整信息) 3> 修改某一个工人的薪资(确定的一个…...
重庆大学软件工程复试怎么准备?
重大软件复试相对来说不算刁钻,关键是对自己的竞赛和项目足够了解,能应对老师的提问。专业课范围广,英文文献看个人水平,难度不算大,整体只要表现得得体从容,以及充分的准备,老师不会为难你。 …...
Ant Design Pro搭建react项目
1、使用pro-cli 来快速的初始化脚手架,先全局安装 npm i ant-design/pro-cli -g pro create myapp 2、选择模板类型 pro 是基础模板,只提供了框架运行的基本内容,complete 包含所有区块,不太适合当基础模板来进行二次开发。&a…...
mysql连接时报错1130-Host ‘hostname‘ is not allowed to connect to this MySQL server
不在mysql服务器上通过ip连接服务提示1130错误怎么回事呢。这个错误是因为在数据库服务器中的mysql数据库中的user的表中没有权限。 解决方案 查询mysql库的user表指定账户的连接方式 SELECT user, host FROM mysql.user;修改指定账户的host连接方式 update mysql.user se…...
办公 三之 Excel 数据限定录入与格式变换
开始-----条件格式------管理规则 IF($A4"永久",1,0) //如果A4包含永久,条件格式如下: OR($D5<60,$E5<60,$F5<60) 求取任意科目不及格数据 AND($D5<60,$E5<60,$F5<60) 若所有科目都不及格 显示为红色 IF($H4<EDATE…...
Ubuntu执行sudo apt-get update失败的解决方法
Ubuntu版本:24.04.1 报错信息: Clearsigned file isnt valid, got NOSPLIT (does the network require authentication?) 如果你在执行以上命令的时候也出现了上面这样的错误提示,先检查一下是不是网络问题,如果确定不是&…...
torch.nn.functional的用法
文章目录 介绍激活函数示例 损失函数示例 卷积操作示例 池化示例 归一化操作示例 Dropout示例 torch.nn.functional 与 torch.nn 的区别 介绍 torch.nn.functional 是 PyTorch 中的一个模块,提供了许多函数式的神经网络操作,包括激活函数、损失函数、卷…...
最新常见的图数据库对比,选型,架构,性能对比
图数据库排名 地址:https://db-engines.com/en/ranking/graphdbms 知识图谱查询语言 SPARQL、Cypher、Gremlin、PGQL 和 G-CORE 语法 / 语义 / 特性 SPARQL Cypher Gremlin PGQL G-CORE 图模式匹配查询 语法 CGP CGP CGP(无可选)1 CGP CGP 语义 子…...
UE5材质节点Camera Vector/Reflection Vector
Camera Vector相机向量,输出像素到相机的方向,结果归一化 会随着相机移动而改变 Reflection Vector 反射向量,物体表面法线反射到相机的方向,x和y和camera vector相反 配合hdr使用...
NextCloud服务安装与配置教程
NextCloud服务安装与配置教程 什么是 NextCloud: Nextcloud 是一款开源的私有云存储和协作平台,允许用户在自己的服务器上托管数据并管理团队协作。它可以作为一个功能丰富、安全可靠的替代方案,与商业云服务(如 Google Drive、Dropbox)相比提供更多控制和隐私保护。简单来…...
详解GPT-信息抽取任务 (GPT-3 FAMILY LARGE LANGUAGE MODELS)
GPT-3 FAMILY LARGE LANGUAGE MODELS Information Extraction 自然语言处理信息提取任务(NLP-IE):从非结构化文本数据中提取结构化数据,例如提取实体、关系和事件 [164]。将非结构化文本数据转换为结构化数据可以实现高效的数据处…...
华为数通考试模拟真题(附带答案解析)题库领取
【多选题】 管理员想要更新华为路由器的VRP版本,则正确的方法有? A管理员把路由器配置为FTP服务器,通过FTP来传输VRP软件 B:管理员把路由器置为FTP客户端,通过FTP来传输VRP软件 C:管理员把路由器配置为TFTP客户端,通过TFTP来传…...
微信小程序:正确输出<小于,大于>符号
错误写法 1、如果直接输入<符号会直接报错,>能正常使用,如图标红的是错误写法 2、输入html的<>的写法,会原样输入符号 解决方法 采用变量的方式输出 1、js写入变量 2、wxml直接写...
Flink源码解析之:如何根据算法生成StreamGraph过程
Flink源码解析之:如何根据算法生成StreamGraph过程 在我们日常编写Flink应用的时候,会首先创建一个StreamExecutionEnvironment.getExecutionEnvironment()对象,在添加一些自定义处理算子后,会调用env.execute来执行定义好的Flin…...
矩阵简单问题(Java)
问题: 顺时针打印二维方阵: 1 2 3 4 15 5 6 7 8 14 9 10 11 12 13 13 14 15 16 public class Test1 {public static void main(String[] args) {int[][] arr new int[][]{{1, 2, 3, 4,100},{5, 6, 7, 8,101},{9, 10, 11, 12,102},{13, 14, 15, 16,…...
Elasticsearch DSL版
文章目录 1.索引库操作创建索引库:删除索引库:查询索引库:修改索引库:总结 2.文档操作创建文档:查询文档:删除文档:全量修改文档:增量修改文档:总结 3.DSL查询语法&#…...
2024-12-29-sklearn学习(26)模型选择与评估-交叉验证:评估估算器的表现 今夜偏知春气暖,虫声新透绿窗纱。
文章目录 sklearn学习(26) 模型选择与评估-交叉验证:评估估算器的表现26.1 计算交叉验证的指标26.1.1 cross_validate 函数和多度量评估26.1.2 通过交叉验证获取预测 26.2 交叉验证迭代器26.2.1 交叉验证迭代器–循环遍历数据26.2.1.1 K 折26.2.1.2 重复 K-折交叉验…...
STM32CUBEIDE FreeRTOS操作教程(十二):std dynamic memory 标准动态内存
STM32CUBEIDE FreeRTOS操作教程(十二):std dynamic memory 标准动态内存 STM32CUBE开发环境集成了STM32 HAL库进行FreeRTOS配置和开发的组件,不需要用户自己进行FreeRTOS的移植。这里介绍最简化的用户操作类应用教程。以STM32F40…...
异步爬虫之aiohttp的使用
在上一篇博客我们介绍了异步爬虫的基本原理和 asyncio 的基本用法,并且在最后简单提及了使用aiohttp 实现网页爬取的过程。本篇博客我们介绍一下 aiohttp 的常见用法。 基本介绍 前面介绍的 asyncio模块,其内部实现了对 TCP、UDP、SSL协议的异步操作&a…...
【Rust自学】9.1. 不可恢复的错误以及panic!
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 9.1.1. Rust错误处理概述 Rust拥有极高的可靠性,这也延伸到了错误处理的领域。比如说在大部分情况下,Rust会迫使你…...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型
CVPR 2025 | MIMO:支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题:MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者:Yanyuan Chen, Dexuan Xu, Yu Hu…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...
