3.6作业

作业要求:数据库操作的增、删、改

程序代码:

#include<myhead.h>
int main(int argc, const char *argv[])
{
	//定义数据库句柄指针
	sqlite3 * ppDb = NULL;
	//打开数据库,如果数据库不存在,则创建数据库
	//将数据库句柄由参数2返回
	if(sqlite3_open("./stu.db",&ppDb) != 0)
	{
		printf("sqlite3_open error,errcode=%d,errmsg=%s\n",sqlite3_errcode(ppDb),sqlite3_errmsg(ppDb));
		return -1;
	}
	printf("sqlite3_open success\n");

	//创建数据表
	//1.准备sql语句
	char sql[128] ="create table if not exists worker(numb int ,name char,salary double)";
	char *errmsg = NULL;               //存放执行sql语句中的错误信息
	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;               //菜单选项	


	for(;;)
	{
		system("clear");             //清空之前的终端信息
		printf("\t\t======公司员工管理系统======\n");
		printf("\t\t======1.添加员工信息======\n");
		printf("\t\t======2.删除员工信息======\n");
		printf("\t\t======3.修改员工信息======\n");
		printf("\t\t======4.查询员工信息======\n");
		printf("\t\t======5.退出======\n");

		printf("请输入操作码:");           //提示并输入信息
		scanf("%d",&menu);
		getchar();                            //吸收回车
		switch(menu)
		{
		case 1:
			{
				char ch[64];
				char *errmsg = NULL;
				printf("请按照格式输入:  (numb,'name',salary)\n");
				fgets(ch,sizeof(ch),stdin);
				char buf[128] = "insert into worker values";
				strcat(buf,ch);
				if(sqlite3_exec(ppDb , buf , NULL , NULL , &errmsg) != SQLITE_OK)
				{
					printf("insert error : %s\n",errmsg);
					sqlite3_free(errmsg);                  //防止内存泄漏
					errmsg = NULL;
					return -1;
				}
				printf("员工信息添加成功\n");



			}break;
		case 2:
			{
				char ch[64];
				char *errmsg = NULL;
				printf("请按照格式输入:  'name'\n");
				fgets(ch,sizeof(ch),stdin);
				char buf[128] = "delete from worker where name=";
				strcat(buf,ch);
				if(sqlite3_exec(ppDb , buf , NULL , NULL , &errmsg) != SQLITE_OK)
				{
					printf("delete error : %s\n",errmsg);
					sqlite3_free(errmsg);                  //防止内存泄漏
					errmsg = NULL;
					return -1;
				}
				printf("员工信息删除成功\n");


			}break;
		case 3:
			{
				for(;;)
				{
					system("clear");             //清空之前的终端信息
					printf("\t\t======修改员工信息======\n");
					printf("\t\t======1.修改员工numb信息======\n");
					printf("\t\t======2.修改员工salary信息======\n");
					printf("\t\t======3.退出======\n");

					printf("请输入操作码:");           //提示并输入信息
					scanf("%d",&menu);
					getchar();                            //吸收回车
					switch(menu)
					{
					case 1:
						{
							char ch[64];
							char *errmsg = NULL;
							printf("请按照格式输入:numb where name='name'\n");
							fgets(ch,sizeof(ch),stdin);
							char buf[128] = "update worker set numb=";
							strcat(buf,ch);
							if(sqlite3_exec(ppDb , buf , NULL , NULL , &errmsg) != SQLITE_OK)
							{
								printf("update error : %s\n",errmsg);
								sqlite3_free(errmsg);                  //防止内存泄漏
								errmsg = NULL;
								return -1;
							}
							printf("员工numb信息修改成功\n");
						}break;
					case 2:
						{
							char ch[64];
							char *errmsg = NULL;
							printf("请按照格式输入:salary where name='name'\n");
							fgets(ch,sizeof(ch),stdin);
							char buf[128] = "update worker set salary=";
							strcat(buf,ch);
							if(sqlite3_exec(ppDb , buf , NULL , NULL , &errmsg) != SQLITE_OK)
							{
								printf("update error : %s\n",errmsg);
								sqlite3_free(errmsg);                  //防止内存泄漏
								errmsg = NULL;
								return -1;
							}
							printf("员工salary信息修改成功\n");
						}break;
					case 3:
						goto end;
					}
				}


			}break;
end:break;
		case 4:
	{

		//查找员工信息
	}break;
		case 5:
	goto END;

			default:printf("您输入的功能有误,请重新输入!!!\n");
		}
		printf("请输入任意键,按回车清屏\n");
		while(getchar() != '\n');
	}
END:
	//关闭数据库
	sqlite3_close(ppDb);
	return 0;
}

运行结果:

添加员工信息:

删除员工信息:

修改员工信息:

总运行结果:

课程总结:

相关推荐

  1. 作业39 sqrt应用

    2024-03-11 02:28:05       17 阅读
  2. 作业..........

    2024-03-11 02:28:05       34 阅读
  3. 32)4.12 作业题

    2024-03-11 02:28:05       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-11 02:28:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-11 02:28:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-11 02:28:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-11 02:28:05       20 阅读

热门阅读

  1. uniapp 使用vue-i18n实现传入变量国际化

    2024-03-11 02:28:05       22 阅读
  2. 蓝桥杯2023年-接龙数列(dp)

    2024-03-11 02:28:05       25 阅读
  3. c++ 类内可以定义引用数据成员吗?

    2024-03-11 02:28:05       23 阅读
  4. 代码审查语录

    2024-03-11 02:28:05       17 阅读
  5. 2024年AI辅助研发:科技新贵,工业变革的先锋

    2024-03-11 02:28:05       24 阅读
  6. 第1周 Python语法基础刷题

    2024-03-11 02:28:05       21 阅读
  7. 脚手架原理之webpack处理html文件和模块打包

    2024-03-11 02:28:05       22 阅读
  8. 安卓okhttp网络请求封装使用

    2024-03-11 02:28:05       18 阅读
  9. 一周速递|全球车联网产业动态(2024年3月10日)

    2024-03-11 02:28:05       25 阅读
  10. HTML笔记3

    2024-03-11 02:28:05       21 阅读