1. 完成插入、删除、修改(必须完成上交)
   插入选择全字段插入、删除、修改选择用id的方式

主函数

#include<stdio.h>
#include<sqlite3.h>
#include<string.h>
int do_insert(sqlite3 *db);
int do_updata(sqlite3 *db);int do_delete(sqlite3 *db);
int main(int argc, const char *argv[])
{sqlite3 *db=NULL;if(sqlite3_open("./my.db",&db)){fprintf(stderr,"__%d__sqlite3_open:%s\n",__LINE__,sqlite3_errmsg(db));fprintf(stderr,"error_code:%d\n",sqlite3_errcode(db));return -1;}printf("sqlite3 打开成功\n");char sql[128]="create table if not exists stu(id int primary key,name char,score float)";char *errmsg=NULL;if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)){fprintf(stderr,"__%d__sqlite3_exec:%s\n",__LINE__,errmsg);return -1;}printf("创建成功\n");char c=0;while(1){printf("*******************\n");printf("*******1.插入******\n");printf("*******2.删除******\n");printf("*******3.修改******\n");printf("*******4.查询******\n");printf("*******5.退出******\n");printf("*******************\n");printf("请输入>>");c=getchar();while(getchar()!=10);switch(c){case '1':do_insert(db);break;case '2':do_delete(db);break;case '3':do_updata(db);break;case '4'://do_select();break;case '5':goto END;default:printf("错误,重新输入\n");}}END:if(sqlite3_close(db)){fprintf(stderr,"__%d__sqlite3_close:%s\n",__LINE__,sqlite3_errmsg(db));fprintf(stderr,"error_code:%d\n",sqlite3_errcode(db));return -1;}printf("sqlite3 关闭成功\n");return 0;
}

insert插入函数

int do_insert(sqlite3 *db)
{int num;char name_add[16];float score;printf("请输入插入学生的学号>>");scanf("%d",&num);   while(getchar()!=10);printf("请输入插入学生的姓名>>");fgets(name_add,sizeof(name_add),stdin);name_add[strlen(name_add)-1]=0;printf("请输入插入学生的分数>>");scanf("%f",&score);    while(getchar()!=10);char sql[128]="";char *errmsg=NULL;sprintf(sql,"insert into stu values(%d,'%s',%f)",num,name_add,score);if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)){fprintf(stderr,"__%d__sqlite3_exec:%s\n",__LINE__,errmsg);return -1;}
}

delete删除函数

int do_delete(sqlite3 *db)
{int num;printf("请输入要删除学生的学号>>");scanf("%d",&num);while(getchar()!=10);char *errmsg=NULL;char sql[128]="";sprintf(sql,"delete from stu where id=%d",num);if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)){fprintf(stderr,"__%d__sqlite3_exec:%s\n",__LINE__,errmsg);return -1;}
}

update 修改函数

int do_updata(sqlite3 *db)
{int num;int new_num;char name[20]="";float score;printf("请输入要更新信息学生的学号>>");scanf("%d",&num);while(getchar()!=10);char sql[128]="";char c=0;  char *errmsg=NULL;while(1){printf("选择更改的项目:1代表学号,2代表姓名,3代表分数\n");c=getchar();while(getchar()!=10);switch(c){case '1':printf("请输入更新后的学号>>");scanf("%d",&new_num);while(getchar()!=10);sprintf(sql,"update stu set id=%d where id=%d",new_num,num);goto END;case '2':printf("请输入更新后的姓名>>");fgets(name,sizeof(name),stdin);while(getchar()!=10);sprintf(sql,"update stu set name='%s' where id=%d",name,num);goto END;case '3':   printf("请输入更新后的分数>>");scanf("%f",&score);while(getchar()!=10);sprintf(sql,"update stu set score=%f where id=%d",score,num);goto END;default:printf("有误,重新输入\n");}}
END:if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)){fprintf(stderr,"__%d__sqlite3_exec:%s\n",__LINE__,errmsg);return -1;}
}

2. 将dict.txt中的所有单词意思导入到数据库中,要求单词一列,意思一列(尽可能完成)

#include<stdio.h>
#include<sqlite3.h>
#include<string.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
int main(int argc, const char *argv[])
{sqlite3 *db=NULL;if(sqlite3_open("./my.db",&db)){fprintf(stderr,"__%d__sqlite3_open:%s\n",__LINE__,sqlite3_errmsg(db));fprintf(stderr,"err_code:%d\n",sqlite3_errcode(db));return -1;}printf("sqlite3 打开成功\n");char sql[128]="create table if not exists list(word char ,chinese char)";char *errmsg=NULL;if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)){fprintf(stderr,"__%d__sqlite3_exec:%s\n",__LINE__,errmsg);return -1;}printf("创建成功\n");char arr[50]="";char chinese[128]="";int fd=open("./dict.txt",O_RDONLY);if(fd<0){perror("open");return -1;}ssize_t res;while(1){bzero(arr,sizeof(arr));bzero(chinese,sizeof(chinese));int i=0;int j=0;while(1){if((res=read(fd,&arr[i],1))<0){perror("read");return -1;}if(res==0){printf("加载完成\n");return 0;}if(arr[i]==' '){break;}i++;}while(1){if(read(fd,&chinese[j],1)<0){perror("read");return -1;}if(chinese[j]=='\n'){break;}j++;}sprintf(sql,"insert into list values(\"%s\",'%s')",arr,chinese);if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)){fprintf(stderr,"__%d__sqlite3_exec:%s\n",__LINE__,errmsg);return -1;}}return 0;
}

结果;

华清远见22071班9.21作业相关推荐

  1. 华清远见22071班9.27作业

    1.c++写循环队列 #include <iostream> using namespace std; #define datatype int #define MAX 10 class ...

  2. 华清远见22071班10.13

    头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QTimerEvent> #include&l ...

  3. 华清远见22071作业1011

    作业一.将对象树模型手动实现一遍 #include <iostream> #include<list>class obj; using namespace std; typed ...

  4. 华清远见22071班级作业823

    作业1:完成顺序表的按位置进行修改函数int list_update_pos(linkList *L, int pos, datatype e); 作业2:完成顺序表的排序:使用选择排序完成降序

  5. 华清远见22071作业端口指令实现灯点亮

    1.实验要求:串口输入相应的命令,控制对应的硬件进行工作 例如:在串口工具输入led1on----->板子led1点亮 在串口工具输入led1off----->板子led1熄灭 4.在串口 ...

  6. 华清远见上海中心22071班 9.21作业

    1.完成数据库的插入.删除.修改,插入选择全字段插入.删除.修改选择用id的方式 代码: #include <stdio.h> #include <sqlite3.h> #in ...

  7. 华清远见22071班级作业824

    电脑在宿舍连不上网-- 将就一下-唉,还没弄完,唉-明天补上--

  8. 华清远见2022018班作业

    #!/bin/bash read -p"文件名称" val if [ -e $val ] thenif [-s $val ]thenif [ -f $val ]then if [ ...

  9. 华清远见22071电子词典小项目

    电子词典 项目要求: 1. 登录注册功能,不能重复登录,重复注册 2. 单词查询功能 3. 历史记录功能,存储单词,意思,以及查询时间 4. 基于TCP,支持多客户端连接 5. 采用数据库保存用户信息 ...

最新文章

  1. 关于synchronize与lock的区别
  2. 语文高考识记现代汉字的字形【转】
  3. spring boot 1.4默认使用 hibernate validator
  4. python:for循环修改list的值,应使用range
  5. jquery学习系列1(Ready)
  6. 告别公告_我告别freeCodeCamp
  7. WebEx 播放器下载
  8. linux 文件隐藏,Linux系统怎么隐藏文件夹和文件?
  9. 二维数组传参(二维数组作为函数参数)
  10. ecshop 框架 简单分析
  11. 计算机维修高级技能,高级计算机维修工操作技能考核试卷
  12. 快速复现利用Log4j漏洞启动windows计算器
  13. SSM网上校园订餐系统-javaweb, mysql
  14. 【转】游戏设计的秘密——翻译GDC2010 blizzard的一个演讲
  15. Python入门学习小记:100以内素数/质数之和
  16. socket编程之accept()函数
  17. yolo系列之yolo v3【深度解析】——讲的挺好,原作者厉害的
  18. 洛谷 P1710 地铁涨价 (dfs+bfs)
  19. QBQ!问题背后的问题
  20. 实用 通用Adb无线调试开发Android应用程序

热门文章

  1. oracle10中文排序规则,【NLSSORT】改变Oralce 对简体汉字的排序规则(拼音、部首、笔画)...
  2. 解决了这7个问题,我开始自律成瘾
  3. Microsoft visio2010下载安装步骤图文教程
  4. 判断推理——定义判断
  5. cv2模块的error解决办法(不断更新)
  6. 从零学Java(6)之字面量和常量,我家AD想要第一滴血
  7. 抖音账号矩阵系统源码搭建技术|交付形式
  8. 数云融合丨浅谈政府数字化转型
  9. go语言逆向技术之---常量字符串解密
  10. websocket 频道拦截器 介绍和使用