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;
}

运行:

思维导图:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python中的模块包第三方库详解

模块&包 模块 一个.py文件就是一个模块&#xff0c;里面是一些函数和变量&#xff0c;需要的时候可以导入。 模块命名规范: 1.以英文开头&#xff0c;不出现中文 2.模块名不应与系统内置函数重名 包 包本身就是一个文件夹&#xff0c;如果文件夹内有__init__.py文件&…

Java电梯模拟升级版

Java电梯模拟升级版 文章目录 Java电梯模拟升级版前言一、UML类图二、代码三、测试 前言 在上一版的基础上进行升级&#xff0c;楼层采用享元模式进行升级&#xff0c;并对楼层对象进一步抽象 一、UML类图 二、代码 电梯调度器抽象类 package cn.xx.evevator;import java.ut…

K倍区间 刷题笔记

法一 前缀和暴力搜索 &#xff08;数据大会超时&#xff09; #include<iostream> #include<cstring> #include<algorithm> #include<cstdio> using namespace std; const int N100010; int a[N],s[N]; int n,k; int main(){ cin>>n>>…

RISC-V架构学习资料整理

1、韦东山——D1S哪吒开发板的裸机代码仓库 https://github.com/bigmagic123/d1-nezha-baremeta 2、melis系统移植到D1S https://blog.51cto.com/u_13800193/6268813 3、韦东山的gitee仓库 https://gitee.com/weidongshan 4、D1S编译工具链下载 https://github.com/Tina-Linux/…

LabVIEW管道缺陷智能检测系统

LabVIEW管道缺陷智能检测系统 管道作为一种重要的输送手段&#xff0c;其安全运行状态对生产生活至关重要。然而&#xff0c;随着时间的推移和环境的影响&#xff0c;管道可能会出现老化、锈蚀、裂缝等多种缺陷&#xff0c;这些缺陷若不及时发现和处理&#xff0c;将严重威胁到…

ProxySQL实现mysql8主从同步读写分离

ProxySQL基本介绍 ProxySQL是 MySQL 的高性能、高可用性、协议感知代理。以下为结合主从复制对ProxySQL读写分离、黑白名单、路由规则等做些基本测试。 先简单介绍下ProxySQL及其功能和配置&#xff0c;主要包括&#xff1a; 最基本的读/写分离&#xff0c;且方式有多种&…

Java递归生成本地文件目录树形结构

Java递归生成本地文件目录(树行结构) 1.读取txt文件保存的文件目录结构 2.递归生成本地文件目录树形结构&#xff0c;并修改目录文件前缀进行递增 3.结果截图 4.代码 package com.zfi.server.device;import io.swagger.annotations.Api; import org.springframework.web.bind…

Postman接口测试—配置token为全局变量,配置测试环境

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 为什么要进行接口测试 因为不同端&#xff08;前段&#xff0c;后端&#xff09;的工作进度不一…

仿牛客网项目---关注模块的实现

本篇文章是关于我的项目的关注模块的开发。 关注模块的开发实现了用户之间的关注功能和关注列表的展示。通过使用相应的服务类处理关注和取消关注操作&#xff0c;并利用用户服务类获取用户信息&#xff0c;实现了关注功能的存储和查询。同时&#xff0c;通过触发关注事件&…

【软考】设计模式之访问者模式

目录 1. 说明2. 应用场景3. 结构图4. 构成5. java示例5.1 喂动物5.1.1 抽象访问者5.1.2 具体访问者5.1.3 抽象元素5.1.4 具体元素5.1.5 对象结构5.1.6 客户端类5.1.7 结果示例 5.2 超市销售系统5.2.1 业务场景5.2.2 业务需求类图5.2.3 抽象访问者5.2.4 具体访问者5.2.5 抽象元素…

前端面试拼图-原理源码

摘要&#xff1a;最近&#xff0c;看了下慕课2周刷完n道面试题&#xff0c;记录下... 1. JS内存泄漏如何检测&#xff1f;场景有哪些? 1.1 垃圾回收 GC 垃圾回收是一种自动管理内存的机制&#xff0c;它负责在运行时跟踪内存的分配和使用情况&#xff0c;并在不再需要的对象…

理解CAE

用于自监督表示学习的上下文自动编码器 摘要 我们提出了一种新的掩模图像建模(MIM)方法&#xff0c;上下文自编码器(CAE)&#xff0c;用于自监督表示预训练。我们通过在编码的表示空间中进行预测来预训练编码器。预训练任务包括两个任务:掩模表示预测—预测掩模块的表示&…

专业145+总分410+西工大西北工业大学827信号与系统考研经验电子信息与通信工程,海航,真题,大纲,参考书。

经过一年的努力&#xff0c;分数终于出来。今年专业课827信号与系统145&#xff08;很遗憾差了一点点满分&#xff0c;没有达到Jenny老师的最高要求&#xff09;&#xff0c;数一130&#xff0c;英语和政治也都比较平衡&#xff0c;总分410分&#xff0c;当然和信息通信考研Jen…

C及C++每日练习(2)

1.选择&#xff1a; 1.使用printf函数打印一个double类型的数据&#xff0c;要求&#xff1a;输出为10进制&#xff0c;输出左对齐30个字符&#xff0c;4位精度。以下哪个选项是正确的&#xff1f; A.%-30.4e B.%4.30e C.%-30.4f D.%-4.30 在上一篇文章中&#xff0c;提到了…

变老特效哪个app可以拍?深入探索变老效果的应用

随着科技的进步和智能手机的普及&#xff0c;各种摄影应用如雨后春笋般涌现&#xff0c;为我们提供了前所未有的创意拍摄体验。其中&#xff0c;变老特效因其独特的魅力&#xff0c;吸引了众多用户的关注。这种特效能够让我们在短时间内看到自己老去的模样&#xff0c;既有趣又…

JavaWeb HTTP 请求头、请求体、响应头、响应体、响应状态码

J2EE&#xff08;Java 2 Platform Enterprise Edition&#xff09;是指“Java 2企业版”&#xff0c;B/S模式开发Web应用就是J2EE最核心的功能。 Web是全球广域网&#xff0c;也称为万维网(www)&#xff0c;能够通过浏览器访问的网站。 在日常的生活中&#xff0c;经常会使用…

强大的ps 命令 -o 自定义输出内容选项

强大的ps 命令 -o 自定义输出内容选项 1、ps命令介绍和作用2、问题描述 1、ps命令介绍和作用 ps 是一个 Unix 和类 Unix 操作系统中常用的命令&#xff0c;用于显示当前运行的进程信息。ps 命令的作用包括&#xff1a; 查看进程信息&#xff1a; ps 命令可以列出当前系统中正…

数据结构之顺序表及其实现!

目录 ​编辑 1. 顺序表的概念及结构 2. 接口的实现 2.1 顺序表的初始化 2.2 检查顺序表容量是否已满 2.3 顺序表的尾插 ​编辑 2.4 顺序表的尾删 2.5 顺序表的头插 2.6 顺序表的头删 2.7 顺序表在pos位置插入 2.8 顺序表在pos位置删除 2.9 顺序表的查找 2.10 顺…

考研数学——高数:多元函数微分法及其应用

因为复习阶段全篇很细节的写下来一来比较费时间&#xff0c;二容易导致为了记笔记而记。 接下来的内容只会保留上课中比较有意义的地方&#xff0c;以及有自己助于理解的想法 全微分 助记&#xff1a; 证明是否可微&#xff0c;首先判断两个偏导数是否存在&#xff0c;不存在则…

中文版国产Figma简单好上手

在过去的两年里&#xff0c;国内外协同办公室发展迅速。一方面&#xff0c;它是由突如其来的疫情推动的&#xff0c;另一方面&#xff0c;它是科学技术不断进步的必然结果。在市场的推动下&#xff0c;市场上出现了越来越多的协同办公软件&#xff0c;使工作场所的工作更加高效…