资源描述
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
struct Thing
{
int id;
char name[30];
char produce[30];
int number;
float price;
char type[30];
};
void tianjia();
void shanchu();
void xiugai();
void chaxun();
void chazhao();
void liulan();
void tuichu();
void initialization()
{
FILE *fp;
struct Thing i={1,"牛奶","辽宁",1200,3};
fp=fopen("Thing.dat恶","w");
if(fp==NULL)
{
printf("\t\t\t系统错误,请重试........");
exit(0);
}
fwrite(&i,sizeof(struct Thing),1,fp);
fclose(fp);
}
void menu()
{
int choice;
printf("\n∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞ 【超市管理系统】 ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞\n");
printf("------------------------------ 系统菜单 -------------------------------");
printf("\n\t①=====================【 新购物品入库 】\n");
printf("\n\t②=====================【 物品信息删除 】\n");
printf("\n\t③=====================【 物品信息修改 】\n");
printf("\n\t④=====================【 利用编号查询 】\n");
printf("\n\t⑤=====================【 利用种类查找 】\n");
printf("\n\t⑥=====================【 物品信息浏览 】\n");
printf("\n\t⑦=====================【 应用程序退出 】\n");
printf("\n\t请输入您要选择的菜单......");
scanf("%d",&choice);
switch(choice)
{
case 1:
tianjia();
break;
case 2:
shanchu();
break;
case 3:
xiugai();
break;
case 4:
chaxun();
break;
case 5:
chazhao();
break;
case 6:
liulan();
break;
case 7:
tuichu();
break;
default:
printf("\n\t\t\t\t\t输入无效,请您重新输入......");
getch();
system("cls");
menu();
}
}
int validateID(int id)
{
FILE *fp;
struct Thing i;
fp=fopen("Thing.date","r");
if(fp==NULL)
{
printf("\t\t\t系统错误,请您重试........");
exit(0);
}
fread(&i,sizeof(struct Thing),1,fp);
while(!feof(fp))
{
if(i.id==id)
{
fclose(fp);
return 1;
break;
}
fread(&i,sizeof(struct Thing),1,fp);
}
fclose(fp);
return 0;
}
void tianjia()
{ struct Thing i;
char choice;
FILE *fp;
fp=fopen("Thing.date","ab");
if(fp==NULL)
{
printf("\t\t\t系统错误,请您重试........");
exit(0);
}
labID:
printf("\n\t请您输入要入库物品的信息...\n");
printf("\t\t\t\t 物品的编号:");
scanf("%d",&i.id);
if(validateID(i.id)==1)
{
printf("\t\t\t\t此编号已被使用,请您重新输入......");
goto labID;
}
printf("\t\t\t\t 物品的名称:");
scanf("%s",i.name);
printf("\t\t\t\t 物品的生产地:");
scanf("%s",i.produce);
printf("\t\t\t\t 物品的数量:");
scanf("%d",&i.number);
printf("\t\t\t\t 物品的单价:");
scanf("%f",&i.price);
printf("\t\t\t\t 物品的种类:");
scanf("%s",i.type);
fwrite(&i,sizeof(struct Thing),1,fp);
fclose(fp);
printf("\t\t\t\t\t\t 物品信息已入库成功!!!\n");
printf("\n您想继续吗?(y/n)");
scanf(" %c",&choice);
if(choice=='Y'||choice=='y')
{
tianjia();
}
else
{
system("cls");
menu();
}
}
void shanchu()
{ struct Thing i[1000];
struct Thing temp;
int shanchuID;
char choice;
int index=0;
int j=0;
FILE *fp;
fp=fopen("Thing.date","r");
if(fp==NULL)
{
printf("\t\t\t系统错误,请您重试........");
exit(0);
}
fread(&temp,sizeof(struct Thing),1,fp);
while(!feof(fp))
{
i[index]=temp;
index++;
fread(&temp,sizeof(struct Thing),1,fp);
}
fclose(fp);
printf("\n\t请输入要删除的物品的编号:");
scanf("%d",&shanchuID);
fopen("f:\\Thing.date","w");
if(fp==NULL)
{
printf("\t\t\t系统错误,请您重试........");
exit(0);
}
for( j=0;j<index;j++)
{
if(i[j].id!= shanchuID)
{
fwrite(&i[j],sizeof(struct Thing),1,fp);
}
}
fclose(fp);
printf("\t\t\t\t\t物品信息已清除!!!\n");
printf("\n您想继续吗?(y/n)");
scanf(" %c",&choice);
if(choice=='Y'||choice=='y')
{
shanchu ();
}
else
{
system("cls");
menu();
}
}
void xiugai()
{ int index=0;
int ID,j;
char choice;
struct Thing i[1000];
struct Thing temp;
FILE *fp;
fp=fopen("Thing.date","r");
if(fp==NULL)
{
printf("\t\t\t系统错误,请您重试........");
exit(0);
}
fread(&temp,sizeof(struct Thing),1,fp);
while(!feof(fp))
{
i[index]=temp;
index++;
fread(&temp,sizeof(struct Thing),1,fp);
}
fclose(fp);
fp=fopen("Thing.date","w");
if(fp==NULL)
{
printf("\\t\t\t系统错误,请您重试........");
exit(0);
}
printf("\n\t请输入要修改的信息的物品的编号:");
scanf("%d",&ID);
for(j=0;j<=index-1;j++)
{
if(i[j].id!=ID)
{
fwrite(&i[j],sizeof(struct Thing),1,fp);
}
else
{
printf("\t\t物品名称修改为:");
scanf("%s",i[j].name);
printf("\t\t物品生产地修改为:");
scanf("%s",i[j].produce);
printf("\t\t物品数量修改为:");
scanf("%d",&i[j].number);
printf("\t\t物品单价修改为:");
scanf("%f",&i[j].price);
printf("\t\t物品种类修改为:");
scanf("%s",i[j].type);
fwrite(&i[j],sizeof(struct Thing),1,fp);
}
}
fclose(fp);
printf("\t\t\t\t物品信息已修改......");
printf("\n您想继续吗?(y/n)");
scanf(" %c",&choice);
if(choice=='Y'||choice=='y')
{
xiugai();
}
else
{
system("cls");
menu();
}
}
void chaxun()
{
FILE *fp;
int chaxunID;char choice;struct Thing i;
fp=fopen("Thing.date","r");
if(fp==NULL)
{
printf("\t\t\t系统错误,请你重试........");
exit(0);
}
chaxunID:
printf("\n\t请输入要查询的物品的编号..");
scanf("%d",&chaxunID);
fread(&i,sizeof(struct Thing),1,fp);
while(!feof(fp))
{
if(i.id==chaxunID)
{
printf("\n\n\t***************物品信息******************");
printf("\n\t物品编号...%30d\n",i.id);
printf("\n\t-----------------------------------------");
printf("\n\t物品名称...%30s\n",i.name);
printf("\n\t-----------------------------------------");
printf("\n\t生产厂家...%30s\n",i.produce);
printf("\n\t-----------------------------------------");
printf("\n\t进口数量...%30d\n",i.number);
printf("\n\t-----------------------------------------");
printf("\n\t批发价格...%30.3f\n",i.price);
printf("\n\t-----------------------------------------");
printf("\n\t物品种类...%30s\n",i.type);
printf("\n\t-----------------------------------------");
printf("\n您想继续吗?(y/n)");
scanf(" %c",&choice);
if(choice=='Y'||choice=='y')
{
chaxun();
}
else
{
system("cls");
menu();
}
}
fread(&i,sizeof(struct Thing),1,fp);
}
fclose(fp);
printf("\t\t\t\t\t输入的编号不存在,请您重新输入......");
goto chaxunID;
}
void chazhao()
{
FILE *fp;
char chazhaoTYPE;char choice;struct Thing i;
fp=fopen("Thing.date","r");
if(fp==NULL)
{
printf("\t\t\t系统错误,请你重试........");
exit(0);
}
chazhaoTYPE:
printf("\n\t请输入要查找的物品的种类..");
scanf("%s",&chazhaoTYPE);
fread(&i,sizeof(struct Thing),1,fp);
while(!feof(fp))
{
if(i.type)
{
printf("\n\n\t***************物品信息******************");
printf("\n\t物品编号...%30d\n",i.id);
printf("\n\t-----------------------------------------");
printf("\n\t物品名称...%30s\n",i.name);
printf("\n\t-----------------------------------------");
printf("\n\t生产厂家...%30s\n",i.produce);
printf("\n\t-----------------------------------------");
printf("\n\t进口数量...%30d\n",i.number);
printf("\n\t-----------------------------------------");
printf("\n\t批发价格...%30.3f\n",i.price);
printf("\n\t-----------------------------------------");
printf("\n\t物品种类...%30s\n",i.type);
printf("\n\t-----------------------------------------");
printf("\n您想继续吗?(y/n)");
scanf(" %c",&choice);
if(choice=='Y'||choice=='y')
{
chazhao();
}
else
{
system("cls");
menu();
}
}
fread(&i,sizeof(struct Thing),1,fp);
}
fclose(fp);
printf("\t\t\t\t\t输入的种类不存在,请您重新输入......");
goto chazhaoTYPE;
}
void liulan()
{ struct Thing i;
int index=0;
char choice;
FILE *fp;
fp=fopen("Thing.date","r");
if(fp==NULL)
{
printf("\t\t\t系统错误,请你重试........");
exit(0);
}
fread(&i,sizeof(struct Thing),1,fp);
while(!feof(fp))
{
index++;
printf("\n\n\t****************物品信息%d*****************",index);
printf("\n\t物品编号...%30d\n",i.id);
printf("\n\t-----------------------------------------");
printf("\n\t物品名称...%30s\n",i.name);
printf("\n\t-----------------------------------------");
printf("\n\t生产厂家...%30s\n",i.produce);
printf("\n\t-----------------------------------------");
printf("\n\t进口数量...%30d\n",i.number);
printf("\n\t-----------------------------------------");
printf("\n\t批发价格...%30.3f\n",i.price);
printf("\n\t-----------------------------------------");
printf("\n\t物品种类...%30s\n",i.type);
printf("\n\t-----------------------------------------");
getch();
fread(&i,sizeof(struct Thing),1,fp);
}
fclose(fp);
printf("\n您想继续吗?(y/n)");
scanf(" %c",&choice);
if(choice=='Y'||choice=='y')
{
liulan();
}
else
{
system("cls");
menu();
}
}
void tuichu()
{char choice;
system("cls");
printf("\n\n\n\n\n\n\n\t\t\t您确定要退出系统吗?\n\n\n\t\t\t如果您想退出请按'y',其它键将返回主菜单.....");
scanf(" %c",&choice);
if(choice=='Y'||choice=='y')
{
system("cls");
printf("\n\n\n\n\n\n\n\n\n\n\t\t\t\t谢谢您的使用!!!");
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
}
else
{
system("cls");
menu();
}
}
void main()
{
printf("\n\n");
printf("\t\3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3\n");
printf("\t\3 \3\n");
printf("\t\3 \3\n");
printf("\t\3 欢迎使用 \3\n");
printf("\t\3 \3\n");
printf("\t\3 \3\n");
printf("\t\3 超市管理系统 \3\n");
printf("\t\3 按任意键继续 \3\n");
printf("\t\3 \3\n");
printf("\t\3 \3\n");
printf("\t\3 \3\n");
printf("\t\3 \3\n");
printf("\t\3 \3\n");
printf("\t\3 \3\n");
printf("\t\3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3");
getch();
system("cls");
menu();
initialization();
menu();
}
展开阅读全文