用c语言编写商品管理系统.docx
《用c语言编写商品管理系统.docx》由会员分享,可在线阅读,更多相关《用c语言编写商品管理系统.docx(15页珍藏版)》请在冰点文库上搜索。
![用c语言编写商品管理系统.docx](https://file1.bingdoc.com/fileroot1/2023-5/9/e8fe25a3-71f4-4d89-8455-6cea1c1ba64c/e8fe25a3-71f4-4d89-8455-6cea1c1ba64c1.gif)
用c语言编写商品管理系统
用c语言编写商品管理系统
#include
#include
#include
#include
#include
#defineLENsizeof(structcommdity)
#defineFORMAT"%-8d%-15s%-12.11f%-12.11f%-12.11f\n"
#defineDATAcomm[i].num,comm[i].name,comm[i].price,comm[i].count,comm[i].total
/*定义商品的结构体*/
structcommdity
{
intnum;
charname[15];
doublecount;
doubletotal;
}comm[100000],t;
/*函数的声明*/
voidin();/*商品录入并保存*/
voidshow();/*显示商品记录*/
voidorder();/*商品记录排序*/
voiddel();/*商品记录删除*/
voidmodify();/*商品记录修改*/
voidmenu();/*主菜单*/
voidinsert();/*商品记录插入*/
voidtotal();/*商品统计*/
voidsearch();/*查看商品记录*/
voidmain()
{
intn;
menu();
scanf("%d",&n);
while(n)
{
switch(n)
{
case0:
break;
case1:
in();break;
case2:
search();break;
case3:
del();break;
case4:
modify();break;
case5:
insert();break;
case6:
order();break;
case7:
total();break;
default:
printf("error!
操作错误.....\n");break;
}
getch();
menu();
scanf("%d",&n);
}
}
/**************************自定义主菜单函数************************/
voidmenu()
{
system("cls");/*清屏*/
printf("\n\n\n\n\n");
printf("\t\t--------欢迎将进入商品管理系统----------------\n");
printf("\t\t|\t0.退出|\n");
printf("\t\t|\t1.录入记录|\n");
printf("\t\t|\t2.查找记录|\n");
printf("\t\t|\t3.删除记录|\n");
printf("\t\t|\t4.修改记录|\n");
printf("\t\t|\t5.插入记录|\n");
printf("\t\t|\t6.排序记录|\n");
printf("\t\t|\t7.统计记录|\n");
printf("\t\t|--------------------------------------------|\n");
printf("\t\t\t请输入您的操作类型【0-7】:
\n");
}
/**************************自定义商品录入并保存函数************************/
voidin()
{inti,m=0;
charch[2];
FILE*fp;
if((fp=fopen("data.txt","ab+"))==NULL)
{printf("不能打开文件!
\n");
return;}
while(!
feof(fp))
{if(fread(&comm[m],LEN,1,fp)==1)
m++;
}
fclose(fp);
if(m==0)
printf("无商品记录........\n");
else
{system("cls");
show();
}
if((fp=fopen("data.txt","wb"))==NULL)
{printf("不能打开文件!
\n");
return;}
for(i=0;ifwrite(&comm[i],LEN,1,fp);
printf("是否输入(
y/n):
\n");
scanf("%s",ch);
while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
{printf("编号:
\n");
scanf("%d",&comm[m].num);
for(i=0;iif(comm[m].num==comm[i].num)
{printf("该记录已经存在,按任意键返回......\n");
getch();
fclose(fp);
return;
}
printf("商品名:
\n");
scanf("%s",comm[m].name);
printf("单价:
\n");
scanf("%lf",&comm[m].price);
printf("数量:
\n");
scanf("%lf",&comm[m].num);
comm[m].total=comm[m].count*comm[m].price;
if(fwrite(&comm[m],LEN,1,fp)!
=1)
{printf("不能保存!
\n");
getch();
return;}
else{printf("%s已经保存!
\n",comm[m].name);
m++;
}
printf("是否继续(
y/n):
\n");
scanf("%s",ch);
}
fclose(fp);
printf("OK!
\n");
return;
}
/**************************自定义显示商品记录函数************************/
voidshow()
{inti,m=0;
FILE*fp;
if((fp=fopen("data.txt","ab+"))==NULL)
{printf("不能打开记录!
\n");
return;}
while(!
feof(fp))
{if(fread(&comm[m],LEN,1,fp)==1)
m++;}
fclose(fp);
if(m==0)
{printf("无商品记录........\n");}
else
{printf("编号商品名称单价数量总金额\t\n");
for(i=0;i{printf(FORMAT,DATA);}
}
}
/**************************自定义商品查看函数************************/
voidsearch()
{FILE*fp;
intsnum,i,m=0;
charch[2];
if((fp=fopen("data.txt","ab+"))==NULL)
{printf("不能打开文件!
\n");
return;}
while(!
feof(fp))
{if(fread(&comm[m],LEN,1,fp)==1)
m++;}
fclose(fp);
if(m==0)
{printf("无商品记录........\n");
return;}
printf("编号:
\n");
scanf("%d",&snum);
for(i=0;iif(snum==comm[i].num)
{printf("已经找到记录,是否显示(
y/n):
\n");
scanf("%s",ch);
if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
{printf("编号商品名称单价数量总金额\t\n");
printf(FORMAT,DATA);
break;}
else
return;
}
if(i==m)
{printf("没有找到相应的记录....\n");}
}
/**************************自定义商品记录删除函数************************/
voiddel()
{inti,m=0,j,snum;
charch[2];
FILE*fp;
if((fp=fopen("data.txt","ab+"))==NULL)
{printf("不能打开文件!
\n");
return;}
while(!
feof(fp))
{if(fread(&comm[m],LEN,1,fp)==1)
m++;}
fclose(fp);
if(m==0)
{printf("无商品记录........\n");
return;}
printf("请输入编号:
\n");
scanf("%d",&snum);
for(i=0;iif(snum==comm[i].num)
break;
if(i==m)
{printf("没有找到.....\n");
getch();
return;}
printf("已经找到记录,是否删除(
y/n):
\n");
scanf("%s",ch);
if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
{for(j=i;jcomm[j]=comm[j+1];
m--;
printf("删除成功....\n");}
if((fp=fopen("data.txt","wb"))==NULL)
{printf("不能打开文件!
\n");
return;}
for(i=0;iif(fwrite(&comm[j],LEN,1,fp)!
=1)
{printf("不能保存!
\n");
getch();}
fclose(fp);
}
/**************************自定义商品记录修改函数************************/
voidmodify()
{inti,m=0,snum;
charch[2];
FILE*fp;
if((fp=fopen("data.txt","ab+"))==NULL)
{printf("不能打开文件!
\n");
return;}
while(!
feof(fp))
{if(fread(&comm[m],LEN,1,fp)==1)
m++;}
fclose(fp);
if(m==0)
{printf("无商品记录........\n");
fclose(fp);
return;}
printf("请输入您要修改信息的编号:
\n");
scanf("%d",&snum);
for(i=0;iif(snum==comm[i].num)
break;
if(i{printf("已经找到该记录,是否修改(
y/n):
\n");
scanf("%s",ch);
if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
{printf("商品名:
\n");
scanf("%s",comm[i].name);
printf("单价:
\n");
scanf("%lf",&comm[i].price);
printf("数量:
\n");
scanf("%lf",&comm[i].num);
comm[i].total=comm[i].count*comm[i].price;
}
else
return;
}
else
{printf("没有找到......\n");
getchar();
return;}
if((fp=fopen("data.txt","wb"))==NULL)
{printf("不能打开文件!
\n");
return;}
for(i=0;iif(fwrite(&comm[i],LEN,1,fp)!
=1)
{printf("不能保存!
\n");
getch();}
fclose(fp);
}
/**************************自定义商品记录插入函数************************/
voidinsert()
{inti,m=0,j,k,snum;
FILE*fp;
if((fp=fopen("data.txt","ab+"))==NULL)
{printf("不能打开文件!
\n");
return;}
while(!
feof(fp))
{if(fread(&comm[m],LEN,1,fp)==1)
m++;}
if(m==0)
{printf("无商品记录........\n");
fclose(fp);
return;
}
printf("请输入要插入记录的位置【即编号】:
\n");
scanf("%d",&snum);
for(i=0;iif(snum==comm[i].num)
break;
for(j=m-1;j>i;j--)
comm[j+1]=comm[j];
printf("请输入您要插入的信息:
\n");
printf("编号:
\n");
scanf("%d",&comm[i+1].num);
for(k=0;kif(comm[k].num==comm[i+1].num&&k!
=i+1)
{printf("该编号已经存在,按任意键继续......\n");
getch();
fclose(fp);
return;}
printf("商品名:
\n");
scanf("%s",comm[i+1].name);
printf("单价:
\n");
scanf("%lf",&comm[i+1].price);
printf("数量:
\n");
scanf("%lf",&comm[i+1].num);
comm[i+1].total=comm[i+1].count*comm[i+1].price;
if((fp=fopen("data.txt","wb"))==NULL)
{printf("不能打开文件!
\n");
return;}
for(k=0;kif(fwrite(&comm[k],LEN,1,fp)!
=1)
{printf("不能保存!
\n");
getch();}
fclose(fp);
}
/**************************自定义商品记录统计函数************************/
voidtotal()
{inti,m=0;
FILE*fp;
if((fp=fopen("data.txt","ab+"))==NULL)
{printf("不能打开记录!
\n");
return;}
while(!
feof(fp))
{if(fread(&comm[m],LEN,1,fp)==1)
m++;}
if(m==0)
{printf("无商品记录........\n");
fclose(fp);}
else
{printf("编号商品名称单价数量\t\n");
for(i=0;i{printf("%-8d%-15s%-12.11f%-12.11f\n",comm[i].num,comm[i].name,comm[i].price,comm[i].count);}
printf("一共有%d条记录!
\n",m);
fclose(fp);
}
}
/**************************自定义商品记录排序函数************************/
voidorder()
{inti,j,m=0;
FILE*fp;
if((fp=fopen("data.txt","ab+"))==NULL)
{printf("不能打开记录!
\n");
return;}
while(!
feof(fp))
{if(fread(&comm[m],LEN,1,fp)==1)
m++;}
fclose(fp);
if(m==0)
{printf("无商品记录........\n");}
else
{for(i=0;ifor(j=i+1;j{if(comm[i].total{t=comm[i];
comm[i]=comm[j];
comm[j]=t;}
}
printf("编号商品名称单价数量总金额\t\n");
for(i=0;i{printf(FORMAT,DATA);}
}
}