千家信息网

怎么用C语言链表实现销售管理系统

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,这篇文章主要介绍"怎么用C语言链表实现销售管理系统"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"怎么用C语言链表实现销售管理系统"文章能帮助大家解决问题。源码
千家信息网最后更新 2024年11月24日怎么用C语言链表实现销售管理系统

这篇文章主要介绍"怎么用C语言链表实现销售管理系统"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"怎么用C语言链表实现销售管理系统"文章能帮助大家解决问题。

源码

#include#include#includetypedef struct sale{    char no[12];            //代号    char name[40];          //姓名    int month[12];          //月份    float sales[12];        //月销售额    float total;            //年度总销售额    struct sale *next;      //指向下一节点的指针}SALE;//函数声明放在这里void ListCreate(SALE *L, int n); //创建链表节点void LIstSearch(SALE *L);        //查找某个销售员某个月的销售额void ListModify(SALE *L);        //修改某个销售员某个月的销售额void ListDelete(SALE *L);        //删除某个销售员的销售信息void Input(SALE *p, int i);      //录入销售员每个月销售额及其相关信息void Sum(SALE *L);               //统计所有销售员的年度销售总额void SumSale(SALE *L);           //输出所有销售员的年度销售总额void Max(SALE *L);               //找出最大月销售额和年度总销售额void Min(SALE *L);               //找出最大月销售额和年度总销售额void Menu();                     //销售管理系统的菜单//销售管理系统的主函数入口int main(){    int item, n;                         //item用于接收输入的命令,n用于接收输入的销售员人数    SALE *L = NULL;                      //初始化一个头节点    L = (SALE *)malloc(sizeof(SALE));    //为头节点开辟内存空间    L->next = NULL;                      //将头节点的指针域置空    do    {        Menu();                         //菜单        printf("请输入相应的数字,进行相应的操作:\n");        scanf("%d", &item);        system("cls");        switch (item)        {        case 1:            printf("请输入您要录入的销售员人数:");            scanf("%d", &n);            ListCreate(L, n);             getchar();            printf("\n请按任意键返回主菜单\n");            getchar();            system("cls");            break;        case 2:            LIstSearch(L);             getchar();            printf("\n请按任意键返回主菜单\n");            getchar();            system("cls");            break;        case 3:            ListModify(L);  //修改某个销售员某个月的销售额            getchar();            printf("\n请按任意键返回主菜单\n");            getchar();            system("cls");            break;        case 4:            ListDelete(L); //删除信息            getchar();            printf("\n请按任意键返回主菜单\n");            getchar();            system("cls");            break;        case 5:            Sum(L);            SumSale(L);            getchar();            printf("\n请按任意键返回主菜单\n");            getchar();            system("cls");            break;        case 6:            Sum(L);            Max(L);            printf("\n");            Min(L);            getchar();            printf("\n请按任意键返回主菜单\n");            getchar();            system("cls");            break;        case 0: //退出销售管理系统            printf("即将退出销售管理系统.....");            exit(0);        default:            printf("您输入的指令不正确,请重新输入");        }        printf("\n\n");    } while (item);    return 0;}//创建链表,将新生成的节点插入到链表的表头void ListCreate(SALE *L, int n){    int i;    for (i = 0; i < n; i++)    {        SALE *p;        //将新生成的节点插入到链表中        p = NULL;        p = (SALE *)malloc(sizeof(SALE));        Input(p, i);        p->next = L->next;        L->next = p;    }    printf("录入成功!");}//查找某个销售员某个月的销售额void LIstSearch(SALE *L){    int a;    char n[40];    SALE *p = L->next;    if (p == NULL)        printf("数据为空,无法查找!");    else    {        printf("请输入您要查找的销售员姓名:");        scanf("%s", n);        while (strcmp(p->name, n) != 0)        {            p = p->next;            if (p == NULL)            {                printf("没有找到相关信息\n");                return;            }        }        printf("请输入您要查找该销售员第几个月的销售额:");        scanf("%d",&a);        printf("销售员%s第%d月的销售额为%.2f\n",p->name,a,p->sales[a-1]);    }}// 修改某个销售员某个月的销售额void ListModify(SALE *L){    int a;    char nam[40];    SALE *p = L->next;    if (p == NULL)        printf("数据为空,无法修改!");    else    {        printf("请输入您修改的销售员姓名:");        scanf("%s",nam);        while(strcmp(p->name, nam) != 0)        {            p = p->next;            if (p == NULL)            {                printf("没有找到相关信息\n");                return;            }        }        printf("请输入您修改该销售员第几个月的销售额:");        scanf("%d",&a);        printf("请输入您修改后的第%d月的销售额:",a);        scanf("%f",&p->sales[a-1]);        printf("修改成功");    }}//删除销售员销售信息void ListDelete(SALE *L){    char n[40];    SALE *p = L->next, *pre = L; //定义p指针指向头节点的指向,定义pre指向头节点,pre始终指向p的前驱节点    if (p == NULL)        printf("数据为空,无法删除!");    else    {        printf("请输入您要删除的销售员姓名:");        scanf("%s", n);        while (strcmp(p->name, n) != 0)        {            pre = p;            p = pre->next;            if (p == NULL)            {                printf("没有找到相关信息,无法删除\n");                return;            }        }        pre->next = p->next;        free(p);        printf("删除成功");    }}//统计所有销售员的年度总销售额void Sum(SALE *L){    int i;    SALE *p=L->next;    while(p!=NULL)    {        p->total=0;        for(i=0;i<12;i++)            p->total+=p->sales[i];        p=p->next;    }}//输出所有销售员的年度总销售额void SumSale(SALE *L){    SALE *p=L->next;    printf("\n代号\t\t姓名\t\t年度总销售额\n");    while(p!=NULL)    {        printf("\n%s\t\t%s\t\t%.2f",p->no,p->name,p->total);        p=p->next;      }}//找出最大月销售额和年度总销售额void Max(SALE *L){    int i;    float m=0,y=0;      //m用于表示月销售额,y用于表示年销售额    SALE *p=L->next;    while(p!=NULL)    {        for(i=0;i<12;i++)        {            if(p->sales[i]>m)                m=p->sales[i];        }        if(p->total>y)            y=p->total;        p=p->next;    }    printf("最大月销售额为%.2f元\n",m);    printf("最大年销售额为%.2f元\n",y);}//找出最小月销售额和年度总销售额void Min(SALE *L){    int i;    float m,y;      //m用于表示月销售额,y用于表示年销售额    SALE *p=L->next;    m=p->sales[0];    y=p->total;    while(p!=NULL)    {        for(i=1;i<12;i++)        {            if(p->sales[i]sales[i];        }           if(p->totaltotal;        p=p->next;    }    printf("最小月销售额为%.2f元\n",m);    printf("最小年销售额为%.2f元\n",y);}//输入销售员每个月的销售额的相关信息void Input(SALE *p, int i){    int j;    printf("请输入第%d个销售员代号:", i + 1);    scanf("%s", p->no);    printf("请输入第%d个销售员的姓名:", i + 1);    scanf("%s", p->name);    printf("请输入第%d名销售员12个月的的销售额(用空格隔开):", i + 1);    for (j = 0; j < 12; j++)    {        scanf("%f", &p->sales[j]); //输入每个月的销售额    }}//销售管理系统的菜单void Menu(){    printf("\n\n");    printf("\t\t\t======================销售管理系统==========================\n");    printf("\t\t\t* 作者:XXX  班级:XXXXXXXXXXX  学号:XXXXXXXXXX              *\n");    printf("\t\t\t*                                                          *\n");    printf("\t\t\t*          1>. 录入销售员每个月销售额及其相关信息          *\n");    printf("\t\t\t*          2>. 查找某个销售员某个月的销售额                *\n");    printf("\t\t\t*          3>. 修改某个销售员某个月的销售额                *\n");    printf("\t\t\t*          4>. 删除某个销售员的销售信息                    *\n");    printf("\t\t\t*          5>. 统计所有销售员的销售信息                    *\n");    printf("\t\t\t*          6>. 找出最大(或最小)月销售额和年度总销售额    *\n");    printf("\t\t\t*          0>. 退出管理系统                                *\n");    printf("\t\t\t*                                       欢迎使用本系统!    *\n");    printf("\t\t\t===========================================================\n");    printf("\t\t\t输入选项,按回车进入选项:                                   \n");}

主界面

关于"怎么用C语言链表实现销售管理系统"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。

销售 销售额 销售员 输入 系统 信息 年度 管理系统 管理 节点 菜单 最大 姓名 最小 语言 成功 代号 指向 指针 数据 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技互联网公司成都分公司 访问万方数据库显示ip异常 网络安全宣传周亮点 微服务架构影响软件开发文化 影视网络技术是什么 网络技术公司后置审批 服务器多用户同时访问 常见数据库汉语读音 现代化软件开发厂家直销 软件开发查看日志工具 疑似病毒文件是疑似病毒数据库 什么时关系数据库的范式 打印回单显示服务器不能创建对象 对计算机网络技术评论不正确的是 mysql数据库破解版 数据库百分号是干嘛的 广安软件开发厂家价格 隆安县软件开发 大话西游2哪个服务器最强 榆树什么是网络技术服务品质保障 数据库审计实施方案 丰城网络安全 数据管理服务器登录端口 网络安全试讲案例模板 有等价交换的游戏服务器电脑版 网络技术工作室怎么加盟 马达服务器内控和外控 数据库修改数据类型怎么写 数据库关系代数课后题答案 甘泉网络安全宣传
0