8.20网络编程——sqlite3数据库

文章目录

  • 一、思维导图
  • 二、学生管理系统
    • 1、myhead.h
    • 2、代码
  • 三、牛客网刷题

一、思维导图

在这里插入图片描述

二、学生管理系统

1、myhead.h

#ifndef __MYHEAD_H__
#define __MYHEAD_H__#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>#define ERR_MSG(msg) do{perror(msg);printf("%d\n",__LINE__);return -1;}while(0)
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <time.h>
#include <pwd.h>
#include <grp.h>
#include <sys/wait.h>
#include <pthread.h>
#include <semaphore.h>
#include <signal.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <sys/msg.h>
#include <sqlite3.h>
#endif

2、代码

#include <myhead.h>
int do_add(sqlite3 *ppDb)
{int add_numb;char add_name[20];char add_sex[10];double add_scare;printf("输入学号:");scanf("%d",&add_numb);printf("输入姓名:");scanf("%s",add_name);printf("输入性别:");scanf("%s",add_sex);printf("输入成绩:");scanf("%lf",&add_scare);char sql[128]={};sprintf(sql,"insert into STUINFO values(%d,\"%s\",\"%s\",%lf);",add_numb,add_name,add_sex,add_scare);char *errmsg=NULL;if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK){printf("%d\t%s\n",__LINE__,errmsg);sqlite3_free(errmsg);return -1;}printf("添加学生信息成功\n");return 0;
}
int do_delete(sqlite3 *ppDb)
{int delate_numb;printf("输入要删除的学号:");scanf("%d",&delate_numb);char sql[128]={};sprintf(sql,"delete from STUINFO where numb==%d",delate_numb);char *errmsg=NULL;if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK){printf("%d\t%s\n",__LINE__,errmsg);sqlite3_free(errmsg);return -1;}printf("删除学生信息成功\n");return 0;}
int do_update(sqlite3 *ppDb)//修改学生信息
{int update_numb;char update_name[20];char update_sex[10];double update_scare;printf("输入要修改学号:");scanf("%d",&update_numb);printf("输入修改后的姓名:");scanf("%s",update_name);printf("输入修改后的性别:");scanf("%s",update_sex);printf("输入修改后的成绩:");scanf("%lf",&update_scare);char sql[128]={};sprintf(sql,"update STUINFO set name=\"%s\",sex=\"%s\",scare=%lf where numb=%d;",update_name,update_sex,update_scare,update_numb);char *errmsg=NULL;if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK){printf("%d\t%s\n",__LINE__,errmsg);sqlite3_free(errmsg);return -1;}printf("修改学生信息成功\n");return 0;
}
int call_back(void *arg,int clos,char **msgtxt,char **msgheader)
{if(*((int *)arg)==0){*((int *)arg)=1;for(int i=0;i<clos;i++){printf("%s\t",*(msgheader+i));}printf("\n");}for(int i=0;i<clos;i++){printf("%s\t",*(msgtxt+i));}printf("\n");return 0;
}
int do_search(sqlite3 *ppDb)
{char sql[128]="select * from STUINFO;";char *errmsg=NULL;int flag=0;if(sqlite3_exec(ppDb,sql,call_back,&flag,&errmsg)!=SQLITE_OK){printf("%d\t%s\n",__LINE__,errmsg);sqlite3_free(errmsg);return -1;}return 0;}
int main(int argc, const char *argv[])
{//创建库sqlite3 *ppDb=NULL;if(sqlite3_open("./db.db",&ppDb)!=SQLITE_OK){printf("sqlist3_open error\n");return -1;}//创建表格char *sql="create table if not exists STUINFO(numb int,name char,sex char,scare double);";char *errmsg=NULL;if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK){printf("%d\t%s\n",__LINE__,errmsg);sqlite3_free(errmsg);return -1;}int nume=-1;while(1){system("clear");printf("*************学生管理系统***************\n");printf("***********1、添加学生信息**************\n");printf("***********2、删除学生信息**************\n");printf("***********3、修改学生信息**************\n");printf("***********4、查找学生信息**************\n");printf("***********0、退出管理系统**************\n");printf("输入选项:");scanf("%d",&nume);getchar();switch(nume){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:exit(EXIT_SUCCESS);}while(getchar()!='\n');}sqlite3_close(ppDb);return 0;
}

三、牛客网刷题

在这里插入图片描述

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

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

相关文章

电脑不能访问服务器磁盘,连不上服务器。解决办法:在窗口中输入 regedit 确定即可打开注册表,。。。。0改为1,确认;

打开注册表&#xff1a; 按键盘上的 WinR 键&#xff0c;打开运行窗口&#xff0c;在窗口中输入 regedit 确定即可打开注册表。&#xff08;或者直接在左下角搜索框中搜索“注册表”&#xff09; 依次打开以下目录 计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Service…

EP4CE40F23I7N Altera FPGA Cyclone IV E

EP4CE40F23I7N 阿尔特拉 Altera Cyclone IV E 系列的一颗中等密度、低功耗 FPGA&#xff0c;通信接口与工业控制等应用。该器件采用成熟的工艺制程&#xff0c;器件规模约为 39k 左右的逻辑单元&#xff08;Logic Elements&#xff09;&#xff0c;由若干逻辑阵列块&#xff08…

【typenum】 21 类型级别计算最大公约数(Gcd)

一、源码 代码实现了一个在类型级别计算最大公约数&#xff08;GCD&#xff09;的系统 定义&#xff08;type_operators.rs&#xff09; /// A **type operator** that computes the [greatest common divisor][gcd] of Self and Rhs. /// /// [gcd]: https://en.wikipedia.org…

如何为 Visual Studio 2019 安装 WDK

我用nmake编译代码提示错误&#xff1a;fatal error U1052: 未找到文件“\makefile.def”&#xff0c;经过排查发现是代码依赖WDK&#xff0c;所以研究了一下WDK的安装步骤&#xff0c;下面是具体步骤&#xff1a; 请遵循以下步骤来为你的 VS2019 搭建完整的驱动开发环境&…

使用 Apache Flink CDC 3.0 实现 MySQL 到 Elasticsearch 的数据同步

下面我将创建一个完整的 Spring Boot 项目&#xff0c;使用 Flink CDC 3.0 基于 MySQL 的 binlog 实现数据同步到 Elasticsearch。 项目概述 这个项目将&#xff1a; 使用 Flink CDC 连接 MySQL 并读取 binlog处理数据变化&#xff08;插入、更新、删除&#xff09;将数据同步到…

Web网站的运行原理2

请求Web网站的文件-HTTP 可以使用HTTP协议在Web浏览器和Web服务器应用程序之间传输Web网页的文件。 在进行HTTP传输之前&#xff0c;需要先在Web浏览器和Web服务器应用程序之间建立TCP连接。 使用HTTP请求可以要求Web浏览器向Web服务器应用程序传输文件。 传输Web网站的文件-HT…

论文阅读:Do As I Can, Not As I Say: Grounding Language in Robotic Affordances

地址&#xff1a;Do As I Can, Not As I Say: Grounding Language in Robotic Affordances 摘要 大型语言模型&#xff08;LLM&#xff09;能够编码丰富的世界语义知识&#xff0c;这类知识对于机器人执行自然语言表达的高层级、时间扩展指令具有重要价值。然而&#xff0c;语…

Django管理后台结合剪映实现课件视频生成应用

在教学内容的数字化制作中&#xff0c;如何将课件与音频快速转换为视频是一项高频需求。借助管理后台和剪辑工具&#xff0c;可以实现课件内容的下载、转换和草稿生成&#xff0c;大幅减少重复操作。 【AI教育教学考试系统】课件在线剪映视频草稿生成应用这里实现的课件PPT部分…

AI升级社区便民服务:AI办事小程序高效办证+应急系统秒响应,告别跑腿愁住得更安心

朋友&#xff0c;你有没有在社区办过事&#xff1f;想给孩子办入学证明&#xff0c;得先跑居委会开证明&#xff0c;再去街道办事处盖章&#xff0c;来回几趟不说&#xff0c;要是材料没带全&#xff0c;还得重新跑&#xff1b;家里水管爆了&#xff0c;半夜联系物业&#xff0…

el-table-draggable拖拽实现表格内容排序

1、图片2、安装包import ElTableDraggable from "el-table-draggable";3、代码&#xff08;html&#xff09;<el-table-draggable:data"soloTableData"input"dragInputHandlerSolo"><el-table:data"soloTableData"row-key&qu…

Linux设备模型技术路线图

Linux设备模型涉及的技术和知识点 1. 核心架构组件 1.1 Kobject 子系统 kobject(内核对象):Linux设备模型的基础构建块 kset(对象集合):kobject的容器,管理相同类型的对象 ktype(对象类型):定义kobject的行为和属性 引用计数机制:使用kref管理对象生命周期 对象层…

面试问题详解六:元对象系统调用槽函数

Qt 的 元对象系统&#xff08;Meta-Object System&#xff09; 是 Qt 核心机制之一&#xff0c;正是它让 C 语言具备了类似脚本语言&#xff08;如 Python&#xff09;的反射、动态绑定、属性系统等能力。 自定义信号与槽&#xff0c;是 Qt 元对象系统最常见、最实用的体现。&a…

Scala面试题及详细答案100道(1-10)-- 基础语法与数据类型

《前后端面试题》专栏集合了前后端各个知识模块的面试题,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs,nodejs,mangoDB,SQL,Linux… 。 前后端面试题-专栏总目录 文章目录 一、本文面试题目录 1. 简述Scala与Java的主要…

http请求有哪些?

TTP请求方法常见方法&#xff1a;GET&#xff1a;获取资源&#xff0c;参数通过URL传递&#xff0c;可缓存到浏览器本地。POST&#xff1a;提交数据&#xff0c;参数通过请求体传递&#xff0c;不可缓存&#xff0c;常用于创建资源。PUT&#xff1a;更新资源&#xff0c;参数通…

MAPGIS6.7地质编录

1.编录文件excel位于D:\mapgis67\program\section&#xff0c;文件名称&#xff1a;ZKInfoEdit.xls2生成副本&#xff0c;复制ZKInfoEdit.xls到桌面3开始编写 04回次4开始编写 03编录5开始编写 11采样6开始编写 06标志面7开始编写 10钻孔资料8 最后总结 …

轻松掌握Chrome插件开发全流程

Chrome插件开发概述介绍Chrome插件的基本概念、核心功能和应用场景&#xff0c;包括插件与浏览器扩展的区别、插件的主要组成部分&#xff08;如manifest文件、后台脚本、内容脚本等&#xff09;。开发环境搭建列出开发Chrome插件所需的工具和环境配置&#xff0c;包括Chrome浏…

智能二维码QR\刷IC卡\人脸AI识别梯控系统功能设计需基于模块化架构,整合物联网、生物识别、权限控制等技术,以下是多奥分层次的系统设计框架

一、系统架构设计硬件层主控模块&#xff1a;32位ARM嵌入式处理器&#xff0c;支持CAN/RS485/TCP/IP协议识别终端&#xff1a;支持IC卡(CPU/国密/HID)、二维码扫码器(动态码)、人脸识别(活体检测)电梯控制单元&#xff1a;继电器矩阵控制板&#xff0c;支持20层以上电梯按钮控制…

Kubernetes配置与密钥管理深度指南:ConfigMap与Secret企业级实践

目录 专栏介绍 作者与平台 您将学到什么&#xff1f; 学习特色 Kubernetes配置与密钥管理深度指南&#xff1a;ConfigMap与Secret企业级实践 一、 配置管理&#xff1a;云原生应用的基石 1.1 配置管理的演进与挑战 1.2 ConfigMap与Secret的设计哲学 二、 ConfigMap深度…

知行社黄剑杰:金融跨界,重塑震区救援新章

曾在纽约证券交易所敲响上市钟声的黄剑杰&#xff0c;这位知行社的灵魂人物&#xff0c;此次在西藏震区开启了一场震撼人心的“跨界救援”之旅。他带着在华尔街积累的深厚金融智慧&#xff0c;毅然投身到这场与时间赛跑、与灾难较量的战斗中&#xff0c;为传统救灾模式带来了颠…

API模型与接口弃用指南:历史、替代方案及开发者应对策略

API模型及接口弃用&#xff08;Deprecation&#xff09;全解 概览 在AI与API领域&#xff0c;模型的持续迭代与技术进步推动着平台不断优化服务。与此同时&#xff0c;随着更安全、更强大的新模型推出&#xff0c;旧模型与接口的弃用&#xff08;Deprecation&#xff09;成为…