跪求用数组实现的超市管理系统

跪求用数组实现的超市管理系统,第1张

西安航空技术高等专科学校

毕业设计报告

题 目: 超市管理系统

系别:计算机工程系

班级:计算机信息管理

姓名:

导师:

日期:2007年 月 日

目录

前言 2

摘要 3

第一章 绪论 5

11社会背景 5

12超市背景 6

第二章 系统可行性研究 7

21 技术可行性研究 7

22 经济可行性研究 7

23 *** 作可行性研究 8

第三章 系统需求分析 9

31 用户工作流程 9

32 用户业务需求 9

第四章 系统概要设计 10

41 设计思想 10

42 设计原则 11

43 业务流程分析 11

44 系统数据流分析 14

45 数据字典 17

46 功能需求 19

47 性能需求 19

48 运行需求 20

第五章 系统详细设计 21

51 系统功能结构图 21

52 系统功能设计 21

53 系统数据库设计 22

54 模块功能设计 24

第六章 系统测试运行 39

61 模块测试 39

62 整体测试 39

第七章 总结 40

第八章 致谢辞 41

第九章 参考文献 42

第十二章 附录 43

前言

超市需要处理大量的库存信息,还要时刻更新产品的销售信息,不断添加商品信息。面对不同种类的信息,需要合理的数据库结构来保存数据信息,需要有效的程序结构支持各种数据 *** 作的执行。商店自动化的产品管理在欧美等国家早已经实现,也是零售业管理的基础。它最主要的特点是能够实时的和准确的控制店内的销售情况。如果可以能够实时掌握销售流程及销售情况,则可以有效地加速商品的周转率并提高服务质量,而且可以减少产品售价不符等所产生的问题。顾客的消费要求的是希望在超市购物中能基本上都能购得所需的商品,并且还要既保证商品质量还要享受优质,方便的服务。

摘要

随着小超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长。超市时时刻刻都需要对商品各种信息进行统计分析。而大型的超市管理系统功能过于强大而造成 *** 作繁琐降低了小超市的工作效率。

超市管理系统是市场上最流行的超市上常用的系统之一,它主要包含以下几个模块:系统权限的设定、原始数据录入、数据的汇总及查询等。从而,实现对进货、销售及员工信息等实现全面、动态、及时的管理。

本文系统的分析了软件开发的背景以过程;首先介绍了软件的开发环境,其次介绍了本软件的详细设计过程:数据库的设计、各个模块的设计和实现,以及具体界面的设计和功能。

关键词:超市 管理信息系统

第一章 绪论

11社会背景

随着现代科学技术的迅猛发展,计算机技术已经渗透到哥哥领域,成为各行业必不可少的工具,特别是Internet技术的推广和信息高速公路的建立,使IT产业在市场竞争中越发显示出其独特的优势,步入信息化时代,有巨大的数据信息等待加工处理和传输,这使得对书数据库的进一步开发和利用显得尤为迫切。

作为国内市场的一些中小型超市,它们在信息化过程中的步伐要落后于大中型超市,而对于这些企业的资源管理,信息的存储和处理也显得迫切需要,要适应市场竞争,就需要有高效的处理方式和管理方法,因此加快超市的信息化进程是必可少的。

实习期间,我们通过对市场的调查,针对现在各中小型超市对经营业务和人事管理的实际需要,开发了这套超市管理系统。在开发过程中,我们针对当前各超市管理的特点和技术人员的实际水平,采用基于Windows图形用户界面这一易学易用的 *** 作环境,在系统设计过程中,我们尽量采用易懂易读的人机界面,使用户可以在短期内完全掌握。我们又始终发系统的正确性放在首位,力求数据的完整和处理的正确性。在此基础上优化程序代码,加速系统运行和减少对系统资源的占用。

12超市背景

在我国超市形成在20世纪90年代初期,现在已经成为我国零售业的一种重要形态,为国民经济的发展发挥了重要的作用。随着超市高速的发展,其经营管理也变得愈加复杂,早期的售货员站柜台的形式早已不能满足现有销售也的发展,这样就迫切地需要引入新的管理技术。

超市形态具有种种优点,但在目前状况下,它仍存在零售业企业所共有的落后的一面,如:不能有效地管理每种商品,收款结算速度慢,容易出现营业差错,不宜进行商品调价,盘点效率低等,而且在超市日常管理中,商品的进、销、存等决策以经验为主,缺乏实时分析功能,管理人员对及时传递资料的要求始终得不到满足。苏辙超市形态的高速发展,其经营管理也变得愈加复杂,日常所需要处理的数据量也逐渐增大,商业运转的中间环节也越来越多,原始的人工管理已无法应对这复杂的市场。为此,在选题过程中,我选择了超市管理系统设计题目,依靠现代化的计算机信息处理技术来管理超市,从而节省了大量的人力、物力,改善了员工的工作条件,减轻了劳动强度,并且能够快速反映出商品的进、销、存等状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率。

第二章 系统可行性研究

21 技术可行性研究

在IT行业中从业的工作人员一般都要求掌握计算机技术,具有一定的软硬件基础,会使用各种管理软件,熟悉IT产品。因为,有的超市对员工的素质要求比较高,从管理层到下面的销售人员,都要求具有一定的计算机基础,所以在新系统投入使用时,只要对员工进行少量的培训,系统的功能和使用方法就基本上能够是系统顺利运行。

22 经济可行性研究

因为通过网络传递销售信息可以不受距离的限制,因此可以借阅许多的人力和物力,方便管理,由此可以减少不必要的开支,同时该系统可以提高超市的销售效率,即提高了超市的经济效益,所以从经济上完全是可行的。

(1)超市有能力承担系统开发费用

开发新系统的工作是一项间距复杂的工作,它的投资主要是人力和物力的投资。对于本系统的开发者来说,其主要投资还是在人力和物力两个方面。如果是企业自己安排人手开发系统的话,其主要的投资还是在人力资源上,从系统的业务需求调查到系统的分析编码制作都是需要巨大的人力投入的。软件企业作为一个简短的高科技产业,其员工要求都比一般企业的要求要高,而且对系统开发及软件产业了解比较多,所以在自我开发管理系统的过程中,企业自己比较容易安排人手,这样就可以为企业借阅大部分的额外开支。同时软件就其它产品来说,属于高端行业,无论是产品的价格还是质量都比较高,而经营产品的经销商或者是商家都要求有雄厚的资金支持。所以,在系统的开发过程中,企业完全有能力承担开发费用。

(2)新系统将为企业带来经济效益

管理系统是一个信息化、智能化和先进管理理念的集合体。而管理是一个动态过程,在其运行过程中要采取多项措施。所以在管理中获得经济效益是一个综合效益,要对它进行直接定量的分析是比较困难的。一般新系统带来的经济效益是简介的,其最主要的表现就是减少了企业管理费用和人力开支。而其它一些繁琐的食物都通过新系统来加以分析解决,不仅节省了大量的时间,还为企业的各项决策提供了宝贵的资料,为企业带来巨大的经济效益。

23 *** 作可行性研究

本系统采用基于Windows的图形用户界面,而该系统是大家熟悉的 *** 作系统,对于那些有一般的计算机知识的人员就可以轻松上手。而整个超市管理系统采用最友好的交互界面,简介明了,不需要对数据库进行深入的了解。

由此,该系统的 *** 作是可行的,有必要开发该系统。

综合以上三方面,该系统具有很高的开发可行性,无论是从技术上或者经济上还是 *** 作上。因此,可以设计该系统的数据流程图,建立数据字典。

第三章 系统需求分析

31 用户工作流程

进货或销售商品时,用户要对进货单或销售单进行核对审查,并进行登记;用户要获得进货、销售、库存信息时,要对进货情况、销售情况、库存情况进行查询并打印。

32 用户业务需求

(1)该管理软件将对库存茶品进行资料管理和统计,对产品的进货单和产品的销售单进行录入管理和统计;

(2)该管理软件将根据用户的需要对进货、销售、库存情况进行查询,并能打印详细信息;

(3)该管理软件将为用户提供账号管理工具,以便用户对账号进行管理,具体为添加用户、删除用户、修改用户密码;

(4)该管理软件提供企业人员管理,能够对企业员工的分类管理,新员工的加入以及员工删除,修改进本信息等功能。

整个超市管理系统的功能结构如图3-1所示:

前面大概是这样,不知道是不是你找的,下面是原文链接

>

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

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

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

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

12总体结构

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

1) 主模块:通过调用各分模块实现功能;

2) 信息输出修改模块:输出显示文件中商品信息内容,添加商品信息,删除商品信息,修改商品信息;

3) 新建商品信息模块:建立一个新结构体,为链表存信息用,并且将信息保存在指定的文件中;

4) 排序模块:把文件中顺序零乱的商品信息按单价的大小从高到低进行排序,放到链表里存储;

5) 计算模块:将所有商品的价格与库存量进行累加求和;

6) 打印模块:将商品信息按每类平均价格排序(从高到低)按顺序打印出来;

7) 统计模块1:统计库存量低于100的货名及类别;

8) 统计模块2:统计商品库存量有2种以上(含2种)低于100的商品类别。

附 录(程序清单)

#include "stdioh" /输入,输出头文件/

#include "stdlibh" /申请空间头文件/

#include "stringh" /对字符串加工头文件/

#include "conioh" /清屏头文件/

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 messagetxt","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->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;

p2=p1;

}

}

struct good paixu(struct goodhead2) /链表排序函数/

{

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("电器总价值:%01f\t平均价:%01f\t总库存量:%d\n",sum[0],aver[0],a[0]);

printf("____________________________________________________\n");

printf("日用品总价值:%01f\t平均价:%01f\t总库存量:%d\n",sum[1],aver[1],a[1]);

printf("____________________________________________________\n");

printf("食品总价值:%01f\t平均价:%01f\t总库存量:%d\n",sum[2],aver[2],a[2]);

printf("____________________________________________________\n");

printf("办公用品总价值:%01f\t平均价:%01f\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 messagetxt","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 %01f %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 messagetxt","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 messagetxt","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 messagetxt","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%01f\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%01f\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%01f\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%01f\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; /结束程序/

}

package untitled5;

import javaio;

import javanet;

import javasql;

import javalang;

import javaxsql;

import javaawt;

import javaawtevent;

import javaxswing;

import comborlandjbcllayout;

public class delbook extends JFrame {

JPanel contentPane;

XYLayout xYLayout1 = new XYLayout();

JLabel jLabel1 = new JLabel();

JLabel jLabel2 = new JLabel();

JLabel jLabel3 = new JLabel();

JTextField jTextField1 = new JTextField();

JLabel jLabel4 = new JLabel();

JTextField jTextField2 = new JTextField();

JLabel jLabel5 = new JLabel();

JTextField jTextField3 = new JTextField();

JLabel jLabel6 = new JLabel();

JTextField jTextField4 = new JTextField();

JButton jButton1 = new JButton();

//Construct the frame

public delbook() {

enableEvents(AWTEventWINDOW_EVENT_MASK);

try {

jbInit();

}

catch(Exception e) {

eprintStackTrace();

}

}

//Component initialization

private void jbInit() throws Exception {

contentPane = (JPanel) thisgetContentPane();

jLabel1setFont(new javaawtFont("SansSerif", 0, 25));

jLabel1setForeground(Colorred);

jLabel1setText("超市管理系统");

contentPanesetLayout(xYLayout1);

thissetSize(new Dimension(500,400));

thissetTitle("超市管理系统");

jLabel2setFont(new javaawtFont("SansSerif", 0, 30));

jLabel2setText("业务单位信息");

jLabel3setFont(new javaawtFont("SansSerif", 0, 25));

jLabel3setText("产品编号");

jTextField1setText("");

jLabel4setFont(new javaawtFont("SansSerif", 0, 25));

jLabel4setText("公司名称");

jTextField2setText("");

jLabel5setFont(new javaawtFont("SansSerif", 0, 25));

jLabel5setText("订单号码");

jTextField3setText("");

jLabel6setFont(new javaawtFont("SansSerif", 0, 25));

jLabel6setText("电 话");

jTextField4setText("");

jButton1setFont(new javaawtFont("SansSerif", 0, 25));

jButton1setText("提交");

jButton1addActionListener(new delbook_jButton1_actionAdapter(this));

contentPaneadd(jLabel1, new XYConstraints(179, 1, 153, 32));

contentPaneadd(jLabel2, new XYConstraints(162, 33, -1, -1));

contentPaneadd(jLabel3, new XYConstraints(83, 89, -1, -1));

contentPaneadd(jTextField1, new XYConstraints(189, 88, 141, 36));

contentPaneadd(jTextField2, new XYConstraints(189, 149, 142, 36));

contentPaneadd(jLabel4, new XYConstraints(84, 148, -1, -1));

contentPaneadd(jTextField3, new XYConstraints(188, 206, 143, 33));

contentPaneadd(jLabel5, new XYConstraints(84, 204, -1, -1));

contentPaneadd(jLabel6, new XYConstraints(84, 253, -1, -1));

contentPaneadd(jTextField4, new XYConstraints(189, 260, 143, 36));

contentPaneadd(jButton1, new XYConstraints(197, 318, -1, -1));

}

//Overridden so we can exit when window is closed

protected void processWindowEvent(WindowEvent e) {

superprocessWindowEvent(e);

if (egetID() == WindowEventWINDOW_CLOSING) {

Systemexit(0);

}

}

void update() {

try {

//定义显示的字符串

String str1;

String str2;

String str3;

String str4;

str1 = jTextField1getText();

str2 = jTextField2getText();

str3 = jTextField3getText();

str4 = jTextField4getText();

//装载jdbc驱动程序

String driverName = "oraclejdbcOracleDriver";

Driver driver = (Driver) ClassforName(driverName)newInstance();

//连接数据库

Connection con = DriverManagergetConnection(

"jdbc:oracle:thin:@thsspc0791:1521:liuyong", "hr", "tongfang");

PreparedStatement pstmt = conprepareStatement(

" insert Customer1('goodID','Name','PID','tel')values(,,,)");

pstmtsetString(1, str1);

pstmtsetString(2, str2);

pstmtsetString(1, str3);

pstmtsetString(4, str4);

ResultSet res = pstmtexecuteQuery();

pstmtclose();

conclose();

}catch (InstantiationException e) {

Systemoutprintln(egetMessage());

}catch (IllegalAccessException e) {

Systemoutprintln(egetMessage());

}catch (ClassNotFoundException e) {

Systemoutprintln(egetMessage());

}catch (SQLException edd) {

eddprintStackTrace() ;

Systemoutprintln(eddgetMessage());

}

}

void jButton1_actionPerformed(ActionEvent e) {

update();

}

}

class delbook_jButton1_actionAdapter implements javaawteventActionListener {

delbook adaptee;

delbook_jButton1_actionAdapter(delbook adaptee) {

thisadaptee = adaptee;

}

public void actionPerformed(ActionEvent e) {

adapteejButton1_actionPerformed(e);

}

}

package untitled5;

import javaawt;

import javaawtevent;

import javaxswing;

import comborlandjbcllayout;

/

<p>Title: </p>

<p>Description: </p>

<p>Copyright: Copyright © 2003</p>

<p>Company: </p>

@author not attributable

@version 10

/

public class retur extends JFrame {

JPanel contentPane;

XYLayout xYLayout1 = new XYLayout();

JLabel jLabel1 = new JLabel();

//Construct the frame

public retur() {

enableEvents(AWTEventWINDOW_EVENT_MASK);

try {

jbInit();

}

catch(Exception e) {

eprintStackTrace();

}

}

//Component initialization

private void jbInit() throws Exception {

contentPane = (JPanel) thisgetContentPane();

jLabel1setFont(new javaawtFont("SansSerif", 0, 20));

jLabel1setForeground(Colorred);

jLabel1setText("超市管理系统");

contentPanesetLayout(xYLayout1);

thissetSize(new Dimension(400, 300));

thissetTitle("超市管理系统");

contentPaneadd(jLabel1, new XYConstraints(139, 1, 126, 33));

}

//Overridden so we can exit when window is closed

protected void processWindowEvent(WindowEvent e) {

superprocessWindowEvent(e);

if (egetID() == WindowEventWINDOW_CLOSING) {

Systemexit(0);

}

}

}

package untitled5;

import javaio;

import javanet;

import javasql;

import javalang;

import javaxsql;

import javaawt;

import javaawtevent;

import javaxswing;

import comborlandjbcllayout;

import comborlanddbswing;

//货品信息登记

public class Frame2 extends JFrame {

JPanel contentPane;

JLabel jLabel1 = new JLabel();

XYLayout xYLayout1 = new XYLayout();

JLabel jLabel2 = new JLabel();

JLabel jLabel3 = new JLabel();

JTextField jTextField1 = new JTextField();

JLabel jLabel4 = new JLabel();

JTextField jTextField2 = new JTextField();

JPanel jPanel1 = new JPanel();

XYLayout xYLayout2 = new XYLayout();

JScrollPane jScrollPane1 = new JScrollPane();

JLabel jLabel5 = new JLabel();

JTextField jTextField3 = new JTextField();

//Construct the frame

public Frame2() {

enableEvents(AWTEventWINDOW_EVENT_MASK);

try {

jbInit();

}

catch(Exception e) {

eprintStackTrace();

}

}

//Component initialization

private void jbInit() throws Exception {

contentPane = (JPanel) thisgetContentPane();

contentPanesetLayout(xYLayout1);

thissetSize(new Dimension(600, 500));

thissetTitle("超市管理系统");

thisaddHierarchyBoundsListener(new Frame2_this_hierarchyBoundsAdapter(this));

jLabel1setFont(new javaawtFont("SansSerif", 0, 25));

jLabel1setForeground(Colorred);

jLabel1setText("超市管理系统");

contentPanesetForeground(Colorblack);

jLabel2setFont(new javaawtFont("SansSerif", 0, 30));

jLabel2setText("产 品 信 息 展 示");

// statusBarsetFont(new javaawtFont("SansSerif", 0, 20));

jLabel3setFont(new javaawtFont("SansSerif", 0, 20));

jLabel3setText("产品名称");

jTextField1setText("");

jLabel4setEnabled(true);

jLabel4setFont(new javaawtFont("SansSerif", 0, 20));

jLabel4setText("产品ID号");

jTextField2setText("");

jTextField2addActionListener(new Frame2_jTextField2_actionAdapter(this));

jPanel1setLayout(xYLayout2);

jLabel5setFont(new javaawtFont("SansSerif", 0, 25));

jLabel5setForeground(Colorred);

jLabel5setText("该产品详细信息");

jTextField3setText("");

contentPaneadd(jLabel1, new XYConstraints(237, 0, 153, 40));

contentPaneadd(jLabel2, new XYConstraints(200, 47, 231, 58));

contentPaneadd(jLabel3, new XYConstraints(47, 102, 101, 42));

contentPaneadd(jTextField1, new XYConstraints(128, 108, 112, 34));

contentPaneadd(jTextField2, new XYConstraints(361, 107, 109, 36));

contentPaneadd(jPanel1, new XYConstraints(75, 166, 453, 277));

jPanel1add(jScrollPane1, new XYConstraints(14, 8, 433, 221));

jScrollPane1getViewport()add(jTextField3, null);

jPanel1add(jLabel5, new XYConstraints(112, 240, -1, -1));

contentPaneadd(jLabel4, new XYConstraints(278, 111, -1, -1));

}

//Overridden so we can exit when window is closed

protected void processWindowEvent(WindowEvent e) {

superprocessWindowEvent(e);

if (egetID() == WindowEventWINDOW_CLOSING) {

Systemexit(0);

}

}

void Select() {

try {

String str1, str2;

str1 = jTextField1getText();

str2 = jTextField2getText();

这么单纯用语言给你解释不明白,我用实例给你讲一下吧

比如做个进销存系统,java做前台,sqlserver做数据库,用java连接sqlserver这个就不用说了,实现增删改查这个你在页面都能做到

假如6-8个实体

商品表,里边包含商品id,商品名等等

供货商表,里边包含供货商id,供货商姓名及其他信息等

进货表,商品id,供货商id,供应数量,价钱,日期等等

出货也类似

库存就是进货-出货

这里库存表的话就需要触发器,你想,进来一批货,这个就应该加到库存里是吧,如果出货了,库存就应该相应的减少,存储过程的话,比如你在页面做个输入参数的地方,比如输入某供货商名字,查他某几个月之间的供货数量,这个可能就需要用到存储过程

至于报表,无非就是看统计一些什么东西,象上边说的,查询所有供货商2013年供货的数量,然后做个饼图,看一下每个供货商占所有供货商供货的比例等等,或者某个供货商,2013年每个月供货的柱状图,这些都属于图形,不知道这么说你能简单明白点不?

这样的程序你可以去百度一下,从这上面是没有人给你写的,太耗时间,为了拿120积分去花一周时间写这个吗?

网上有好多类似的资源,你可以去查一下,相关的都可以,只不过是改一下名称的事,再说了,为了学好课程,自己动一下手也是应该的,不要这么懒好不,可以留下你的****,有问题再说

以上就是关于跪求用数组实现的超市管理系统全部的内容,包括:跪求用数组实现的超市管理系统、用c语言设计一个超市管理系统程序,要求能添加商品,能查询商品,能购买商品,能展示商品。、C语言编写的超市管理系统等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9309267.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存