经典VB超市管理系统源代码

合集下载

超市管理系统完整源代码

超市管理系统完整源代码

有一个小型超市,出售NN>=10种商品,设计并实现一个系统,完成下列功能:1.保存及输出;超市中的各种商品信息保存在指定文件中,可以把它们输出显示; 2.计算并排序;计算每类商品的总价值sum,单精度及平均价aver,单精度,输出一位小数,将每类商品按平均价从大到小的顺序排序打印出来;3.统计;统计输出库存量低于100的货号及类别;统计输出有两种以上含两种商品库存量低于100的商品类别;总体结构本程序主要分为八个模块:主模块、信息输出修改模块、新建信息模块、排序模块、计算模块、统计模块1、统计模块2、打印模块;1 主模块:通过调用各分模块实现功能;2 信息输出修改模块:输出显示文件中商品信息内容,添加商品信息,删除商品信息,修改商品信息;3 新建商品信息模块:建立一个新结构体,为链表存信息用,并且将信息保存在指定的文件中;4 排序模块:把文件中顺序零乱的商品信息按单价的大小从高到低进行排序,放到链表里存储;5 计算模块:将所有商品的价格与库存量进行累加求和;6 打印模块:将商品信息按每类平均价格排序从高到低按顺序打印出来;7 统计模块1:统计库存量低于100的货名及类别;8 统计模块2:统计商品库存量有2种以上含2种低于100的商品类别;附录程序清单include "" /输入,输出头文件/include "" /申请空间头文件/include "" /对字符串加工头文件/include "" /清屏头文件/FILE fp;int n=0; /定义文件指针类型/int i,j,a4,m; /定义整数类型/float aver4,sum4,g4,h; /定义浮点类型/char c5="elec"; /定义字符数组类型/char d5="comm"; /定义字符数组类型/char e5="food"; /定义字符数组类型/char f5="offi"; /定义字符数组类型/struct good /定义结构体/{int num; /商品编号/char name20; /商品名称/char kind40; /商品类型/float price; /商品价格/char unit10; /商品单位/int quantity; /商品数量/struct good next; /定义结构体指针类型/}head,p1,p2;struct good createlist /创建链表函数/{struct good head1,p1,p2; /定义结构体指针类型/iffp=fopen"goods ","w"==NULL /判断能否打开文件/{printf"can not open the file";exit0; /结束程序/}head1=struct good mallocsizeofstruct good; /申请头结点空间/ p1=head1;p2=head1;printf"\n";printf"请输入信息:编号,名称,类型,价格,单位,数目\n";printf" 以输入“-1”表示结束输入\n";printf"\n";printf"____________________\n";scanf"%d %s %s %f %s %d",&p1->num,p1->name,p1->kind,&p1->price,p1->unit ,&p1->quantity; /输入商品信息/printf"____________________\n";p1->next=NULL;fprintffp,"%d %s %s %f %s %d",p1->num,p1->name,p1->kind,p1->price,p1->unit,p1->quantity; /将商品信息写入文件/while1{p1=struct good mallocsizeofstruct good; /申请新空间/printf"\n";printf"请输入信息:编号,名称,类型,价格,单位,数目\n";printf" 以输入“-1”表示结束输入\n";printf"\n";printf"____________________\n";scanf"%d",&p1->num;ifp1->num==-1 /申请空间结束条件/{printf"____________________\n\n";fprintffp,"%d",-1;fclosefp;return head1; /返回头指针/}scanf"%s %s %f %s %d",p1->name,p1->kind,&p1->price,p1->unit,&p1->quantity; /输入商品信息/printf"________________\n";fprintffp,"%d %s %s %f %s %d",p1->num,p1->name,p1->kind,p1->price,p1->unit,p1->quantity; /将商品信息写入文件/p1->next=NULL;p2->next=p1;p2=p1;}}struct good paixustruct goodhead2 /链表排序函数/{struct good p6,p7,r,s; /定义结构体指针类型/fori=0;i<=3;i++ /赋初值值/{ai=0;sumi=0;averi=0;}p6=struct good mallocsizeofstruct good; /申请新空间/ p6->next=head2;head2=p6;whilep6->next=NULL /判断循环结束条件/{p7=p6->next;r=p6;whilep7->next=NULL /判断循环结束条件/{ifp7->next->price>r->next->price /判断是否调换/ r=p7;p7=p7->next;}ifp6=r /判断循环结束条件/{s=r->next; /指针调换/r->next=s->next;s->next=p6->next;p6->next=s;}p6=p6->next;}p6=head2;head2=head2->next;freep6; /释放第一个无效空间/return head2;}void jisuan{p1=head;do{ifstrcmpp1->kind,c==0 /判断是否为电器类型/ {sum0=sum0+p1->pricep1->quantity; /求电器总价/a0=a0+p1->quantity; /求电器总件数/}ifstrcmpp1->kind,d==0 /判断是否为日用品类型/{sum1=sum1+p1->pricep1->quantity; /求日用品总价/a1=a1+p1->quantity; /求日用品总件数/}ifstrcmpp1->kind,e==0 /判断是否为办公用品类型/{sum2=sum2+p1->pricep1->quantity; /求办公用品总价/a2=a2+p1->quantity; /求办公用品总件数/}ifstrcmpp1->kind,f==0 /判断是否为食品类型/{sum3=sum3+p1->pricep1->quantity; /求食品总价/a3=a3+p1->quantity; /求食品总件数/}p1=p1->next;}while p1=NULL; /遍历链表结束条件/fori=0;i<4;i++averi=sumi/ai; /求每类商品平均价/printf"\n";printf"商品类型 \t 平均价\t 总库存量\n";printf"\n";printf"____________________________________________________\n"; printf"电器总价值:%\t平均价:%\t总库存量:%d\n",sum0,aver0,a0;printf"____________________________________________________\n"; printf"日用品总价值:%\t平均价:%\t总库存量:%d\n",sum1,aver1,a1; printf"____________________________________________________\n"; printf"食品总价值:%\t平均价:%\t总库存量:%d\n",sum2,aver2,a2;printf"____________________________________________________\n"; printf"办公用品总价值:%\t平均价:%\t总库存量:%d\n",sum3,aver3,a3; printf"____________________________________________________\n"; }void shuchu /输出商品信息函数/{do{struct good p3,p4,p5; /定义结构体指针类型/int n=0,p=0,q=0,r=0;printf"所有商品信息:\n";printf"编号,名称,类型,价格,单位,数目\n";printf"\n";iffp=fopen"goods ","rb+"==NULL /判断能否打开文件/{printf"can not open the file";exit0; /结束程序/}head=struct good mallocsizeofstruct good; /申请头结点空间/p3=head;fscanffp,"%d %s %s %f %s %d",&p3->num,p3->name,p3->kind,&p3->price,p3->unit,&p3->quantity; /从文件中写到链表/while1{p4=struct good mallocsizeofstruct good; /申请头结点空间/fscanffp,"%d ",&p4->num;ifp4->num=-1 /判断循环结束条件/{fscanffp,"%s %s %f %s %d",p4->name,p4->kind,&p4->price,p4->unit,&p4->quantity; /从文件中写到链表/p4->next=NULL;p3->next=p4;p3=p4;}else{p3->next=NULL;break;}}fclosefp; /关闭文件/p3=head;whilep3=NULL{printf" %d %s %s % %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";whilen=4{p3=head;printf"\n";printf"1 添加商品信息\n";printf"2 删除某商品信息\n";printf"3 修改某商品信息\n";printf"4 返回当你完成了对某一商品的添加、删除或者修改后请按4返回\n"; printf"\n";scanf"%d",&n;ifn==1 /添加商品信息/{printf"请输入商品编号名称类型价格单位数目\n";printf"\n";p4=struct good mallocsizeofstruct good; /申请空间/scanf"%d %s %s %f %s %d",&p4->num,p4->name,p4->kind,&p4->price,p4->unit ,&p4->quantity; /输入商品信息/p4->next=NULL;whilep3->next=NULL /判断循环结束条件/{p3=p3->next;}p3->next=p4;p3=head;iffp=fopen"goods ","w"==NULL /判断能否打开文件/{printf"can not open the file";exit0; /结束程序/}whilep3=NULL{fprintffp,"%d %s %s %f %s %d",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity /将商品信息写入文件/p3=p3->next;}fprintffp,"%d",-1;fclosefp; /关闭文件/printf"\n";printf"__________________________________\n";printf"------------请按4返回-------------\n";printf"__________________________________\n";printf"\n";}ifn==2 /删除商品/{printf"\n";printf"请输入需要删除的商品编号\n";printf"\n";scanf"%d",&p;printf"\n";printf"1 确认删除\n2 取消删除\n";printf"\n";scanf"%d",&r;ifr==1{ifhead->num==p{head=head->next;freep3; /释放空间/}else{p4=head;p3=p4->next;whilep3=NULL /判断循环结束条件/ {ifp3->num==p{p5=p3->next;freep3; /释放空间/p4->next=p5;break;}p3=p3->next;p4=p4->next;}}iffp=fopen"goods ","w"==NULL /判断能否打开文件/ {printf"can not open the file";exit0; /结束程序/}p3=head;whilep3=NULL /判断循环结束条件/{fprintffp,"%d %s %s %f %s %d",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity; /将商品信息写入文件/p3=p3->next;}fprintffp,"%d",-1;fclosefp; /关闭文件/}ifr==2continue; /继续循环/printf"\n";printf"__________________________________\n";printf"------------请按4返回-------------\n";printf"__________________________________\n";printf"\n";}ifn==3 /修改某商品信息/{printf"请输入需要修改的商品编号\n";scanf"%d",&q;whilep3=NULL /判断循环结束条件/{ifp3->num==q /判断是否为所需要修改的商品/{printf"请输入商品单价与库存量如果单价不变请输入原来的单价\n";scanf"%f %d",&p3->price,&p3->quantity; /输入商品价格与库存量/}p3=p3->next;}iffp=fopen"goods ","w"==NULL /判断能否打开文件/{printf"can not open the file";exit0; /结束程序/}p3=head;whilep3=NULL /判断循环结束条件/{fprintffp,"%d %s %s %f %s %d",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity; /将商品信息写入文件/p3=p3->next;}fprintffp,"%d",-1;fclosefp; /关闭文件/printf"\n";printf"__________________________________\n";printf"------------请按4返回-------------\n";printf"__________________________________\n";printf"\n";}ifn==4 /退出/break;}printf"\n";printf"1 继续修改\n---------\n2 返回\n";printf"\n";scanf"%d",&p;ifp==1continue; /继续循环/ifp==2break; /跳出循环/}whilen=2;fclosefp; /关闭文件/}void printf0struct good p /遍历链表并打印电器类商品函数/{struct good p3; /定义结构体指针类型/p3=p;while p3=NULL /判断遍历链表循环结束条件/{ifstrcmpp3->kind,c==0 /判断商品类型是否为电器类型/{printf"%d\t%s\t%s\t%\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity; /输出电器类商品信息/printf"________________________________________________\n";}p3=p3->next;}return;}void printf1struct good p /遍历链表并打印日用品类商品函数/{struct good p3; /定义结构体指针类型/p3=p;while p3=NULL /判断遍历链表循环结束条件/{ifstrcmpp3->kind,d==0 /判断商品类型是否为日用品类型/{printf"%d\t%s\t%s\t%\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity; /输出日用品类商品信息/printf"________________________________________________\n";}p3=p3->next;}return;}void printf2struct good p /遍历链表并打印办公用品类商品函数/{struct good p3; /定义结构体指针类型/p3=p;while p3=NULL /判断遍历链表循环结束条件/{ifstrcmpp3->kind,e==0 /判断商品类型是否为办公用品类型/{printf"%d\t%s\t%s\t%\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity; /输出办公用品类商品信息/printf"________________________________________________\n";}p3=p3->next;}return;}void printf3struct good p /遍历链表并打印食品类商品函数/{struct good p3; /定义结构体指针类型/p3=p;while p3=NULL /判断遍历链表循环结束条件/{ifstrcmpp3->kind,f==0 /判断商品类型是否为食品类型/{printf"%d\t%s\t%s\t%\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity; /输出食品类商品信息/printf"________________________________________________\n";}p3=p3->next;}return;}void shunxudayin{fori=0;i<4;i++gi=averi; /将平均价赋给新数组/forj=0;j<3;j++ /将新数组用冒泡排序法排序/fori=j+1;i<4;i++{ifgj<gi{h=gj;gj=gi;gi=h;}}printf"\n\n";printf"商品平均价格排序表从高到低\n";printf"\n";printf"________________________________________________\n";printf"编号\t名称\t类别\t单价\t单位\t数量\n";printf"________________________________________________\n"; forj=0;j<4;j++fori=0;i<4;i++{if averi==gj /判断每类商品平均价格的先后顺序/switchi{case 0:printf0head; /调用遍历链表并打印电器类商品函数/break;case 1:printf1head; /调用遍历链表并打印日用品类商品函数/break;case 2:printf2head;/调用遍历链表并打印办公用品类商品函数/break;case 3:printf3head; /调用遍历链表并打印食品类商品函数/ break;}}}void tongji1{p1=head;printf"\n\n";printf"库存量低于100的货名及类别\n";printf"\n";printf"________________________\n";printf"商品名称\t商品类型\n";printf"________________________\n";whilep1=NULL /判断遍历链表循环结束条件/{ifp1->quantity<100 /判断库存量是否小于100/{printf"%s\t%s\n",p1->name,p1->kind; /输出商品名称及类别/printf"________________________\n";}p1=p1->next;}}void tongji2{printf"\n\n";printf"商品库存量有2种以上含2种低于100的商品类别:\n";printf"\n";printf"________\n";ifa0<100&&a0>=2 /判断电器类库存量是否为2种以上含2种低于100/{printf"电器\n";printf"________\n";}ifa1<100&&a1>=2 /判断日用品类库存量是否为2种以上含2种低于100/{printf"日用品\n";printf"________\n";}ifa2<100&&a2>=2 /判断食品类库存量是否为2种以上含2种低于100/{printf"食品\n";printf"________\n";}ifa3<100&&a3>=2 /判断办公用品类库存量是否为2种以上含2种低于100/{printf"办公用品\n";printf"________\n";}}int mainint argc, char argv{struct good p1,p2; /定义结构体指针类型/while1{printf"\n";printf"1 ----------输出查看或者修改已存信息-----------\n"; printf"-----------------------------------------------\n"; printf"2 -----重新输入新信息并且删除原有信息------\n";printf"-----------------------------------------------\n"; printf"3 统计商品信息如果您还没有查看过信息请先按1\n";printf"-----------------------------------------------\n"; printf"4 -------------------退出---------------------\n"; printf"\n";scanf"%d",&m;ifm==1shuchu; /调用输出信息函数/ifm==2{system"cls";head=createlist; /调用建立链表函数/}ifm==3{printf"统计结果如下\n";head=paixuhead; /调用链表排序函数/ jisuan; /调用计算函数/shunxudayin; /调用顺序打印函数/tongji1; /调用统计1函数/tongji2; /调用统计2函数/}ifm==4{p1=head;whilep1=NULL /判断遍历链表结束条件/{p2=p1->next;freep1; /释放空间/ p1=p2;}break;}}return 0; /结束程序/ }。

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

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

有一个小型超市,出售N(N>=10)种商品,设计并实现一个系统,完成下列功能:1.保存及输出。

超市中的各种商品信息保存在指定文件中,可以把它们输出显示。

2.计算并排序。

计算每类商品的总价值(sum,单精度)及平均价(aver,单精度,输出一位小数),将每类商品按平均价从大到小的顺序排序打印出来。

3.统计。

统计输出库存量低于100的货号及类别。

统计输出有两种以上(含两种)商品库存量低于100的商品类别。

1.2总体结构本程序主要分为八个模块:主模块、信息输出修改模块、新建信息模块、排序模块、计算模块、统计模块1、统计模块2、打印模块。

1)主模块:通过调用各分模块实现功能;2)信息输出修改模块:输出显示文件中商品信息内容,添加商品信息,删除商品信息,修改商品信息;3)新建商品信息模块:建立一个新结构体,为链表存信息用,并且将信息保存在指定的文件中;4)排序模块:把文件中顺序零乱的商品信息按单价的大小从高到低进行排序,放到链表里存储;5)计算模块:将所有商品的价格与库存量进行累加求和;6)打印模块:将商品信息按每类平均价格排序(从高到低)按顺序打印出来;7)统计模块1:统计库存量低于100的货名及类别;8)统计模块2:统计商品库存量有2种以上(含2种)低于100的商品类别。

附录(程序清单)#include "stdio.h" /*输入,输出头文件*/#include "stdlib.h" /*申请空间头文件*/#include "string.h" /*对字符串加工头文件*/#include "conio.h" /*清屏头文件*/FILE *fp;int n=0; /*定义文件指针类型*/int i,j,a[4],m; /*定义整数类型*/float aver[4],sum[4],g[4],h; /*定义浮点类型*/char c[5]="elec"; /*定义字符数组类型*/char d[5]="comm"; /*定义字符数组类型*/char e[5]="food"; /*定义字符数组类型*/char f[5]="offi"; /*定义字符数组类型*/struct good /*定义结构体*/{int num; /*商品编号*/char name[20]; /*商品名称*/char kind[40]; /*商品类型*/float price; /*商品价格*/char unit[10]; /*商品单位*/int quantity; /*商品数量*/struct good *next; /*定义结构体指针类型*/}*head,*p1,*p2;struct good *createlist() /*创建链表函数*/ {struct good *head1,*p1,*p2; /*定义结构体指针类型*/if((fp=fopen("goods message.txt","w"))==NULL) /*判断能否打开文件*/ {printf("can not open the file");exit(0); /*结束程序*/}head1=(struct good *)malloc(sizeof(struct good)); /*申请头结点空间*/ p1=head1;p2=head1;printf("*********************************************\n");printf("请输入信息:编号,名称,类型,价格,单位,数目\n");printf(" (以输入“-1”表示结束输入)\n");printf("*********************************************\n");printf("____________________\n");scanf("%d %s %s %f %s %d",&p1->num,p1->name,p1->kind,&p1->price,p1-> unit,&p1->quantity); /*输入商品信息*/printf("____________________\n");p1->next=NULL;fprintf(fp,"%d %s %s %f %s %d",p1->num,p1->name,p1->kind,p1->price,p1->unit,p1->quantity);/*将商品信息写入文件*/while(1){p1=(struct good *)malloc(sizeof(struct good)); /*申请新空间*/ printf("*********************************************\n");printf("请输入信息:编号,名称,类型,价格,单位,数目\n");printf(" (以输入“-1”表示结束输入)\n");printf("*********************************************\n");printf("____________________\n");scanf("%d",&p1->num);if(p1->num==-1) /*申请空间结束条件*/{printf("____________________\n\n");fprintf(fp,"%d",-1);fclose(fp);return head1; /*返回头指针*/}scanf("%s %s %f %s %d",p1->name,p1->kind,&p1->price,p1->unit,&p1->quan tity); /*输入商品信息*/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;p2=p1;}}struct good *paixu(struct good*head2) /*链表排序函数*/{struct good *p6,*p7,*r,*s; /*定义结构体指针类型*/for(i=0;i<=3;i++) /*赋初值值*/{a[i]=0;sum[i]=0;aver[i]=0;}p6=(struct good *)malloc(sizeof(struct good)); /*申请新空间*/ 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) /*判断循环结束条件*/{s=r->next; /*指针调换*/r->next=s->next;s->next=p6->next;p6->next=s;}p6=p6->next;}p6=head2;head2=head2->next;free(p6); /*释放第一个无效空间*/return head2;}void jisuan(){p1=head;do{if(strcmp(p1->kind,c)==0) /*判断是否为电器类型*/{sum[0]=sum[0]+(p1->price)*(p1->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); /*求食品总价*/a[3]=a[3]+p1->quantity; /*求食品总件数*/}p1=p1->next;}while (p1!=NULL); /*遍历链表结束条件*/for(i=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");printf("日用品总价值:%0.1f\t平均价:%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"); }void shuchu() /*输出商品信息函数*/{do{struct good *p3,*p4,*p5; /*定义结构体指针类型*/int n=0,p=0,q=0,r=0;printf("所有商品信息:\n");printf("编号,名称,类型,价格,单位,数目\n");printf("**********************************\n");if((fp=fopen("goods message.txt","rb+"))==NULL) /*判断能否打开文件*/{printf("can not open the file");exit(0); /*结束程序*/}head=(struct good *)malloc(sizeof(struct good)); /*申请头结点空间*/p3=head;fscanf(fp,"%d %s %s %f %s %d",&p3->num,p3->name,p3->kind,&p3->price,p3->unit,&p3->quantity);/*从文件中写到链表*/while(1){p4=(struct good *)malloc(sizeof(struct good)); /*申请头结点空间*/fscanf(fp,"%d ",&p4->num);if(p4->num!=-1) /*判断循环结束条件*/{fscanf(fp,"%s %s %f %s %d",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("__________________________________\n");p3=p3->next;}printf("**********************************\n");printf("//////////////////////////////////\n");while(n!=4){p3=head;printf("**********************************\n");printf("1 添加商品信息\n");printf("2 删除某商品信息\n");printf("3 修改某商品信息\n");printf("4 返回(当你完成了对某一商品的添加、删除或者修改后请按4返回)\n");printf("**********************************\n");scanf("%d",&n);if(n==1) /*添加商品信息*/{printf("请输入商品编号名称类型价格单位数目\n");printf("**********************************\n");p4=(struct good *)malloc(sizeof(struct good)); /*申请空间*/scanf("%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("goods message.txt","w"))==NULL) /*判断能否打开文件*/{printf("can not open the file");exit(0); /*结束程序*/}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;}fprintf(fp,"%d",-1);fclose(fp); /*关闭文件*/printf("**********************************\n");printf("__________________________________\n");printf("------------请按4返回-------------\n");printf("__________________________________\n");printf("**********************************\n");}if(n==2) /*删除商品*/{printf("**********************************\n");printf("请输入需要删除的商品编号\n");printf("**********************************\n");scanf("%d",&p);printf("**********\n");printf("1 确认删除\n2 取消删除\n");printf("**********\n");scanf("%d",&r);if(r==1){if((head->num)==p){head=head->next;free(p3); /*释放空间*/}else{p4=head;p3=p4->next;while(p3!=NULL) /*判断循环结束条件*/{if((p3->num)==p){p5=p3->next;free(p3); /*释放空间*/p4->next=p5;break;}p3=p3->next;p4=p4->next;}}if((fp=fopen("goods message.txt","w"))==NULL) /*判断能否打开文件*/{printf("can not open the file");exit(0); /*结束程序*/}p3=head;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;}fprintf(fp,"%d",-1);fclose(fp); /*关闭文件*/}if(r==2)continue; /*继续循环*/printf("**********************************\n");printf("__________________________________\n");printf("------------请按4返回-------------\n");printf("__________________________________\n");printf("**********************************\n");}if(n==3) /*修改某商品信息*/{printf("请输入需要修改的商品编号\n");scanf("%d",&q);while(p3!=NULL) /*判断循环结束条件*/{if((p3->num)==q) /*判断是否为所需要修改的商品*/{printf("请输入商品单价与库存量(如果单价不变请输入原来的单价)\n");scanf("%f %d",&p3->price,&p3->quantity); /*输入商品价格与库存量*/}p3=p3->next;}if((fp=fopen("goods message.txt","w"))==NULL) /*判断能否打开文件*/{printf("can not open the file");exit(0); /*结束程序*/}p3=head;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;}fprintf(fp,"%d",-1);fclose(fp); /*关闭文件*/printf("**********************************\n");printf("__________________________________\n");printf("------------请按4返回-------------\n");printf("__________________________________\n");printf("**********************************\n");}if(n==4) /*退出*/break;}printf("**********\n");printf("1 继续修改\n---------\n2 返回\n");printf("**********\n");scanf("%d",&p);if(p==1)continue; /*继续循环*/if(p==2)break; /*跳出循环*/}while(n!=2);fclose(fp); /*关闭文件*/}void printf0(struct good *p) /*遍历链表并打印电器类商品函数*/{struct good *p3; /*定义结构体指针类型*/p3=p;while (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;}return;void printf1(struct good *p) /*遍历链表并打印日用品类商品函数*/{struct good *p3; /*定义结构体指针类型*/p3=p;while (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;}return;}void printf2(struct good *p) /*遍历链表并打印办公用品类商品函数*/{struct good *p3; /*定义结构体指针类型*/p3=p;while (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;}return;}void printf3(struct good *p) /*遍历链表并打印食品类商品函数*/{struct good *p3; /*定义结构体指针类型*/p3=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;}void shunxudayin(){for(i=0;i<4;i++)g[i]=aver[i]; /*将平均价赋给新数组*/for(j=0;j<3;j++) /*将新数组用冒泡排序法排序*/for(i=j+1;i<4;i++){if(g[j]<g[i]){h=g[j];g[j]=g[i];g[i]=h;}}printf("\n****************************\n");printf("商品平均价格排序表(从高到低)\n");printf("****************************\n");printf("________________________________________________\n"); printf("编号\t名称\t类别\t单价\t单位\t数量\n");printf("________________________________________________\n"); for(j=0;j<4;j++)for(i=0;i<4;i++){if (aver[i]==g[j]) /*判断每类商品平均价格的先后顺序*/switch(i){case 0:printf0(head); /*调用遍历链表并打印电器类商品函数*/break;case 1:printf1(head); /*调用遍历链表并打印日用品类商品函数*/break;case 2:printf2(head);/*调用遍历链表并打印办公用品类商品函数*/break;case 3:printf3(head); /*调用遍历链表并打印食品类商品函数*/break;}}}void tongji1(){p1=head;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;}}void tongji2(){printf("\n**********************************************\n");printf("商品库存量有2种以上(含2种)低于100的商品类别:\n");printf("**********************************************\n");printf("________\n");if((a[0]<100)&&(a[0]>=2)) /*判断电器类库存量是否为2种以上(含2种)低于100*/{printf("电器\n");printf("________\n");}if((a[1]<100)&&(a[1]>=2)) /*判断日用品类库存量是否为2种以上(含2种)低于100*/{printf("日用品\n");printf("________\n");}if((a[2]<100)&&(a[2]>=2)) /*判断食品类库存量是否为2种以上(含2种)低于100*/{printf("食品\n");printf("________\n");}if((a[3]<100)&&(a[3]>=2)) /*判断办公用品类库存量是否为2种以上(含2种)低于100*/{printf("办公用品\n");printf("________\n");}}int main(int argc, char* argv[]){struct good *p1,*p2; /*定义结构体指针类型*/while(1){printf("***********************************************\n");printf("1 ----------输出查看或者修改已存信息-----------\n");printf("-----------------------------------------------\n");printf("2 -----重新输入新信息(并且删除原有信息)------\n"); printf("-----------------------------------------------\n");printf("3 统计商品信息(如果您还没有查看过信息请先按1)\n"); printf("-----------------------------------------------\n");printf("4 -------------------退出---------------------\n");printf("***********************************************\n");scanf("%d",&m);if(m==1)shuchu(); /*调用输出信息函数*/if(m==2){system("cls");head=createlist(); /*调用建立链表函数*/}if(m==3){printf("统计结果如下\n");head=paixu(head); /*调用链表排序函数*/ jisuan(); /*调用计算函数*/shunxudayin(); /*调用顺序打印函数*/tongji1(); /*调用统计1函数*/tongji2(); /*调用统计2函数*/}if(m==4){p1=head;while(p1!=NULL) /*判断遍历链表结束条件*/ {p2=p1->next;free(p1); /*释放空间*/p1=p2;}break;}}return 0; /*结束程序*/}。

(店铺管理)超市管理系统完整+源代码最全版

(店铺管理)超市管理系统完整+源代码最全版

(店铺管理)超市管理系统完整+源代码有壹个小型超市,出售N(N>=10)种商品,设计且实现壹个系统,完成下列功能:1.保存及输出。

超市中的各种商品信息保存在指定文件中,能够把它们输出显示。

2.计算且排序。

计算每类商品的总价值(sum,单精度)及平均价(aver,单精度,输出壹位小数),将每类商品按平均价从大到小的顺序排序打印出来。

3.统计。

统计输出库存量低于100的货号及类别。

统计输出有俩种之上(含俩种)商品库存量低于100的商品类别。

1.2总体结构本程序主要分为八个模块:主模块、信息输出修改模块、新建信息模块、排序模块、计算模块、统计模块1、统计模块2、打印模块。

1)主模块:通过调用各分模块实现功能;2)信息输出修改模块:输出显示文件中商品信息内容,添加商品信息,删除商品信息,修改商品信息;3)新建商品信息模块:建立壹个新结构体,为链表存信息用,且且将信息保存在指定的文件中;4)排序模块:把文件中顺序零乱的商品信息按单价的大小从高到低进行排序,放到链表里存储;5)计算模块:将所有商品的价格和库存量进行累加求和;6)打印模块:将商品信息按每类平均价格排序(从高到低)按顺序打印出来;7)统计模块1:统计库存量低于100的货名及类别;8)统计模块2:统计商品库存量有2种之上(含2种)低于100的商品类别。

附录(程序清单)#include"stdio.h"/*输入,输出头文件*/#include"stdlib.h"/*申请空间头文件*/#include"string.h"/*对字符串加工头文件*/#include"conio.h"/*清屏头文件*/FILE*fp;intn=0;/*定义文件指针类型*/inti,j,a[4],m;/*定义整数类型*/floataver[4],sum[4],g[4],h;/*定义浮点类型*/charc[5]="elec";/*定义字符数组类型*/chard[5]="comm";/*定义字符数组类型*/chare[5]="food";/*定义字符数组类型*/charf[5]="offi";/*定义字符数组类型*/structgood/*定义结构体*/{intnum;/*商品编号*/charname[20];/*商品名称*/charkind[40];/*商品类型*/floatprice;/*商品价格*/charunit[10];/*商品单位*/intquantity;/*商品数量*/structgood*next;/*定义结构体指针类型*/}*head,*p1,*p2;structgood*createlist()/*创建链表函数*/{structgood*head1,*p1,*p2;/*定义结构体指针类型*/if((fp=fopen("goodsmessage.txt","w"))==NULL)/*判断能否打开文件*/ {printf("cannotopenthefile");exit(0);/*结束程序*/}head1=(structgood*)malloc(sizeof(structgood));/*申请头结点空间*/ p1=head1;p2=head1;printf("*********************************************\n");printf("请输入信息:编号,名称,类型,价格,单位,数目\n");printf("(以输入“-1”表示结束输入)\n");printf("*********************************************\n");printf("____________________\n");scanf("%d%s%s%f%s%d",&p1->num,p1->name,p1->kind,&p1->price,p 1->unit,&p1->quantity);/*输入商品信息*/printf("____________________\n");p1->next=NULL;fprintf(fp,"%d%s%s%f%s%d",p1->num,p1->name,p1->kind,p1->price,p 1->unit,p1->quantity);/*将商品信息写入文件*/while(1){p1=(structgood*)malloc(sizeof(structgood));/*申请新空间*/printf("*********************************************\n");printf("请输入信息:编号,名称,类型,价格,单位,数目\n");printf("(以输入“-1”表示结束输入)\n");printf("*********************************************\n");printf("____________________\n");scanf("%d",&p1->num);if(p1->num==-1)/*申请空间结束条件*/{printf("____________________\n\n");fprintf(fp,"%d",-1);fclose(fp);returnhead1;/*返回头指针*/}scanf("%s%s%f%s%d",p1->name,p1->kind,&p1->price,p1->unit,&p1-> quantity);/*输入商品信息*/printf("________________\n");fprintf(fp,"%d%s%s%f%s%d",p1->num,p1->name,p1->kind,p1->price,p 1->unit,p1->quantity);/*将商品信息写入文件*/p1->next=NULL;p2->next=p1;p2=p1;}}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(sizeof(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)/*判断循环结束条件*/{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;}voidjisuan(){p1=head;do{if(strcmp(p1->kind,c)==0)/*判断是否为电器类型*/{sum[0]=sum[0]+(p1->price)*(p1->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);/*求食品总价*/ a[3]=a[3]+p1->quantity;/*求食品总件数*/}p1=p1->next;}while(p1!=NULL);/*遍历链表结束条件*/for(i=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");printf("日用品总价值:%0.1f\t平均价:%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()/*输出商品信息函数*/{do{structgood*p3,*p4,*p5;/*定义结构体指针类型*/intn=0,p=0,q=0,r=0;printf("所有商品信息:\n");printf("编号,名称,类型,价格,单位,数目\n");printf("**********************************\n");if((fp=fopen("goodsmessage.txt","rb+"))==NULL)/*判断能否打开文件*/ {printf("cannotopenthefile");exit(0);/*结束程序*/}head=(structgood*)malloc(sizeof(structgood));/*申请头结点空间*/p3=head;fscanf(fp,"%d%s%s%f%s%d",&p3->num,p3->name,p3->kind,&p3->pric e,p3->unit,&p3->quantity);/*从文件中写到链表*/while(1){p4=(structgood*)malloc(sizeof(structgood));/*申请头结点空间*/fscanf(fp,"%d",&p4->num);if(p4->num!=-1)/*判断循环结束条件*/{fscanf(fp,"%s%s%f%s%d",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->pric e,p3->unit,p3->quantity);printf("__________________________________\n");p3=p3->next;}printf("**********************************\n");printf("//////////////////////////////////\n");while(n!=4){p3=head;printf("**********************************\n");printf("1添加商品信息\n");printf("2删除某商品信息\n");printf("3修改某商品信息\n");printf("4返回(当你完成了对某壹商品的添加、删除或者修改后请按4返回)\n"); printf("**********************************\n");scanf("%d",&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,p 4->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("cannotopenthefile");exit(0);/*结束程序*/}while(p3!=NULL){fprintf(fp,"%d%s%s%f%s%d",p3->num,p3->name,p3->kind,p3->price,p 3->unit,p3->quantity)/*将商品信息写入文件*/p3=p3->next;}fprintf(fp,"%d",-1);fclose(fp);/*关闭文件*/printf("**********************************\n"); printf("__________________________________\n"); printf("------------请按4返回-------------\n"); printf("__________________________________\n"); printf("**********************************\n"); }if(n==2)/*删除商品*/{printf("**********************************\n"); printf("请输入需要删除的商品编号\n");printf("**********************************\n"); scanf("%d",&p);printf("**********\n");printf("1确认删除\n2取消删除\n");printf("**********\n");scanf("%d",&r);if(r==1){if((head->num)==p){head=head->next;free(p3);/*释放空间*/}else{p4=head;p3=p4->next;while(p3!=NULL)/*判断循环结束条件*/ {if((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)/*判断能否打开文件*/ {printf("cannotopenthefile");exit(0);/*结束程序*/}p3=head;while(p3!=NULL)/*判断循环结束条件*/{fprintf(fp,"%d%s%s%f%s%d",p3->num,p3->name,p3->kind,p3->price,p 3->unit,p3->quantity);/*将商品信息写入文件*/p3=p3->next;}fprintf(fp,"%d",-1);fclose(fp);/*关闭文件*/}if(r==2)continue;/*继续循环*/printf("**********************************\n"); printf("__________________________________\n"); printf("------------请按4返回-------------\n"); printf("__________________________________\n"); printf("**********************************\n"); }if(n==3)/*修改某商品信息*/{printf("请输入需要修改的商品编号\n");scanf("%d",&q);while(p3!=NULL)/*判断循环结束条件*/{if((p3->num)==q)/*判断是否为所需要修改的商品*/{printf("请输入商品单价和库存量(如果单价不变请输入原来的单价)\n"); scanf("%f%d",&p3->price,&p3->quantity);/*输入商品价格和库存量*/}p3=p3->next;}if((fp=fopen("goodsmessage.txt","w"))==NULL)/*判断能否打开文件*/ {printf("cannotopenthefile");exit(0);/*结束程序*/}p3=head;while(p3!=NULL)/*判断循环结束条件*/{fprintf(fp,"%d%s%s%f%s%d",p3->num,p3->name,p3->kind,p3->price,p 3->unit,p3->quantity);/*将商品信息写入文件*/p3=p3->next;}fprintf(fp,"%d",-1);fclose(fp);/*关闭文件*/printf("**********************************\n"); printf("__________________________________\n"); printf("------------请按4返回-------------\n"); printf("__________________________________\n"); printf("**********************************\n"); }if(n==4)/*退出*/break;}printf("**********\n");printf("1继续修改\n---------\n2返回\n"); printf("**********\n");scanf("%d",&p);if(p==1)continue;/*继续循环*/if(p==2)break;/*跳出循环*/}while(n!=2);fclose(fp);/*关闭文件*/}voidprintf0(structgood*p)/*遍历链表且打印电器类商品函数*/{structgood*p3;/*定义结构体指针类型*/p3=p;while(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;}return;}voidprintf1(structgood*p)/*遍历链表且打印日用品类商品函数*/{structgood*p3;/*定义结构体指针类型*/p3=p;while(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;}return;}voidprintf2(structgood*p)/*遍历链表且打印办公用品类商品函数*/{structgood*p3;/*定义结构体指针类型*/p3=p;while(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;}return;}voidprintf3(structgood*p)/*遍历链表且打印食品类商品函数*/{structgood*p3;/*定义结构体指针类型*/p3=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(){g[i]=aver[i];/*将平均价赋给新数组*/for(j=0;j<3;j++)/*将新数组用冒泡排序法排序*/for(i=j+1;i<4;i++){if(g[j]<g[i]){h=g[j];g[j]=g[i];g[i]=h;}}printf("\n****************************\n");printf("商品平均价格排序表(从高到低)\n");printf("****************************\n");printf("________________________________________________\n"); printf("编号\t名称\t类别\t单价\t单位\t数量\n");printf("________________________________________________\n");for(i=0;i<4;i++){if(aver[i]==g[j])/*判断每类商品平均价格的先后顺序*/ switch(i){case0:printf0(head);/*调用遍历链表且打印电器类商品函数*/ break;case1:printf1(head);/*调用遍历链表且打印日用品类商品函数*/ break;case2:printf2(head);/*调用遍历链表且打印办公用品类商品函数*/ break;case3:printf3(head);/*调用遍历链表且打印食品类商品函数*/ break;}}voidtongji1(){p1=head;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(){printf("\n**********************************************\n");printf("商品库存量有2种之上(含2种)低于100的商品类别:\n");printf("**********************************************\n");printf("________\n");if((a[0]<100)&&(a[0]>=2))/*判断电器类库存量是否为2种之上(含2种)低于100*/{printf("电器\n");printf("________\n");}if((a[1]<100)&&(a[1]>=2))/*判断日用品类库存量是否为2种之上(含2种)低于100*/printf("日用品\n");printf("________\n");}if((a[2]<100)&&(a[2]>=2))/*判断食品类库存量是否为2种之上(含2种)低于100*/{printf("食品\n");printf("________\n");}if((a[3]<100)&&(a[3]>=2))/*判断办公用品类库存量是否为2种之上(含2种)低于100*/{printf("办公用品\n");printf("________\n");}}intmain(intargc,char*argv[]){structgood*p1,*p2;/*定义结构体指针类型*/while(1){printf("***********************************************\n"); printf("1----------输出查见或者修改已存信息-----------\n"); printf("-----------------------------------------------\n"); printf("2-----重新输入新信息(且且删除原有信息)------\n"); printf("-----------------------------------------------\n"); printf("3统计商品信息(如果您仍没有查见过信息请先按1)\n"); printf("-----------------------------------------------\n"); printf("4-------------------退出---------------------\n");printf("***********************************************\n"); scanf("%d",&m);if(m==1)shuchu();/*调用输出信息函数*/if(m==2){system("cls");head=createlist();/*调用建立链表函数*/}if(m==3){printf("统计结果如下\n");head=paixu(head);/*调用链表排序函数*/ jisuan();/*调用计算函数*/shunxudayin();/*调用顺序打印函数*/ tongji1();/*调用统计1函数*/tongji2();/*调用统计2函数*/}if(m==4){p1=head;while(p1!=NULL)/*判断遍历链表结束条件*/ {p2=p1->next;free(p1);/*释放空间*/ p1=p2;}break;}}return0;/*结束程序*/ }。

超市管理系统设计代码

超市管理系统设计代码

import java.awt.*;import java.awt.event.*;import javax.swing.table.*;import javax.swing.event.*;import javax.swing.*;import java.sql.*;import java.util.*;import java.io.*;class Myframe1 extends JFrame //设置主界面{JFrame f=new JFrame();JLabel L1,L2;JButton btn1,btn2,btn3,btn4;public Myframe1(){f=new JFrame("主界面");L1=new JLabel("超市商品管理系统欢迎您");L1.setFont(new Font("TimesRoman",Font.BOLD,18));L2=new JLabel("您辛苦了~~~~");L2.setFont(new Font("TimesRoman",Font.BOLD,18)); btn1=new JButton("进货管理系统");btn2=new JButton("售货管理系统");btn3=new JButton("商品信息管理");btn4=new JButton("管理系统帮助");Container container=this.getContentPane();container.setLayout(new GridLayout(9,3,0,50));for(int i=0;i<3;i++)container.add(new JLabel());container.add(new JLabel());container.add(L1);container.add(new JLabel());container.add(new JLabel());container.add(btn1);container.add(new JLabel());container.add(new JLabel()); container.add(btn2);container.add(new JLabel());container.add(new JLabel()); container.add(btn3);container.add(new JLabel());container.add(new JLabel()); container.add(btn4);container.add(new JLabel());container.add(new JLabel()); container.add(L2);container.add(new JLabel());container.setBackground(Color.cyan);f.add(container);f.setLocation(60,60);f.setSize(750,650);f.setVisible(true);Montior bn=new Montior();btn1.addActionListener(bn);btn2.addActionListener(bn);btn3.addActionListener(bn);btn4.addActionListener(bn);}class Montior implements ActionListener{public void actionPerformed(ActionEvent e1) {if(e1.getSource()==btn1){new Myframe2();}if(e1.getSource()==btn2){new Myframe3();}if(e1.getSource()==btn3){new Myframe4();}if(e1.getSource()==btn4){new bangzhu();}}}}class bangzhu extends JFrame {JTextPane ta=new JTextPane();JScrollPane sp=new JScrollPane(ta);public bangzhu(){super("管理系统帮助");ta.setFont(new Font("TimesRoaman",Font.BOLD+Font.PLAIN,20));ta.setText(" 1.初次进入登录系统,系统中没有售货员信息,可以进入系统但是为了以后能够使用方便\n"+" 还是增加售货员信息,以便下次登录。

VB精典实用源代码(详细))

VB精典实用源代码(详细))

个人收藏的VB精典实用源代码。

若朋友您想要问如何才能学好vb,或者入门需要看什么教材一类的问题,建议你抱着一颗刻苦钻研的心去面对这门学问,多动脑,少提问,遇到不知道的,多查资料,多看看帖子,或者用断点来亲自试验。

实在不会了,请在此贴中查找您的常见问题,如果还没有,那请您发出新贴,向各位高手讨教:)查找方法:按ctrl+f,输入要查找的问题关键字即可每个问题中间用///分隔,这只是一部分最常见到的问题,以后会逐渐更新。

////////////////////////////////////////////////////////////////////////////////////如何用VB建立快捷方式Private Declare Function fCreateShellLink Lib "STKIT432.DLL" (ByVal lpstrFolderName As String, ByVal lpstrLinkName As String, ByVal lpstrLinkPath As String, ByVal lpstrLinkArgs As String) As LongSub Command1_Click()Dim lReturn As Long'添加到桌面lReturn = fCreateShellLink("..\..\Desktop", "Shortcut to Calculator", "c:\windows\calc.exe", "")'添加到程序组lReturn = fCreateShellLink("", "Shortcut to Calculator", "c:\windows\calc.exe", "")'添加到启动组lReturn = fCreateShellLink("\Startup", "Shortcut to Calculator", "c:\windows\calc.exe", "")End Sub//////////////////////////////////////////////////////////////////////////////////// 如何让程序在Windows 启动时自动执行?有以下二个方法:方法1: 直接将快捷方式放到启动群组中。

小超市管理系统可运行代码

小超市管理系统可运行代码
{
case 1:Add();break;
case 2:Delet();break;
}
getchar();
return;
}
void Add()
{
printf("\t请输入所添加商品的商品编号:");
scanf("%ld",goods[n].num);
strcpy(goods[i].name,goods[i+1].name);
strcpy(goods[i+1].name,p1);
temp=goods[i].num;
goods[i].num=goods[i+1].num;
goods[i+1].num=temp;
printf("\n\t请输入所添加商品的名称:");
scanf("%s",goods[n].name);
printf("\n\t请输入所添加商品的类别:");
scanf("%s",goods[n].sort);
printf("\n\t请输入所添加商品的数量:");
scanf("%d",goods[n].count);
printf("\t 7→查询商品信息\n");
printf("\t 8→浏览商品信息\n");
printf("\t 9→保存商品信息\n");
printf("\t请选择您所需要的操作(或选择(0)退出)\n");
scanf("%d",&m);

(店铺管理)超市管理系统代码最全版

(店铺管理)超市管理系统代码最全版

(店铺管理)超市管理系统代码usingSystem;usingSystem.Collections.Generic;ponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.T ext;usingSystem.Windows.Forms;namespace超市管理信息系统{publicpartialclassf_供应商基本信息:Form{//公有变量记录选定数据publicstringstrOldNO="";publicstringstrOldName="";publicstringstrOldAdd="";publicf_供应商基本信息(){InitializeComponent();}privatevoidf_供应商基本信息_Load(objectsender,EventArgse){//TODO:这行代码将数据加载到表“连锁超市管理信息数据库DataSet.供应商”中。

您能够根据需要移动或移除它。

this.供应商T ableAdapter.Fill(this.连锁超市管理信息数据库DataSet.供应商); }//新增数据单击事件privatevoidbtnInsert_Click(objectsender,EventArgse){//获取前台数据stringstrName=txtName.T ext;stringstrAdd=txtAdd.T ext;stringstrNO=txtNO.T ext;intiNO=0;intiErrCode=0;//对前台编号数据的格式审核try{iNO=Convert.ToInt32(txtNO.T ext.Trim());}catch(ExceptioneINO){iErrCode=1;}//对前台名称数据的格式审核if(strName.Length>20)iErrCode=2;}if(strAdd.Length>30){iErrCode=3;}if(iErrCode!=0){MessageBox.Show("你所输入的数据有误,请核查!");}else{try{//新增写入数据库this.供应商T ableAdapter.Insert(iNO,strName,strAdd);}catch(ExceptionexInsert){MessageBox.Show("新增数据发生错误,请和管理员联系!"); }//刷新数据列数this.供应商T ableAdapter.Fill(this.连锁超市管理信息数据库DataSet.供应商);}//单击数据表单元格触发事件privatevoiddataGridView1_CellClick(objectsender,DataGridViewCellEventArgse) {//获取对应行的各个单元格数据stringstrNO=this.dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString(); stringstrName=this.dataGridView1.Rows[e.RowIndex].Cells[1].Value.ToString(); stringstrAdd=this.dataGridView1.Rows[e.RowIndex].Cells[2].Value.ToString(); //填充回对应的文本框txtNO.T ext=strNO;txtName.T ext=strName;txtAdd.T ext=strAdd;//将原数据值赋予公有变量strOldNO=strNO;strOldName=strName;strOldAdd=strAdd;}//删除按钮事件privatevoidbtnDelete_Click(objectsender,EventArgse)//获取前台数据stringstrName=txtName.T ext; stringstrAdd=txtAdd.T ext; stringstrNO=txtNO.T ext;intiNO=0;intiErrCode=0;//对前台编号数据的格式审核try{iNO=Convert.ToInt32(txtNO.T ext.Trim()); }catch(ExceptioneINO){iErrCode=1;}//对前台名称数据的格式审核if(strName.Length>20){iErrCode=2;}if(strAdd.Length>30)iErrCode=3;}if(iErrCode!=0){MessageBox.Show("你所输入的数据有误,请核查!");}else{try{//新增写入数据库this.供应商T ableAdapter.Delete(iNO,strName,strAdd);}catch(ExceptionexInsert){MessageBox.Show("删除数据发生错误,请和管理员联系!");}}//刷新数据列数this.供应商T ableAdapter.Fill(this.连锁超市管理信息数据库DataSet.供应商); }//修改按钮事件privatevoidbtnUpdate_Click(objectsender,EventArgse) {//获取前台数据stringstrName=txtName.T ext;stringstrAdd=txtAdd.T ext;stringstrNO=txtNO.T ext;intiNO=0;intiErrCode=0;//对前台编号数据的格式审核try{iNO=Convert.ToInt32(txtNO.T ext.Trim());}catch(ExceptioneINO){iErrCode=1;}//对前台名称数据的格式审核if(strName.Length>20){iErrCode=2;}if(strAdd.Length>30){iErrCode=3;}if(iErrCode!=0){MessageBox.Show("你所输入的数据有误,请核查!");}else{try{this.供应商TableAdapter.Update(iNO,strName,strAdd,Convert.ToInt32(strOldNO),strOldName,s trOldAdd);}catch(ExceptionexUpdate){MessageBox.Show("修改数据发生错误,请和管理员联系!");}}//刷新数据列数this.供应商T ableAdapter.Fill(this.连锁超市管理信息数据库DataSet.供应商); }}}usingSystem;usingSystem.Collections.Generic;ponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.T ext;usingSystem.Windows.Forms;namespace超市管理信息系统{publicpartialclassf_供应商基本信息:Form{//公有变量记录选定数据publicstringstrOldNO="";publicstringstrOldName="";publicstringstrOldAdd="";publicf_供应商基本信息(){InitializeComponent();privatevoidf_供应商基本信息_Load(objectsender,EventArgse){//TODO:这行代码将数据加载到表“连锁超市管理信息数据库DataSet.供应商”中。

超市系统的源代码

超市系统的源代码

}//获得指定商品信息publicstaticString[]getRowStock(Stringid){String[]s=newString[6];1.DBUtil_SM.class自定义了各种对数据操作的静态方法,包括对各个数据库的增删改查,其中关于user表中的删除仅能由权限2以上的治理人员执行,代码如下(手工编写)packagepaim;importjava.sql.*;importjava.util.*;importjava.io.*;publicclassDBUtil_SM{//猎取用户信息publicstaticList<String[]>getVIPList(){ArrayList<String[]>vl=newArrayList<String[]>();try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:dbsm","","");Statementst=con.createStatement();Stringsql="selectid,name,age,sex,workuntil,tel,lvl,totalfromVIP_IM";ResultSetrs=st.executeQuery(sql);while(rs.next()){String[]s=newString[8];for(inti=0;i<s.length;i++){s[i]=rs.getString(i+1);}vl.add(s);}rs.close();st.close();con.close();}catch(Exceptione){e.printStackTrace();}returnvl;}//猎取库存信息publicstaticList<String[]>getStockList(){ArrayList<String[]>sl=newArrayList<String[]>();try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:dbsm","",""); Statementst=con.createStatement();Stringsql="selectid,name,price,count,vprice,typefromstockorderbytype"; ResultSetrs=st.executeQuery(sql);while(rs.next()){String[]s=newString[6];for(inti=0;i<s.length;i++){s[i]=rs.getString(i+1);}sl.add(s);}rs.close();st.close();con.close();}catch(Exceptione){e.printStackTrace();}returnsl;}//添加用户信息publicstaticvoidtoInsertID(String[]s){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:dbsm","","");Statementst=con.createStatement();Stringsql="insertintoVIP_IMvalues('"+s[0]+"','"+s[1]+"','"+s[2]+"','"+s[3]+"','"+s[4]+"','"+s[5]+"','"+s[6]+"','"+s[7] +"')";st.executeUpdate(sql);st.close();con.close();}catch(Exceptione){e.printStackTrace();}}//删除用户信息publicstaticvoidtoDelID(Stringid){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:dbsm","","");Statementst=con.createStatement();st.executeUpdate("deletefromVIP_IMwhereid='"+id+"'");st.executeUpdate("deletefromuserwhereid='"+id+"'");st.close();con.close();}catch(Exceptione){e.printStackTrace();}}//更新用户数据publicstaticvoidtoUpdateID(String[]s){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:dbsm","","");Statementst=con.createStatement();Stringsql="updateVIP_IMsetname='"+s[1]+"',age="+s[2]+",sex='"+s[3]+"',workuntil='"+s[4]+"',tel='"+s[5]+"',lvl= '"+s[6]+"',total="+s[7]+"whereid='"+s[0]+"'";st.executeUpdate(sql);st.close();con.close();}catch(Exceptione){e.printStackTrace();}}//提取一个用户信息publicstaticString[]getRowID(Stringid){String[]s=newString[8];try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:dbsm","","");Statementst=con.createStatement();ResultSetrs=st.executeQuery("selectid,name,age,sex,workuntil,tel,lvl,totalfromVIP_IMwhereid='"+id+"'");if(rs.next()){for(inti=0;i<s.length;i++){s[i]=rs.getString(i+1);}}rs.close();st.close();con.close();}catch(Exceptione){e.printStackTrace();}returns;}//删除库存信息publicstaticvoidtoDelStock(Stringid){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:dbsm","","");Statementst=con.createStatement();st.executeUpdate("deletefromstockwhereid='"+id+"'");st.close();con.close();}catch(Exceptione){e.printStackTrace();}}//添加库存信息publicstaticvoidtoInsertStock(String[]s){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:dbsm","","");Statementst=con.createStatement();Stringsql="insertintostockvalues('"+s[0]+"','"+s[1]+"','"+s[2]+"','"+s[3]+"','"+s[4]+"','"+s[5]+"')"; st.executeUpdate(sql);st.close();con.close();}catch(Exceptione){e.printStackTrace();}}//更新物品信息publicstaticvoidtoUpdateStock(String[]s){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:dbsm","","");Statementst=con.createStatement();Stringsql="updatestocksetname='"+s[1]+"',price="+s[2]+",count="+s[3]+",vprice="+s[4]+",type='"+s[5]+"'wherei d='"+s[0]+"'";st.executeUpdate(sql);st.close();con.close();}catch(Exceptione){e.printStackTrace();}try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:dbsm","","");Statementst=con.createStatement();ResultSetrs=st.executeQuery("selectid,name,price,count,vprice,typefromstockwhereid='"+id+"'");if(rs.next()){for(inti=0;i<s.length;i++){s[i]=rs.getString(i+1);}}rs.close();st.close();con.close();}catch(Exceptione){e.printStackTrace();}returns;}//用户登录publicstaticintgetUser(String[]k){String[]s=newString[4];inti=0;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:dbsm","",""); Statementst=con.createStatement();ResultSetrs=st.executeQuery("selectid,name,lit,pswfromuserwhereid='"+k[0]+"'"); if(rs.next()){for(intj=0;j<s.length;j++){s[j]=rs.getString(j+1);}i=5;}else{returni;}if(k[1].equals(s[3])){if(s[2].equals("1")){i=1;}else{i=2;}}else{i=3;}rs.close();st.close();con.close();}catch(Exceptione){e.printStackTrace();}returni;}//修改密码publicstaticvoidtoUpdatePsw(String[]s){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:dbsm","",""); Statementst=con.createStatement();Stringsql="updateusersetpsw='"+s[1]+"'whereid='"+s[0]+"'";st.executeUpdate(sql);st.close();con.close();}catch(Exceptione){e.printStackTrace();}}//猎取积分列表publicstaticList<String[]>getTotalList(){ArrayList<String[]>sl=newArrayList<String[]>();try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:dbsm","",""); Statementst=con.createStatement();Stringsql="selectid,name,totalfromtotalorderbytotal";ResultSetrs=st.executeQuery(sql);while(rs.next()){String[]s=newString[3];for(inti=0;i<s.length;i++){s[i]=rs.getString(i+1);}}rs.close();st.close();con.close();}catch(Exceptione){e.printStackTrace();}returnsl;}//猎取商品积分publicstaticintgetTotalS(Stringid){intt=0;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:dbsm","",""); Statementst=con.createStatement();Stringsql="selecttotalfromtotalwhereid='"+id+"'";ResultSetrs=st.executeQuery(sql);if(rs.next()){t=rs.getInt(1);}rs.close();st.close();con.close();}catch(Exceptione){e.printStackTrace();}returnt;}//猎取用户积分publicstaticintgetTotalV(Stringid){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:dbsm","",""); Statementst=con.createStatement();Stringsql="selecttotalfromVIP_IMwhereid='"+id+"'";ResultSetrs=st.executeQuery(sql);if(rs.next()){t=rs.getInt(1);}rs.close();st.close();con.close();}catch(Exceptione){e.printStackTrace();}returnt;}//猎取积分商品名称publicstaticStringgetTotalName(Stringid){Stringt="";try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:dbsm","",""); Statementst=con.createStatement();Stringsql="selectnamefromtotalwhereid='"+id+"'";ResultSetrs=st.executeQuery(sql);if(rs.next()){t=rs.getString(1);}rs.close();st.close();con.close();}catch(Exceptione){e.printStackTrace();}returnt;}//积分兑换表publicstaticvoidaddList(String[]s){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:dbsm","","");Statementst=con.createStatement();Stringsql="insertintototallist(id,name,ltotal,tname,ttotal)values('"+s[0]+"','"+s[1]+"','"+s[2]+"','"+s[3]+"','"+s[4]+"') ";st.executeUpdate(sql);st.close();con.close();}catch(Exceptione){e.printStackTrace();}}//用户消费记录publicstaticList<String[]>getIDTotal(Stringid){ArrayList<String[]>sl=newArrayList<String[]>();try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:dbsm","","");Statementst=con.createStatement();Stringsql="selectid,name,ltotal,tname,ttotalfromtotallistwhereid='"+id+"'";ResultSetrs=st.executeQuery(sql);while(rs.next()){String[]s=newString[5];for(inti=0;i<s.length;i++){s[i]=rs.getString(i+1);}sl.add(s);}rs.close();st.close();con.close();}catch(Exceptione){e.printStackTrace();}returnsl;}//用户账户插进publicstaticvoidtoInsertUser(String[]s){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:dbsm","",""); Statementst=con.createStatement();Stringsql="insertintouservalues('"+s[0]+"','"+s[1]+"','"+s[2]+"','"+s[3]+"')"; st.executeUpdate(sql);st.close();con.close();}catch(Exceptione){e.printStackTrace();}}//积分物品添加publicstaticvoidaddTotal(String[]s){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:dbsm","",""); Statementst=con.createStatement();Stringsql="insertintototalvalues('"+s[0]+"','"+s[1]+"','"+s[2]+"')";st.executeUpdate(sql);st.close();con.close();}catch(Exceptione){e.printStackTrace();}}//更新积分物品信息publicstaticvoidtoUpdateTotal(String[]s){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:dbsm","",""); Statementst=con.createStatement();Stringsql="updatetotalsetname='"+s[1]+"',total='"+s[2]+"'whereid='"+s[0]+"'"; st.executeUpdate(sql);st.close();con.close();}catch(Exceptione){e.printStackTrace();}}//删除积分物品信息publicstaticvoidtoDelTotal(Stringid){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:dbsm","",""); Statementst=con.createStatement();st.executeUpdate("deletefromtotalwhereid='"+id+"'");st.close();con.close();}catch(Exceptione){e.printStackTrace();}}//猎取积分列表publicstaticString[]getTotalListS(Stringid){String[]s=newString[3];try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:dbsm","","");Statementst=con.createStatement();Stringsql="selectid,name,totalfromtotalwhereid='"+id+"'";ResultSetrs=st.executeQuery(sql);while(rs.next()){for(inti=0;i<s.length;i++){s[i]=rs.getString(i+1);}}rs.close();st.close();con.close();}catch(Exceptione){e.printStackTrace();}returns;}}2.SMServlet.class用于响应jsp请求依据情况调用DBUtil_SM中的方法,返回结果,代码如下(手工编写)packagepaim;importjavax.servlet.*;importjavax.servlet..*;importjava.io.*;publicclassSMServletextendsServlet{@OverridepublicvoiddoGet(ServletRequestrequest,ServletResponseresponse)throwsIOException,ServletException {doPost(request,response);}@OverridepublicvoiddoPost(ServletRequestrequest,ServletResponseresponse)throwsIOException,ServletException {Stringaction=request.getParameter("action");if(action.equals("del_id"))//删除用户{Stringid=request.getParameter("id");DBUtil_SM.toDelID(id);request.getRequestDispatcher("/admin.jsp").include(request,response);}if(action.equals("add_id"))//添加用户{String[]s=newString[9];if(request.getParameter("id")!=null){s[0]=newString(request.getParameter("id").getBytes("ISO8859_1"),"GB2312");}if(request.getParameter("name")!=null){s[1]=newString(request.getParameter("name").getBytes("ISO8859_1"),"GB2312");}if(request.getParameter("age")!=null){s[2]=newString(request.getParameter("age").getBytes("ISO8859_1"),"GB2312");}if(request.getParameter("sex")!=null){s[3]=newString(request.getParameter("sex").getBytes("ISO8859_1"),"GB2312");}if(request.getParameter("workuntil")!=null){s[4]=newString(request.getParameter("workuntil").getBytes("ISO8859_1"),"GB2312");}if(request.getParameter("tel")!=null){s[5]=newString(request.getParameter("tel").getBytes("ISO8859_1"),"GB2312");}if(request.getParameter("lvl")!=null){s[6]=newString(request.getParameter("lvl").getBytes("ISO8859_1"),"GB2312");}if(request.getParameter("total")!=null){s[7]=newString(request.getParameter("total").getBytes("ISO8859_1"),"GB2312");}s[8]=newString(request.getParameter("psw").getBytes("ISO8859_1"),"GB2312");} String[]g=newString[2];g[0]=s[0];g[1]=s[8];if(DBUtil_SM.getUser(g)!=0)//返回0即不存在用户{request.getRequestDispatcher("/useradd.jsp?str=1").include(request,response);}else{String[]user=newString[4];user[0]=s[0];user[1]=s[1];user[2]="1";user[3]=s[8];DBUtil_SM.toInsertID(s);DBUtil_SM.toInsertUser(user);request.getRequestDispatcher("/admin.jsp").include(request,response);}}if(action.equals("update_id"))//修改用户信息{Stringlit=request.getParameter("lim");String[]s=newString[8];s[0]=request.getParameter("id");if(request.getParameter("name")!=null){s[1]=newString(request.getParameter("name").getBytes("ISO8859_1"),"GB2312");}if(request.getParameter("age")!=null){s[2]=newString(request.getParameter("age").getBytes("ISO8859_1"),"GB2312");}if(request.getParameter("sex")!=null){s[3]=newString(request.getParameter("sex").getBytes("ISO8859_1"),"GB2312");}if(request.getParameter("workuntil")!=null){s[4]=newString(request.getParameter("workuntil").getBytes("ISO8859_1"),"GB2312");} if(request.getParameter("tel")!=null){s[5]=newString(request.getParameter("tel").getBytes("ISO8859_1"),"GB2312");}if(request.getParameter("lvl")!=null){s[6]=newString(request.getParameter("lvl").getBytes("ISO8859_1"),"GB2312");}s[7]=newString(request.getParameter("total").getBytes("ISO8859_1"),"GB2312");} DBUtil_SM.toUpdateID(s);if(lit.equals("use"))//依据用户权限显示页面{request.getRequestDispatcher("/userlist.jsp?id="+s[0]).include(request,response);}else{request.getRequestDispatcher("/admin.jsp").include(request,response);}}if(action.equals("del_stock"))//删除物品{Stringid=request.getParameter("id");DBUtil_SM.toDelStock(id);request.getRequestDispatcher("/admin.jsp").include(request,response);}if(action.equals("add_stock"))//添加物品信息{String[]s=newString[6];if(request.getParameter("id")!=null){s[0]=newString(request.getParameter("id").getBytes("ISO8859_1"),"GB2312");}if(request.getParameter("name")!=null){s[1]=newString(request.getParameter("name").getBytes("ISO8859_1"),"GB2312");} if(request.getParameter("price")!=null){s[2]=newString(request.getParameter("price").getBytes("ISO8859_1"),"GB2312");} if(request.getParameter("count")!=null){s[3]=newString(request.getParameter("count").getBytes("ISO8859_1"),"GB2312");} if(request.getParameter("vprice")!=null){s[4]=newString(request.getParameter("vprice").getBytes("ISO8859_1"),"GB2312");} if(request.getParameter("type")!=null){s[5]=newString(request.getParameter("type").getBytes("ISO8859_1"),"GB2312");} DBUtil_SM.toInsertStock(s);request.getRequestDispatcher("/admin.jsp").include(request,response);}if(action.equals("update_stock"))//修改物品信息{if(request.getParameter("id")!=null){s[0]=newString(request.getParameter("id").getBytes("ISO8859_1"),"GB2312");}if(request.getParameter("name")!=null){s[1]=newString(request.getParameter("name").getBytes("ISO8859_1"),"GB2312");}if(request.getParameter("price")!=null){s[2]=newString(request.getParameter("price").getBytes("ISO8859_1"),"GB2312");}if(request.getParameter("count")!=null){s[3]=newString(request.getParameter("count").getBytes("ISO8859_1"),"GB2312");}if(request.getParameter("vprice")!=null){s[4]=newString(request.getParameter("vprice").getBytes("ISO8859_1"),"GB2312");}if(request.getParameter("type")!=null){s[5]=newString(request.getParameter("type").getBytes("ISO8859_1"),"GB2312");} DBUtil_SM.toUpdateStock(s);request.getRequestDispatcher("/admin.jsp").include(request,response);}if(action.equals("login"))//登陆验证{String[]k=newString[2];k[0]=request.getParameter("id");k[1]=request.getParameter("psw");inti=DBUtil_SM.getUser(k);if(i==1)//判定是否为用户{request.getRequestDispatcher("/userlist.jsp?id="+k[0]+"&&lim=use").forward(request,response); }if(i==0||i==5||i==3)//用户名不存在密码错误{request.getRequestDispatcher("/login.jsp?str=9").include(request,response);}if(i==2)//治理员跳转{request.getRequestDispatcher("/admin.jsp").include(request,response);}}if(action.equals("password"))//密码修改{k[0]=request.getParameter("id");k[1]=request.getParameter("opsw");String[]s=newString[2];s[0]=k[0];s[1]=request.getParameter("npsw1");inti=DBUtil_SM.getUser(k);if(i==1){DBUtil_SM.toUpdatePsw(s);request.getRequestDispatcher("/userlist.jsp?id="+s[0]+"&&lim=use").forward(request,response); }if(i==0||i==5||i==3){request.getRequestDispatcher("/update.jsp?id="+s[0]+"&&str=9").include(request,response);}if(i==2){DBUtil_SM.toUpdatePsw(s);request.getRequestDispatcher("/admin.jsp").include(request,response);}}if(action.equals("total"))//兑换积分积分余额积分消费判定操作{String[]id=newString[2];id[0]=request.getParameter("id");id[1]=request.getParameter("tid");int[]t=newint[5];t[0]=DBUtil_SM.getTotalV(id[0]);t[1]=DBUtil_SM.getTotalS(id[1]);t[3]=t[0]-t[1];Stringtname=DBUtil_SM.getTotalName(id[1]);String[]sl=DBUtil_SM.getRowID(id[0]);String[]ll=newString[6];if(t[3]<0){request.getRequestDispatcher("/total.jsp?id="+id[0]+"&&str=1").forward(request,response);}else{sl[7]=Integer.toString(t[3]);ll[0]=sl[0];ll[1]=sl[1];ll[2]=Integer.toString(t[3]);ll[3]=DBUtil_SM.getTotalName(id[1]);ll[4]=Integer.toString(t[1]);DBUtil_SM.addList(ll);DBUtil_SM.toUpdateID(sl);request.getRequestDispatcher("/total.jsp?id="+id[0]).forward(request,response);}}if(action.equals("addtotal"))//添加积分物品{String[]s=newString[3];if(request.getParameter("id")!=null){s[0]=newString(request.getParameter("id").getBytes("ISO8859_1"),"GB2312");}if(request.getParameter("name")!=null){s[1]=newString(request.getParameter("name").getBytes("ISO8859_1"),"GB2312");} if(request.getParameter("total")!=null){s[2]=newString(request.getParameter("total").getBytes("ISO8859_1"),"GB2312");} DBUtil_SM.addTotal(s);request.getRequestDispatcher("/admin.jsp").include(request,response);}if(action.equals("del_total"))//删除积分物品{Stringid=request.getParameter("id");DBUtil_SM.toDelTotal(id);request.getRequestDispatcher("/admin.jsp").include(request,response);}if(action.equals("totalupdate"))//积分物品修改{String[]s=newString[3];if(request.getParameter("id")!=null){s[0]=newString(request.getParameter("id").getBytes("ISO8859_1"),"GB2312");}if(request.getParameter("name")!=null){s[1]=newString(request.getParameter("name").getBytes("ISO8859_1"),"GB2312");}if(request.getParameter("total")!=null){s[2]=newString(request.getParameter("total").getBytes("ISO8859_1"),"GB2312");}DBUtil_SM.toUpdateTotal(s);request.getRequestDispatcher("/admin.jsp").include(request,response);}}}3.Web.xml为配置文件代码如下(自动生成后添加参数)<?xmlversion="1.0"encoding="ISO-8859-1"?><web-appxmlns="://java.sun/xml/ns/javaee"xmlns:xsi=":///2001/XMLSchema-instance"xsi:schemaLocation="://java.sun/xml/ns/javaee://java.sun/xml/ns/javaee/web-app_2_5.xsd"version="2.5"><display-name>SuperMarket</display-name><description>SuperMarket</description><servlet><servlet-name>SMServlet</servlet-name><servlet-class>paim.SMServlet</servlet-class></servlet><servlet-mapping><servlet-name>SMServlet</servlet-name><url-pattern>/SMServlet</url-pattern></servlet-mapping><welcome-file-list><welcome-file></welcome-file></welcome-file-list></web-app>4.Admin.jsp文件为治理员治理模块的主界面,代码如下(HTML格式为自动生成,jsp 代码为手工编写)<%@pagecontentType="text/html;charset=gbk"import="paim.DBUtil_SM,java.util.*"%><head><linkrel="stylesheet"type="text/css"></head><bodybgcolor="#FFFFFF"><palign="center"><strong>用户信息治理</strong><%request.setCharacterEncoding("GBK");response.setCharacterEncoding("GBK");List<String[]>vl=DBUtil_SM.getVIPList();List<String[]>sl=DBUtil_SM.getStockList();List<String[]>tl=DBUtil_SM.getTotalList();%><tableborder=1borderColorDark=#ffffecborderColorLight=#5e5e00cellPadding=1cellSpacing=0width=100% ><trbgcolor=ccccccalign=center><td>用户名</td><td>年龄</td><td>性不</td><td>工作单位</td><td>联系方式</td><td>会员等级</td><td>积分</td><tdcolspan="2">治理</td></tr><%for(String[]s:vl){if(s[4]==null||s[4].equals("")){s[4]="暂无信息";}if(s[5]==null||s[5].equals("")){s[5]="暂无信息";}%><tralign="center"><td><ahref="userlist.jsp?id=<%=s[0]%>"><%=s[1]%></a></td><td><%=s[2]%></td><td><%=s[3]%></td ><td><%=s[4]%></td><td><%=s[5]%></td><td><%=s[6]%></td><td><%=s[7]%></td> <td><ahref="update.jsp?id=<%=s[0]%>&&lit=5">修改</a></td><td><ahref="SMServlet?action=del_id&&id=<%=s[0]%>">删除</a></td></tr>}%></table><palign="right"><ahref="useradd.jsp">添加用户</a><palign="center"><strong>库存信息治理</strong><tableborder=1borderColorDark=#ffffecborderColorLight=#5e5e00cellPadding=1cellSpacing=0width=100% ><trbgcolor=ccccccalign=center><td>商品编号</td><td>名称</td><td>价格</td><td>会员价</td><td>类型</td><td>库存</td><tdcolspan="2">治理</td></tr><%for(String[]s:sl){%><tralign=center><td><%=s[0]%></td><td><%=s[1]%></td><td><%=s[2]%></td><td><%=s[4]%></td><td><%=s[5]%></t d><td><%=s[3]%></td><td><ahref="stockupdate.jsp?id=<%=s[0]%>">修改</a></td><td><ahref="SMServlet?action=del_stock&&id=<%=s[0]%>">删除</a></td></tr><%}%></table><palign="right"><ahref="stockadd.jsp">添加物品</a><palign="center"><strong>积分物品信息治理</strong><tableborder=1borderColorDark=#ffffecborderColorLight=#5e5e00cellPadding=1cellSpacing=0width=100% ><trbgcolor=ccccccalign=center><td>编号</td><td>物品</td><td>所需积分</td><tdcolspan="2">治理</td></tr><%for(String[]s:tl){%>。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档