200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > C语言链表实现商品库存管理系统

C语言链表实现商品库存管理系统

时间:2022-05-02 14:34:09

相关推荐

C语言链表实现商品库存管理系统

//代码:

#include <stdio.h>#include <stdlib.h>#include <string.h>//定义一个商品结构体typedef struct sp{char no[12];//商品编号char name[40]; //名称int workload; //库存量struct sp *next; //指向下一节点的指针} SP;//函数声明放在这里void ListCreate(SP *L, int n); //创建商品链表节点void LIstSearch(SP *L); //查找商品信息void ListModify(SP *L); //修改商品信息void ListInsert(SP *L); //插入商品信息void ListDelete(SP *L); //删除商品信息void Input(SP *p, int i);//输入商品信息void SumSp(SP *L); //统计商品的库存总量void Sort(SP *L); //对每类商品的库存量进行排名void Menu(); //考试报名管理系统的菜单//商品库存管理系统的主函数入口int main(){int item, n; //item用于接收输入的命令,n用于接收输入的商品人数SP *L = NULL; //初始化一个头节点L = (SP *)malloc(sizeof(SP)); //为头节点开辟内存空间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:ListInsert(L); //插入商品信息getchar();printf("\n请按任意键返回主菜单\n");getchar();system("cls");break;case 6:SumSp(L);getchar();printf("\n请按任意键返回主菜单\n");getchar();system("cls");break;case 7:Sort(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(SP *L, int n){int i;for (i = 0; i < n; i++){SP *p;//将新生成的节点插入到链表中p = NULL;p = (SP *)malloc(sizeof(SP));Input(p, i);p->next = L->next;L->next = p;}printf("录入成功!");}//查找商品库存量void LIstSearch(SP *L){char n[40];SP *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("%s的库存量为%d\n",p->name,p->workload);}}//修改商品的库存量void ListModify(SP *L){int a;char nam[40];SP *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",&p->workload);printf("修改成功");}}//删除商品信息void ListDelete(SP *L){char n[40];SP *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 ListInsert(SP *L){SP *s = NULL; //生成一个新节点ss = (SP *)malloc(sizeof(SP));printf("请输入商品的商品编号:");scanf("%s", s->no);printf("请输入商品的名称:");scanf("%s", s->name);printf("请输入商品的库存量:");scanf("%d", &s->workload);s->next = L->next;L->next = s;printf("插入成功!");}//统计商品的库存总量void SumSp(SP *L){int sum=0;SP *p=L->next;while(p!=NULL){sum+=p->workload;p=p->next;}printf("商品的库存总量为%d\n",sum); }//对每类商品的库存量进行排名void Sort(SP *L){SP *p,*q,*tail,*l;tail=NULL;while((L->next->next) != tail){p = L;q = L->next;while(q->next != tail){if((q->workload) > (q->next->workload)){p->next = q->next;q->next = q->next->next;p->next->next = q;q = p->next;}q = q->next;p = p->next;}tail = q;}printf("商品库存量从小到大结果如下:\n");l=L->next;while(l!=NULL){if(l->next!=NULL){printf("%s(%d)->",l->name,l->workload);l=l->next;}else{printf("%s(%d)",l->name,l->workload);l=l->next;}}}//输入商品库存的相关信息void Input(SP *p, int i){printf("请输入第%d个商品的商品编号:", i + 1);scanf("%s", p->no);printf("请输入第%d个商品的名称:", i + 1);scanf("%s", p->name);printf("请输入第%d个商品的库存量:", i + 1);scanf("%d", &p->workload);}//商品库存管理系统的菜单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*7>. 对每类商品的库存量排名 *\n");printf("\t\t\t*0>. 退出管理系统 *\n");printf("\t\t\t*欢迎使用本系统!*\n");printf("\t\t\t========================================================\n");printf("\t\t\t输入选项,按回车进入选项: \n");}

//部分运行结果截图

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。