?? 115416699.txt
字號:
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 + -