药店管理系统
一.运用知识点:
链表的插入,添加,删除,排序等功能
文件的打开与关闭
二.系统功能展示:
1.添加药品信息
函数:Linklist* add_medicine(Linklist *head);
作用:在链表的尾部添加信息(只能添加到最后);
易错:当指针指向NULL时,在添加
代码如下:
Linklist* add_medicine(Linklist *head) //添加药品信息
{
printf("请输入药品信息:\n");
printf("药品编号:");
scanf("%s",n);
Linklist *q;
q=head;
while (q->next!= NULL)
{
if(strcmp(q->next->num, n)==0)
{
printf("此药品已存在,无需再添加\n");
break;
}
q=q->next;
}
if(q->next==NULL)
{
Linklist *p;
p=(Linklist*)malloc(sizeof(node));
strcpy(p->num, n);
printf("药品名:");
scanf("%s",p->name );
printf("保质期\n年份:");
scanf("%d", &sy);
printf("月份:");
scanf("%d", &sm);
if(sm<1||sm>12)
printf("输入月份信息有错误!\n");
else
{
printf("日期:");
scanf("%d", &sd);
if(sm==1||sm==3||sm==5||sm==7||sm==8||sm==10||sm==12)
{
if(sd<0||sd>31)
{
printf("输入日期信息有错误!\n");
}
else
{
p->save_year=sy;
p->save_month=sm;
p->save_day=sd;
printf("剩余量:");
scanf("%d", &numb);
p->number= numb;
printf("药品价格:");
scanf("%d", &pc);
p->price = pc;
p->next = q->next;
q->next = p;
}
}
else if(sm==4||sm==6||sm==9||sm==11)
{
if(sd<0||sd>30)
{
printf("输入日期信息有错误!\n");
}
else
{
p->save_year=sy;
p->save_month=sm;
p->save_day=sd;
printf("剩余量:");
scanf("%d", &numb);
p->number= numb;
printf("药品价格:");
scanf("%d", &pc);
p->price = pc;
p->next = q->next;
q->next = p;
}
}
else if(sm==2)
{
p->save_year=sy;
p->save_month=sm;
p