版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
有一个小型超市,出售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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基于人工智能的2024年度窗帘颜色搭配咨询合同
- 管桩合同范本
- 2024年度服装企业社会责任实施合同3篇
- 综合出口信用证抵押外汇借款04年合同
- 退休人员返聘合同协议书范本 2篇
- 有关代理商合同范本
- 2024年度商场促销活动LED广告合同3篇
- 人教版九年级化学第八单元2金属的化学性质课时2金属活动性顺序分层作业课件
- 人教版九年级化学第一单元走进化学世界3走进化学实验室课时1化学实验常用仪器及药品的取用教学教学课件
- 人教版九年级化学第四单元自然界的水实践活动水质检测及自制净水器教学课件
- 工贸企业有限空间作业安全考核试卷
- 编程学徒合同协议书(2篇)
- 2024年摄影拍摄场地租赁合同
- 学校购买乐器合同范例
- 2024年地铁司机工作协议
- 2024-2025学年人教版数学六年级上册 第五单元圆单元测试(含答案)
- 2024年资格考试-WSET二级认证考试近5年真题附答案
- 大药房《质量管理体系文件》-管理制度
- 2024至2030年中国空气主轴(气浮主轴)行业深度分析及发展趋势研究预测报告
- 食品风味研究专题智慧树知到期末考试答案章节答案2024年中国农业大学
- 碳汇经济与美丽中国智慧树知到期末考试答案章节答案2024年东北林业大学
评论
0/150
提交评论