3.6作业

作业要求:数据库操作的增、删、改

程序代码:

#include<myhead.h>
int main(int argc, const char *argv[])
{
	//定义数据库句柄指针
	sqlite3 * ppDb = NULL;
	//打开数据库,如果数据库不存在,则创建数据库
	//将数据库句柄由参数2返回
	if(sqlite3_open("./stu.db",&ppDb) != 0)
	{
		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======公司员工管理系统======\n");
		printf("\t\t======1.添加员工信息======\n");
		printf("\t\t======2.删除员工信息======\n");
		printf("\t\t======3.修改员工信息======\n");
		printf("\t\t======4.查询员工信息======\n");
		printf("\t\t======5.退出======\n");

		printf("请输入操作码:");           //提示并输入信息
		scanf("%d",&menu);
		getchar();                            //吸收回车
		switch(menu)
		{
		case 1:
			{
				char ch[64];
				char *errmsg = NULL;
				printf("请按照格式输入:  (numb,'name',salary)\n");
				fgets(ch,sizeof(ch),stdin);
				char buf[128] = "insert into worker values";
				strcat(buf,ch);
				if(sqlite3_exec(ppDb , buf , NULL , NULL , &errmsg) != SQLITE_OK)
				{
					printf("insert error : %s\n",errmsg);
					sqlite3_free(errmsg);                  //防止内存泄漏
					errmsg = NULL;
					return -1;
				}
				printf("员工信息添加成功\n");



			}break;
		case 2:
			{
				char ch[64];
				char *errmsg = NULL;
				printf("请按照格式输入:  'name'\n");
				fgets(ch,sizeof(ch),stdin);
				char buf[128] = "delete from worker where name=";
				strcat(buf,ch);
				if(sqlite3_exec(ppDb , buf , NULL , NULL , &errmsg) != SQLITE_OK)
				{
					printf("delete error : %s\n",errmsg);
					sqlite3_free(errmsg);                  //防止内存泄漏
					errmsg = NULL;
					return -1;
				}
				printf("员工信息删除成功\n");


			}break;
		case 3:
			{
				for(;;)
				{
					system("clear");             //清空之前的终端信息
					printf("\t\t======修改员工信息======\n");
					printf("\t\t======1.修改员工numb信息======\n");
					printf("\t\t======2.修改员工salary信息======\n");
					printf("\t\t======3.退出======\n");

					printf("请输入操作码:");           //提示并输入信息
					scanf("%d",&menu);
					getchar();                            //吸收回车
					switch(menu)
					{
					case 1:
						{
							char ch[64];
							char *errmsg = NULL;
							printf("请按照格式输入:numb where name='name'\n");
							fgets(ch,sizeof(ch),stdin);
							char buf[128] = "update worker set numb=";
							strcat(buf,ch);
							if(sqlite3_exec(ppDb , buf , NULL , NULL , &errmsg) != SQLITE_OK)
							{
								printf("update error : %s\n",errmsg);
								sqlite3_free(errmsg);                  //防止内存泄漏
								errmsg = NULL;
								return -1;
							}
							printf("员工numb信息修改成功\n");
						}break;
					case 2:
						{
							char ch[64];
							char *errmsg = NULL;
							printf("请按照格式输入:salary where name='name'\n");
							fgets(ch,sizeof(ch),stdin);
							char buf[128] = "update worker set salary=";
							strcat(buf,ch);
							if(sqlite3_exec(ppDb , buf , NULL , NULL , &errmsg) != SQLITE_OK)
							{
								printf("update error : %s\n",errmsg);
								sqlite3_free(errmsg);                  //防止内存泄漏
								errmsg = NULL;
								return -1;
							}
							printf("员工salary信息修改成功\n");
						}break;
					case 3:
						goto end;
					}
				}


			}break;
end:break;
		case 4:
	{

		//查找员工信息
	}break;
		case 5:
	goto END;

			default:printf("您输入的功能有误,请重新输入!!!\n");
		}
		printf("请输入任意键,按回车清屏\n");
		while(getchar() != '\n');
	}
END:
	//关闭数据库
	sqlite3_close(ppDb);
	return 0;
}

运行结果:

添加员工信息:

删除员工信息:

修改员工信息:

总运行结果:

课程总结:

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

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

相关文章

【软件工程】软件工程定义、软件危机以及软件生命周期

&#x1f338;博主主页&#xff1a;釉色清风&#x1f338;文章专栏&#xff1a;软件工程&#x1f338; 今日语录&#xff1a;What matters isn’t how others think of your ambitions but how fervently you cling to them. 软件工程系列&#xff0c;主要根据老师上课所讲提及…

数字化转型导师坚鹏:金融科技咨询方法论

金融科技咨询方法论 ——方法、做法、演法、心法 课程背景&#xff1a; 数字化转型背景下&#xff0c;很多机构存在以下问题&#xff1a; 不知道先进的金融科技咨询方法论&#xff1f; 不知道如何运作金融科技咨询项目&#xff1f; 不知道如何汇报咨询项目关键成果&…

MyBatis3源码深度解析(三)Connnection

文章目录 前言2.3 Connnection2.3.1 JDBC驱动程序的类型2.3.1.1 JDBC-ODBC Bridge Driver2.3.1.2 Native API Driver2.3.1.3 HDBC-Net Driver2.3.1.4 Native Protocol Driver 2.3.2 java.sql.Driver2.3.2.1 静态代码块加载驱动类2.3.2.2 SPI机制加载驱动类 2.3.3 DriverManager…

使用RabbitMQ实现延时消息自动取消的简单案例

一、流程图 二、导包 <!--消息队列 AMQP依赖&#xff0c;包含RabbitMQ--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </dependency> 三、配置文件 #消息队列 …

nodejs安装教程(及过程中的易错)

nodejs&#xff1a;Nodejs 是基于 Chrome 的 V8 引擎开发的一个 C 程序&#xff0c;目的是提供一个 JS 的运行环境。 npm&#xff1a;npm 是 Node Package Manager 的缩写&#xff0c;意思是 Node 的包管理系统&#xff0c;是最大的软件包仓库 下载nodejs 首先我们需要在node…

制作高端的电子杂志神器推荐

根据市场调查数据显示&#xff0c;越来越多的消费者开始青睐电子杂志这种阅读方式。相比传统纸质杂志&#xff0c;电子杂志具有更高的阅读体验、更便捷的分享和传播方式以及更环保的阅读方式。此外&#xff0c;越来越多的企业也开始重视电子杂志的宣传作用&#xff0c;将其作为…

一次磁盘组扩容引起的事故

一、备份磁盘头信息 1、mkdir /home/grid/bakasm 2、kfed read /dev/rhdisk /home/grid/backasm/rhdisk.txt 二、赋权 1、chmod 660 /dev/rhdisk 2、chown grid:asmadmin /dev/rhdisk 三、确认没有pvid lspv |grep hdisk 如果存在 chedev -l hdisk -a pvclear 四、调…

状态模式:有案例就这么简单

状态模式是一种行为设计模式&#xff0c;它允许对象在内部状态改变时改变它的行为。这使得对象看起来好像修改了它的类。状态模式主要由三个部分组成&#xff1a;上下文&#xff08;Context&#xff09;、状态接口&#xff08;State Interface&#xff09;和具体状态&#xff0…

使用 AJAX 提升网页数据的动态交互

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

2024年最新Android面试精讲,面试题附答案

一. 开发背景 想要成为一名优秀的Android开发&#xff0c;你需要一份完备的知识体系&#xff0c;在这里&#xff0c;让我们一起成长为自己所想的那样。 Android 相关 1. Android 之 SharedPreferences 内部原理浅析 2. Android 源码分析-消息队列和 Looper 3. Android 源码分析…

第二十一周代码(java + DFS/BFS)

2024/03/04 周一 路径之谜 题目链接 【参考代码】 dfs剪枝 #include <iostream> #include <vector> using namespace std;int n; int dx[] {-1, 0, 1, 0}, dy[] {0, 1, 0, -1}; bool visit[21][21] {false}; int north[21], west[21]; vector<int…

【Apache Camel】基础知识

【Apache Camel】基础知识 Apache Camel是什么Apache Camel基本概念和术语CamelContextEndpointsRoutesRouteBuilderComponentsMessageExchangeProcessorsDomain Specific Language&#xff08;DSL&#xff09; Apache Camel 应用执行步骤Apache Camel 示意图参考 Apache Camel…

智慧农业的新时代

1.智慧农业的发展背景及重要性 随着科技的发展&#xff0c;农业现代化已经成为我国农业发展的必然趋势。智慧农业作为农业现代化的重要组成部分&#xff0c;通过运用物联网、大数据、云计算等先进技术&#xff0c;实现对农业生产、管理和服务的智能化&#xff0c;提高农业生产效…

「媒体宣传」品牌发布会活动策划注意点

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 品牌发布会活动策划的媒体宣传方面&#xff0c;以下是关键的注意点&#xff1a; 一、目标与定位 明确核心信息和品牌重点。 设定清晰的目标受众。 二、媒体选择 针对性选择主流媒体、…

rt-thread uart驱动

uart驱动描述基于GD32F470芯片。 rt-thread提供了一套I/O设备模型&#xff0c;如果想要使用操作系统的驱动去进行操作&#xff0c;就得将具体芯片的硬件驱动注册到设备驱动框架上。 关于rt-thread的I/O设备模型相关内容可以参考 rt-thread I/O设备模型-CSDN博客文章浏览阅读55…

基于springboot的母婴商城

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本母婴商城系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息&am…

js五星评价的制作方法

方法有两种&#xff0c;1、jquer插件&#xff1b;2、图片循环&#xff1b; 第一种、效果图 代码 <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"…

Uniapp壁纸小程序源码/双端微信抖音小程序源码

Uniapp壁纸小程序源码&#xff0c;双端微信抖音小程序源码。WordPress后台的小程序。为一些做壁纸类自媒体的朋友解决变现难的问题&#xff0c;抖音壁纸常见的图片取号码&#xff0c;微信的壁纸公众号小程序均可使用该小程序进行变现&#xff0c;这款小程序后端为WordPress&…

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

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

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

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