0
点赞
收藏
分享

微信扫一扫

数据库:2024/3/6

芝婵 03-07 21:30 阅读 2
数据库

作业1:使用C语言完成数据库的增删改

代码:

#include <myhead.h>


//定义添加员工信息函数
int Add_worker(sqlite3 *ppDb)
{
	//准备sql语句
	
	printf("请输入要添加的员工信息:\n");
	//从终端获取员工信息
	char rbuf[128]="";
	fgets(rbuf,sizeof(rbuf),stdin);
	rbuf[strlen(rbuf)-1]=0;

	char sql[128]="insert into worker values";
	strcat(sql,rbuf);
	//存放执行sql语句后的错误信息
	char *errmsg=NULL;
	if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg) != SQLITE_OK)
	{
		printf("exec error:%s\n",errmsg);
		sqlite3_free(errmsg);      //防止内存泄露
		errmsg=NULL;
		return -1;
	}
	
	return 0;
}


//定义删除员工信息函数
int del_worker(sqlite3 *ppDb)
{
	//准备sql语句
	int numb;
	printf("请输入要删除的员工工号:");
	scanf("%d",&numb);
	
	char sql[128]="";
	sprintf(sql,"delete from worker where numb=%d;",numb);
	//存放执行sql语句后的错误信息
	char *errmsg=NULL;
	if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg) != SQLITE_OK)
	{
		printf("exec error:%s\n",errmsg);
		sqlite3_free(errmsg);      //防止内存泄露
		errmsg=NULL;
		return -1;
	}
	
	return 0;
}


//定义修改员工信息函数
int modify_worker(sqlite3 *ppDb)
{
	//准备sql语句
	int numb;
	double salary;
	printf("请输入要修改的员工工号:");
	scanf("%d",&numb);
	getchar();

	printf("请输入要修改的工资:");
	scanf("%lf",&salary);
	getchar();
	
	char sql[128]="";
	sprintf(sql,"update worker set salary=%lf where numb=%d;",salary,numb);
	//存放执行sql语句后的错误信息
	char *errmsg=NULL;
	if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg) != SQLITE_OK)
	{
		printf("exec error:%s\n",errmsg);
		sqlite3_free(errmsg);      //防止内存泄露
		errmsg=NULL;
		return -1;
	}
	
	return 0;
}

/**********************************主程序***************************************/
int main(int argc, const char *argv[])
{
	//定义数据库句柄
	sqlite3 *ppDb=NULL;
	//打开数据库,不存在则创建
	if(sqlite3_open("./my.db",&ppDb)!=SQLITE_OK){
		printf("sqlite3_open error,errcode=%d,errmsg=%s\n",sqlite3_errcode(ppDb),sqlite3_errmsg(ppDb));
		return -1;
	}
	printf("sqlite3_open success\n");

	//创建数据表
	//准备sql语句
	char sql[128]="create table if not exists worker(numb int,name char,salary double)";

	//存放执行sql语句后的错误信息
	char *errmsg=NULL;
	if(sqlite3_exec(ppDb,sql,NULL,NULL,&errmsg) != SQLITE_OK)
	{
		printf("exec error:%s\n",errmsg);
		sqlite3_free(errmsg);      //防止内存泄露
		errmsg=NULL;
		return -1;
	}
	printf("员工信息表创建成功\n");

	int menu=-1;     //菜单选项

	while(1)
	{
		system("clear");     //清屏

		printf("\t\t*********员工管理系统*********\n");
		printf("\t\t*********1.添加员工信息*********\n");
		printf("\t\t*********2.删除员工信息*********\n");
		printf("\t\t*********3.修改员工信息*********\n");
		printf("\t\t*********0.退出管理系统*********\n");
		printf("请输入选项>>>");
		scanf("%d",&menu);
		getchar();

		switch(menu)
		{
			case 1:
				{
					//添加员工信息
					Add_worker(ppDb);
				}
				break;
			case 2:
				{
					//删除员工信息
					del_worker(ppDb);
				}
				break;
			case 3:
				{
					//修改员工信息
					modify_worker(ppDb);
				}
				break;
			case 0:
				//退出管理系统
				goto END;
				break;
			default:printf("输入的选项有误,请重新输入\n");break;
		}
		printf("按任意键清屏\n");
		while(getchar()!='\n');
	}
END:

	//关闭数据库
	sqlite3_close(ppDb);

	return 0;
}

效果图:

作业2:思维导图

举报

相关推荐

0 条评论