网络编程day6

news2024/11/25 18:49:30

1.思维导图

2.数据库操作的增、删、改完成。

#include<myhead.h>
//定义新增员工信息函数
int do_add(sqlite3 *ppDb)
{
	int numb;
	char name;
	double salary;
	printf("请输入要插入的信息:");
	scanf("%d%s%d\n",&numb,name,&salary);
	char sql[128]="";
	sprintf(sql,"INSERT INTO Worker VALUES(%d,%s,%d)",numb,name,salary);
	//char sql[128]="insert into Worker values(001,'张三',10000)";
	//char sql2[128]="insert into Worker values(002,'李四',9000)";
	//char sql3[128]="insert into Worker values(003,'王五',12000)";
	//char sql4[128]="insert into Worker values(004,'赵六',20000)";
	//char sql[128]="alter table Worker add column numb int";
	char *errmsg=NULL;    //存放执行sql语句的错误信息
	if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
	{
		printf("exec error:%s\n",errmsg);
		sqlite3_free(errmsg);     //防止内存泄露
		errmsg=NULL;
		return -1;
	}
	printf("add success\n");
}
//定义删除员工信息函数
int do_delete(sqlite3 *ppDb)
{
	char sql[128]="DELETE FROM Worker WHERE numb=001";
	char *errmsg=NULL;    //存放执行sql语句的错误信息
	if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
	{
		printf("exec error:%s\n",errmsg);
		sqlite3_free(errmsg);     //防止内存泄露
		errmsg=NULL;
		return -1;
	}
	printf("delete success\n");
}

//定义修改员工信息函数
int do_update(sqlite3 *ppDb)
{
	char sql[128]="UPDATE Worker SET salary>10000 WHERE numb=002"; 
	char *errmsg=NULL;    //存放执行sql语句的错误信息
	if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
	{
		printf("exec error:%s\n",errmsg);
		sqlite3_free(errmsg);     //防止内存泄露
		errmsg=NULL;
		return -1;
	}
	printf("update success\n");
}

//定义查找员工信息函数
int do_search(sqlite3 *ppDb)
{
	char sql[128]="SELECT *FROM Worker WHERE numb=003";
	char *errmsg=NULL;    //存放执行sql语句的错误信息
	if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
	{
		printf("exec error:%s\n",errmsg);
		sqlite3_free(errmsg);     //防止内存泄露
		errmsg=NULL;
		return -1;
	}
	printf("search success\n");
}



int main(int argc, const char *argv[])
{
	//定义数据库句柄指针
	sqlite3 *ppDb=NULL;

	//打开数据库,如果数据库不存在,则创建数据库
	//将数据库句柄由参数2返回
	if(sqlite3_open("./my.db",&ppDb)!=SQLITE_OK)
	{
		printf("sqlite3_open error,errcode=%d,errmsg=%s\n",sqlite3_errcode(ppDb),sqlite3_errmsg(ppDb));
		return -1;
	}
	printf("sqlite3_open success\n");

	//创建数据表
	//1.准备sql语句
	char sql[128]="create table if not exists Worker(numb int,name char,salary double)";
	char *errmsg=NULL;    //存放执行sql语句的错误信息
	if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
	{
		printf("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:printf("您输入的功能有误,请重新输入!!!\n");
	}

	printf("请输入任意键,按回车清屏\n");
	while(getchar()!='\n');

}

END:

	//关闭数据库
	sqlite3_close(ppDb);
	return 0;
}

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

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

相关文章

7大必备应用推荐,为你的 Nextcloud 实例增添更多效率功能

适用于 Linux 的开源云存储软件有很多&#xff0c;ownCloud、Seafile 和 Pydio 只是其中的几个。 不过&#xff0c;如果您非常重视安全问题&#xff0c;并希望完全掌管您的数据&#xff0c;可以选择​Nextcloud并将其安装到您的服务器上。​ Nextcloud 是一个基于 PHP 的开源安…

Pytest中实现自动生成测试用例脚本代码!

前言 在Python的测试框架中&#xff0c;我们通常会针对某个系统进行测试用例的维护&#xff0c;在对庞大系统进行用例维护时&#xff0c;往往会发现很多测试用例是差不多的&#xff0c;甚至大多数代码是一样的。 故为了提高我们测试用例维护的效率&#xff0c;在本文中&#…

Java常用笔试题,面试java对未来的规划

最重要的话 2021年&#xff0c;真希望行业能春暖花开。 去年由于疫情的影响&#xff0c;无数行业都受到了影响&#xff0c;互联网寒冬下&#xff0c;许多程序员被裁&#xff0c;大环境格外困难。 我被公司裁掉后&#xff0c;便着急地开始找工作&#xff0c;一次次地碰壁&#…

爬虫学习笔记-requests爬取王者荣耀皮肤图片

1.导入所需的包 import requests from lxml import etree import os from time import sleep 2.定义请求头 headers {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36} 3.发送请求 # hero…

数据结构->链表分类与oj(题),带你提升代码好感

✅作者简介&#xff1a;大家好&#xff0c;我是橘橙黄又青&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;橘橙黄又青-CSDN博客 1.&#x1f34e;链表的分类 前面我们学过顺序表&#xff0c;顺序表问题&#xff1a; …

基于springboot实现的幼儿园管理系统

一、系统架构 前端&#xff1a;html | layui | jquery | css 后端&#xff1a;springboot | mybatis 环境&#xff1a;jdk1.8 | mysql | maven 二、代码及数据库 三、功能介绍 01. 登录页 02. 系统管理-用户管理 03. 系统管理-页面管理 04. 系统管理-角色管…

喜报|3DCAT成为国内首批适配Vision Pro内容开发者

近日&#xff0c;苹果在上海总部举办了国内首场 Apple Vision Pro 开发者实验室活动&#xff0c;3DCAT作为国内领先的实时渲染云平台参与了此次活动&#xff0c;成为国内首批适配 Vision Pro 的内容开发者之一。 Vision Pro是苹果于2023年6月发布的首个空间计算设备&#xff0…

【C++STL详解 —— string类】

【CSTL详解 —— string类】 CSTL详解 —— sring类一、string的定义方式二、string的插入三、string的拼接四、string的删除五、string的查找六、string的比较七、string的替换八、string的交换九、string的大小和容量十、string中元素的访问十一、string中运算符的使用十二、…

鸿蒙NEXT开发实战:【视频文件裁剪】

使用OpenHarmony系统提供的ffmpeg三方库的能力在系统中实现了音视频文件裁剪的功能&#xff0c;并通过NAPI提供给上层应用调用。 基础信息 视频文件裁剪 简介 在OpenHarmony系统整个框架中有很多子系统&#xff0c;其中多媒体子系统是OpenHarmony比较重要的一个子系统&#…

Java+SpringBoot+Vue+MySQL:农业管理新篇章

✍✍计算机毕业编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java、…

软件测试实战,Web项目网页bug定位详细分析总结(详全)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、前置条件 1&a…

9、Linux-安装JDK、Tomcat和MySql

目录 一、安装JDK 1、传输JDK文件&#xff08;.tar.gz&#xff09; 2、解压 3、备份环境变量 4、配置环境变量 5、重新加载环境变量 6、验证&#xff08;java -version&#xff09; 二、安装Tomcat 1、传输文件&#xff0c;解压到/usr/local 2、进入Tomcat的bin目录 …

数据库-ER图教程

一.什么是E-R图 E-R图全称&#xff1a;“Entity-Relationship Approach”&#xff0c;是一种“实体-联系”方法。 E-R图的优点&#xff1a; 1.自然地描述现实世界。 2.图形结构简单。 3.设计者和用户易理解。 4.是数据库设计的中间步骤&#xff0c;易于向数据模型转换。 …

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

一、代码实现数据库的创建&#xff08;员工信息表&#xff09;&#xff0c;并存储员工信息&#xff08;工号、姓名、薪资&#xff09;&#xff0c;能实现增加人员信息、删除人员信息、修改人员薪资操作。 代码&#xff1a; #include<myhead.h>int do_update(sqlite3 *p…

作业1-32 P1059 [NOIP2006 普及组] 明明的随机数

题目 思路 根据题意&#xff0c;需要将读入的数据排序&#xff0c;去重。 参考代码 #include<bits/stdc.h> using namespace std; int n,a[5000],k;int main() {while(cin>>n){//读入数据for(int i0;i<n;i)cin>>a[i];sort(a,an);//排序int b[5000];in…

chrome浏览器离线安装及历史版本的下载

背景&#xff1a;测试web功能在浏览器各版本的兼容性&#xff0c;需要用到旧版本的浏览器&#xff0c;当用户环境无法访问到互联网&#xff0c;需要下载离线版本安装&#xff1b; 1、在线版本安装 需要当前环境能正常使用互联网&#xff1a; 目前能访问的官网地址&#xff1…

【刷题】双指针入门

双指针入门 双指针283.移动零1089. 复写零202. 快乐数11. 盛最多水的容器Thanks♪(&#xff65;ω&#xff65;)&#xff89;谢谢阅读&#xff01;&#xff01;&#xff01;下一篇文章见&#xff01;&#xff01;&#xff01; 双指针 双指针是非常经典的算法&#xff0c;包括但…

6. Gin集成redis

文章目录 一&#xff1a;连接Redis二&#xff1a;基本使用三&#xff1a;字符串四&#xff1a;列表五&#xff1a;哈希六&#xff1a;Set七&#xff1a;管道八、事务九&#xff1a;示例 代码地址&#xff1a;https://gitee.com/lymgoforIT/golang-trick/tree/master/14-go-redi…

Cookie 探秘:了解 Web 浏览器中的小甜饼

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

java开发工程师面试题,996页阿里Java面试真题解析火爆全网

开头 消息队列 RocketMQ 是阿里巴巴集团基于高可用分布式集群技术&#xff0c;自主研发的云正式商用的专业消息中间件&#xff0c;既可为分布式应用系统提供异步解耦和削峰填谷的能力&#xff0c;同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性&#xff0c;…