大一下的工程实践作业
只能实现存储货物的任务,因为任务较少,所以对于其他的页面设计进行了比较多的设计,并且搭配了绿色
哈哈哈哈哈哈,就是玩,各种花里胡哨
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
struct goods
{
int bianhao;
char pinming[20];
float jinjia;
float shoujia;
int jinhuoliang;
int xiaoshouliang;
float xiaoshoue;
int shengyushu;
float maoli;
};
struct Node
{
struct goods data;
struct Node *next;
};
struct Node *head;
struct Node*create();
void input();
void addgoods();
void delgoods();
void changegoods();
void viewgoods();
void paixu();
void search();
void tongji();
int main()
{
int choice;
system("color a5");
FILE *fp;
printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf("┃ ┃\n");
printf("┃ 欢迎光临 ┃\n");
printf("┃ 小夜喵小超市 ┃\n");
printf("┃ ┃\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
while(1)
{
printf("┃ 1.录入商品 ┃\n");
printf("┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┃ 2.添加商品 ┃\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┃ 3.删除商品 ┃\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┃ 4.修改商品 ┃\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┃ 5.浏览商品 ┃\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┃ 6.排序并显示 ┃\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┃ 7.查询商品信息 ┃\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┃ 8.统计商品信息 ┃\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┃ 9.退出系统 ┃\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┃ ┃\n");
printf("┃ 请输入对应编号 ┃\n");
printf("┃ ┃\n");
printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");
scanf("%d",&choice);
fp=fopen("D:\\file1.dat","rb");
if(fp==NULL)
{
while(choice!=1)
{
printf("请先输入1录入商品\n");
scanf("%d",&choice);
}
}
system("cls");
switch(choice)
{
case 1:input();break;
case 2:addgoods();break;
case 3:delgoods();break;
case 4:changegoods();break;
case 5:viewgoods();break;
case 6:paixu();break;
case 7:search();break;
case 8:tongji();break;
case 9:exit(0);break;
default:break;
}
}
return 0;
}
void input()
{
FILE *fp;
struct goods SP;
char m;
printf("录入\n");
printf("请输入要录入商品信息\n");
printf("*************************\n");
fp=fopen("D:\\file1.dat","wb");
if(fp==NULL)
{
printf("文件打开失败\n");
exit(0);
}
fclose(fp);
while(1)
{
printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf(" 请输入商品编号\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%d",&SP.bianhao);
printf(" 请输入商品品名\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%s",SP.pinming);
printf(" 请输入商品进价\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%f",&SP.jinjia);
printf(" 请输入商品售价\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%f",&SP.shoujia);
printf(" 请输入商品进货量\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%d",&SP.jinhuoliang);
printf(" 请输入商品销售量\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%d",&SP.xiaoshouliang);
printf(" 请输入商品销售额\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%f",&SP.xiaoshoue);
printf(" 请输入商品剩余数\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%d",&SP.shengyushu);
printf(" 请输入商品毛利\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%f",&SP.maoli);
printf(" 是否确定要录入该商品信息?(y or n)\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
m=getchar();
while(m!='Y'&&m!='y'&&m!='N'&&m!='n')
{
m=getchar();
}
if(m=='Y'||m=='y')
{
fp=fopen("D:\\file1.dat","ab");
if(fp==NULL)
{
printf("文件打开失败\n");
exit(0);
}
fwrite(&SP,sizeof(struct goods),1,fp);
fclose(fp);
printf("*************************\n");
printf("该商品录入完成\n");
}
printf("是否继续录入商品信息?(y or n)\n");
m=getchar();
while(m!='Y'&&m!='y'&&m!='N'&&m!='n')
{
m=getchar();
}
if(m=='Y'||m=='y')
{
system("cls");
continue;
}
else
{
printf("录入完成\n");
break;
}
}
viewgoods();
}
void addgoods()
{
char m;
FILE *fp;
struct goods SP;
struct Node *p1,*p2,*p3,*head;
while(1)
{
head=NULL;
p1=p2=(struct Node*)malloc(sizeof(struct Node));
fp=fopen("D:\\file1.dat","rb");
if(fp==NULL)
{
printf("文件打开失败\n");
exit(0);
}
while(!feof(fp))
{
if(fread(&SP,sizeof(struct goods),1,fp)==1)
{
p1->data=SP;
if(head==NULL)
head=p1;
else
p2->next=p1;
p2=p1;
p1=(struct Node*)malloc(sizeof(struct Node));
}
}
p2->next=NULL;
fclose(fp);
printf("添加商品\n");
printf("请输入该商品以下信息\n");
printf("*************************\n");
printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf(" 请输入商品编号\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%d",&SP.bianhao);
printf(" 请输入商品品名\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%s",SP.pinming);
printf(" 请输入商品进价\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%f",&SP.jinjia);
printf(" 请输入商品售价\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%f",&SP.shoujia);
printf(" 请输入商品进货量\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%d",&SP.jinhuoliang);
printf(" 请输入商品销售量\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%d",&SP.xiaoshouliang);
printf(" 请输入商品销售额\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%f",&SP.xiaoshoue);
printf(" 请输入商品剩余数\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%d",&SP.shengyushu);
printf(" 请输入商品毛利\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%f",&SP.maoli);
printf(" 是否确定要录入该商品信息?(y or n)\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
m=getchar();
while(m!='Y'&&m!='y'&&m!='N'&&m!='n')
{
m=getchar();
}
if(m=='Y'||m=='y')
{
p1=(struct Node*)malloc(sizeof(struct Node));
p1->data=SP;
p1->next=NULL;
p2->next=p1;
fp=fopen("D:\\file1.dat","wb");
if(fp==NULL)
{
printf("文件打开失败\n");
exit(0);
}
p1=head;
while(p1!=NULL)
{
fwrite(&p1->data,sizeof(struct goods),1,fp);
p3=p1;
p1=p1->next;
free(p3);
}
fclose(fp);
printf("*************************\n");
printf("该商品添加完成\n");
}
printf("是否要继续添加商品?(y or n)\n");
m=getchar();
while(m!='Y'&&m!='y'&&m!='N'&&m!='n')
{
m=getchar();
}
if(m=='Y'||m=='y')
{
system("cls");
continue;
}
else
{
printf("添加功能完成\n");
break;
}
}
viewgoods();
}
void delgoods()
{
struct Node *p1,*p2,*p3;
char m;
int bianhao,flag=0;
FILE *fp;
printf("删除商品\n");
printf("*************************\n");
while(1)
{
head=create();
if(head==NULL)
{
printf("文件里没有商品\n");
system("pause");
system("cls");
break;
}
p1=head;
p2=head->next;
printf("请输出您要删除商品的编号\n");
scanf("%d",&bianhao);
fp=fopen("D:\\file1.dat","rb");
if(fp==NULL)
{
printf("文件打开失败");
exit(0);
}
if(p1->data.bianhao==bianhao)
{
flag++;
printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf(" 商品编号 : %d\n",p1->data.bianhao);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品品名 : %s\n",p1->data.pinming);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品进价 : %.2f\n",p1->data.jinjia);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品售价 : %.2f\n",p1->data.shoujia);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品进货量 : %d\n",p1->data.jinhuoliang);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品销售量 : %d\n",p1->data.xiaoshouliang);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品销售额 : %.2f\n",p1->data.xiaoshoue);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品剩余数 : %.2f\n",p1->data.shengyushu);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品毛利 : %d\n",p1->data.maoli);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("您确定要删除这件商品的信息吗?(y or n)\n");
m=getchar();
while(m!='Y'&&m!='y'&&m!='N'&&m!='n')
{
m=getchar();
}
if(m=='Y'||m=='y')
{
head=p1->next;
fp=fopen("D:\\file1.dat","wb");
if(fp==NULL)
{
printf("文件打开失败\n");
exit(0);
}
p1=head;
while(p1!=NULL)
{
fwrite(&p1->data,sizeof(struct goods),1,fp);
p3=p1;
p1=p1->next;
free(p3);
}
fclose(fp);
printf("*************************\n");
printf("该商品已删除\n");
}
}
else
{
while(p2!=NULL)
{
if(p2->data.bianhao==bianhao)
{
flag++;
printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf(" 商品编号 : %d\n",p1->data.bianhao);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品品名 : %s\n",p1->data.pinming);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品进价 : %.2f\n",p1->data.jinjia);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品售价 : %.2f\n",p1->data.shoujia);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品进货量 : %d\n",p1->data.jinhuoliang);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品销售量 : %d\n",p1->data.xiaoshouliang);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品销售额 : %.2f\n",p1->data.xiaoshoue);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品剩余数 : %.2f\n",p1->data.shengyushu);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品毛利 : %d\n",p1->data.maoli);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("您确定要删除这件商品的信息吗?(y or n)\n");
while(m!='Y'&&m!='y'&&m!='N'&&m!='n')
{
m=getchar();
}
if(m=='Y'||m=='y')
{
p1->next=p2->next;
fp=fopen("D:\\file1.dat","wb");
if(fp==NULL)
{
printf("文件打开失败\n");
exit(0);
}
p1=head;
while(p1!=NULL)
{
fwrite(&p1->data,sizeof(struct goods),1,fp);
p3=p1;
p1=p1->next;
free(p3);
}
fclose(fp);
printf("*************************\n");
printf("该商品已删除\n");
break;
}
}
else
{
p1=p1->next;
p2=p2->next;
}
}
}
if(flag==0)
{
printf("这件商品不存在\n");
}
printf("是否要继续删除商品?(y or n)\n");
m=getchar();
while(m!='Y'&&m!='y'&&m!='N'&&m!='n')
{
m=getchar();
}
if(m=='Y'||m=='y')
{
system("cls");
continue;
}
else
{
printf("删除功能完成\n");
break;
}
}
viewgoods();
}
struct Node*create()
{
struct Node *p1,*p2;
struct goods SP;
FILE *fp;
head=NULL;
p1=p2=(struct Node*)malloc(sizeof(struct Node));
fp=fopen("D:\\file1.dat","rb");
if(fp==NULL)
{
printf("文件打开失败");
exit(0);
}
while(!feof(fp))
{
if(fread(&SP,sizeof(struct goods),1,fp)==1)
{
p1->data=SP;
if(head==NULL)
head=p1;
else
p2->next=p1;
p2=p1;
p1=(struct Node*)malloc(sizeof(struct Node));
}
}
p2->next=NULL;
fclose(fp);
return head;
}
void changegoods()
{
int bianhao,i,flag=0,count=0;
char m;
struct goods SPP[20];
struct goods SP;
FILE *fp;
fp=fopen("D:\\file1.dat","rb");
if(fp==NULL)
{
printf("文件打开失败");
exit(0);
}
while(!feof(fp))
{
if(fread(&SPP[count],sizeof(struct goods),1,fp)==1)
{
count++;
}
}
fclose(fp);
if(count==0)
{
printf("文件里没有商品\n");
system("pause");
system("cls");
}
else
{
printf("是否要根据编号找到该商品修改信息?(y or n)\n");
m=getchar();
while(m!='Y'&&m!='y'&&m!='N'&&m!='n')
{
m=getchar();
}
if(m=='Y'||m=='y')
{
while(1)
{
count=0,flag=0;
printf("请输入要找的商品编号\n");
scanf("%d",&bianhao);
fp=fopen("D:\\file1.dat","rb");
if(fp==NULL)
{
printf("文件打开失败");
exit(0);
}
printf("******************\n");
while(!feof(fp))
{
if(fread(&SPP[count],sizeof(struct goods),1,fp)==1)
{
count++;
}
}
fclose(fp);
printf("******************\n");
for(i=0;i<count;i++)
{
if(SPP[i].bianhao==bianhao)
{
flag++;
break;
}
}
if(flag==0)
{
printf("该商品不存在\n");
}
else
{
printf("是否确定修改?(y or n)\n");
m=getchar();
while(m!='Y'&&m!='y'&&m!='N'&&m!='n')
{
m=getchar();
}
if(m=='Y'||m=='y')
{
printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf(" 请输入修改商品编号\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%d",&SP.bianhao);
printf(" 请输入修改商品品名\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%s",SP.pinming);
printf(" 请输入修改商品进价\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%.2f",&SP.jinjia);
printf(" 请输入修改商品售价\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%.2f",&SP.shoujia);
printf(" 请输入修改商品进货量\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%d",&SP.jinhuoliang);
printf(" 请输入修改商品销售量\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%d",&SP.xiaoshouliang);
printf(" 请输入修改商品销售额\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%.2f",&SP.xiaoshoue);
printf(" 请输入修改商品剩余数\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%d",&SP.shengyushu);
printf(" 请输入修改商品毛利\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
scanf("%.2f",&SP.maoli);
SPP[i]=SP;
fp=fopen("D:\\file1.dat","wb");
if(fp==NULL)
{
printf("文件打开失败");
exit(0);
}
for(i=0;i<count;i++)
{
fwrite(&SPP[i],sizeof(struct goods),1,fp);
}
fclose(fp);
printf("*************************\n");
printf("该商品修改已完成\n");
}
}
printf("是否要继续修改商品?(y or n)\n");
m=getchar();
while(m!='Y'&&m!='y'&&m!='N'&&m!='n')
{
m=getchar();
}
if(m=='Y'||m=='y')
{
system("cls");
continue;
}
else
{
printf("修改结束\n");
break;
}
}
}
viewgoods();
}
}
void viewgoods()
{
struct goods *p;
FILE *fp;
p=(struct goods*)malloc(sizeof(struct goods));
fp = fopen("D:\\file1.dat","rb");
if (fp == NULL)
{
printf("文件打开失败!\n");
}
while(1)
{
if (fread(p,sizeof(struct goods),1,fp) == 1)
{
printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf(" 商品编号 : %d\n",p->bianhao);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品品名 : %s\n",p->pinming);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品进价 : %.2f\n",p->jinjia);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品售价 : %.2f\n",p->shoujia);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品进货量 : %d\n",p->jinhuoliang);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品销售量 : %d\n",p->xiaoshouliang);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品销售额 : %.2f\n",p->xiaoshoue);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品剩余数 : %d\n",p->shengyushu);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品毛利 : %.2f\n",p->maoli);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
p=(struct goods*)malloc(sizeof(struct goods));
}
else
{
break;
}
}
fclose(fp);
free(p);
system("pause");
system("cls");
getchar();
}
void paixu()
{
struct goods SPP[20];
struct goods SP;
int i,j,count;
FILE *fp;
count=0;
fp=fopen("D:\\file1.dat","rb");
if(fp==NULL)
{
printf("文件打开失败\n");
exit(0);
}
while(!feof(fp))
{
if(fread(&SPP[count],sizeof(struct goods),1,fp)==1)
{
count++;
}
}
fclose(fp);
for(i=0;i<count-1;i++)
{
for(j=i+1;j<count;j++)
{
if(SPP[i].bianhao>SPP[j].bianhao)
{
SP=SPP[i];
SPP[i]=SPP[j];
SPP[j]=SP;
}
}
}
fp=fopen("D:\\file1.dat","wb");
if(fp==NULL)
{
printf("文件打开失败");
exit(0);
}
printf("******************\n");
printf("按编号从小到大排序并显示\n");
for(i=0;i<count;i++)
{
fwrite(&SPP[i],sizeof(struct goods),1,fp);
printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf(" 商品编号 : %d\n",SPP[i].bianhao);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品品名 : %s\n",SPP[i].pinming);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品进价 : %.2f\n",SPP[i].jinjia);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品售价 : %.2f\n",SPP[i].shoujia);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品进货量 : %d\n",SPP[i].jinhuoliang);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品销售量 : %d\n",SPP[i].xiaoshouliang);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品销售额 : %.2f\n",SPP[i].xiaoshoue);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品剩余数 : %d\n",SPP[i].shengyushu);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品毛利 : %.2f\n",SPP[i].maoli);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
}
fclose(fp);
system("pause");
printf("*************************\n");
count=0;
fp=fopen("D:\\file1.dat","rb");
if(fp==NULL)
{
printf("文件打开失败\n");
exit(0);
}
while(!feof(fp))
{
if(fread(&SPP[count],sizeof(struct goods),1,fp)==1)
{
count++;
}
}
fclose(fp);
for(i=0;i<count-1;i++)
{
for(j=i+1;j<count;j++)
{
if(SPP[i].maoli<SPP[j].maoli)
{
SP=SPP[i];
SPP[i]=SPP[j];
SPP[j]=SP;
}
}
}
fp=fopen("D:\\file1.dat","wb");
if(fp==NULL)
{
printf("文件打开失败");
exit(0);
}
printf("******************\n");
printf("按毛利从高到低排序并显示\n");
for(i=0;i<count;i++)
{
fwrite(&SPP[i],sizeof(struct goods),1,fp);
printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf(" 商品编号 : %d\n",SPP[i].bianhao);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品品名 : %s\n",SPP[i].pinming);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品进价 : %d\n",SPP[i].jinjia);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品售价 : %d\n",SPP[i].shoujia);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品进货量 : %d\n",SPP[i].jinhuoliang);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品销售量 : %d\n",SPP[i].xiaoshouliang);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品销售额 : %d\n",SPP[i].xiaoshoue);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品剩余数 : %d\n",SPP[i].shengyushu);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品毛利 : %d\n",SPP[i].maoli);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
}
fclose(fp);
system("pause");
printf("********************\n");
count=0;
fp=fopen("D:\\file1.dat","rb");
if(fp==NULL)
{
printf("文件打开失败\n");
exit(0);
}
while(!feof(fp))
{
if(fread(&SPP[count],sizeof(struct goods),1,fp)==1)
{
count++;
}
}
fclose(fp);
for(i=0;i<count-1;i++)
{
for(j=i+1;j<count;j++)
{
if(SPP[i].xiaoshoue<SPP[j].xiaoshoue)
{
SP=SPP[i];
SPP[i]=SPP[j];
SPP[j]=SP;
}
}
}
fp=fopen("D:\\file1.dat","wb");
if(fp==NULL)
{
printf("文件打开失败");
exit(0);
}
printf("******************\n");
printf("按销售额从高到低排序并显示\n");
for(i=0;i<count;i++)
{
fwrite(&SPP[i],sizeof(struct goods),1,fp);
printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf(" 商品编号 : %d\n",SPP[i].bianhao);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品品名 : %s\n",SPP[i].pinming);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品进价 : %d\n",SPP[i].jinjia);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品售价 : %d\n",SPP[i].shoujia);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品进货量 : %d\n",SPP[i].jinhuoliang);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品销售量 : %d\n",SPP[i].xiaoshouliang);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品销售额 : %d\n",SPP[i].xiaoshoue);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品剩余数 : %d\n",SPP[i].shengyushu);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品毛利 : %d\n",SPP[i].maoli);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
}
fclose(fp);
printf("*************************\n");
system("pause");
system("cls");
}
void search()
{
FILE *fp;
struct goods SPP[20],SP;
char name[20],m;
int rest,low=0,high=0,mid;
int i,j,flag=0,count=0;
fp=fopen("D:\\file1.dat","rb");
if(fp==NULL)
{
printf("文件打开失败\n");
exit(0);
}
while(!feof(fp))
{
if(fread(&SP,sizeof(struct goods),1,fp)==1)
{
count++;
}
}
fclose(fp);
if(count==0)
{
printf("文件里没有商品\n");
system("pause");
system("cls");
}
else
{
printf("是否要根据商品品名查询商品信息?(y or n)\n");
m=getchar();
while(m!='Y'&&m!='y'&&m!='N'&&m!='n')
{
m=getchar();
}
if(m=='Y'||m=='y')
{
printf("*************************\n");
printf("请输入该品名商品的信息\n");
scanf("%s",name);
fp=fopen("D:\\file1.dat","rb");
if(fp==NULL)
{
printf("文件打开失败\n");
exit(0);
}
while(!feof(fp))
{
if(fread(&SP,sizeof(struct goods),1,fp)==1)
{
if(strcmp(name,SP.pinming)==0)
{
printf("按品名查找到的商品如下\n");
printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf(" 商品编号 : %d\n",SP.bianhao);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品品名 : %s\n",SP.pinming);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品进价 : %.2f\n",SP.jinjia);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品售价 : %.2f\n",SP.shoujia);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品进货量 : %d\n",SP.jinhuoliang);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品销售量 : %d\n",SP.xiaoshouliang);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品销售额 : %.2f\n",SP.xiaoshoue);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品剩余数 : %d\n",SP.shengyushu);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品毛利 : %.2f\n",SP.maoli);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
flag++;
}
}
}
if(flag==0)
{
printf("该品名商品不存在\n");
}
}
printf("是否要根据剩余数来查询商品信息?(y or n)\n");
m=getchar();
while(m!='Y'&&m!='y'&&m!='N'&&m!='n')
{
m=getchar();
}
if(m=='Y'||m=='y')
{
fp=fopen("D:\\file1.dat","rb");
if(fp==NULL)
{
printf("文件打开失败\n");
exit(0);
}
while(!feof(fp))
{
if(fread(&SPP[high],sizeof(struct goods),1,fp)==1)
{
high++;
}
}
fclose(fp);
for(i=0;i<high-1;i++)
{
for(j=i+1;j<high;j++)
{
if(SPP[i].shengyushu>SPP[j].shengyushu)
{
SP=SPP[i];
SPP[i]=SPP[j];
SPP[j]=SP;
}
}
}
printf("*************************\n");
printf("请输出要查询商品的剩余数为: ");
scanf("%d",&rest);
while(low<=high)
{
mid=(low+high)/2;
if(rest==SPP[mid].shengyushu)
{
break;
}
else
if(rest<SPP[mid].shengyushu)
{
high=mid-1;
}
else
{
low=mid+1;
}
}
if(low<=high)
{
printf("按剩余数查找到的商品如下\n");
printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf(" 商品编号 : %d\n",SPP[mid].bianhao);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品品名 : %s\n",SPP[mid].pinming);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品进价 : %.2f\n",SPP[mid].jinjia);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品售价 : %.2f\n",SPP[mid].shoujia);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品进货量 : %d\n",SPP[mid].jinhuoliang);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品销售量 : %d\n",SPP[mid].xiaoshouliang);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品销售额 : %.2f\n",SPP[mid].xiaoshoue);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品剩余数 : %d\n",SPP[mid].shengyushu);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf(" 商品毛利 : %.2f\n",SPP[mid].maoli);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
}
else
{
printf("该商品不存在\n");
}
}
}
system("pause");
system("cls");
}
void tongji()
{
FILE *fp;
struct goods SP;
int count=0;
fp=fopen("D:\\file1.dat","rb");
if(fp==NULL)
{
printf("文件打开失败\n");
exit(0);
}
while(!feof(fp))
{
if(fread(&SP,sizeof(struct goods),1,fp)==1)
{
count++;
}
}
fclose(fp);
if(count==0)
{
printf("文件里没有商品\n");
system("pause");
system("cls");
}
else
{
fp=fopen("D:\\file1.dat","rb");
if(fp==NULL)
{
printf("文件打开失败\n");
exit(0);
}
while(!feof(fp))
{
if(fread(&SP,sizeof(struct goods),1,fp)==1)
{
printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf("┃ 商品编号 : %d\n",SP.bianhao);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┃ 商品品名 : %s\n",SP.pinming);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┃ 商品销售额 : %.2f\n",SP.xiaoshoue);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┃ 商品剩余数 : %d\n",SP.shengyushu);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┃ 商品毛利 : %.2f\n",SP.maoli);
printf("┠━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┨\n");
printf("┠_______________________________________┨\n");
}
}
}
system("pause");
system("cls");
}
哨