当前位置: 首页 > news >正文

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

运行结果:

添加员工信息:

删除员工信息:

修改员工信息:

总运行结果:

课程总结:

相关文章:

  • Redis基础入门
  • 【动态规划】45. 跳跃游戏 II
  • 数字创新的风口:创业者如何在Web3时代抢占先机
  • MySQL——事务
  • 铅酸蓄电池废水处理技术盘点
  • 重磅:2024广州国际酒店工程照明展览会
  • 鸿蒙 进程模型-公共事件
  • 设计模式——2_3 迭代器(Iterator)
  • 【JavaEE】_前端POST请求使用json向后端传参
  • 飞天使-学以致用-devops知识点3-安装jenkins
  • 中文版国产Figma简单好上手
  • 学术论文GPT的源码解读与二次开发:从ChatPaper到gpt_academic
  • CPP编程-CPP11中的内存管理策略模型与名称空间管理探幽(时隔一年,再谈C++抽象内存模型)
  • FlyClient SPV client轻量化
  • 2403C++,C++20协程库
  • Apache Pulsar 2.1 重磅发布
  • AWS实战 - 利用IAM对S3做访问控制
  • happypack两次报错的问题
  • HashMap剖析之内部结构
  • iOS | NSProxy
  • IP路由与转发
  • Java 最常见的 200+ 面试题:面试必备
  • mongodb--安装和初步使用教程
  • npx命令介绍
  • PHP CLI应用的调试原理
  • python大佬养成计划----difflib模块
  • python学习笔记 - ThreadLocal
  • Sass 快速入门教程
  • spring boot下thymeleaf全局静态变量配置
  • Theano - 导数
  • vuex 学习笔记 01
  • 安装python包到指定虚拟环境
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 解决iview多表头动态更改列元素发生的错误
  • 聊聊redis的数据结构的应用
  • 如何设计一个微型分布式架构?
  • 手写一个CommonJS打包工具(一)
  • 新版博客前端前瞻
  • 做一名精致的JavaScripter 01:JavaScript简介
  • 整理一些计算机基础知识!
  • !!Dom4j 学习笔记
  • #LLM入门|Prompt#3.3_存储_Memory
  • #mysql 8.0 踩坑日记
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (30)数组元素和与数字和的绝对差
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (bean配置类的注解开发)学习Spring的第十三天
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (zz)子曾经曰过:先有司,赦小过,举贤才
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (附源码)ssm考生评分系统 毕业设计 071114