作业-day-240524

使用sqlite3数据库,实现增删改查操作

#include <myhead.h>int do_add(sqlite3 *sqdb)
{int add_num;char add_name[128];double add_score;printf("请输入要添加的学生编号:");scanf("%d",&add_num);printf("请输入要添加的学生姓名:");scanf("%s",add_name);printf("请输入要添加的学生分数:");scanf("%lf",&add_score);getchar();char sql[128]="";snprintf(sql,sizeof(sql),"insert into Stu values(%d,\"%s\",%.2lf);",add_num,add_name,add_score);char *errmsg=NULL;if(sqlite3_exec(sqdb,sql,NULL,NULL,&errmsg) != SQLITE_OK){printf("insert into Stu errro:%s\n",errmsg);sqlite3_free(errmsg);return -1;}printf("插入成功\n");}int do_delete(sqlite3 *sqdb)
{int id=0;char sql[128]="";printf("请输入要删除的学生的编号:");scanf("%d",&id);getchar();snprintf(sql,sizeof(sql),"delete from Stu where num=%d;",id);char *errmsg=NULL;if(sqlite3_exec(sqdb,sql,NULL,NULL,&errmsg) != SQLITE_OK){printf("delete from Stu err:%s\n",errmsg);sqlite3_free(errmsg);return -1;}
}int do_update(sqlite3 *sqdb)
{int id=0;char name[128]="";double score=0;printf("请输入要修改的学生编号:");scanf("%d",&id);printf("请输入要修改的学生姓名:");scanf("%s",name);printf("请输入要修改的学生成绩:");scanf("%lf",&score);getchar();char sql[128]="";snprintf(sql,sizeof(sql),"update Stu set name=\"%s\",score=%.2lf where num=%d;",name,score,id);char *errmsg=NULL;if(sqlite3_exec(sqdb,sql,NULL,NULL,&errmsg) != SQLITE_OK){printf("update error:%s\n",errmsg);sqlite3_free(errmsg);return -1;}
}
int callback(void* arg,int cols,char **col_text,char **col_name)
{if(*(int*)arg == 0){for(int i=0;i<cols;i++)printf("%s\t",*(col_name+i));}printf("\n");*(int*)arg=1;for(int i=0;i<cols;i++)printf("%s\t",*(col_text+i));printf("\n");return 0;
}int do_search(sqlite3 *sqdb)
{int flag=0;char sql[128]="select * from Stu";char *errmsg=NULL;if(sqlite3_exec(sqdb,sql,callback,&flag,&errmsg) != SQLITE_OK){printf("Stu search error:%s\n",errmsg);sqlite3_free(errmsg);return -1;}printf("查找结束\n");}int do_search1(sqlite3 *sqdb)
{char sql[128]="select * from Stu;";char **pazResult=NULL;int row=0;int col=0;char *errmsg=NULL;if(sqlite3_get_table(sqdb,sql,&pazResult,&row,&col,&errmsg) != SQLITE_OK){printf("get_table error:%s\n",errmsg);sqlite3_free(errmsg);return -1;}for(int i=0;i<row+1;i++){for(int j=0;j<col;j++)printf("%s\t",pazResult[i*col+j]);printf("\n");}sqlite3_free_table(pazResult);return 0;
}int main(int argc, const char *argv[])
{sqlite3* sqdb=NULL;int res=sqlite3_open("my.db",&sqdb);if(res != SQLITE_OK){int err_code=sqlite3_errcode(sqdb);printf("open error:%d %s\n",err_code, sqlite3_errmsg(sqdb));return -1;}printf("db open success\n");char sql[128]="create table if not exists Stu(num int,name char,score double);";char *errmsg=NULL;if(sqlite3_exec(sqdb,sql,NULL,NULL,&errmsg) != SQLITE_OK){printf("sqlite create table error:%s\n",errmsg);sqlite3_free(errmsg);return -1;}printf("table Stu create success\n");//制作菜单完成学生管理系统int menu=0;while(1){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=======0、退出=======\n");printf("请输入功能选项:\n");scanf("%d",&menu);getchar();switch(menu){case 1:{do_add(sqdb);}break;case 2:{do_delete(sqdb);}break;case 3:{do_update(sqdb);}break;case 4:{do_search(sqdb);//      do_search1(sqdb);}break;case 0:goto END;default:printf("您输入的选项有误,请重新输入\n");}printf("请输入任意键按回车清屏\n");while(getchar() != '\n');}END:sqlite3_close(sqdb);return 0;
}

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

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

相关文章

以前:不会用电脑;现在:不会用AI

购买特价商务机票需要一些策略和灵活性。、 提前规划&#xff1a;商务舱票价通常在出发日期的2-3个月前最便宜。尽早规划您的行程并开始关注票价。 使用比价工具&#xff1a;使用Skyscanner、Kayak等比价网站来比较不同航空公司的商务舱票价。这些网站可以显示多个航空公司的价…

Jeecg | 如何解决 ERR Client sent AUTH, but no password is set 问题

最近在尝试Jeecg低代码开发&#xff0c;但是碰到了超级多的问题&#xff0c;不过总归是成功运行起来了。 下面说说碰到的最后一个配置问题&#xff1a;连接redis失败 Error starting ApplicationContext. To display the conditions report re-run your application with deb…

【ARMv7-A】——内联汇编

简介 使用内联汇编主要目的是为了提高效率,同时还是为了实现 C 语言无法实现的部分。 GNU内联汇编的基本格式: asm volatile("汇编语句": 输出部分: 输入部分: 会被修改的部分);ANSI C规范的关键字(前后都有两个下划线连接,中间没有空格): __asm__ __volati…

近期阅读论文

Exploring Hybrid Active-Passive RIS-Aided MEC Systems: From the Mode-Switching Perspective abstract 移动边缘计算&#xff08;MEC&#xff09;被认为是支持延迟敏感和计算密集型服务的有前途的技术。 然而&#xff0c;随机信道衰落特性导致的低卸载率成为制约MEC性能的…

Rust之函数、单元测试

1、函数 类似于C函数。 1.1、普通函数 在Rust中&#xff0c;函数的定义使用fn关键字&#xff0c;后跟函数名、参数列表、返回类型和函数体。函数体由一系列语句组成&#xff0c;用于执行特定的操作和计算。 函数定义&#xff1a; 使用fn关键字定义函数&#xff0c;函数由函数…

【C语言】C语言基础语法速览

C语言基础语法目录 C语言基础语法速览1. 变量类型1.1 类型字节数1.1 变量输出格式1.2 变量输入格式 2. 分支循环语句2.1 if分支语句2.2 switch 分支语句2.3 while循环语句2.4 do...while循环语句2.5 for循环语句 3. 数组3.1 一维数组3.2 二维数组 4. 结构体4.1 结构体类型定义4…

4个宝藏网站,免费即用,办公运营效率利器!

哈喽&#xff0c;各位小伙伴们好&#xff0c;我是给大家带来各类黑科技与前沿资讯的小武。 有很多朋友在日常办公时&#xff0c;需要发送邮件&#xff1b;在新媒体运营、设计及前端开发等工作场合中&#xff0c;都或多或少会遇上图片、视频等文件太大及格式问题需要压缩和转换…

数据结构(三)栈 队列 数组

2024年5月26日一稿(王道P78) 栈 基本概念 基本操作 顺序存储结构 基本操作 共享栈

微信小程序开发 懒加载+瀑布流+排序功能

在小程序的开发过程中&#xff0c;遇到了这样的功能需求&#xff1a;在保持瀑布流布局的情况下&#xff0c;使用懒加载来渲染页面&#xff0c;并且要求对其中的属性添加排序功能。 单独拿出来都是很好实现的功能&#xff0c;但是当三个功能联系在一起时&#xff0c;问题就出现…

数智乡村:是不是乡村治理治理的巨大进步呢?

一、什么是数智乡村 数智乡村是指借助信息技术和数据分析等手段&#xff0c;对乡村进行智能化管理和服务的模式。它可以提供更高效、精准、便利的服务&#xff0c;促进乡村经济发展和社会治理改善。因此&#xff0c;数智乡村确实可以被视为乡村治理的巨大进步。 二、数智乡村的…

大一久富农机实习与商业思维学习计划

学习目标&#xff1a; 大一久富农机实习与商业思维学习计划 一、目标 完成久富农机的实习&#xff0c;增强对农机行业的了解和实际操作能力。提升自身的商业思维能力&#xff0c;为未来的职业生涯打下坚实基础。组织并带领同学院的同学一起参加实习&#xff0c;增强团队合作…

腾讯发布ELLA:为扩散模型注入LLM能力,提升复杂场景的图像生成,准确率超90%

前言 近年来&#xff0c;基于扩散模型的文本到图像生成技术取得了显著进步&#xff0c;能够生成高质量、逼真的图像。然而&#xff0c;大多数扩散模型仍然使用CLIP作为文本编码器&#xff0c;这限制了它们理解复杂提示的能力&#xff0c;例如包含多个物体、详细属性、复杂关系…

python-pytorch seq2seq+luong dot attention笔记1.0.3

python-pytorch seq2seq+luong dot attention笔记1.0.0 可复用部分编写encoder编写Attention编写decoder编写seq2seq设定模型参数模型训练使用模型使用总结下一步参考链接可复用部分 主要将数据弄成如下格式: seq_example = [“你认识我吗”, “你住在哪里”, “你知道我的名…

ROS 2边学边练(51)-- 构建自定义(消息类型)RViz显示项

前言 一俩礼拜没有更新了&#xff0c;今天突然发现ROS 2突然有了新版本了&#xff0c;名为Jazzy&#xff0c;这更新速度与Qt有的一比。这么长时间没更新呢&#xff0c;一来工作上来活了&#xff0c;没那么多时间来继续ROS这块&#xff0c;二来&#xff0c;人懈怠了一点&#xf…

Grafana HTML Panel展示post获取后数据

<!DOCTYPE html> <html> <head><title>API 数据表格展示</title><script src"https://code.jquery.com/jquery-3.6.0.min.js"></script> </head> <body><table id"data-table" border"1&qu…

航运复兴?大摩不信!

大摩认为&#xff0c;从供需关系来看红海危机只是推迟了航运业下行周期的到来&#xff0c;一旦干扰消除&#xff0c;行业可能重回周期性低迷。 红海危机加剧运力紧张&#xff0c;航运市场价格飞涨。 大摩在24日的一份报告中指出&#xff0c;受红海危机干扰航运市场运力&#…

Spring Boot+Debezium:解决 MySQL Binlog监听

在当今的企业应用中&#xff0c;对数据变更进行实时捕获和处理是至关重要的。而Debezium作为一个强大的开源平台&#xff0c;能够实时捕获数据库的变化事件&#xff0c;为实时数据流处理提供了可靠的解决方案。在本文中&#xff0c;我们将探讨如何将Debezium与SpringBoot项目无…

Springboot集成GRPC

Springboot集成GRPC 一、springboot版本二、GRPC的pom依赖2.1 服务端2.2 客户端3.构建依赖 三、配置文件服务端客户端 四、 demo4.1 编写proto文件4.2 生成文件4.3 服务端重写方法4.4 客户端调用该方法 五、测试 一、springboot版本 <groupId>org.springframework.boot&l…

pycharm找不到conda可执行文件解决办法

解决办法 1、第一种 按照以下步骤&#xff0c;找到condabin文件下面&#xff0c;conda.bat 文件&#xff0c;把路径给复制下来&#xff0c;粘贴到 Conda 可执行文件&#xff0c;即可。 然后再点击加载环境&#xff0c;我这里是已经汉化了 pycharm &#xff0c;如何汉化&…