70,012
社区成员




#include<stdio.h> //头文件
#include<stdlib.h> //头文件
#include<string.h> //头文件
typedef struct
{
int score; /*定义编号*/
char name[10]; /*定义商品名称*/
char num[15]; /*定义数量*/
char email[20]; /*定义邮箱*/
char age[8]; /*定义保质期*/
char adds[20]; /*定义所在位置*/
}Person;
Person pe[80];
int menu_select()
{
char c;
do{
system("cls");
printf("\t\t欢迎进入超市内部信息网\n"); //进入时显示的标题
printf("\t\t你可以选择以下内容\n"); //进入时显示的标题
printf("\t\t *****嘉苑超市系统***** \n");
printf("\t\t 1. 添加超市记录 \n"); //添加超市记录
printf("\t\t2. 显示超市记录 \n"); //显示超市记录
printf("\t\t3. 删除超市记录 \n"); //删除超市记录
printf("\t\t 4. 查询超市记录 \n"); //查询超市记录
printf("\t\t 5. 修改超市记录 \n"); //修改超市记录
printf("\t\t0. 退出运行程序 \n"); //退出运行程序
printf("\t\\n");
printf("\t\t请您选择(0-5):"); //进行选择
c=getchar();
if (c == '\n')
continue;
}while(c<'0'||c>'5');
return(c-'0');
}
int Input(Person per[],int n) //开始增加记录
{
int a=0;
char xh='a',x[10];
while(xh!='n'&&xh!='N')
{
printf("\t编号:"); //增加编号记录
//scanf("\t%d",&per[n+a].score);
scanf("%d",&per[n+a].score);
printf("\t商品名称:"); //增加商品名称记录
//scanf("\t%s",per[n+a].name);
scanf("%s",per[n+a].name);
printf("\t保质期:"); //增加保质期记录
//scanf("\t%s",per[n+a].age);
scanf("%s",per[n+a].age);
printf("\t数量:"); //增加数量记录
//scanf("\t%s",per[n+a].num);
scanf("%s",per[n+a].num);
printf("\t所在位置:"); //增加所在位置记录
//scanf("\t%s",per[n+a].adds);
scanf("%s",per[n+a].adds);
printf("\t电子邮箱:"); ////增加电子邮箱记录
//scanf("\t%s",per[n+a].email);
scanf("%s",per[n+a].email);
getchar(); //for '\n'
gets(x);
printf("\n\t是否继续添加?(Y/N)");
//scanf("\t%c",&xh); //提示您是否继续添加
scanf("%c",&xh); //提示您是否继续添加
a++;
}
return(n+a);
}
void Display(Person per[],int n) //进行显示所添加的记录,其编号 名称 数量 保质期 所在位置 电子邮箱
{
int i;
printf("----------------------------------------------------------------------\n"); /*格式*/
printf("编号 名称 数量 保质期 所在位置 电子邮箱\n");
printf("----------------------------------------------------------------------\n");
for(i=1;i<n+1;i++)
{
printf("%-7d%-10s%-9s%-13s%-15s%-14s\n",per[i-1].score,per[i-1].name,per[i-1].age,per[i-1].num,per[i-1].adds,per[i-1].email); //设置每个的长度
if(i>1&&i%10==0)
{
printf("\t-----------------------------------\n");
printf("\t");
system("pause");
printf("\t-----------------------------------\n");
}
}
printf("----------------------------------------------------------------------\n");
system("pause");
}
int Delete_a_record(Person per[],int n) //删除记录的程序
{
char s[20];
int i=0,j; //进行定义
printf("\t请输入想删除记录中的商品名称:"); //请输入想删除记录中的商品名称
scanf("%s",s);
while(strcmp(per[i].name,s)!=0&&i<n)
i++; //首先输入商品名称进行查询
if(i==n)
{
printf("\t超市系统暂无!\n");
return(n);
}
for(j=i;j<n-1;j++) //使用循环进行查询,找到相应的记录
{
strcpy(per[j].num,per[j+1].num); //查询数量
strcpy(per[j].name,per[j+1].name); //查询商品名称
strcpy(per[j].age,per[j+1].age); //查询保质期
strcpy(per[j].adds,per[j+1].adds); //查询所在地址
strcpy(per[j].email,per[j+1].email); //查询电子邮件
per[j].score=per[j+1].score;
}
printf("\t\t\t已经成功删除!\n"); //提示删除成功
return(n-1);
}
void Query_a_record(Person per[],int n)
{
int m;
printf("\t\n请选择查询方式:\n"); //请选择查询方式
printf("\t1------商品名称 \n"); // 商品名称
printf("\t2------联系电话 \n"); // 联系电话
printf("\t3------所在地址 \n"); // 所在地址
printf("\t4------确认返回 \n"); // 确认返回
printf("请选择:"); //输入选择值
scanf("%d",&m);
while(m!=1&&m!=2&&m!=3&&m!=4) //判断输入的是否正确,如果不正确则进行提示
{
printf("输入错误,请重新选择:");
scanf("%d",&m);
}
if(m==1) //当用用户输入指令1时
{
char s[20];
int i=0;
printf("\t请输入想查询的商品名称:"); //输入先要查询的名称,如果名称不对的话是查不到的
//scanf("\t%s",s);
scanf("%s",s);
while(strcmp(per[i].name,s)!=0&&i<n)
i++; //当查询不到的时候,系统会提示你超市系统里面没有
if(i==n)
{
printf("\t超市系统暂无!\n");
return;
} //如果输入正确的时候 ,会显示出你所要查询的内容
printf("\t编号: %d\n",per[i].score); //显示编号
//printf("\t保质期s\n",per[i].age); //显示保质期
printf("\t保质期%s\n",per[i].age); //显示保质期
printf("\t电话号码: %s\n",per[i].num); //显示电话号码
printf("\t通讯地址: %s\n",per[i].adds); //显示通讯地址
printf("\t电子邮箱: %s\n",per[i].email); //显示电子邮箱
} ;
if(m==2) //当用用户输入指令2时
{
char s[20]; //输入先要查询的数量,如果名称不对的话是查不到的
int i=0;
printf("\t请输入想查询的数量:");
//scanf("\t%s",s);
scanf("%s",s);
while(strcmp(per[i].num,s)!=0&&i<n) i++; //当查询不到的时候,系统会提示你超市系统里面没有
if(i==n)
{
printf("\t超市系统暂无\n");
return;
}
printf("\t商品编号: %d\n",per[i].score); //显示商品编号
printf("\t商品名称: %s\n",per[i].name); //显示商品名称
printf("\t商品保质期: %s\n",per[i].age); //显示商品保质期
printf("\t所在位置: %s\n",per[i].adds); //显示所在位置
printf("\t电子邮箱: %s\n",per[i].email); //显示电子邮箱
} ;
if(m==3) //当用用户输入指令3时
{
char s[20]; ////输入先要查询的名称,如果名称不对的话是查不到的
int i=0;
printf("\t请输入想查询的地址:");
//scanf("\t%s",s);
scanf("%s",s);
while(strcmp(per[i].adds,s)!=0&&i<n) i++; //当查询不到的时候,系统会提示你超市系统里面没有
if(i==n)
{
printf("\t超市系统暂无!\n");
return;
}
printf("\t商品编号: %d\n",per[i].score); //显示商品编号
printf("\t商品名称: %s\n",per[i].name); //显示商品名称
printf("\t商品保质期: %s\n",per[i].age); //显示商品保质期
printf("\t电话号码: %s\n",per[i].num); //显示电话号码
printf("\t电子邮箱: %s\n",per[i].email); //显示电子邮箱
} ;
}
void Change(Person per[],int n) //修改的程序
{
char s[20];
int i=0;
printf("\t请输入想修改的记录中的商品名称:"); //首先输入修改的记录中的商品名称
scanf("%s",s);
while(strcmp(per[i].name,s)!=0&&i<n) i++; //会在系统里面查找是否有这个记录,如果没有则提示超市系统暂无此记录
if(i==n)
{
printf("\t超市系统暂无!\n");
return;
}
printf("\t编号:"); //修改的编号,把之前的改成现在的
scanf("\t%d",&per[i].score);
printf("\t名称:"); //修改的名称,把之前的改成现在的
scanf("\t%s",per[i].name);
printf("\t保质期:"); //修改的保质期,把之前的改成现在的
scanf("\t%s",per[i].age);
printf("\t数量:"); //修改的数量,把之前的改成现在的
scanf("\t%s",per[i].num);
printf("\t所在位置:"); //修改的所在位置,把之前的改成现在的
scanf("\t%s",per[i].adds);
printf("\t电子邮箱:"); //修改的电子邮箱,把之前的改成现在的
scanf("\t%s",per[i].email);
printf("\t修改成功!");
}
//void main() //主函数
int main() //主函数
{
int x=0;
for(;;)
{
switch(menu_select()) //根据用户在主界面上输入的指令在进行操作,当输入1时则添加记录到超市系统
{
case 1:
printf("\n\t添加记录到超市系统\n");
x=Input(pe,x);
break;
case 2:
printf("\n\t\t\t 超市系统记录表\n"); //根据用户在主界面上输入的指令在进行操作,当输入2时则显示到超市系统的记录
Display(pe,x);
break;
case 3:
printf("\n\t从超市系统中删除记录\n"); //根据用户在主界面上输入的指令在进行操作,当输入3时则删除记录到超市系统
x=Delete_a_record(pe,x);
printf("\t");
system("pause");
break;
case 4:
printf("\n\t在超市系统中查找记录\n"); //根据用户在主界面上输入的指令在进行操作,当输入4时则查找记录在到超市系统
Query_a_record(pe,x);
printf("\t");
system("pause");
break;
case 5:
printf("\n\t修改超市系统中的记录\n"); //根据用户在主界面上输入的指令在进行操作,当输入5时则修改记录到超市系统
Change(pe,x);
printf("\t");
system("pause");
break;
case 0:
printf("\n\t\t谢谢使用,再见!\n"); //根据用户在主界面上输入的指令在进行操作,当输入0时,结束程序
printf("\n\t\t");
exit(0);
}
}
}