能够如同自动售货机一样,输入任一编号, 能够显示对应商品的价格。(假设最多有20 种商品,每种商品的名称最多4个汉字。) 设计一个菜单满足下列要求:(1)能够增加、修改、删除商品;(2)能够显示指定的商品的价格;(3)能够显示所有商品的价格;
#include<stdio.h>
#include<string.h>
#define N 20
struct shop{
char name[10];
float pri;
}a[N];
void inputa(int n,int n0){
for(int i=n-n0;i<n;i++){
printf("请输入品名 价格\n") ;
scanf("%s%f",&a[i].name,&a[i].pri);
}
}
void change(char s[],int n){
for(int i=0;i<n;i++){
if(!strcmp(s,a[i].name)){
printf("改价格:");
scanf("%f",&a[i].pri);
break;
}
else printf("未找到!");
}
}
void find(char s[],int n){
for(int i=0;i<n;i++){
if(!strcmp(s,a[i].name)){
printf("%d\t%s\t%.2f\n",i+1,a[i].name,a[i].pri);
break;
}
else printf("未找到!");
}
}
void outa(int n){
for(int i=0;i<n;i++){
printf("%d\t%s\t%.2f\n",i+1,a[i].name,a[i].pri);
}
}
void del(char s[],int n){
for(int i=0;i<n-1;i++){
if(!strcmp(s,a[i].name))
while(i<n-1){
a[i]=a[i+1];++i;
}
else printf("未找到!");
}
}
int main(){
int t=1,n=0,n0=0;
char s[10];
while(t){
printf("1 增加记录\n2 修改价格\n3 删除记录\n4 查询商品\n5 查看全部\n0 退出系统\n");
scanf("%d",&t);
if(t<1)break;
switch(t){
case 1:
printf("增加记录条数?");
scanf("%d",&n0);
n+=n0;
inputa(n,n0);
break;
if(n<1) break;
case 2: printf("输入品名:");
scanf("%s",s);
change(s,n);
break;
case 3: printf("输入品名:");
scanf("%s",s);
del(s,n);
n--;
break;
case 4:
printf("输入品名:");
scanf("%s",s);
find(s,n);
break;
case 5:
outa(n);
break;
}
}
return 0;
}