超市管理系统完整+源代码_第1页
超市管理系统完整+源代码_第2页
超市管理系统完整+源代码_第3页
超市管理系统完整+源代码_第4页
超市管理系统完整+源代码_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

有一个小型超市,出售N(N>=10)种商品,设计并实现一个系统,完成下列2.计算并排序。计算每类商品的总价值(sum,单精度)及平均价(aver,单精度,输出一位小数),将每类商品按平均价从大到小的顺序排序打印出来。以上(含两种)商品库存量低于100的商品类别。息保存计算模块:将所有商品的价格与库存量进行累加求和;6)打印模块:将商品信息按每类平均价格排序(从高到低)按顺序打印出来;8)统计模块2:统计商品库存量有2种以上(含2种)低于100的商品类别。附录(程序清单)estdiohestdlibhestringheconioh/intn=0;/*定义文件指针类型*/inti,j,a[4],m;/*定义整数类型*/floataver[4],sum[4],g[4],h;/*定义浮点类型*/charc[5]="elec";/*定义字符数组类型*/foodcharf[5]="offi";good{intnum;charkind0];tpricecharunit0];intquantity;structgood*next;*/structgood*createlist()/*创建链表函数*/{structgood*head1,*p1,*p2;/*定义结构体指针类型*/if((fp=fopen("goodsmessage.txt","w"))==NULL)/*判断能否打开文件*/{printfcannotopenthefile");exit/*结束程序*/}head1=(structgood*)malloc(sizeof(structgood));/*申请头结点空间*/phead1;phead1;printf("*********************************************\n");printf入信息:编号,名称,类型,价格,单位,数目\n");printf("(以输入“-1”表示结束输入)\n");printf****************************\n");printf___________\n");anfdssfsdpnumpnamepkindppricepunitpquantity息*/printf___________\n");extNULLfprintffpdssfs%dpnumpnamepkindppricepunitpwhile(1){p=(structgood*)malloc(sizeof(structgood));/*申请新空间*/printf("*********************************************\n");printf入信息:编号,名称,类型,价格,单位,数目\n");printf("(以输入“-1”表示结束输入)\n");printf("*********************************************\n");printf("____________________\n");anfdpnumif(p1->num==-1)/*申请空间结束条件*/{printf("____________________\n\n");fprintf(fp,"%d",-1);osefpreturnhead/*返回头指针*/}scanfssfsdpnamepkind,&p1->price,p1->unit,&p1->quantity);printf("________________\n");fprintf(fp,"%d%s%s%f%s%d",p1->num,p1->name,p1->kind,p1->price,p1->unit,p1->quantity/p1->next=NULL;p2->next=p1;pp}}ctgoodpaixustructgoodhead{for(i=0;i<=3;i++){}p6=(structgood*)malloc(sizeof(structgood));p6->next=head2;headp;while(p6->next!=NULL){p7=p6->next;while(p7->next!=NULL){if((p7->next->price)>(r->next->price))rpp7=p7->next;}if(p6!=r){srnext/*指针调换*/rnext=s->next;extp6->next=s;}p6=p6->next;}phead2;head2=head2->next;freep/*释放第一个无效空间*/turnhead}voidjisuan(){phead;{if(strcmp(p1->kind,c)==0)/*判断是否为电器类型*/{sumsumppricep>quantity);/*求电器总价*/a[0]=a[0]+p1->quantity;/*求电器总件数*/}if(strcmp(p1->kind,d)==0)类型*/{sum[1]=sum[1]+(p1->price)*(p1->quantity);/*求日用品总价*/a[1]=a[1]+p1->quantity;/*求日用品总件数*/}if(strcmp(p1->kind,e)==0)品类型*/{sum[2]=sum[2]+(p1->price)*(p1->quantity);/*求办公用品总价*/a[2]=a[2]+p1->quantity;}if(strcmp(p1->kind,f)==0)/型*/{sum[3]=sum[3]+(p1->price)*(p1->quantity);/*求食品总价*/uantity}p1=p1->next;fori=0;i<4;i++)aver[i]=sum[i]/a[i];*/printf("****************************************************\n");printf商品类型\t平均价\t总库存量\n");printf("****************************************************\n");printf("____________________________________________________\n");printf("电器总价值:%0.1f\t平均价:%0.1f\t总库存量:%d\n",sum[0],aver[0],a[0]);printf("____________________________________________________\n");printfft价:%0.1f\t总库存量:%d\n",sum[1],aver[1],a[1]);printf____________________\n");printf("食品总价值:%0.1f\t平均价:%0.1f\t总库存量:%d\n",sum[2],aver[2],a[2]);printf("____________________________________________________\n");printf("办公用品总价值:%0.1f\t平均价:%0.1f\t总库存量:%d\n",sum[3],aver[3],a[3]);printf_________________________________________________\n");}voidshuchu(){{tructgoodpppintn=0,p=0,q=0,r=0;printf("编号,名称,类型,价格,单位,数目\n");printf("**********************************\n");if((fp=fopen("goodsmessage.txt","rb+"))==NULL)/*判断能否打开文件*/{printf("cannotopenthefile");exit/*结束程序*/}head=(structgood*)malloc(sizeof(structgood));/*申请头结点空间*/phead;fscanf(fp,"%d%s%s%f%s%d",&p3->num,p3->name,p3->kind,&p3->price,p3->unit,&p3->quantity);while(1){p(structgood*)malloc(sizeof(structgood));/*申请头结点空间*/fscanffpdp4->num);if(p4->num!=-1)/*判断循环结束条件*/{fscanf(fp,"%s%s%f%s%dpnamepkindppricepunitpquantity/*从文件中写到链表*/NULLxtppp}{pnextNULL;k}}fclosefp/*关闭文件*/phead;while(p3!=NULL){printf("%d%s%s%0.1f%s%d\n\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity);printf("__________________________________\n");p3=p3->next;}printf("**********************************\n");printf("//////////////////////////////////\n");while(n!=4){phead;printf("**********************************\n");printf添加商品信息\n");printf删除某商品信息\n");printf修改某商品信息\n");printf("4返回(当你完成了对某一商品的添加、删除或者修改后请按4返回)printf("**********************************\n");if(n==1)/*添加商品信息*/{printf"请输入商品编号名称类型价格单位数目\n");printf("**********************************\n");p4=(structgood*)malloc(sizeof(structgood));/*申请空间*/scanf("%d%s%s%f%s%d",&p4->num,p4->name,p4->kind,&p4->price,p4->unit,&pquantity;/*输入商品信息*/p4->next=NULL;while(p3->next!=NULL)/*判断循环结束条件*/{p3=p3->next;}p->next=p4;phead;断能否if((fp=fopen("goodsmessage.txt","w"))==NULL断能否{printf("cannotopenthefile");exit/*结束程序*/}while(p3!=NULL){fprintf(fp,"%d%s%s%f%s%d",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity)p3=p3->next;}printffpdfclosefp/*关闭文件*/printf("**********************************\n");printf("__________________________________\n");printf("------------请按4返回-------------\n");printf("__________________________________\n");printf("**********************************\n");}if(n==2)/*删除商品*/{printf("**********************************\n");printf"请输入需要删除的商品编号\n");printf("**********************************\n");printf("**********\n");printf确认删除\n2取消删除\n");printf("**********\n");ifr==1){if((head->num)==p){head=head->next;freep/*释放空间*/}{phead;p3=p4->next;while(p3!=NULL){if((p3->num)==p){/*判断循环结束条件*/p5=p3->next;freep/*释放空间*/pnext=p5;k}p3=p3->next;p4=p4->next;}}if((fp=fopen("goodsmessage.txt","w"))==NULL){printf("cannotopenthefile");exit/*结束程序*/}phead;while(p3!=NULL)/*判断循环结束条件*/{fprintffpdssfs%dpnumpnamepkindppricepunitpp3=p3->next;}fprintffpd1);}if(r==2)eprintf("**********************************\n");printf("__________________________________\n");printf("------------请按4返回-------------\n");printf("__________________________________\n");printf("**********************************\n");}if(n==3)/*修改某商品信息*/{printf"请输入需要修改的商品编号\n");while(p3!=NULL){if((p3->num)==q)需要修改的商品*/{printf("请输入商品单价与库存量(如果单价不变请输入原来的单价)\n");scanffdp->price,&p3->quantity);}p3=p3->next;}if((fp=fopen("goodsmessage.txt","w"))==NULL){printf("cannotopenthefile");exit/*结束程序*/能否}phead;while(p3!=NULL{fprintf(fp,"%d%s%s%f%s%d",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity文件*/p3=p3->next;}fprintffpd1);fclosefp/*关闭文件*/printf("**********************************\n");printf("__________________________________\n");printf("------------请按4返回-------------\n");printf("__________________________________\n");printf("**********************************\n");}if(n==4)/*退出*/k}printf("**********\n");printf修改\n---------\n2返回\n");printf("**********\n");if(p==1)if(p==2)break}voidprintf0(structgood*p)/*遍历链表并打印电器类商品函数*/{structgoodp/*定义结构体指针类型*/ppwhile(p3!=NULL)/*判断遍历链表循环结束条件*/{if(strcmp(p3->kind,c)==0)/*判断商品类型是否为电器类型*/{printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity);/*输出电器类商品信息*/printf("________________________________________________\n");}p3=p3->next;}}voidprintf1(structgood*p)/*遍历链表并打印日用品类商品函数*/{structgood*p3;/*定义结构体指针类型*/pwhile(p3!=NULL)/*判断遍历链表循环结束条件*/{if(strcmp(p3->kind,d)==0){型*/printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity);/*输出日用品类商品信息*/printf("________________________________________________\n");}p3=p3->next;}}voidprintf2(structgood*p)/*遍历链表并打印办公用品类商品函数*/{structgoodp3;ppwhile(p3!=NULL){型*/件*/if(strcmp(p3->kind,e)==0)/*判断商品类型是否为办公用品类型*/{printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity);/*输出办公用品类商品信息*/printf("________________________________________________\n");}p3=p3->next;}}voidprintf3(structgood*p)/*遍历链表并打印食品类商品函数*/{structgood*p3;/*定义结构体指针类型*/ppwhile(p3!=NULL)/*判断遍历链表循环结束条件*/{if(strcmp(p3->kind,f)==0)/*判断商品类型是否为食品类型*/{printfdts\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3-unitpquantity/*输出食品类商品信息*/printf("________________________________________________\n");}p3=p3->next;}}voidshunxudayin{ijii{if(g[j]<g[i])序*/{gj}}printfn**************************\n");printf("商品平均价格排序表(从高到低)\n");printf("****************************\n");printf("________________________________________________\n");printf"编号\t名称\t类别\t单价\t单位\t数量\n");printf("________________________________________________\n");forj=0;j<4;j++)iii{if(aver[i]==g[j])先后顺序*/{printfhead);/*调用遍历链表并打印电器类商品函数*/kprintf(head);/*调用遍历链表并打印日用品类商品函数*/kprintf(head);/*调用遍历链表并打印办公用品类商品函数*/kprintf(head);/*调用遍历链表并打印食品类商品函数*/k}}}voidtongji1(){phead;printf("\n************************\n");printf量低于100的货名及类别\n");printf("************************\n");printf("________________________\n");printf商品名称\t商品类型\n");printf("________________________\n");while(p1!=NULL)/*判断遍历链表循环结束条件*/{if(p1->quantity<100)否小于100*/{printf("%s\t%s\n",p1->name,p1->kind);/*输出商品名称及类别*/printf("________________________\n");}p1=p1->next;}}voidtongji2(){printfn********************************************\n");printf("商品库存量有2种以上(含2种)低于100的商品类别:\n");printf("*************

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论