當前位置:編程學習大全網 - 源碼下載 - 用c語言實現超市商品管理系統,用指針實現商品的插入和刪除

用c語言實現超市商品管理系統,用指針實現商品的插入和刪除

#include?<stdio.h>

#include?<stdlib.h>

#include?<string.h>

typedef?struct?node{

char?no[20];//存放編號

char?name[40];//存放名稱

int?reserve;//庫存

struct?node?*next;

}NODE;

typedef?struct?link{

NODE?*front;//頭指針

NODE?*rear;//尾指針

}LINK;

NODE?*create_node(void){

NODE?*node?=?(NODE?*)malloc(sizeof(NODE));

printf("請輸入貨物編號:");

gets(node->no);

printf("請輸入貨物名稱:");

gets(node->name);

printf("請輸入貨物名稱:");

char?ch;

while(?(ch=?getchar())?!=?'\n');//rewind(stdin);

scanf("%d",&node->reserve);

node->next?=?NULL;

return?node;

}

void?init_link(LINK?*link){

link->rear?=?NULL;

link->front?=?NULL;

}

int?link_empty(LINK?*link){

return?link->front?==?NULL1:?0;

}

int?node_num(LINK?*link){

int?num?=?0;

if(?link_empty(link)){

return?num;

}

num?=?1;

NODE?*node?=?link->front;

while(node?!=?link->rear){

node?=?node->next;

++num;

}

return?num;

}

/*NODE?*node_find(LINK?*link,const?int?n){

int?num?=?node_num(link);

if(num?<?n){

printf("公有節點%d個,無法找到第%d個節點\n",num,n);

}

else{

}

}

*/

void?node_push(LINK?*link){

NODE?*node?=?create_node();

if(link->front?==?NULL){

link->front?=?node;

link->rear?=?node;

node->next?=?NULL;

}

else{

link->rear->next?=?node;

link->rear?=?node;

node->next?=?NULL;

}

}

void?node_insert(LINK?*link,const?int?n){

int?num?=?0,i?=?1;

NODE?*node?=?link->front;

NODE?*new_node?=?NULL;

if?(?link_empty(link)?){

printf("鏈表為空,將建立鏈表!\n");

node_push(link);

}

else{

if(?n?<=?1){

printf("在鏈表頭插入數據\n");

new_node?=?create_node();

new_node->next?=?link->front;

link->front?=?new_node;

}

else?if(?n>=?num?=?node_num(link)?){

printf("節點數少於%d,將在末尾插入節點.\n",n);

node_push(link);

}

else{

printf("在第n個節點後插入數據\n");

if(num?>=?n){

while(?i?!=?n){

node?=?node->next;

++i;

}

new_node?=?create_node();

new_node-next?=?node->next;

node->next?=?new_node;

}

}

}

void?find_node_insert(LIKNK?*link,const?char?*name){

NODE?*node?=?link->front;

if(?link_empty(link)?)

node_push(link);

else?{

while(strcmp(node->name,name)?!=?0){

if(node?!=?link->rear)

node?=?node->next;

else?break;

}

if(node?!=?NULL){

NODE?*new_node?=?create_node();

new_node-next?=?node->next;

node->next?=?new_node;

}

else?{

printf("沒有找到相關貨物,將在頭節點插入數據\n");

intsert(link,0);

}

}

  • 上一篇:Github學生包申請指南&雲主機平臺對比分析
  • 下一篇:Selenium webdriver常用屬性和方法
  • copyright 2024編程學習大全網