#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
struct ima
{
int id;
char name[20];
char produce[30];
int number;
float price;
};
void Append();
void Selldelete();
void Amend();
void Findin();
void Browse();
void colorsetting();
void Endprogram();
void initialization()
{
FILE *fp;
struct ima i={1,"花生牛奶","湖北武汉",1200,2.5};
fp=fopen("ima.dat恶","w");
if(fp==NULL)
{
printf("\t\t\t系统错误,请重试........");
exit(0);
}
fwrite(&i,sizeof(struct ima),1,fp);
fclose(fp);
}
void menu()
{
int choice;
printf("\n∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞【超市库存管理系统】∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞\n");
printf("--------------------------------系统菜单显示如下--------------------------------");
printf("\n\t1=====================【 新购物品入库 】\n");
printf("\n\t2=====================【 物品信息删除 】\n");
printf("\n\t3=====================【 物品信息修改 】\n");
printf("\n\t4=====================【 物品信息查询 】\n");
printf("\n\t5=====================【 物品信息浏览 】\n");
printf("\n\t6=====================【 应用程序退出 】\n");
printf("\n\t请输入您要选择的菜单......");
scanf("%d",&choice);
switch(choice)
{
case 1:
Append();
break;
case 2:
Selldelete();
break;
case 3:
Amend();
break;
case 4:
Findin();
break;
case 5:
Browse();
break;
case 6:
Endprogram();
break;
default:
printf("\n\t\t\t\t\t输入无效,请您重新输入......");
getch();
system("cls");
menu();
}
}
int validateID(int id)
{
FILE *fp;
struct ima i;
fp=fopen("ima.date","r");
if(fp==NULL)
{
printf("\t\t\t系统错误,请您重试........");
exit(0);
}
fread(&i,sizeof(struct ima),1,fp);
while(!feof(fp))
{
if(i.id==id)
{
fclose(fp);
return 1;
break;
}
fread(&i,sizeof(struct ima),1,fp);
}
fclose(fp);
return 0;
}
void Append()
{ struct ima i;
char choice;
FILE *fp;
fp=fopen("ima.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);
fwrite(&i,sizeof(struct ima),1,fp);
fclose(fp);
printf("\t\t\t\t\t\t 物品信息已入库成功!!!\n");
printf("\n您想继续吗?(y/n)");
scanf(" %c",&choice);
if(choice=='Y'||choice=='y')
{
Append();
}
else
{
system("cls");
menu();
}
}
void Selldelete()
{ struct ima i[1000];
struct ima temp;
int delID;
char choice;
int index=0;
int j=0;
FILE *fp;
fp=fopen("ima.date","r");
if(fp==NULL)
{
printf("\t\t\t系统错误,请您重试........");
exit(0);
}
fread(&temp,sizeof(struct ima),1,fp);
while(!feof(fp))
{
i[index]=temp;
index++;
fread(&temp,sizeof(struct ima),1,fp);
}
fclose(fp);
printf("\n\t请输入要删除的物品的编号:");
scanf("%d",&delID);
fopen("f:\\ima.date","w");
if(fp==NULL)
{
printf("\t\t\t系统错误,请您重试........");
exit(0);
}
for( j=0;j<index;j++)
{
if(i[j].id!=delID)
{
fwrite(&i[j],sizeof(struct ima),1,fp);
}
}
fclose(fp);
printf("\t\t\t\t\t物品信息已清除!!!\n");
printf("\n您想继续吗?(y/n)");
scanf(" %c",&choice);
if(choice=='Y'||choice=='y')
{
Selldelete();
}
else
{
system("cls");
menu();
}
}
void Amend()
{ int index=0;
int ID,j;
char choice;
struct ima i[1000];
struct ima temp;
FILE *fp;
fp=fopen("ima.date","r");
if(fp==NULL)
{
printf("\t\t\t系统错误,请您重试........");
exit(0);
}
fread(&temp,sizeof(struct ima),1,fp);
while(!feof(fp))
{
i[index]=temp;
index++;
fread(&temp,sizeof(struct ima),1,fp);
}
fclose(fp);
fp=fopen("ima.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 ima),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);
fwrite(&i[j],sizeof(struct ima),1,fp);
}
}
fclose(fp);
printf("\t\t\t\t物品信息已修改......");
printf("\n您想继续吗?(y/n)");
scanf(" %c",&choice);
if(choice=='Y'||choice=='y')
{
Amend();
}
else
{
system("cls");
menu();
}
}
void Findin()
{
FILE *fp;
int findID;char choice;struct ima i;
fp=fopen("ima.date","r");
if(fp==NULL)
{
printf("\t\t\t系统错误,请你重试........");
exit(0);
}
finID:
printf("\n\t请输入要查询的物品的编号..");
scanf("%d",&findID);
fread(&i,sizeof(struct ima),1,fp);
while(!feof(fp))
{
if(i.id==findID)
{
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您想继续吗?(y/n)");
scanf(" %c",&choice);
if(choice=='Y'||choice=='y')
{
Findin();
}
else
{
system("cls");
menu();
}
}
fread(&i,sizeof(struct ima),1,fp);
}
fclose(fp);
printf("\t\t\t\t\t输入的编号不存在,请您重新输入......");
goto finID;
}
void Browse()
{ struct ima i;
int index=0;
char choice;
FILE *fp;
fp=fopen("ima.date","r");
if(fp==NULL)
{
printf("\t\t\t系统错误,请你重试........");
exit(0);
}
fread(&i,sizeof(struct ima),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-----------------------------------------");
getch();
fread(&i,sizeof(struct ima),1,fp);
}
fclose(fp);
printf("\n您想继续吗?(y/n)");
scanf(" %c",&choice);
if(choice=='Y'||choice=='y')
{
Browse();
}
else
{
system("cls");
menu();
}
}
void Endprogram()
{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();
}
追问开头还是有colorsetting,如果删掉这个程序就能正常运行吗?而且是符合我说的要求的