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

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.xdnf.cn/news/1333027.html

相关文章:

  • LeetCode 刷题【47. 全排列 II】
  • 【Linux系统】匿名管道以及进程池的简单实现
  • 在 React 中,​父子组件之间的通信(传参和传方法)
  • 大语言模型研究进展
  • Elasticsearch 写入全链路:从单机到集群
  • sfc_os!SfcValidateCatalogs函数分析之syssetup.inf中的[ProductCatalogsToInstall]
  • ansible playbook 实战案例roles | 实现基于 IHS 的 AWStats 访问监控系统
  • 第R6周:LSTM实现糖尿病探索与预测
  • [特殊字符] 小豆包 API 聚合平台:让 AI 接入更简单、更高效
  • 【数据结构之二叉树】
  • 【0基础PS】图片格式
  • Java常用类:编程世界的瑞士军刀
  • Web网站的运行原理1
  • JAVA:MyBatis 核心组件详解的技术指南
  • Mac电脑 Pixelmator Pro 专业图像处理【媲美PS】
  • 基于FPGA的实时图像处理系统(2)——VGA显示彩条和图片
  • 简笔成画:让AI绘画变得简单而有趣
  • 国产化PDF处理控件Spire.PDF教程:如何使用 Python 添加水印到 PDF
  • Map 和 Set
  • 19.web api 10
  • docker 部署
  • Go协程:从汇编视角揭秘实现奥秘
  • day31 SQLITE
  • 【38页PPT】关于5G智慧园区整体解决方案(附下载方式)
  • spring整合JUnit
  • 主从功能组图示的扩展理解
  • PyTorch API 2
  • 【数据结构】递归与非递归:归并排序全解析
  • week3-[分支结构]2023
  • Linux上安装MySQL 二进制包