久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

C語(yǔ)言寫的簡(jiǎn)易水果管理系統(tǒng)

作者:劉蕊飛   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年03月02日   【字體:

 //編寫一個(gè)簡(jiǎn)單的水果管理系統(tǒng)
//1.可以查看所有水果
//2.可以添加新水果(添加的時(shí)候判斷水果是否重名)
//3.可以對(duì)所有水果排序,價(jià)格降序,數(shù)量降序
//4.刪除指定名稱的水果
//5.退出系統(tǒng)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct fruit{
char name[30];   //水果名
int count;       //水果數(shù)量
double price;    //水果單價(jià)
}fruit_t;
//菜單函數(shù)
void log_menu();
//查看函數(shù)
void check(fruit_t *p,int *count1);
//添加函數(shù)
int  add(fruit_t *p,int *count1);
//功能控制函數(shù)
void log_ctrl(fruit_t *p,int *count1);
//刪除函數(shù)
int del(fruit_t *p,int *count1);
//排序菜單函數(shù)
void cmp_menu();
//排序控制函數(shù)
void cmp_ctrl(fruit_t *p,int *count1);
//按數(shù)量排序函數(shù)
int cmp_count_desc(const void *px,const void *py);
//按價(jià)格排序排序函數(shù)
int cmp_price_desc(const void *px,const void *py);
//系統(tǒng)初始化函數(shù)
void log_start(fruit_t *p,int *count1);
//保存函數(shù)
void write(fruit_t *p,int *count1);
int main(){
 fruit_t stu[100]={"\0"};    //保存所有水果名、數(shù)量、單價(jià)
 int count1=0;          //count1表示水果種類數(shù)量
 printf("歡迎來(lái)到水果管理系統(tǒng)\n");
 log_start(stu,&count1);        //系統(tǒng)初始化
 printf("初始化成功\n");
 log_ctrl(stu,&count1);    // 功能控制函數(shù)
 return 0;
}
//系統(tǒng)初始化函數(shù)
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);
}
//功能控制函數(shù)
void log_ctrl(fruit_t *p,int *count1){
 int chose=0;
 
 while(1){
  chose=0;
  log_menu();
  printf("請(qǐng)選擇:");
  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("刪除失敗,沒(méi)有此種類水果\n");
    else
     printf("恭喜您,刪除成功\n");
    break;
   case 5://退出
    write(p,count1);    //保存
    printf("信息保存成功\n");
    exit(0);
    break;
   default:
    printf("輸入錯(cuò)誤,請(qǐng)重新輸入!\n");
  }
 }
}
//保存函數(shù)
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;
}
//排序控制函數(shù)
void cmp_ctrl(fruit_t *p,int *count1){
 int chose=0;
 
 if(*count1==0){
  printf("水果種類為0,排序失敗\n");
  return;
 }
 while(1){
  cmp_menu();
  printf("請(qǐng)選擇:");
  scanf("%d",&chose);
  switch(chose){
   case 1:        //數(shù)量
    qsort(p,*count1,sizeof(fruit_t),cmp_count_desc);
    printf("排序成功\n");
    break;
   case 2:        //價(jià)格
    qsort(p,*count1,sizeof(fruit_t),cmp_price_desc);
    printf("排序成功\n");
    break;
   case 3:        //返回
    return;
    break;
   default:
    printf("輸入錯(cuò)誤,請(qǐng)重新輸入\n");
  }
 }
}
//按價(jià)格排序排序函數(shù)
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;
}
//按數(shù)量排序函數(shù)
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;
}
//排序菜單函數(shù)
void cmp_menu(){
  printf("1.按數(shù)量排序2.按價(jià)格排序3.返回\n");
}
//刪除函數(shù) 0-成功 1-失敗
int del(fruit_t *p,int *count1){
 int i=0,j=0;     //j保存要?jiǎng)h除的水果下標(biāo)
 char str[30]="\0";
 int flag=0;
 printf("請(qǐng)輸入要?jiǎng)h除的水果名:");
 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;
}
//添加函數(shù),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("數(shù)  量:");
 scanf("%d",&p[*count1].count);
 printf("價(jià)  格:");
 scanf("%lf",&p[*count1].price);
 *count1+=1;
 return 0;
}
//查看函數(shù)
void check(fruit_t *p,int *count1){
 int i;
 if(*count1==0){
 printf("水果種類為0\n");
 return;
 }
 printf("水果\t數(shù)量\t單價(jià)\t\n");
 for(i=0;i<*count1;i++)
  printf("%s\t%d\t%.2lf\t\n",p[i].name,p[i].count,p[i].price);
}
//菜單函數(shù)
void log_menu(){
 printf("1.查看2.添加3.排序4.刪除5.退出\n");
}

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 91久久看片 | 久久久久国产 | 欧美日韩一区二区在线 | 日韩一区二区在线视频 | 一区二区在线看 | 久久婷婷国产麻豆91 | 色小姐综合网 | 久久综合香蕉 | 国产精品99久久久精品免费观看 | 97人澡人人添人人爽欧美 | 久久久www成人免费精品 | 911影院| 一区二区三区四区视频 | 国产一区二区免费 | 国产欧美精品在线观看 | 做a视频| 亚洲一区电影 | 羞羞涩涩在线观看 | 色秀网站 | 亚洲精品一区二区三区中文字幕 | 中文字幕国产一区 | 亚洲欧美中文日韩在线v日本 | 中文精品久久 | 欧美精品一区二区在线观看 | 久久久久久国产精品 | 国产一级精品毛片 | 国产一级毛片精品完整视频版 | 男女啪啪高潮无遮挡免费动态 | 成人av在线播放 | 亚洲国产精品一区二区三区 | 免费99精品国产自在在线 | 久久人人爽人人爽人人片av免费 | 男人天堂国产 | aaa大片免费观看 | 国产分类视频 | 91精品国产综合久久婷婷香蕉 | 亚洲一区二区三区在线播放 | 精品一区二区三区不卡 | 欧美日一区二区 | 成人依人| 手机日韩 |