⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 insert_d.cpp

📁 书店管理程序
💻 CPP
字号:
  //InSert_DuB.cpp
  

  #   include  "Find.cpp"
  #   include  <conio.h>
  #   include  <stdio.h>
  #   include  <stdlib.h>

  extern DuBLinkList Find(char *name);
  
  void InSert_DuB(void)
  {
	int k=0;
	DuBLinkList  DuB_Store(DuBLinkList i,DuBLinkList top);
	DuBLinkList  info;
	DuBLinkList  info1;
	char book[50];
	for(;;)
	  {
	  info=(DuBLinkList)malloc(sizeof(DuBNode));
	  if(!info)
		{
		cprintf("\r\nOverflow the memory");
		return ;
		}
	 textcolor(k%2);
	 cprintf("\rEnter the %dth book name:    ",k+1);   gets(info->name);//输入书名
	 if(!info->name[0])  break;// 输入回车键退出输入
	 cprintf("\rEnter the %dth book number:  ",k+1); gets(info->number);//输入书的编号

	 cprintf("\rEnter the %dth book price:   ",k+1);  gets(book);//输入书的单价
	 info->price=atof(book);
	 cprintf("\rEnter the %dth book quantity:",k+1);   gets(book);//输入购入书的数量
	info->sum=atoi(book);
	k++;
	info1=Find(info->name); 	//若在链表中找到相同记录
		if(info1)
		  {
		   info1->sum=info1->sum+info->sum;//数量域相加作为新纪录的数量域
		   free(info);
		  }
		 else
		  start=DuB_Store(info,start);//若找不到则把记录添加
	}
  }


  // 按字母在字母表的先后次序插入记录添加函数
  DuBLinkList DuB_Store(DuBLinkList i,DuBLinkList top)
  {
	
         //i为当前的要插入的结点,top为链表头结点

        DuBLinkList old,p;
	if(last==NULL)//链表长为0
	  {            //i结点为链表头结点
	  i->next=NULL;
	  i->prior=NULL;
	  last=i;
	  return i;
	  }
	p=top;     //设置P为链表表头
	old=NULL;
	while(p)
	  {
	  if(strcmp(p->name,i->name)<0) //比较p与i结点的名字域
		{                       //若p的名字域小于新结点的名字域
		old=p;
		p=p->next;              //p指针后移
		}
	  else
	       {
		if(p->prior)      //i结点插入到链表的中间
		  {          
 		  p->prior->next=i;
		  i->next=p;
		  i->prior=p->prior;
		  p->prior=i;
		  return top;
		  }
		i->next=p;      //i结点插入到链表头
		i->prior=NULL;
		p->prior=i;
		return i;
		}
	  }
	  old->next=i;      //   把i结点插入到链表的结尾
	  i->next=NULL;
	  i->prior=old;
	  last=i;
	  return start;    //返回链表的头结点
  }




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -