4月18日 网络编程day7

本文介绍了使用C语言编写的简单学生管理系统,通过SQLite数据库进行数据操作,包括添加、删除、修改和查询学生信息。
摘要由CSDN通过智能技术生成
#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;
}

 

 

 

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值