c语言显z作业示水果的价格,C语言写的简易水果管理系统

#includetypedef struct fruit{

char name[30]; //水果名

int count; //水果数量

doubleprice; //水果单价

}fruit_t;

//菜单函数

void log_menu();

//查看函数

void check(fruit_t *p,int *count1);

//添加函数

intadd(fruit_t *p,int *count1);

//功能控制函数

void log_ctrl(fruit_t *p,int *count1);

//删除函数

int del(fruit_t *p,int *count1);

//排序菜单函数

void cmp_menu();

//排序控制函数

void cmp_ctrl(fruit_t *p,int *count1);

//按数量排序函数

int cmp_count_desc(const void *px,const void *py);

//按价格排序排序函数

int cmp_price_desc(const void *px,const void *py);

//系统初始化函数

void log_start(fruit_t *p,int *count1);

//保存函数

void write(fruit_t *p,int *count1);

int main(){

fruit_t stu[100]={" "}; //保存所有水果名、数量、单价

int count1=0; //count1表示水果种类数量

printf("欢迎来到水果管理系统");

log_start(stu,&count1); //系统初始化

printf("初始化成功");

log_ctrl(stu,&count1); // 功能控制函数

return 0;

}

//系统初始化函数

void log_start(fruit_t *p,int *count1){

FILE *fp=NULL;

int i=0;

fp=fopen("data","a+");

if(NULL==fp)

exit(1);

while(fread(&p[*count1],sizeof(fruit_t),1,fp))

*count1+=1;

fclose(fp);

}

//功能控制函数

void log_ctrl(fruit_t *p,int *count1){

int chose=0;

while(1){

chose=0;

log_menu();

printf("请选择:");

scanf("%d",&chose);

switch(chose){

case 1://查看

check(p,count1);

break;

case 2://添加

if(add(p,count1)==1)

printf("添加失败,已有此水果");

else

printf("恭喜您,添加成功");

break;

case 3://排序

cmp_ctrl(p,count1);

break;

case 4://删除

if(del(p,count1)==1)

printf("删除失败,没有此种类水果");

else

printf("恭喜您,删除成功");

break;

case 5://退出

write(p,count1); //保存

printf("信息保存成功");

exit(0);

break;

default:

printf("输入错误,请重新输入!");

}

}

}

//保存函数

void write(fruit_t *p,int *count1){

FILE *fp=NULL;

int i=0;

fp=fopen("data","w");

if(NULL==fp)

exit(2);

fwrite(p,sizeof(fruit_t),*count1,fp);

fclose;

}

//排序控制函数

void cmp_ctrl(fruit_t *p,int *count1){

int chose=0;

if(*count1==0){

printf("水果种类为0,排序失败");

return;

}

while(1){

cmp_menu();

printf("请选择:");

scanf("%d",&chose);

switch(chose){

case 1: //数量

qsort(p,*count1,sizeof(fruit_t),cmp_count_desc);

printf("排序成功");

break;

case 2: //价格

qsort(p,*count1,sizeof(fruit_t),cmp_price_desc);

printf("排序成功");

break;

case 3: //返回

return;

break;

default:

printf("输入错误,请重新输入");

}

}

}

//按价格排序排序函数

int cmp_price_desc(const void *px,const void *py){

const fruit_t *p1=px;

constfruit_t *p2=py;

if(p1->price>p2->price)

return -1;

else if(p1->priceprice)

return 1;

else

return 0;

}

//按数量排序函数

int cmp_count_desc(const void *px,const void *py){

const fruit_t *p1=px;

const fruit_t *p2=py;

if(p1->count>p2->count)

return -1;

else if(p1->countcount)

return 1;

else

return 0;

}

//排序菜单函数

void cmp_menu(){

printf("1.按数量排序2.按价格排序3.返回");

}

//删除函数0-成功 1-失败

int del(fruit_t *p,int *count1){

int i=0,j=0; //j保存要删除的水果下标

char str[30]=" ";

int flag=0;

printf("请输入要删除的水果名:");

scanf("%s",str);

flag=0;

for(i=0;i<=*count1;i++){

if(strcmp(p[i].name,str)==0){

flag=1;

j=i;

break;

}

}

if(flag==0)

return 1;

for(i=j;i strcpy(p[i].name,p[i+1].name);

p[i].count=p[i+1].count;

p[i].price=p[i+1].price;

}

*count1-=1;

return 0;

}

//添加函数,1-失败 0-成功

intadd(fruit_t *p,int *count1){

int i=0;

printf("水果名:");

scanf("%s",p[*count1].name);

for(i=0;i if(strcmp(p[*count1].name,p[i].name)==0)

return 1;

printf("数 量:");

scanf("%d",&p[*count1].count);

printf("价 格:");

scanf("%lf",&p[*count1].price);

*count1+=1;

return 0;

}

//查看函数

void check(fruit_t *p,int *count1){

int i;

if(*count1==0){

printf("水果种类为0");

return;

}

printf("水果数量单价");

for(i=0;i printf("%s%d%.2lf",p[i].name,p[i].count,p[i].price);

}

//菜单函数

void log_menu(){

printf("1.查看2.添加3.排序4.删除5.退出");

}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值