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
英文地址,請注明出處:http://en.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;成為…