网络编程DAY6

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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值