#include <myhead.h>
//学生管理系统
typedef struct
{ int id;
char name[20];
double score;
}Stu_t;
int main(int argc, const char *argv[])
{
//定义数据库句柄
sqlite3 *ppDb =NULL;
//创建打开数据库
if(sqlite3_open("/home/ubuntu/24021/4.18network/mydb.db",&ppDb)!=SQLITE_OK)
{ printf("sqlite3_open error:%s,errcode:%d\n",sqlite3_errmsg(ppDb),sqlite3_errcode(ppDb));
return -1;
}
printf("sqlite3_open success\n");
//创建数据表
//sql语句
char sql[128]="create table if not exists Stu(id int primary key,name char,score double);";
char *errmsg=NULL;
//执行sql语句
if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
{ printf("%s\n",errmsg);
return -1;
}
printf("exec success\n");
Stu_t buf={0};
while(1)
{ system("clear");
printf("********学生管理系统********\n");
printf("********1.添加学生信息********\n");
printf("********2.删除学生信息********\n");
printf("********3.修改学生信息********\n");
printf("********4.查找学生信息********\n");
printf("********0.退出系统********\n");
printf("请输入功能>>>>>");
int choice;
scanf("%d",&choice);
while(getchar()!=10);
memset(sql,0,sizeof(sql));
switch(choice)
{ 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("%lf",&buf.score);
while(getchar()!=10);
//插入信息
sprintf(sql,"insert into Stu values (%d,\"%s\",%lf);",buf.id,buf.name,buf.score);
if(sqlite3_exec(ppDb,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(ppDb,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("%lf",&buf.score);
while(getchar()!=10);
sprintf(sql,"update Stu set name=\"%s\",score=%lf where id=%d;",buf.name,buf.score,buf.id);
if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
{ printf("%s\n",errmsg);
}
break;
}
//case 4:
case 0:
{ //关闭数据库
sqlite3_close(ppDb);
break;
}
default:
{ printf("输入错误\n");
break;
}
}
printf("请输入任意键,按回车清屏\n");
while(getchar()!=10);
}
return 0;
}