在c语⾔中卖⽔果的程序,C语⾔写的简易⽔果管理系统//编写⼀个简单的⽔果管理系统
//1.可以查看所有⽔果
//2.可以添加新⽔果(添加的时候判断⽔果是否重名)
//3.可以对所有⽔果排序,价格降序,数量降序
//4.删除指定名称的⽔果
//5.退出系统
#include
#include
#include
typedef struct fruit{
char name[30]; //⽔果名
int count; //⽔果数量
double price; //⽔果单价
}fruit_t;
//菜单函数
void log_menu();
//查看函数
void check(fruit_t *p,int *count1);
//添加函数
int add(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]={"\0"}; //保存所有⽔果名、数量、单价int count1=0; //count1表⽰⽔果种类数量
printf("欢迎来到⽔果管理系统\n");
log_start(stu,&count1); //系统初始化
printf("初始化成功\n");
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);
case 2://添加
if(add(p,count1)==1)
printf("添加失败,已有此⽔果\n"); else
printf("恭喜您,添加成功\n");
break;
case 3://排序
cmp_ctrl(p,count1);
break;
case 4://删除
if(del(p,count1)==1)
printf("删除失败,没有此种类⽔果\n"); else
printf("恭喜您,删除成功\n");
break;
case 5://退出
write(p,count1); //保存
printf("信息保存成功\n");
exit(0);
break;
default:
printf("输⼊错误,请重新输⼊!\n"); }
}
}
/
/保存函数
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);
}
//排序控制函数
void cmp_ctrl(fruit_t *p,int *count1){
int chose=0;
if(*count1==0){
printf("⽔果种类为0,排序失败\n");
return;
}
while(1){
cmp_menu();
printf("请选择:");
scanf("%d",&chose);
switch(chose){
case 1: //数量
qsort(p,*count1,sizeof(fruit_t),cmp_count_desc); printf("排序成功\n");
break;
case 2: //价格
qsort(p,*count1,sizeof(fruit_t),cmp_price_desc); printf("排序成功\n");
break;
case 3: //返回
return;
break;
default:
printf("输⼊错误,请重新输⼊\n");
}
}
}
//按价格排序排序函数
int cmp_price_desc(const void *px,const void *py){ const fruit_t *p1=px;
const fruit_t *p2=py;
if(p1->price>p2->price)
return -1;
else if(p1->priceprice)
return 1;
else
c语言中structreturn 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.返回\n");
}
//删除函数 0-成功 1-失败
int del(fruit_t *p,int *count1){
int i=0,j=0; //j保存要删除的⽔果下标
char str[30]="\0";
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;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论