C语言写的简易水果管理系统

来源:本站
导读:目前正在解读《C语言写的简易水果管理系统》的相关信息,《C语言写的简易水果管理系统》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《C语言写的简易水果管理系统》的详细说明。
简介://编写一个简单的水果管理系统
//1.可以查看所有水果
//2.可以添加新水果(添加的时候判断水果是否重名)
//3.可以对所有水果排序,价格降序,数量降序
//4.删除指定名称的水果
//5.退出系统

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

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]={""}; //保存所有水果名、数量、单价

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);

break;

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);

fclose;

}

//排序控制函数

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->price<p2->price)

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->count<p2->count)

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]="";

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-成功

int add(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("水果种类为0n");

return;

}

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

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

printf("%st%dt%.2lftn",p[i].name,p[i].count,p[i].price);

}

//菜单函数

void log_menu(){

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

}

提醒:《C语言写的简易水果管理系统》最后刷新时间 2024-03-14 01:02:06,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《C语言写的简易水果管理系统》该内容的真实性请自行鉴别。