怎么用C语言链表实现销售管理系统
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要介绍"怎么用C语言链表实现销售管理系统"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"怎么用C语言链表实现销售管理系统"文章能帮助大家解决问题。源码
千家信息网最后更新 2025年02月01日怎么用C语言链表实现销售管理系统
这篇文章主要介绍"怎么用C语言链表实现销售管理系统"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"怎么用C语言链表实现销售管理系统"文章能帮助大家解决问题。
源码
#include#include #include typedef 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->total total; 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安全错误
数据库的锁怎样保障安全
纯组分数据库
罗克韦尔软件开发
亚马逊的数据库
网络技术及教育应用
产品全自动上架软件开发
无锡常规软件开发费用是多少
成都计算机软件开发培训
南京市军荣软件开发有限公司
监督管理网络安全工作的机关
软件开发风险规避方案
天津常用的外贸软件开发公司
播放器的数据库代码
科尔摩根服务器3v3
中国网络安全前三十强
网络安全活动周日总结
汽车车载网络技术介绍
服务器维护中html页面
肖战共建网络安全
企业数据库备份架构
济南安卓软件开发公司有哪些
久远银海数据库答案
超市数据库设计实例
网络技术服务费做什么
不同电脑用同一个账号操作数据库
轩逸车载音乐服务器错误怎么办
国土局网络安全
防范网络安全意思
a列筛选b列相同的数据库
高职网络安全高级应用
一元夺宝数据库设计