首页 超市管理系统完整+源代码

超市管理系统完整+源代码

举报
开通vip

超市管理系统完整+源代码有一个小型超市,出售N(N>=10)种商品,设计并实现一个系统,完成下列功能:保存及输出。超市中的各种商品信息保存在指定文件中,可以把它们输出显示。计算并排序。计算每类商品的总价值(sum,单精度)及平均价(aver,单精度,输出一位小数),将每类商品按平均价从大到小的顺序排序打印出来。统计。统计输出库存量低于100的货号及类别。统讣输出有两种以上(含两种)商品库存量低于100的商品类别。1.2总体结构本程序主要分为八个模块:主模块、信息输出修改模块、新建信息模块、排序模块、计算模块、统计模块1、统计模块2、打印模...

超市管理系统完整+源代码
有一个小型超市,出售N(N>=10)种商品, 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 并实现一个系统,完成下列功能:保存及输出。超市中的各种商品信息保存在指定文件中,可以把它们输出显示。计算并排序。计算每类商品的总价值(sum,单精度)及平均价(aver,单精度,输出一位小数),将每类商品按平均价从大到小的顺序排序打印出来。统计。统计输出库存量低于100的货号及类别。统讣输出有两种以上(含两种)商品库存量低于100的商品类别。1.2总体结构本程序主要分为八个模块:主模块、信息输出修改模块、新建信息模块、排序模块、计算模块、统计模块1、统计模块2、打印模块。1)主模块:通过调用各分模块实现功能;2)信息输出修改模块:输出显示文件中商品信息内容,添加商品信息,删除商品信息,修改商品信息;3)新建商品信息模块:建立一个新结构体,为链 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 存信息用,并且将信息保存在指定的文件中;4)排序模块:把文件中顺序零乱的商品信息按单价的大小从高到低进行排序,放到链表里存储;5)计算模块:将所有商品的价格与库存量进行累加求和;6)打印模块:将商品信息按每类平均价格排序(从高到低)按顺序打印出来;7)统计模块统计库存量低于100的货名及类别;8)统计模块2:统计商品库存量有2种以上(含2种)低于100的商品类别。附录(程序清单)#include"stdio.h"广输入,输出头文件*7include"stdlib.h"/*申请空间头文件-7#include"string.h"严对字符串加工头文件-7#inelude"conio.h11厂清屏头文件-7FILE*fp;intn=0;厂定义文件指针类型*/intija[4],m;厂定义整数类型-7flo8taver[4],sum[4],g[4],h;厂定义浮点类型*7charc[5]=,,elec,1;广定义字符数组类型*/chard[5]=,,comm";广定义字符数组类型*/chare[5]="food";厂定义字符数组类型charf[5]="offi";广定义字符数组类型*/structgood(厂定义结构体{intnum;厂商品编号*/charname[20];厂商品名称-7charkind[40];/*商品类型*/floatprice;厂商品价格charunit[10];厂商品单位*/intquantity;/*商品数量-7structgood*next;}*head,*pl/p2;广定义结构体指针类型*/structgood*createlist()厂创建链表函数沐/structgood*headl,*pl,*p2;/*定义结构体指针类型*7if((fp=fopen("goodsmessage.txt"/"w"))==NULL)/*判断能否打开文件{printf("cannotopenthefile11);exit(O);/*结束程序*/}headl=(structgood*)malloc(sizeof(structgood));/*申请头结点空间*/pl=headl;p2=headl;prin^f^u*******************************************♦*\printfC1请输入信息:编号,名称,类型,价格,单位,数U\n");printf(u(以输入“一1〃表示结束输入)\卍);printf(u*******************************************♦*\\nn);printfC11scanf(H%d%s%s%f%s%d,,/&pl->num,pl->name,pl->kind,&pl->price,pl->unit,&pl->quantity);/*输入商品信息*/printf("\n");pl->next=NULL;fprintf(fp/'%d%s%s%f%s%d舄>name/pl->kind,pl->price/pl->unit,pl->quantity);/*将商品信息写入文件沐/while(l)厂申请新空间舟/pl=(structgood*)malloc(sizeof(structgood));pHntf("**He******************************************\nH)'printff'请输入信息:编号,名称,类型,价格,单位,数目\卍);printf(H(以输入〃一1〃表示结束输入)\屮);pHnii*♦♦*♦♦♦♦♦♦♦♦*******♦*♦****♦♦♦♦♦♦♦♦*♦♦♦♦*****j.printf(H\n");scanf("%d"z&pl->num);if(pl->num==-l)/*申请空间结束条件*/{printf("\n\n");fprintf(fp,”%d,l);fclose(fp);returnheadl;/*返回头指针*/}scanf("%s%s%f%s%d",pl->name,pl->kind,&pl->price/pl->unit,&pl->quantity);/*输入商品信息*/printf("\n");fprintf(fp,"%d%s%s%f%s%dpl->num,pl->name,pl->kind/pl->price/pl->unit/pl->quantity);/*习备商品信息写入文件*/pl->next=NULL;p2->next=pl;P2=pl;}}structgood*paixu(structgood*head2)/*链表排序函数*/{structgood*p6/p7,*r,*s;/*定义结构体指针类型*/for(i=0;i<=3;i++)/*赋初值值{a[i]=0;sum[i]=0;aver[i]=0;}p6=(structgood*)malloc⑸zeof(structgood));厂申请新空间*/p6・>next=head2;head2=p6;while(p6->next!=NULL)/*判断循环结束条件*/{p7=p6->next;r=p6;while(p7->next!=NULL)/*判断循环结束条件*/{if((p7->next->price)>(r->next->price))/*判断是否调换r=p7;p7=p7->next;}if(p6!=r)广判断循环结束条件*7{s=r->next;/*指针调换r->next=s->next;s・>next=p6->next;p6・>next=s;}p6=p6->next;}p6=head2;head2=head2->next;free(p6);/*释放第一个无效空间*/returnhead2;voidjisuanf){pl=head;doif(strcmp(pl->kind’c)==0)厂判断是否为电器类型床/sum[O]=sum[O]+(pl->price)*(pl->quantity);广求电器总价*7a[O]=a[O]+pl->quantity;厂求电器总件数床//if(strcmp(pl->kind,d)==O)厂判断是否为日用品类型*/sum[l]=sum[l]+(pl->price)*(pl->quantity);广求日用品总价*/a[l]=a[l]+pl->quantity;1厂求日用品总件数穴//if(strcmp(pl->kindze)==0)严判断是否为办公用品类型*/sum[2]=sum[2]+(pl->price)*(pl->quantity);广求办公用品总价末/a[2]=a[2]+pl->quantity;厂求办公用品总件数*/}if(strcmp(pl->kind,f)==O)/*判断是否为食品类型*/sum[3]=sum[3]+(pl->price)*(pl->quantity);广求食品总价床/a[3]=a[3]+pl->quantity;1厂求食品总件数床/pl=pl->next;}while(pl!=NULL);厂遍历链表结束条件*/for(i=0;i<4;i++)厂求每类商品平均价床/aver[i]=sum[i]/a[i];ppj门^i^***************♦♦♦**♦♦♦♦♦♦♦♦♦♦♦***********♦♦♦♦♦♦♦♦*♦printfC商品类型\t平均价\t总库存量\卍);printf(u****************************************************printf(11\nH);printf(”电器总价值:%0.1f\t平均价:%0.1f\t总库存量:%d\n:sum[0baver[0ba[0]);printf(11\nH);printf("B用品总价ffl:%0.1f\t平均价:%0.1f\t总库存量:%d\rV:sum[lJ,aver[lba[l]);printf(H\nH);printfC喰品总价值:%0.1f\t平均价:%0.1f\t总库存量:%d\n,,/sum[2],aver[2]/a[2]);printf(n\nH);printf(”办公用品总价值:%0.1f\t平均价:%0.1f\t总库存量:%d\rV:sum[3Laver[3],a[3]);厂输出商品信息函数床/printf(H\nH);voidshuchu(){dostructgood*p3/*p4,*p5;厂定义结构体指针类型床/intn=O,p=O,q=O,r=O;printf(”所有商品信息:\n");printf(“编号,名称,类型,价格,单位,数目\卍);prjniiHe*********************************if((fp=fopen(Hgoodsmessage.txt,,/llrb+l,))==NULL)厂判断能否打开文件沐/printf(Hcannotopenthefile11);exit(O);厂结束程序*7}head=(structgood*)malloc(sizeof(structgood));/*申请头结点空间*/p3=head;fscanf(fp,"%d%s%s%f%s%d蔦&p3->num,p3->name,p3->kind,&p3->price,p3->unit,&p3->quantity);/*从文件中写到链表*/while(l){p4=(structgood*)malloc(sizeof(structgood));/曲申请头结点空间*7fscanfffp/^d",&p4->num);if(p4->num!=-l)/*判断循环结束条件-/{fscanf(fp;'%s%s%f%s%d,I,p4->name,p4->kind,&p4->price,p4->unit/&p4->quantity);/*从文件中写到链表*/p4->next=NULL;p3->next=p4;p3二p4;}else{p3->next=NULL;break;}}fclose(fp);/*关闭文件*/p3=head;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(M\nH);p3=p3->next;printf(printfj///////////////////////////////〃八卍);while(n!=4)p3=head;printf(printff'l添加商品信息W);printf("2删除某商品信息\n“);printf("3修改某商品信息\n");printf(”4返回(当你完成了对某一商品的添加、删除或者修改后请按4返回)\n“);printf(11穴末床穴床穴床床床床审屮沐沐沐沐沐沐**Jit*************\pnJ-scanf「%cT,&n);if(n==l)广添加商品信息水/printfC1请输入商品编号名称类型价格单位数UXn11);printffH沐沐HeHe审*璟*璟*末穴*床穴*末*床****HeH(沐沐H(*璟*璟**\口U)・p4=(structgood*)malloc(sizeof(structgood));广申请空间*/scanf(H%d%s%s%f%s%d,,/&p4->num,p4->name,p4->kind,&p4->price,p4->unit,&p4->quantity);厂输入商品信息穴/p4->next=NULL;while(p3->next!=NULL)厂判断循环结束条件庐/p3=p3->next;}p3->next=p4;p3=head;if((fp=fopen("goodsmessage.txt,,,,,w,,))==NULL)能否打开文件*/{printf(Hcannotopenthefile");exit(O);厂结束程序*/}while(p3!=NULL){fprintf(fpz"%d%s%s%f%s%d,,zp3->num,p3->name/p3->kind,p3->price/p3->unit,p3->quantity)厂将商品信息写入文件*/厂判断p3=p3->next;}fpnntf(fp,,,%d,,,-l);fclose(fp);厂关闭文件承/printffHHeHeHe*璟璟**床床穴穴床末末He*****HeHeHeHe***璟*j#c\口U)・printf(H\nH);printf(n请按4返回\nn);printf(H\nH);printffHHeHeHeHe*璟璟**床床穴穴床末末He*****HeHeHeHe***璟*j#c、口U)・}讦(n=2)厂删除商品,/printffHHeHeHeHe*璟璟**床床穴穴床末末He*****HeHeHeHe***璟*j#c、口U)・prints请输入需要删除的商品编号\岸);printffHHeHeHeHe*璟璟**床床穴穴床末末He*****HeHeHe沐***璟*床\口U)・scanfC^d^&p);\nH);printffprintfC1!确认删除\n2取消删除\岸);\nH);printffscanfC^d^&r);if(r==l){if((head->num)==p){head=head->next;free(p3);/*释放空间*/}else{p4=head;p3=p4->next;while(p3!=NULL)/*判断循环结束条件*/{讦((p3->num)==p){p5=p3->next;free(p3);严释放空间p4->next=p5;break;}p3=p3->next;p4=p4->next;if((fp=fopen("goodsmessage.txt","w"))==NULL)开文件-7{printff'cannotopenthefile");exit(O);/*结束程序*7}p3=head;while(p3!=NULL)厂判断循环结束条件*7{fprintf(fp,“%d%s%s%f%s%d,,,p3->num,p3->name,p3->kind,p3->price/p3->unit,p3->quantity);将商品信息写入文件沐/厂判断能否打p3=p3->next;}fprintf(fp』%d,l);fclose(fp);/*关闭文件*/}if(r==2)continue;广继续循环穴/printffHHeHeHe*璟璟**床床穴穴床末末He*****He沐HeHe***璟*床\口U)・printf(H\nH);printf(n请按4返回\nn);printf(H\nH);printffHHeHeHeHe*璟璟**床床穴穴床末末He*****HeHeHeHe***璟*j#c、口U)・讦(n==3)厂修改某商品信息printf(”请输入需要修改的商品编号\n“);scanf「%d笃&q);while(p3!=NULL)厂判断循环结束条件療/if((p3->num)==q)严判断是否为所需要修改的商品庐/printfC1请输入商品单价与库存量(如果单价不变请输入原来的单价)\nM);scanf(n%f%d,,,&p3->price,&p3->quantity);厂输入商品价格与库存量沐/p3=p3->next;if((fp=fopen("goodsmessage.txtI,,,Iw,,))==NULL)能否打开文件療/广判断printf(Hcannotopenthefile11);exit(O);/*结束程序*7}p3=head;while(p3!=NULL)厂判断循环结束条件*7{fprintf(fpz"%d%s%s%f%s%d蔦p3・>num,p3・>name/p3->kind,p3->price,p3->unit,p3・>quantity);厂将商品信息写入文件*/p3=p3->next;}fclose(fp);厂关闭文件車/printffIIHe沐He*He******穴**床溶*******He沐沐*冑****末\介U)・printf(H\nH);printf(N请按4返回\nn);printf(H\nH);printffll)|c)|c)|c)|()|cH(*4c*4c4c)K)«c)|c*)|c)K4c4c4()|c4c4()i()K)|c)|c)|c4(4(4c*4c*^门口)・}if(n==4)break;printf(\nH);printf(Hl继续修改\n\n2返回W);printf(\n");scanf(“%cf,&p);if(p==l)continue;/*继续循环*/if(p==2)break;/*跳出循环*/}while(n!=2);fclose(fp);/*关闭文件*/voidprintfO(structgood*p)/*遍历链表并打印电器类商品函数*/{structgood*p3;/*定义结构体指针类型*/P3=P;while(p3!=NULL)/*判断遍历链表循环结束条件*7{if(strcmp(p3->kindzc)==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(M\nn);}p3=p3->next;}return;}voidprintfl(structgood*p)/*遍历链表并打印日用品类商品函数{structgood*p3;/*定义结构体指针类型P3=P;while(p3!=NULL)/*判断遍历链表循环结束条件*7{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;}return;}voidprintf2(structgood*p)/*遍历链表并打印办公用品类商品函数*/{structgood*p3;/*定义结构体指针类型*7p3=p;while(p3!=NULL)/*判断遍历链表循环结束条件*7if(strcmp(p3->kind,e)==0)厂判断商品类型是否为办公用品类型*7{printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kindzp3->price,p3->unit,p3->quantity);/*输出办公用品类商品信息*/printf("\n");}p3=p3->next;}return;}voidprintf3(structgood*p)/*遍历链表并打印食品类商品函数*/{structgood*p3;/*定义结构体指针类型*7P3=P;while(p3!=NULL)/*判断遍历链表循环结束条件*/{if(strcmp(p3->kind,f)==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;}return;voidshunxudayin(){for(i=0;i<4;i++)g[i]=aver[i];/*将平均价赋给新数组*/for(j=0;j<3;j++)/*将新数组用冒泡排序法排序*7for(i=j+l;i<4;i++){if(g[j]quantity<100)厂判断库存量是否小于100*/printf("%s\t%s\n舄pl->name,pl・>kind);严输出商品名称及类别沐/pnntf(u\nH);}pl=pl->next;}}voidtongji2()printf(H\nprintf(n商品库存量有2种以上(含2种)低于100的商品类别:\卍);prin^f^u******************************************printf("\n");if((a[0]<100)&&(a[0]>=2))库存量是否为2种以上(含2种)低于100*/{printf("电器\n“);printf("\n");}if((a[l]<100)&&(a[l]>=2))类库存量是否为2种以上(含2种)低于100*/{printf("0用品\n”);printf("\n");}if((a[2]<100)&&(a[2]>=2))类库存量是否为2种以上(含2种)低于100*/{printfC喰品\n“);printf("\n");}厂判断电器类/*判断日用品厂判断食品厂判断办公用if((a[3]<100)&&何3]>=2))品类库存量是否为2种以上(含2种)低于100*/{printf(”办公用品\卍);printf("\n");}}厂定义结构体指针类型床/intmain(intargc,char*argv[]){structgood*pl,*p2;while(l)pHnH♦♦*♦♦♦♦♦♦♦♦♦♦*******♦*♦♦**♦♦♦♦♦♦*♦♦♦♦♦♦******♦printffl输出查看或者修改已存信息Xn11);printff'\nH);printf(n2重新输入新信息(并且删除原有信息厂…-\nn);printff'\nH);printfC*3统计商品信息(如果您还没有查看过信息请先按1)\n");printff'\nH);printf(H4退出\nH);pHntf(H******He***************************门")・if(m==l)shuchu();厂调用输出信息函数床/讦(m==2)厂调用建立链表函数未/systemC'cls11);head=createlist();}讦(m==3){printf("统计结果如下\n“);head=paixu(head);厂调用链表排序函数jisuan();厂调用计算函数*/shunxudayin();厂调用顺序打印函数*/tongjilf);广调用统计1函数*/tongji2();广调用统计・2函数*/if(m==4){pl=head;while(pl!=NULL)厂判断遍历链表结束条件穴/p2=pl・>next;free(pl);/*释放空间*7P1=P2;}break;}}return0;/*结束程序-7}而对强大的对手,明知不敌,也要毅然亮剑,即使倒下,也要化成一座山
本文档为【超市管理系统完整+源代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥15.0 已有0 人下载
最新资料
资料动态
专题动态
is_113440
暂无简介~
格式:doc
大小:44KB
软件:Word
页数:0
分类:
上传时间:2018-11-18
浏览量:8