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

📄 一个产品管理系统 .txt

📁 各种经典的C算法和特别用途C程序的源码集以供各位高级C编程研习者参考。
💻 TXT
📖 第 1 页 / 共 2 页
字号:
        n++;
   }
   if(n==0) printf("\n          文件中无记录!\n");
 else if (flag==0) printf("\n              文件中无此产品!\n");
fclose(fp);}

void save(int size)
{ FILE *fp;
  int j;
  if((fp=fopen("d:\\dzs\\产品.txt","w"))==NULL)
     {printf("             打开文件失败\n");
     return;
  }  
 for(j=0;j<size+1;j++)
  fprintf(fp,"%3s%10s%10s%11s%11s%10s%5s%6s%6s%5s\n",pro[j].id,pro[j].name,pro[j].gysh,pro[j].lb,pro[j].dwsl,pro[j].dj,pro[j].kcp,pro[j].dgl,pro[j].zdgl,pro[j].zz);
  fclose(fp);
  printf("         任意键继续....\n");
  getche();
}
void mymodify()
{ int i=0;
  int size;
  int flag=0,j=0;
  char tempnum[5];
  FILE *fp;
  fp=fopen("d:\\dzs\\产品.txt","r");
  while(feof(fp)==0)
  {fscanf(fp,"%3s%10s%10s%11s%11s%10s%5s%6s%6s%5s",&pro[i].id,&pro[i].name,&pro[i].gysh,&pro[i].lb,&pro[i].dwsl,&pro[i].dj,&pro[i].kcp,&pro[i].dgl,&pro[i].zdgl,&pro[i].zz);
   i++;}
   size=i;
   fclose(fp);
  printf("\n                   请输入要修改的产品ID号:");
 scanf("%s",tempnum);

   
   while(j<size-1)
  {if(strcmp(tempnum,pro[j].id)==0) 
   if(flag==0)
     {printf("\n原记录信息:");
      printf("\n产品ID   产品名称  供应商 类别 单位数量     单价   库存品 订购量 再订购量 终止\n\n" );
      printf("%3s%10s%10s%11s%11s%10s%5s%6s%6s%5s\n",pro[j].id,pro[j].name,pro[j].gysh,pro[j].lb,pro[j].dwsl,pro[j].dj,pro[j].kcp,pro[j].dgl,pro[j].zdgl,pro[j].zz);
      printf("\n\n         输入修改后的产品名称:");scanf("%s",pro[j].name);
      printf("\n       输入修改后的产品供应商代码:");scanf("%s",pro[j].gysh);
      printf("\n         输入修改后的产品类别代码:");scanf("%s",pro[j].lb);
      printf("\n         输入修改后的产品单位数量:");scanf("%s",pro[j].dwsl);
      printf("\n         输入修改后的产品单价:");scanf("%s",pro[j].dj);
      printf("\n         输入修改后的产品库存量:");scanf("%s",pro[j].kcp);
      printf("\n         输入修改后的产品订购量:");scanf("%s",pro[j].dgl);
      printf("\n         输入修改后的产品再订购量:");scanf("%s",pro[j].zdgl);
      printf("\n         输入修改后的产品终止信息(‘是’为终止):");scanf("%s",pro[j].zz);
     
    flag=1;}
    j++;
   }
   if(j==0) printf("\n          文件中无信息!\n");
   else if (flag==0) printf("\n              文件中无此产品!\n");
  
   save(size-1);
}

void  myadd()
{int i=0,j;char c;

 int  size;
 FILE *fp;
 fp=fopen("d:\\dzs\\产品.txt","r");
 while(feof(fp)==0)
  {fscanf(fp,"%3s%10s%10s%11s%11s%10s%5s%6s%6s%5s",&pro[i].id,&pro[i].name,&pro[i].gysh,&pro[i].lb,&pro[i].dwsl,&pro[i].dj,&pro[i].kcp,&pro[i].dgl,&pro[i].zdgl,&pro[i].zz);
   i++;}
   size=i;
   printf(" \n         现有产品数量为:%d",i);
   fclose(fp);
   
     
    loop: printf("\n      输入添加的产品ID:");scanf("%s",pro[size].id);            
     for(j=0;j<size;j++)  
     if(strcmp(pro[j].id,pro[size].id)==0)
     {printf("\n    id重复,请重新输入!");
      getche();
      goto loop;
      } 
      printf("\n         输入添加的产品名称:");scanf("%s",pro[size].name);
      printf("\n         输入添加的产品供应商代码:");scanf("%s",pro[size].gysh);
      printf("\n         输入添加的产品类别代码:");scanf("%s",pro[size].lb);
      printf("\n         输入添加的产品单位数量:");scanf("%s",pro[size].dwsl);
      printf("\n         输入添加的产品单价:");scanf("%s",pro[size].dj);
      printf("\n         输入添加的产品库存量:");scanf("%s",pro[size].kcp);
      printf("\n         输入添加的产品订购量:");scanf("%s",pro[size].dgl);
      printf("\n         输入添加的产品再订购量:");scanf("%s",pro[size].zdgl);
      printf("\n         输入添加的产品终止信息(‘是’为终止):");scanf("%s",pro[size].zz);
      
save(size+1);


}

 


void mydelete()
{int flag=0,j=0,k,i=0,size,m;
 char tempnum[5]; 
  FILE *fp; 
 fp=fopen("d:\\dzs\\产品.txt","r");
 if(fp==NULL) {printf("\n                打开文件失败!\n"); return;}
 
 while(feof(fp)==0)
  {fscanf(fp,"%3s%10s%10s%11s%11s%10s%5s%6s%6s%5s",&pro[i].id,&pro[i].name,&pro[i].gysh,&pro[i].lb,&pro[i].dwsl,&pro[i].dj,&pro[i].kcp,&pro[i].dgl,&pro[i].zdgl,&pro[i].zz);
   i++;}
   size=i;
  fclose(fp);
 
 
 printf("\n                   请输入要删除记录的产品ID号:");
 scanf("%s",tempnum);
 while(j<size+1)
  {if(strcmp(tempnum,pro[j].id)==0) 
   if(flag==0)
    {flag=1;
     k=j; }
    j++;
  }
  if(j==0) {printf("\n          文件中无信息!\n");return;}
 else if (flag==0) {printf("\n              文件中无此产品!\n");return;}
 
 for(m=k;m<size+1;m++)
  {strcpy(pro[m].id,pro[m+1].id);
   strcpy(pro[m].name,pro[m+1].name);
   strcpy(pro[m].gysh,pro[m+1].gysh);
   strcpy(pro[m].lb,pro[m+1].lb);
   strcpy(pro[m].dwsl,pro[m+1].dwsl);
   strcpy(pro[m].dj,pro[m+1].dj);
   strcpy(pro[m].kcp,pro[m+1].kcp);
   strcpy(pro[m].dgl,pro[m+1].dgl);
   strcpy(pro[m].zdgl,pro[m+1].zdgl);
   strcpy(pro[m].zz,pro[m+1].zz);
  }
save(size-2);}


/*float transfer2(char *ca)
{float val,power,sum; int i=0,j;char s[20];
 printf("%s\n",*ca);
 for(i=0,j=0;i<13;i++)
  if(*(ca+i)='.'||(*(ca+i)>='0'&&*(ca+i)<='9')) s[j++]=*(ca+i);
 s[j]='\0';j=0;
 for(val=0;s[j]>='0'&&s[j]<='9';j++)
 val=10*val+s[j]-'0';
 if(s[j]=='.') j++;
 for(power=1;s[j]>='0'&&s[j]<='9';i++)
  {val=10*val+s[j]-'0'; power*=10;}

 sum=val/power;
 printf("%f\n",sum);
}*/
 

void cliread()          /*导入链表函数*/
     {int i,n=0;
 char ch;
 CLI *p1,*p2;
 /*float temp;   用来处理CLI.price的小数点后的数字*/

 if ((fpc=fopen("D:\\dzs\\client.txt","r"))==NULL)
     {
  printf("can not open file\n");
  exit(0);
     }

 

 p1=p2=(struct client *)malloc(sizeof(struct client));
  
 while(!feof(fpc))
  {
   while((ch=fgetc(fpc))==' ');
   
   p1->id[0]=ch; 
   i=0; 
   while((ch=fgetc(fpc))!=' ')
    p1->id[++i]=ch;   
   p1->id[++i]='\0';
                  
   
   while((ch=fgetc(fpc))==' ');  /*把读入的字符进行到没有空格的位置*/
   
   p1->name[0]=ch;   
   i=0;
   while((ch=fgetc(fpc))!=' ')  
    p1->name[++i]=ch;
   p1->name[++i]='\0';            /*数组结束标志*/
   
   while((ch=fgetc(fpc))==' ');   /*把读入的字符进行到没有空格的位置*/
   
   

   n++;
   
   if(n==1) 
                     Chead=p1;
                      
    
   p1=(struct client*)malloc(sizeof(struct client));
        p2->next=p1; 
   p2=p1;
  }
 p2->next=NULL;
    
}  


void clichoose()
    {char f;
     printf("                       请输入您的要求:                        \n");
        gotoxy(40,16);
        scanf("%c",&f);
           switch(f)
                {case'1':clidisplay();   break;
                 case'2':clisearch();    break;
                 case'3':cliadd();       break;
                 case'4':clidel();       break;
                 case'5':climodify();    break;
                 /*case'6':clisum();       break;*/
                 /*case'9':getchar();totalmenu();totalchoose();       break;*/
                 case'0':break;  
                 default:printf("\n    没有%c选项!! \n",f);
                } 
     }

void cliprintmenu()
   {clrscr();
    printf("                 * * * * * * * * * * * * * * * * * * * * * *\n");
    printf("                 *                                         *\n"); 
    printf("                 *            客户信息管理系统             *\n");
    printf("                 *                  目录                   *\n");  
    printf("                 *                                         *\n");
    printf("                 *            1    显示客户信息            *\n");
    printf("                 *            2    查询客户信息            *\n");
    printf("                 *            3    添加客户信息            *\n");
    printf("                 *            4    删除客户信息            *\n");
    printf("                 *            5    修改客户信息            *\n");
    printf("                 *            0    退出                    *\n");
    printf("                 *                                         *\n"); 
    printf("                 * * * * * * * * * * * * * * * * * * * * * *\n");
   }
void clidisplay()      /*显示链表函数*/
{
     char ch;
     int i,j;
     CLI *p;
    p=Chead;
    clrscr();
    getchar();                     /*接收输入的数字*/
    
    for(i=0;p->next!=NULL;i=i+19)
    {   
        clrscr();
        printf("客户ID                    客户公司    \n");
        for(j=0;j<18&&p->next!=NULL;j++)
        {
              
              printf("%6s   %25s \n",p->id,p->name);
              p=p->next;
        }
    
         printf("\nPress Enter to continue......\n");  
         getchar();
            
     }        
         clireturn();
}

void cliadd()
     {
      CLI *p1,*p2;
      
      
      p2=(struct client *)malloc(sizeof(struct client));
      
      getchar();
         
         printf("\n       输入添加的客户ID:");
               {gets(p2->id);}
         
         printf("\n       输入添加的客户公司名称:");
               {gets(p2->name);}
         
         
      p2->next=Chead;
      Chead=p2;
         
      
      
      printf("\n               添加后数据                  \n");               
      printf("客户ID                    客户公司    \n"); 
      printf("%5s   %25s\n",p2->id,p2->name);


      printf("\nPress Enter to continue......\n");      
      getchar();         /*接收回车符*/
      clireturn();
     }  

void clidel()         
{     CLI *p1,*p2;
      char del_id[8];
      if(Chead==NULL) 
      {  
         printf("\nList NULL!\n");
         exit(0);
      }
      clrscr();
      p1=Chead;
      printf("\n             请输入要删除的客户ID:               \n");
      gotoxy(36,2);
      getchar();                 /*接收选择目录的数字*/
      gets(del_id);
      
      
      while(strcmp(del_id,p1->id)!=0&&p1->next!=NULL)  
         {p2=p1;
          p1=p1->next;}                       /*p1后移一个节点*/
      
      if((p1->next==NULL)&&(strcmp(del_id,p1->id)==0))             /*找到了*/
          p2->next=NULL;
      
      else if((strcmp(del_id,p1->id)==0)&&(p1->next!=NULL))                        /*找到了*/
         {
          if(p1==Chead)   {Chead=Chead->next;}     /*若p1指向的是首节点,把第二个节点地址赋予Chead*/
          else p2->next=p1->next;
          printf("您已经删除了ID为%s的客户!\n",del_id);
         }
      
      else printf("没有ID为%s的客户!\n",del_id);
      
      printf("\nPress Enter to continue......\n");        
      getchar();
      clireturn();
}

void clisearch()
     {char i[8];
      CLI *p1;
      clrscr();
      
      printf("                 请输入所要查询的客户编号:");
      getchar();                 /*接收选择目录的数字*/      
      gets(i);
      p1=Chead;
      
      while(p1!=NULL&&(strcmp(i,p1->id)!=0))
           
                 {p1=p1->next;}
           

      if(p1==NULL) printf("              没有此编号的产品!");
      else
          {printf("客户ID                    客户公司    \n\n"); 
           printf("%6s   %25s\n",p1->id,p1->name);
          }
 printf("\nPress Enter to continue......\n");  
      getchar();           
      clireturn();
     }


void climodify()
     {
      CLI *p1,*p2;
      char n[8];
      p1=Chead;
      printf("\n   请输入所要修改的客户编号:");
      
      getchar();                 /*接收选择目录的数字*/      
      gets(n);
      
      if((strcmp(n,p1->id)==0));
      else while((strcmp(n,p1->id)!=0)&&p1!=NULL)
                {p1=p1->next;}
      if(p1==NULL)    printf("找不到此条数据!");
      else
              {clrscr();
           printf("\n                  原数据:                         \n");
           printf("客户ID                    客户公司    \n\n"); 
           printf("%6s   %25s\n",p1->id,p1->name);


           printf("\n                  请修改!                          \n");
                 {gotoxy(2,5); 
                              gets(p1->id);}
      
                 {gotoxy(27,5);  
                              gets(p1->name);}
      
      
          
           printf("\n                  修改后数据:                         \n");
           printf("客户ID                    客户公司    \n\n"); 
           printf("%6s   %25s\n",p1->id,p1->name);

           printf("                     修改成功!                       \n");
           }
     printf("\nPress Enter to continue......\n"); 
     getchar();
     clireturn();  
}

void clireturn()
   {
    char r;
    clrscr();
    printf("\n         是否返回上级菜单(y/n):                     \n");
    gotoxy(32,2);
    scanf("%c",&r);
    getchar();         /*用来接收回车符*/
    switch(r)
      {
       case'y':clrscr();cliprintmenu();clichoose();   break;
       case'Y':clrscr();cliprintmenu();clichoose();   break;
       case'n':break;
       case'N':break;
       default:printf("\n    没有%c选项!! \n",r);
      }
    }
    
 client()
{
cliread(); 
cliprintmenu();
clichoose();

}
 

⌨️ 快捷键说明

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