当前位置: 首页 > 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.dtcms.com/a/341422.html

相关文章:

  • 计算机视觉(二):视觉的处理流程
  • Promise.all 速查与扩展实战
  • 基于SpringBoot的蜗牛兼职网平台
  • React框架超详细入门到实战项目演练【前端】【React】
  • Spring Retry实战指南_让你的应用更具韧性
  • PyTorch API 2
  • 漫漫长夜 全DLC(The Long Dark)免安装中文版
  • Docker之MySQL安装
  • Redis(以Django为例,含具体操作步骤)
  • 数字人制作全流程解析:从概念到落地的完整步骤​
  • 实战:本地大模型+function Calling,获取北京天气
  • uniapp学习【上手篇】
  • [激光原理与应用-314]:光学设计 - 光学系统设计与电子电路设计的相似或相同点
  • 1-2前端撸码前的准备,包管理工具和环境搭建
  • 升级Android系统webview
  • Spring事务源码
  • Linux Capability 解析
  • 【81页PPT】智慧方案智能化弱电智能家居系统解决方案(附下载方式)
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘requests-html’问题
  • VPS服务器安全审计方案:从风险评估到防护实施
  • 汇编语言学习3---GDB调试
  • 【StarRocks】TabletChecker逻辑
  • 尝试给每个客户端设置一个标签身份,以此来解决非独立同分布的情况?
  • BM25 vs TF-IDF:经典文本检索方法的对比
  • 门控循环单元(GRU, Gated Recurrent Unit)
  • 压缩--RAR、7-Zip工具使用
  • 【Python】新手入门:python面向对象编程的三大特性是什么?python继承、封装、多态的特性都有哪些?
  • Jmeter接口测试
  • 30. 技术专题-锁
  • K8S-Configmap资源