华清远见22071班9.21作业
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作业相关推荐
- 华清远见22071班9.27作业
1.c++写循环队列 #include <iostream> using namespace std; #define datatype int #define MAX 10 class ...
- 华清远见22071班10.13
头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include<QTimerEvent> #include&l ...
- 华清远见22071作业1011
作业一.将对象树模型手动实现一遍 #include <iostream> #include<list>class obj; using namespace std; typed ...
- 华清远见22071班级作业823
作业1:完成顺序表的按位置进行修改函数int list_update_pos(linkList *L, int pos, datatype e); 作业2:完成顺序表的排序:使用选择排序完成降序
- 华清远见22071作业端口指令实现灯点亮
1.实验要求:串口输入相应的命令,控制对应的硬件进行工作 例如:在串口工具输入led1on----->板子led1点亮 在串口工具输入led1off----->板子led1熄灭 4.在串口 ...
- 华清远见上海中心22071班 9.21作业
1.完成数据库的插入.删除.修改,插入选择全字段插入.删除.修改选择用id的方式 代码: #include <stdio.h> #include <sqlite3.h> #in ...
- 华清远见22071班级作业824
电脑在宿舍连不上网-- 将就一下-唉,还没弄完,唉-明天补上--
- 华清远见2022018班作业
#!/bin/bash read -p"文件名称" val if [ -e $val ] thenif [-s $val ]thenif [ -f $val ]then if [ ...
- 华清远见22071电子词典小项目
电子词典 项目要求: 1. 登录注册功能,不能重复登录,重复注册 2. 单词查询功能 3. 历史记录功能,存储单词,意思,以及查询时间 4. 基于TCP,支持多客户端连接 5. 采用数据库保存用户信息 ...
最新文章
- 关于synchronize与lock的区别
- 语文高考识记现代汉字的字形【转】
- spring boot 1.4默认使用 hibernate validator
- python:for循环修改list的值,应使用range
- jquery学习系列1(Ready)
- 告别公告_我告别freeCodeCamp
- WebEx 播放器下载
- linux 文件隐藏,Linux系统怎么隐藏文件夹和文件?
- 二维数组传参(二维数组作为函数参数)
- ecshop 框架 简单分析
- 计算机维修高级技能,高级计算机维修工操作技能考核试卷
- 快速复现利用Log4j漏洞启动windows计算器
- SSM网上校园订餐系统-javaweb, mysql
- 【转】游戏设计的秘密——翻译GDC2010 blizzard的一个演讲
- Python入门学习小记:100以内素数/质数之和
- socket编程之accept()函数
- yolo系列之yolo v3【深度解析】——讲的挺好,原作者厉害的
- 洛谷 P1710 地铁涨价 (dfs+bfs)
- QBQ!问题背后的问题
- 实用 通用Adb无线调试开发Android应用程序