C语言源代码系列-管理系统之会员计费系统

news2025/10/27 15:17:40
往期文章分享
  • 点击跳转=>《导航贴》- Unity手册,系统实战学习
  • 点击跳转=>《导航贴》- Android手册,重温移动开发

👉关于作者

众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣 !!!
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎私我,交流群让学习不再孤单

在这里插入图片描述

👉实践过程

😜问题

通过“会员卡计费系统”C语言课程设计的实践,掌握函数、数据的读取和存储。熟练链表的操作,为后期学习打下基础,体会课程设计的基本过程,总结课程设计遇到的问题及解决方法。了解实际开发的步骤及注意事项

查找资料准备工作,在老师同学的帮助下编写程序以完成设计目的。
(1)新会员登记。(将会员个人信息及此会员的会员卡信息进行录入。)
(2)会员信息修改。
(3)会员续费。(会员出示会员卡后,管理人员根据卡号查找到该会员的信息并显示。此时可以进行续费,续费后,提示成功,并显示更新后的信息。)
(4)会员消费结算。(会员出示会员卡后,管理人员根据卡号查找到该会员的信息,结算本次费用。提示成功,并显示更新后的信息。)累计消费满1000元,及自动升级为VIP会员。之后每次消费给予9折优惠。
(4)会员退卡。(收回会员卡,并将余额退还,删除该会员信息。)
(5)用菜单进行管理
(6)统计功能。
能够按每个会员的缴费总额进行排序。在排序的最后一行显示所有会员的缴费总额,以及消费总额。
能够按累计消费总额进行排序。在排序的最后一行显示所有会员的缴费总额,以及消费总额。

😜回答

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#include <stdio.h>
#include <windows.h>
#include <time.h>
#include <string.h>
#define N 100
struct employee
{
    int num;
    char name[10];
    char sex;
    int age;
    char xueli[30];
    int wage;
    int xiao;
    int yu;
    char addr[30];
    long int tel;
}

em[100]; /*定义一个结构体*/
void menu();
void input();
void save(int);
void display();
void del();
void add();
void search();
void search_num();
void search_xueli();
void search_tel();
void modify(); /*定义各函数*/

void menu() /*菜单函数*/
{
    printf(" ******************菜单管理****************\n");
    printf(" 1.新会员登记");
    printf(" 2统计功能\n");
    printf(" 3.会员消费结算");
    printf(" 4.会员退卡\n");
    printf(" 5.会员卡续费");
    printf(" 6会员信息修改\n");
    printf(" 7.会员卡挂失");
    printf(" 8.退出\n");
    printf(" *************欢迎使用会员卡计费系统************\n");
    printf("\n");
    printf("\n");
}

int main()
{
    int n, flag;
    char a;
    char* s1;
    int b, j, flg = 0;
    menu(); /*调用菜单函数*/ // 这几个调换一下顺序就可以了?记住声明变量的代码要在前面do
    {
        printf("请选择你需要操作的步骤(1--8):\n");
        scanf("%d", &n);
        if (n >= 1 && n <= 8)
        {
            flag = 1;
        }
        else
        {
            flag = 0;
            printf("您输入有误?请重新选择!");
        }
    }
    while (flag == 0) ;
    while (flag == 1)
    {
        switch (n)
        {
            case 1:
                printf(" ◆◆◆新会员登记◆◆◆\n");
                printf("\n");
                input();
                break;
            case 2:
                printf(" ◆◆◆统计功能◆◆◆\n");
                printf("\n");
                display();
                break;
            case 3:
                printf(" ◆◆◆会员消费结算◆◆◆\n");
                printf("\n");
                search();
                break;
            case 4:
                printf(" ◆◆◆会员退卡◆◆◆\n");
                printf("\n");
                del();
                break;
            case 5:
                printf(" ◆◆◆会员卡续费◆◆◆\n");
                printf("\n");
                add();
                break;
            case 6:
                printf(" ◆◆◆会员信息修改◆◆◆\n");
                printf("\n");
                modify();
                break;
            case 7:
                printf(" ◆◆◆会员卡挂失◆◆◆\n");
                printf("\n");
                modify();
                break;
            case 8:
                exit(0);
                break;
            default: break;
        }

        getchar();
        printf("\n");
        printf("是否继续进行(y or n):\n");
        scanf("%c", &a);
        if (a == 'y')
        {
            flag = 1;
            system("cls"); /*清屏*/
            menu(); /*调用菜单函数*/
            printf("请再次选择你需要操作的步骤(1--7):\n");
            scanf("%d", &n);
            printf("\n");
        }
        else
            exit(0);
    }
}

void input() /*录入函数*/
{
    int i, m;
    printf("请输入需要创建信息的会员人数(1--100):\n");
    scanf("%d", &m);
    for (i = 0; i < m; i++)
    {
        printf("卡号?");
        srand((int) time(0));
        em[i].num = rand() % 100 + 20000000;
        if (em[i].num != em[i - 1].num)
            printf("%8d ", em[i].num);
        printf("\n");
        printf("请输入姓名: ");
        scanf("%s", em[i].name);
        getchar();
        printf("请输入性别(f--女m--男): ");
        scanf("%c", &em[i].sex);
        getchar();
        printf("请输入年龄: ");
        scanf("%d", &em[i].age);
        getchar();
        printf("请输入学历: ");
        scanf("%s", em[i].xueli);
        getchar();
        printf("请输入缴费金额: ");
        scanf("%d", &em[i].wage);
        getchar();
        printf("请输入住址: ");
        scanf("%s", em[i].addr);
        getchar();
        printf("请输入电话: ");
        scanf("%d", &em[i].tel);
        printf("\n");
    }

    printf("\n创建完毕!\n");
    save(m);
}

void save(int m) /*保存文件函数*/
{
    int i;
    FILE* fp;
    if ((fp = fopen("employee_list", "wb")) == NULL) /*创建文件并判断是否能打开*/
    {
        printf("cannot open file\n");
        exit(0);
    }

    for (i = 0; i < m; i++) /*将内存中会员的信息输出到磁盘文件中去*/
        if (fwrite(&em[i], sizeof(struct employee),1,fp)!=1)
    printf("file write error\n");
    fclose(fp);
}

int load() /*导入函数*/
{
    FILE* fp;
    int i = 0;
    if ((fp = fopen("employee_list", "rb")) == NULL)
    {
        printf("cannot open file\n");
        exit(0);
    }
    else
    {
        do
        {
            fread(&em[i], sizeof(struct employee),1,fp);
            i++;
        } while (feof(fp) == 0);
    }

    fclose(fp);
    return (i - 1);
}

void display() /*浏览函数*/
{
    int i;
    int m = load();
    printf("\n卡号\t姓名\t性别\t年龄\t学历\t缴费金额\t消费金额\t住址\t电话\n");
    for (i = 0; i < m; i++) /*m为输入部分的会员人数*/
        printf("\n %d\t%s\t%c\t%d\t%s\t%d\t%s\t%ld\n", em[i].num, em[i].name, em[i].sex, em[i].age, em[i].xueli,
            em[i].wage, em[i].xiao, em[i].addr, em[i].tel);
}

void del() /*删除函数*/
{
    int m = load();
    int i, j, n, t, flag;
    char name[20];
    printf("\n 原来的会员信息:\n");
    display(); /* 调用浏览函数*/
    printf("\n");
    printf("请输入要删除的会员的姓名:\n");
    scanf("%s", name);
    for (flag = 1, i = 0; flag && i < m; i++)
    {
        if (strcmp(em[i].name, name) == 0)
        {
            printf("\n已找到此人?原始记录为?\n");
            printf("\n卡号 姓名 性别 年龄 缴费金额 余额\n");
            printf("\n%d\t%s\t%c\t%d\t%d\t%d\n", em[i].num, em[i].name, em[i].sex, em[i].age, em[i].wage, em[i].yu);
            printf("\n确实要删除此人信息请按1,不删除请按0\n");
            scanf("%d", &n);
            if (n == 1) /*如果删除?则其他的信息都往上移一行*/
            {
                for (j = i; j < m - 1; j++)
                {
                    strcpy(em[j].name, em[j + 1].name);
                    em[j].num = em[j + 1].num;
                    em[j].sex = em[j + 1].sex;
                    em[j].age = em[j + 1].age;
                    em[j].wage = em[j + 1].wage;
                    em[j].yu = em[j + 1].yu;
                }

                flag = 0;
            }
        }
    }

    if (!flag)
        m = m - 1;
    else
        printf("\n对不起?查无此人!\n");
    printf("\n 浏览删除后的所有会员信息:\n");
    save(m); /*调用保存函数*/
    display(); /*调用浏览函数*/
    printf("\n继续删除请按?不再删除请按\n");
    scanf("%d", &t);
    switch (t)
    {
        case 1:
            del();
            break;
        case 0: break;
        default: break;
    }
}

void add() /*添加函数*/
{
    FILE* fp;
    int num;
    int t;
    int i;
    int m = load();
    printf("\n 原来的会员信息:\n");
    display(); /* 调用浏览函数*/
    printf("\n");
    fp = fopen("emploee_list", "a");
    printf("请输入续费会员卡号:\n");
    scanf("%d", &num);
    for (i = 0; i < m; i++)
        if (num == em[i].num)
        {
            printf("\n已找到此人?其记录为?\n");
            printf("\n卡号\t姓名\t缴费金额\t消费金额\n");
            printf("\n%d\t%s\t%d\t%d\t%d\n", em[i].num, em[i].name, em[i].wage, em[i].xiao);
            printf("\n输入续费金额?\n");
            scanf("%d", &t);
            em[i].wage = em[i].wage + t;
            printf("\n续后金额?\t%d\n", em[i].wage);
            printf("\n续费成功!\n");
        }
}

void search() /*查询函数*/
{
    int t, flag;
    do
    {
        printf("\n按卡号查询请按1; 按电话号码查询请按3,进入主函数按4\n");
        scanf("%d", &t);
        if (t >= 1 && t <= 4)
        {
            flag = 1;
            break;
        }
        else
        {
            flag = 0;
            printf("您输入有误?请重新选择!");
        }
    } while (flag == 0);

    while (flag == 1)
    {
        switch (t)
        {
            case 1:
                printf("按卡号查询\n");
                search_num();
                break;
            case 3:
                printf("按电话号码查询\n");
                search_tel();
                break;
            case 4:
                main();
                break;
            default: break;
        }
    }
}

void search_num()
{
    int num;
    int i, t;
    int m = load();
    printf("请输入要查找的会员卡号(20000001---20000100):\n");
    scanf("%d", &num);
    for (i = 0; i < m; i++)
        if (num == em[i].num)
        {
            printf("\n已找到此人?其记录为?\n");
            printf("\n卡号\t      姓名\t性别\t年龄\t缴费金额\t电话\n");
            printf("\n%d\t%s\t%c\t%d\t%d\t%ld\n", em[i].num, em[i].name, em[i].sex, em[i].age, em[i].wage, em[i].tel);
            printf("\n该次消费为;\n");
            scanf("%d", &em[i].xiao);
            em[i].yu = em[i].wage - em[i].xiao;
            printf("\n卡号\t      姓名\t性别\t年龄\t缴费金额\t消费金额\t余额\t电话\n");
            printf("\n%d\t%s\t%c\t%d\t%d\t%d\t%d\t%ld\n", em[i].num, em[i].name, em[i].sex, em[i].age, em[i].wage,
                em[i].xiao, em[i].yu, em[i].tel);
            break;
        }

    if (i == m)
        printf("\n对不起?查无此人\n");
    printf("\n");
    printf("返回查询函数请按1,继续查询卡号请按2\n");
    scanf("%d", &t);
    switch (t)
    {
        case 1:
            search();
            break;
        case 2: break;
        default: break;
    }
}

void search_tel()
{
    long int tel;
    int i, t;
    int m = load();
    printf("请输入要查找的电话号码:\n");
    scanf("%ld", &tel);
    for (i = 0; i < m; i++)
        if (tel == em[i].tel)
        {
            printf("\n已找到此人?其记录为?\n");
            printf("\n卡号\t      姓名\t性别\t年龄\t缴费金额\t电话\n");
            printf("\n%d\t%s\t%c\t%d\t%d\t%ld\n", em[i].num, em[i].name, em[i].sex, em[i].age,
                em[i].wage, em[i].tel);
            printf("\n该次消费为;\n");
            scanf("%d", &em[i].xiao);
            em[i].yu = em[i].wage - em[i].xiao;
            printf("\n卡号\t      姓名\t性别\t年龄\t缴费金额\t消费金额\t余额\t电话\n");
            printf("\n%d\t%s\t%c\t%d\t%d\t%d\t%d\t%s\t%ld\n", em[i].num, em[i].name, em[i].sex, em[i].age, em[i].wage,
                em[i].xiao, em[i].yu, em[i].tel);
            break;
        }

    if (i == m)
        printf("\n对不起?查无此人\n");
    printf("\n");
    printf("返回查询函数请按,继续查询电话号码请按\n");
    scanf("%d", &t);
    switch (t)
    {
        case 1:
            search();
            break;
        case 2: break;
        default: break;
    }
}

void modify() /*修改函数*/
{
    int num;
    char name[10];
    char sex;
    int age;
    char xueli[30];
    int wage;
    char addr[30];
    long int tel;
    int b, c, i, n, t, flag;
    int m = load(); /*导入文件内的信息*/
    printf("\n 原来的会员信息:\n");
    display(); /* 调用浏览函数*/
    printf("\n");
    printf("请输入要修改的会员的姓名:\n");
    scanf("%s", name);
    for (flag = 1, i = 0; flag && i < m; i++)
    {
        if (strcmp(em[i].name, name) == 0)
        {
            printf("\n已找到此人?原始记录为?\n");
            printf("\n卡号\t        姓名\t性别\t年龄\t学历\t缴费金额\t住址\t电话\n");
            printf("\n%d\t%s\t%c\t%d\t%s\t%d\t%s\t%ld\n", em[i].num, em[i].name, em[i].sex, em[i].age, em[i].xueli,
                em[i].wage, em[i].addr, em[i].tel);
            printf("\n确实要修改此人信息请按; 不修改请按\n");
            scanf("%d", &n);
            if (n == 1)
            {
                printf("\n需要进行修改的选项\n 1.卡号2.姓名3.性别4.年龄5.学历6.缴费金额7.住址8.电话\n");
                printf("请输入你想修改的那一项序号:\n");
                scanf("%d", &c);
                if (c > 8 || c < 1)
                    printf("\n选择错误?请重新选择!\n");
            }

            flag = 0;
        }
    }

    if (flag == 1)
        printf("\n对不起?查无此人!\n");
    do
    {
        switch (c) /*因为当找到第i个会员时,for语句后i自加了,所以下面的应该把改后的信息赋值给第i-1个人*/
        {
            case 1:
                printf("卡号改为: ");
                scanf("%d", &num);
                em[i - 1].num = num;
                break;
            case 2:
                printf("姓名改为: ");
                scanf("%s", name);
                strcpy(em[i - 1].name, name);
                break;
            case 3:
                printf("性别改为: ");
                getchar();
                scanf("%c", &sex);
                em[i - 1].sex = sex;
                break;
            case 4:
                printf("年龄改为: ");
                scanf("%d", &age);
                em[i - 1].age = age;
                break;
            case 5:
                printf("学历改为: ");
                scanf("%s", xueli);
                strcpy(em[i - 1].xueli, xueli);
                break;
            case 6:
                printf("缴费金额改为: ");
                scanf("%d", &wage);
                em[i - 1].wage = wage;
                break;
            case 7:
                printf("住址改为: ");
                scanf("%s", addr);
                strcpy(em[i - 1].addr, addr);
                break;
            case 8:
                printf("电话改为: ");
                scanf("%ld", &tel);
                em[i - 1].tel = tel;
                break;
        }

        printf("\n");
        printf("\n是否确定所修改的信息?\n 是请按; 不,重新修改请按: \n");
        scanf("%d", &b);
    } while (b == 2);

    printf("\n浏览修改后的所有会员信息:\n");
    printf("\n");
    save(m);
    display();
    printf("\n继续修改请按?不再修改请按\n");
    scanf("%d", &t);
    switch (t)
    {
        case 1:
            modify();
            break;
        case 0: break;
        default: break;
    }

    getchar();
}

👉其他

📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:https://zhima.blog.csdn.net/
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。

温馨提示点击下方卡片获取更多意想不到的资源。
空名先生

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/33866.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【附源码】计算机毕业设计JAVA疫情期间物资分派管理系统

【附源码】计算机毕业设计JAVA疫情期间物资分派管理系统 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; …

FEDformer里面的CZ1d

这里的x是传入的value&#xff0c;是&#xff08;1,24,128,8&#xff09;维度的。 然后&#xff0c;他提取的extra_x的维度是&#xff08;1,8,128,8&#xff09;这个维度的。 然后&#xff0c;下一步&#xff0c;将这两个xcat起来&#xff0c;不知道在干啥。 因为本来的x是&…

赵本山最有钱徒弟,曾经入股宾利投资吴京,如今又盯上歌手腾格尔

有句话叫作&#xff1a;过了山海关&#xff0c;都找赵本山。说明本山大叔在东北影响很大&#xff0c;其实他的徒弟也不弱。赵本山老师作为央视春晚小品王&#xff0c;手下弟子没有三千也有八百&#xff0c;个个都是出来拔萃身怀绝技。 这些人之所以拜本山大叔为师&#xff0c;无…

[附源码]java毕业设计医药管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Teracloud+GoodSync

TeracloudGoodSync 前言 Teracloud除了存文献外&#xff0c;它还是个云盘&#xff0c;可以搭配各种同步软件使用&#xff0c;之前在博客多终端云同步文献管理&#xff1a;ZoteroTeraCloud&#xff08;WindowsAndroid&#xff09;里提到用同步软件搭配Teracloud使用&#xff0…

使用SSM搭建图书商城管理系统(完整过程介绍、售后服务哈哈哈)

经过几位下载同学的反应、大部分运行未成功的原因有以下几点、特此记录以下。代码是完全没有问题的 项目地址&#xff1a;https://download.csdn.net/download/weixin_43304253/85811914 代码运行环境&#xff1a; tomcat&#xff1a;8 IDEA&#xff1a;2020 JDK&#xff1a;1…

vue.js毕业设计,基于vue.js前后端分离在线考试系统设计与实现(H5移动项目)

功能介绍 用户首次登陆系统需要注册一个用户或直接使用微信作为账号&#xff0c;用户在登录平台后&#xff0c;可以进行平台的操作。主要模块包括以下几点&#xff1a; 注册登录功能&#xff1a;注册普通账号登录&#xff1b;也可以直接使用微信登录&#xff1b;登录后可以修改…

【MySQL进阶】单表访问方法

【MySQL进阶】单表访问方法 文章目录【MySQL进阶】单表访问方法一&#xff1a;访问方法&#xff08;access method&#xff09;1&#xff1a;const2&#xff1a;ref3&#xff1a;ref_or_null4&#xff1a;range5&#xff1a;index6&#xff1a;all二&#xff1a;注意事项1&…

黑马点评--Redis消息队列

Redis消息队列 Redis消息队列实现异步秒杀 消息队列&#xff08;Message Queue&#xff09;&#xff0c;字面意思就是存放消息的队列。最简单的消息队列模型包括3个角色&#xff1a; 消息队列&#xff1a;存储和管理消息&#xff0c;也被称为消息代理&#xff08;Message Br…

这就是你了解的指针吗?

小叮当的任意门——指针1. 指针是什么&#xff1f;2. 指针和指针类型1. 指针-整数2. 指针的解引用3. 野指针1. 野指针的成因未初始指针越界访问指针指向的空间释放2. 如何规避野指针4. 指针运算指针减指针指针的关系运算5. 二级指针6. 指针数组1. 指针是什么&#xff1f; 在讲指…

内核的架构 --- 宏内核与微内核

宏内核 宏内核就是把进程管理代码、 内存管理代码、 设备管理代码、 文件管理代码、 各种设备驱动程序代码以及其 他功能模块的代码经过编译&#xff0c; 最后链接在一起&#xff0c; 形成一个大的可执行程序。 这个大程序里有实现支持这些功能的所有代码&#xff0c; 向用户应…

Spring Cloud Nacos 2021使用LoadBalancer做负载均衡

项目源码&#xff1a;https://download.csdn.net/download/weixin_42950079/87150709 Spring Cloud Nacos 2021 移除了 Ribbon&#xff0c;在Spring Cloud Commons 项目中添加了 Spring Cloud LoadBalancer 作为新的负载均衡器 <dependency><groupId>com.alibaba.…

html实现好看的导航主页(附源码)

文章目录1.设计来源1.1 主界面1.2 底部导航1.3 屏幕保护2.效果和源码2.1 动态效果2.2 源代码源码下载作者&#xff1a;xcLeigh 文章地址&#xff1a;https://blog.csdn.net/weixin_43151418/article/details/128028326 html实现好看的导航主页(附源码) html实现好看的导航主页&…

印度富士康的iPhone产能在扩产,对中国制造将产生深远影响

郑州富士康生产iPhone再次受到影响&#xff0c;这让业界想起当下在国内越来越多见的印度制造的iPhone14&#xff0c;业界猜测苹果和富士康将加快印度产能扩张的进程&#xff0c;推动印度制造的iPhone占比加速提升。目前苹果的三大代工厂中的纬创和富士康都已在印度设厂生产iPho…

关于我给dumi2.0提pr的完整记录

前言 博主最近一年时间在工作业余都在写开源组件库 concis &#xff0c;其中文档站点生成框架采取了 dumi&#xff0c;前几天不久dumi2.0正式发布&#xff0c;博主也是顺势而为直接把项目升级&#xff08;dumi1 -> dumi2&#xff09; 由于dumi2 的站点设计比原来好看太多了…

nios烧写到EPCS的问题处理

原理图如下图&#xff0c;板卡FPGA同时使用2片flash配置芯片&#xff0c;左侧M25P64即EPCS64。2片flash配置芯片使用相同的SPI总线。 在不使用nios的quartus工程中&#xff0c;使用jtag烧写jic的方式固化程序到EPCS64&#xff0c;始终正常。 近期使用含有nios的quartus工程&am…

生物素标记试剂:Alykne-Biotin-DADPS,2241685-22-1,DADPS-生物素-炔

【中文名称】DADPS-生物素-炔&#xff0c;炔基-生物素-二苯基硅烷 【英文名称】 DADPS Biotin Alykne&#xff0c;Alykne-Biotin-DADPS 【结 构 式】 【CAS号】2241685-22-1 【分子式】C42H62N4O9SSi 【分子量】827.12 【基团部分】Alykne基团 【纯度标准】95% 【包装规格】1g&…

小米手机用什么耳机音质好?发烧级音质蓝牙耳机推荐

小米品牌在我们日常生活中经常见到&#xff0c;蓝牙耳机作为现代人的必需品&#xff0c;使用人数一直都是递增的&#xff0c;市面上的蓝牙耳机品牌众多&#xff0c;但很多人不知道哪个牌子音质更好&#xff0c;作为一位耳机发烧友&#xff0c;近几天也是整理了几款音质表现出色…

MCE | mTOR 通路是如何调控自噬的

mTOR 是细胞生长和代谢的主要调节分子&#xff0c;可促进合成代谢过程&#xff0c;如核糖体的生物发生 (Ribosome biogenesis) 以及蛋白质、核苷酸、脂肪酸和脂质的合成&#xff0c;并抑制分解代谢过程&#xff0c;如自噬。mTOR 信号的失调与许多人类疾病有关&#xff0c;包括糖…

C++使用ffmpeg硬解码

转载&#xff1a;https://www.pudn.com/news/62bc096d405aad31f717648e.html 使用ffmpeg解码video模块&#xff0c;支持3种解码&#xff1a;cpu解码、amd64平台的cuda解码和NX平台的Nvmpi解码封装库只依赖ffmpeg&#xff0c;测试程序中用到了OpenCV&#xff0c;可用于将帧送往…