您的位置 首页 测评

C言语写的简易生果办理体系

编写一个简单的水果管理系统1可以查看所有水果2可以添加新水果(添加的时候判断水果是否重名)3可以对所有水果排序,价格降序,

//编写一个简略的生果办理体系
//1.能够检查一切生果
//2.能够增加新生果(增加的时分判别生果是否重名)
//3.能够对一切生果排序,价格降序,数量降序
//4.删去指定称号的生果
//5.退出体系
#include
#include
#include
typedef 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<*count1-1;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<*count1;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<*count1;i++)
printf(“%s %d %.2lf “,p[i].name,p[i].count,p[i].price);
}
//菜单函数
void log_menu(){
printf(“1.检查2.增加3.排序4.删去5.退出”);
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/317533.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部