C语言源代码)
#include #include #include #include typedef struct date { int year, month, day; void _date(){ scanf(“%d-%d-%d“, } void show_date() { printf(“%d-%d-%d\n“,year,month,day); } }date; typedef struct product { char product_name[50]; int total, sales; date in_date, out_date; product* next_product; }product, *List_product; typedef struct kind { char kind_name[50]; kind* next_kind; List_product head; }kind, *List_kind; bool Find_kind(List_kind Q, char* name) { kind* pk=Q->next_kind; while(pk!=NULL) { if(strcmp(pk->kind_name, name)==0) return true; pk=pk->next_kind; } return false; } bool Find_product(List_kind Q, char* name) { kind* pk=Q->next_kind; while(pk!=NULL) { product* pp=pk->head; while(pp!=NULL) { if(strcmp(pp->product_name, name)==0) return true; pp=pp->next_product; } pk=pk->next_kind; } return false; } void display_product(kind* pk, product* pp) { //输出产品信息 puts(“产品的信息如下: “); printf(“产品所属类名称:%s\n“, pk->kind_name); printf(“产 品 名 称:%s\n“, pp->product_name); printf(“产 品 总 量:%d\n“, pp->total); printf(“产 品 销 售 量: %d\n“, pp->sales); printf(“产品的进货日期:“); pp->in_date.show_date(); printf(“产品的销售日期:“); pp->out_date.show_date(); } void Insert_kind(List_kind int n, i; scanf(“%d“, for(i=1; ikind_name); if(Find_kind(Q, pk->kind_name)) { puts(“产品类名已经存在,无需添加!!“); system(“pause“); continue; } pk->head=NULL; pk->next_kind=Q->next_kind; Q->next_kind=pk; printf(“第%d个产品类添加成功!\n“, i); system(“pause“); } } void Insert_product(List_kind int n, i; scanf(“%d“, for(i=1; iproduct_name); if(Find_product(Q, pp->product_name)) { puts(“该产品已经存在,不需要添加!“); system(“pause“); continue; } pp->sales = 0; printf(“请输入产品的进货时期(yyyy-mm-dd):“); pp->in_date._date(); printf(“请输入产品的进货数量:“); scanf(“%d“, kind* pk=Q->next_kind; while(pk!=NULL) { if(strcmp(pk->kind_name, k_name)==0) break; pk=pk->next_kind; } pp=pk->head;