可不可以帮我分析下每部过程什么意思,有的看不明白

大佬们我刚学这东西、可不可以帮我分析下每部的意义,呜呜呜哭了







#include<stdio.h>

#include<malloc.h>//用于申请一块连续的指定大小的内存块区域以void*类型返

回分配的内存区域地址//

#include<string.h>//产生字符串//

#define MaxSize 500//线性表定义不超过500个元素//

typedef struct

{

int a;

char name[20];

}ElemType1;

typedef struct

{

ElemType1 data[MaxSize];

int length;

}SqList;

typedef struct

{

int b,c;

char name[20];

}ElemType2;

typedef struct LNode

{

ElemType2 data;

struct LNode *next;

}LinkNode;


void CreatList(SqList *&L,ElemType1 a[],int n)

{

int i=0,k=0;

L=(SqList *)malloc(sizeof(SqList));

while(i<n)

{

L->data[k]=a[i];

k++;

i++;

}

L->length=k;

}

void DispList(SqList *L)

{

for(int i=0;i<L->length;i++)

printf("%d %s \n",L->data[i].a,L->data[i].name);

printf("\n");

}

bool ListInsert(SqList * &L,ElemType1 e)

{

if(L->length==MaxSize)

return false;

else

{ L->data[L->length]=e;

L->length++;

return true;

}

}

void CreateListF(LinkNode * &L,ElemType2 a[],int n)

{

LinkNode *s,*r;

L=(LinkNode *)malloc(sizeof(LinkNode));

r=L;

for(int i=0;i<n;i++)

{

s=(LinkNode *)malloc(sizeof(LinkNode));

s->data=a[i];

r->next=s;

r=s;

}

r->next=NULL;

}

void InitList(LinkNode * &L)

{

L=(LinkNode *)malloc(sizeof(LinkNode));

L->next=NULL;

}

void DispList(LinkNode *L)

{

LinkNode *p=L->next;

printf("\n");

while(p!=NULL)

{

printf("%d ",p->data.b);

printf("%s ",p->data.name);

printf("%d\n",p->data.c);

p=p->next;

}

printf("\n");

}

int LocateElem(LinkNode *L,ElemType2 e)

{

int i=1;

LinkNode *p=L->next;

while(p!=NULL )

{  if (strcmp(p->data.name,e.name)==0 && p->data.b==e.b)

break;

p=p->next;

i++;

}

if(p==NULL)

return(0);

else

return(i);

}

void LocateElem1(LinkNode *L,ElemType2 e)

{

LinkNode *p=L->next;

while(p!=NULL )

{  if (p->data.b==e.b)

{

printf("%d",p->data.b);

printf("%s",p->data.name);

printf("%d",p->data.c);

}

p=p->next;

}

}

void ListPush(LinkNode *&L,ElemType2 e)

{

int i;

int j=1;

LinkNode *p,*s;

i=LocateElem(L,e);

if(i==0)

{

s=(LinkNode *)malloc(sizeof(LinkNode));

s->data=e;

s->next=L->next;

L->next=s;

}

else

{

p=L->next;

while(j<i)

{

p=p->next;

i++;

}


p->data.c=p->data.c+e.c;

}

}


void ListPop(LinkNode *&L,ElemType2 e)

{

int i;

int j=1;

LinkNode *p;

i=LocateElem(L,e);

if(i==0)

{

printf("库中没有该文具。\n");


}

else

{

p=L->next;

while(j<i)

{

p=p->next;

i++;

}

if(p->data.c<e.c)

printf("库中该文具数量不够。\n");

else

p->data.c=p->data.c-e.c;


}

}


int main()

{

int a;

LinkNode *Q;

SqList *L;int n;int s1,s2;

ElemType1 b[20],e;

ElemType2 c[20],e1;

printf("     文具店货品管理系统     \n");

printf("           主菜单           \n");

printf("    <1>设置文具分类表       \n");

printf("    <2>初始化文具表         \n");

printf("    <3>文具入库             \n");

printf("    <4>文具出库             \n");

printf("    <5>查询文具信息         \n");

printf("    <6>显示文具信息         \n");

printf("    <7>添加新文具类别       \n");

printf("    <0>退出系统             \n");

printf("请选择<1,2,3,4,5,6,7,0> \n");

while(1)

{

scanf("%d",&a);

switch(a)

{

case 1: printf("请输入文具类别总数:\n");

scanf("%d",&n);

for(s1=0;s1<n;s1++)

{

printf("请输入文具分类号:\n");

scanf("%d",&b[s1].a);

printf("请输入文具分类名称:\n");

scanf("%s",&b[s1].name);

}

CreatList(L,b,n);

DispList(L);

break;


case 2: printf("请输入文具总数:\n");

scanf("%d",&n);

for(s2=0;s2<n;s2++)

{

printf("请输入文具分类号:\n");

scanf("%d",&c[s2].b);

printf("请输入文具分类名称:\n");

scanf("%s",&c[s2].name);

printf("请输入文具数量:\n");

scanf("%d",&c[s2].c);

}

CreateListF(Q,c,n);

break;

case 3: printf("请输入文具分类号:\n");

scanf("%d",&e1.b);

printf("请输入文具分类名称:\n");

scanf("%s",&e1.name);

printf("请输入文具数量:\n");

scanf("%d",&e1.c);

ListPush(Q,e1);

break;

case 4: printf("请输入文具分类号:\n");

scanf("%d",&e1.b);

printf("请输入文具分类名称:\n");

scanf("%s",&e1.name);

printf("请输入文具数量:\n");

scanf("%d",&e1.c);

ListPop(Q,e1);

break;

case 5: printf("请输入文具分类号:\n");

scanf("%d",&e1.b);

printf("Number StockName amount \n");

LocateElem1(Q,e1);

break;

case 6: DispList(Q);

break;

case 7: printf("请输入文具分类号:\n");

scanf("%d",&e.a);

printf("请输入文具分类名称:\n");

scanf("%s",&e.name);

ListInsert(L,e);

DispList(L);

break;

case 0:return 0;

}

}

}


全部评论
钱给够一切好说
点赞 回复
分享
发布于 2019-12-09 20:55
自己慢慢学呗多有意思😅
点赞 回复
分享
发布于 2019-12-09 21:40
阅文集团
校招火热招聘中
官网直投
c学好了以后学啥都容易
点赞 回复
分享
发布于 2019-12-09 21:41

相关推荐

2 1 评论
分享
牛客网
牛客企业服务