3/6 work

本文介绍了使用C语言编写的员工信息管理系统,包括对数据库进行增删改查操作,如添加新员工、删除指定员工、修改员工信息以及创建和使用数据表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1>数据库操作的增、删、改完成

#include<myhead.h>
void do_add(sqlite3*ppp)
{
	int numb=0;
	char name[20]="";
	double salaryp=0;
	puts("请输入工号");
	scanf("%d",&numb);
	getchar();
	puts("请输入姓名");
	fgets(name,sizeof(name),stdin);
	name[strlen(name)-1]=0;
	puts("请输入成绩");
	scanf("%lf",&salaryp);
	getchar();
	char sql[128];
	sprintf(sql,"insert into Worker values (%d,'%s',%lf);",numb,name,salaryp);
	char*errmsg=NULL;

	if(sqlite3_exec(ppp,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
	{
   	    printf("exec error : %s\n", errmsg);
        sqlite3_free(errmsg);             //防止内存泄露
        errmsg = NULL;
        return;

	}

}
void do_delete(sqlite3*ppp)
{
	char name[20]="";
	puts("请输入你要删除记录的姓名");
	fgets(name,sizeof(name),stdin);
	name[strlen(name)-1]=0;
	char sql[128];
	char*errmsg=NULL;
	sprintf(sql,"delete from Worker where name='%s';",name);
	if(sqlite3_exec(ppp,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
	{
   	    printf("exec error : %s\n", errmsg);
        sqlite3_free(errmsg);             //防止内存泄露
        errmsg = NULL;
        return;

	}

}
void do_update(sqlite3*ppp)
{
	char name[20]="";
	char names[20]="";
	puts("请输入你要修改记录的姓名");
	fgets(name,sizeof(name),stdin);	
	puts("请输入你要修改记录的新姓名");
	fgets(names,sizeof(names),stdin);

	name[strlen(name)-1]=0;
	names[strlen(names)-1]=0;
	char sql[128];
	char*errmsg=NULL;
	sprintf(sql,"update Worker set name='%s' where name='%s';",names,name);
	if(sqlite3_exec(ppp,sql,NULL,NULL,&errmsg)!=SQLITE_OK)
	{
   	    printf("exec error : %s\n", errmsg);
        sqlite3_free(errmsg);             //防止内存泄露
        errmsg = NULL;
        return;

	}

}
int main(int argc, const char *argv[])
{
    //定义数据库句柄指针
    sqlite3 * ppDb = NULL;
    //打开数据库,如果数据库不存在,则创建数据库
    //将数据库句柄由参数2返回
    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");

    //创建数据表
    //1、准备sql语句
    char sql[128] = "create table if not exists Worker(numb int, name char, salary double)";
    //char *sql = "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=======XXX公司员工管理系统=======\n");
        printf("\t\t======1、添加员工信息=========\n");
        printf("\t\t======2、删除员工信息=========\n");
        printf("\t\t======3、修改员工信息=========\n");
        printf("\t\t======4、查询员工信息=========\n");
        printf("\t\t======0、退出=========\n");

        printf("请输入操作码:");          //提示并输入信息
        scanf("%d", &menu);
        getchar();                          //吸收回车

        switch(menu)
        {
        case 1:
            {
                do_add(ppDb);
            }
            break;
        case 2:
            {
                do_delete(ppDb);
            }
            break;
        case 3:
            {
                do_update(ppDb);
            }
            break;
        case 4:
            {
                //do_search(ppDb);
            }
            break;
        case 0:
            goto END;
        default:printf("您输入的功能有误,请重新输入!!!\n");
        }

        printf("请输入任意键,按回车清屏\n");
        while(getchar() != '\n');

    }




END:


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


    return 0;
}

2>思维导图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值