3/6 work

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

 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>思维导图

在编译过程中,出现了一个问题:skipping incompatible /data1/zhuzihao6/work/AMQ/openssl/lib//libssl.so when searching for -lssl。这个问题的原因是库文件不兼容,可能是由于系统的位数不匹配导致的。 解决这个问题有以下几种方法: 1. 检查系统的位数:在shell中输入getconf LONG_BIT命令来查看系统的位数。如果系统是64位的,而库文件是32位的,那么就会出现这个问题。可以尝试将不兼容的库文件替换为匹配系统位数的库文件,或者进行相应的软链接操作。 2. 检查库文件路径:确保编译时使用的库文件路径是正确的,库文件存在于该路径下。可以尝试使用ln命令创建软链接,将正确的库文件链接到编译时所需的路径下。 3. 检查库文件版本:确保使用的库文件版本与编译时所需的版本匹配。如果版本不一致,可能会导致库文件不兼容的问题。可以尝试使用匹配版本的库文件来解决问题。 请根据具体情况选择适合的方法来解决这个问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [QT编译问题:skipping incompatible /usr/lib//libboost_system.so when searching for -lboost_system](https://blog.csdn.net/weixin_46813854/article/details/129147423)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [04-----关于/usr/bin/ld: skipping incompatible /xxx/libmysqlclient.so when searching for -lmysql](https://blog.csdn.net/weixin_44517656/article/details/118754776)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值