<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了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("nn"); } 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的庫存量為%dn",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; //生成一個新節點s s = (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("商品的庫存總量為%dn",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("nn"); printf("ttt===================商品庫存管理系統======================n"); printf("ttt* 作者:XXX 班級:XXXXXXXXXXX 學號:XXXXXXXXXX *n"); printf("ttt* *n"); printf("ttt* 1>. 錄入商品庫存資訊 *n"); printf("ttt* 2>. 查詢某個商品的庫存量 *n"); printf("ttt* 3>. 修改某個商品的庫存量 *n"); printf("ttt* 4>. 刪除某個商品庫存相關資訊 *n"); printf("ttt* 5>. 插入某個商品的相關資訊 *n"); printf("ttt* 6>. 統計商品的庫存總量 *n"); printf("ttt* 7>. 對每類商品的庫存量排名 *n"); printf("ttt* 0>. 退出管理系統 *n"); printf("ttt* 歡迎使用本系統!*n"); printf("ttt========================================================n"); printf("ttt輸入選項,按回車進入選項: n"); }
部分執行結果截圖
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45