first commit

master
18783852161 6 years ago
parent 3d8d0f6d74
commit 0783516184

@ -0,0 +1,314 @@
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
struct infor {
char ID[50];
char NAME[50];
float PRICE;
long NUMBER;
}g[1000],m[1000],x;
struct inf {
char id[50];
char name[50];
float price;
long number;
}c;
//struct infor g[1000];
FILE *p;
void menu_s();
void input();
void output();
void check();
void updata();
void add();
void dele();
void dele2();
int len();
int len2();
int main()
{
system("cls");//清屏
int n;
menu_s();
scanf("%d",&n);
while(n)
{
system("cls");
switch(n)
{
case 1:
input() ;break;
case 2:
output();break;
case 3:
updata();break;
case 4:
check();break;
case 5:
return 0;
}
getch();
menu_s();
scanf("%d",&n);
}
}
void menu_s ()
{
printf("----------------------------\n");
printf("***********主菜单***********\n");
printf("*********1:商品入库*********\n");
printf("*********2:商品出库*********\n");
printf("*********3:更新库存*********\n");
printf("*********4:查询库存*********\n");
printf("*********5:退出系统*********\n");
printf("*********请输入选项*********\n");
printf("----------------------------\n");
}
void input()
{
int i=0,s;
//struct infor g;
char next[2]="y";
p=fopen("1.txt","wb+");
if(p==NULL)
{
printf("打开文件失败\n");
fclose(p);
exit(0);
}
while(strcmp(next,"y")==0||strcmp(next,"Y")==0)
{
printf("\n请输入商品编号\n");
scanf("%s",g[i].ID );
printf("\n请输入商品名称\n");
scanf("%s",&g[i].NAME );
printf("\n请输入商品价格\n");
scanf("%f",&g[i].PRICE );
printf("\n请输入商品数量\n");
scanf("%d",&g[i].NUMBER );
fwrite(&g[i],sizeof(struct infor),1,p);/*向文件写入数据*/
printf("\n继续输入y(Y)/n(N)\n");
fflush(stdin);//清空缓存区。
i++;
//next=getch();
scanf("%s",next);
}
fclose(p);
}
int len()//读取当前文件长度
{ int z=0;
p=fopen("1.txt","r+");
if(p==NULL)
{
printf("打开文件失败\n");
exit(1);
}
rewind(p);//将文件指针移至文件开头。
while(!feof(p))
{
if((fread(&g[z],sizeof(struct infor),1,p))==1);
z++;
}
fclose(p);
return z-1;
}
int len2()//读取当前文件长度
{ int z=0;
FILE *fp;
fp=fopen("3.txt","r+");
if(fp==NULL)
{
printf("打开文件失败\n");
exit(1);
}
rewind(fp);//将文件指针移至文件开头。
while(!feof(fp))
{
if((fread(&c,sizeof(struct inf),1,fp))==1);
z++;
}
fclose(fp);
return z;
}
void check()
{
int i,s=0;
long length;
p=fopen("1.txt","rb+");
if(p==NULL)
{
printf("打开文件失败\n");
exit(1);
}
printf("\n----------------------------------------------------\n商品列表\n----------------------------------------------------\n");
printf("编号\t\t品名\t\t价格\t\t数量\n");
rewind(p);//将文件指针移至文件开头。
/* while(!feof(p))
{
if((fread(&g[s],sizeof(struct infor),1,p))==1);
s++;
}*/
s=len();
rewind(p);
fread(g,sizeof(struct infor),s,p);
for(i=0;i<s;i++)
printf("%-10s\t%s\t\t%.1f\t\t%ld\n",g[i].ID ,g[i].NAME ,g[i].PRICE,g[i].NUMBER );
printf("----------------------------------------------------\n");
fclose(p);
}
void output()
{
FILE *p,*fp;
char a[50],next[2]="y";
int i,j,l,sum=0,num=0,s;
p=fopen("1.txt","rb+");
fp=fopen("3.txt","wb+");
while(strcmp(next,"y")==0||strcmp(next,"Y")==0)
{
l=len();
printf("请输入售出的商品名称\n");
scanf("%s",&a[50]);
for(i=0;i<l;i++)
{
fseek(p,sizeof(struct infor)*(i),0);
fscanf(p,"%s%s%d%d",&c.id ,&c.name ,&c.price ,&c.number );
//printf("%-10s\t%s\t\t%.1f\t\t%ld\n",c.id ,c.name ,c.price ,c.number);
if(strcmp(a,c.name )==0)
{
fwrite(&c,sizeof(struct inf),1,fp);
printf("%-10s\t%s\t\t%.1f\t\t%ld\n",c.id ,c.name ,c.price ,c.number);
fclose(p);
void dele2( char a[50] );
sum++;
}
}
fclose(fp);
printf("\n继续输入y(Y)/n(N)\n");
scanf("%s",next);
}
s=len2();
fp=fopen("3.txt","rb+");
printf("\n----------------------------------------------------\n商品列表\n----------------------------------------------------\n");
for(i=0;i<s;i++)
{
fseek(fp,sizeof(struct inf)*(i),0);
fscanf(fp,"%s%s%d%d",&c.id ,&c.name ,&c.price ,&c.number );
num+=c.price ;
printf("%-10s\t%s\t\t%.1f\t\t%ld\n",c.id ,c.name ,c.price ,c.number);
printf("总销售额:\t\t\t\t\t%d\n",num);
}
fclose(fp);
printf("----------------------------------------------------");
}
void updata()
{
int a;
printf("\n请选择1删除商品信息2添加商品信息\n");
scanf("%d",&a);
switch(a)
{
case 1:dele();break;
case 2:add();break;
}
}
void add()
{
FILE *P;
int i=0;
char next[2]="y";
//i=len();
//fseek(p,0l,2);
while(strcmp(next,"y")==0||strcmp(next,"Y")==0)
{
printf("\n请输入商品编号\n");
scanf("%s",&g[i].ID );
printf("\n请输入商品名称\n");
scanf("%s",&g[i].NAME );
printf("\n请输入商品价格\n");
scanf("%f",&g[i].PRICE );
printf("\n请输入商品数量\n");
scanf("%d",&g[i].NUMBER );
p=fopen("1.txt","ab");
if(p==NULL)
{
printf("打开文件失败\n");
exit(0);
}
fwrite(&g[i],sizeof(struct infor),1,p);/*向文件写入数据*/
fclose(p);
printf("\n继续输入y(Y)/n(N)\n");
//fflush(stdin);//清空缓存区。
//i++;
//next=getch();
scanf("%s",next);
}
}
void dele()
{
FILE *p,*fp;
char r[50];
int i=0,j,l;
l=len();
printf("请输入将要删除的商品名称\n");
scanf("%s",&r);
p=fopen("1.txt","rb+");
fp=fopen("2.txt","wb+");
for(i=0;i<l;i++)
{
fseek(p,sizeof(struct infor)*(i),0);
fscanf(p,"%s%s%d%d",&c.id ,&c.name ,&c.price ,&c.number );
//printf("%-10s\t%s\t\t%.1f\t\t%ld\n",c.id ,c.name ,c.price ,c.number);
if(strcmp(r,c.name )!=0)
{
fwrite(&c,sizeof(struct inf),1,fp);
}
}
rewind(fp);
fclose(p);
p=fopen("1.txt","wb+");
for(i=0;i<l-1;i++)
{
fseek(fp,sizeof(struct inf)*(i),0);
fscanf(fp,"%s%s%d%d",&x.ID ,&x.NAME,&x.PRICE ,&x.NUMBER );
fwrite(&x,sizeof(struct infor),1,p);
}
fclose(p);
fclose(fp);
}
void dele2(char a[50])
{
FILE *p,*fp;
int i=0,j,l;
l=len();
p=fopen("1.txt","rb+");
fp=fopen("2.txt","wb+");
for(i=0;i<l;i++)
{
fseek(p,sizeof(struct infor)*(i),0);
fscanf(p,"%s%s%d%d",&c.id ,&c.name ,&c.price ,&c.number );
//printf("%-10s\t%s\t\t%.1f\t\t%ld\n",c.id ,c.name ,c.price ,c.number);
if(strcmp(a,c.name )!=0)
{
fwrite(&c,sizeof(struct inf),1,fp);
}
}
rewind(fp);
fclose(p);
p=fopen("1.txt","wb+");
for(i=0;i<l-1;i++)
{
fseek(fp,sizeof(struct inf)*(i),0);
fscanf(fp,"%s%s%d%d",&x.ID ,&x.NAME,&x.PRICE ,&x.NUMBER );
fwrite(&x,sizeof(struct infor),1,p);
}
fclose(p);
fclose(fp);
}
Loading…
Cancel
Save