1、思维导图
2、完成前三个功能
#include ”head.h“
typedef struct{
int id;
char name[128];
int score;
}Stu_t;
//查找学生信息回调函数
int select_callback(void *arg,int cloumn,char **column_text,char **column_name);
int main(int argc, const char *argv[])
{
//打开数据库
sqlite3 *db=NULL;
if(sqlite3_open("./Stu.db",&db)!=SQLITE_OK){
printf("sqlite3_open error\n");
return -1;
}
int flag;
char sql[256]="";
char *errmsg=NULL;
//创建表
strcpy(sql,"create table if not exists stu(id int primary key,name char,score int);");
//创建表
if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK){
printf("创建表失败\n");
return -1;
}
Stu_t buf; //存储学生信息
while(1){
//清屏
system("clear");
printf("=============XXX 学生管理系统================\n");
printf("=============1. 添加学生信息=================\n");
printf("=============2. 删除学生信息=================\n");
printf("=============3. 修改学生信息=================\n");
printf("=============4. 查找学生信息=================\n");
printf("=============0. 退出系统=====================\n");
printf("请输入功能:");
scanf("%d",&flag);
while(getchar()!=10);
//清空sql语句
memset(sql,0,sizeof(sql));
memset(&buf,0,sizeof(buf));
switch(flag){
case 1:{
//添加学生信息
//从终端获取学生信息
printf("请输入学号:");
scanf("%d",&buf.id);
while(getchar()!=10);
printf("请输入姓名:");
fgets(buf.name,sizeof(buf.name),stdin);
buf.name[strlen(buf.name)-1]='\0';
printf("请输入成绩:");
scanf("%d",&buf.score);
while(getchar()!=10);
//插入学生信息
sprintf(sql,"insert into stu values(%d,\"%s\",%d);",buf.id,buf.name,buf.score);
if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK){
printf("%s\n",errmsg);
}
break;
}
case 2:{
//删除学生信息
printf("请输入要删除的学生学号:");
scanf("%d",&buf.id);
//删除学生信息
sprintf(sql,"delete from stu where id=%d;",buf.id);
if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK){
printf("%s\n",errmsg);
}
break;
}
case 3:{
//修改学生信息
//从终端获取学生信息
printf("请输入学号:");
scanf("%d",&buf.id);
while(getchar()!=10);
printf("请输入姓名:");
fgets(buf.name,sizeof(buf.name),stdin);
buf.name[strlen(buf.name)-1]='\0';
printf("请输入成绩:");
scanf("%d",&buf.score);
while(getchar()!=10);
//修改学生信息
sprintf(sql,"update stu set name=\"%s\",score=%d where id=%d;",buf.name,buf.score,buf.id);
if(sqlite3_exec(db,sql,NULL,NULL,&errmsg)!=SQLITE_OK){
printf("%s\n",errmsg);
}
break;
}
case 4:{
//查找学生信息
printf("请输入学号:");
scanf("%d",&buf.id);
while(getchar()!=10);
//查找学生信息
sprintf(sql,"select * from stu where id=%d;",buf.id);
if(sqlite3_exec(db,sql,select_callback,NULL,&errmsg)!=SQLITE_OK){
printf("%s\n",errmsg);
}
break;
}
case 0:{
//退出
goto END;
break;
}
default:{
//输入错误
printf("输入错误请重新输入\n");
break;
}
}
printf("请输入任意键,按回车清屏\n");
while(getchar()!=10);
}
END:
//关闭数据库
sqlite3_close(db);
return 0;
}
int select_callback(void *arg,int cloumn,char **column_text,char **column_name){
printf("学生姓名:%s\n",*(column_text+1));
printf("学生成绩:%s\n",*(column_text+2));
return 0;
}
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_44559978/article/details/137935975