超市管理系统需求分析(1)
超市管理系统需求分析

超市管理系统需求分析选择一个系统(例如工资管理系统、飞机订票系统、图书管理系统等),用基于用例的面向对象需求建模方法对它进行需求分析,并给出需求模型。
超市的发展必需要解决以下问题:(1)物流管理方式落后,很难根据销售、库存情况,及时进行配货、补货、退货、调拨。
经过我们的调查发现,××超市在物流管理方面,仍使用传统的人工管理模式,浪费人力资源,效率低,准确率低。
有些商品紧缺,顾客要排队购买或商品供不应求,使顾客大为不满,还有一些商品,长期积压,损坏严重,造成重大经济损失,引起销售人员的极大不满,以多次向超市管理人员反映,但此类问题仍屡屡发生,得不到根本性的解决,已引起总经理的高度重视。
连锁超市是以零售为前导,以商品进销,存配,流转管理为基础。
一个大型超市,它的物流管理势必非常复杂,如果没有一个强大的信息系统来支持,那么就会造成一部分商品大量积压,而另一些商品供不应求的局面,这种局面必然会给超市带来巨大的经济损失。
有些超市为了避免这样的情况发生,就会对物流管理投入大量的人力。
虽然这样解决了物流方面的问题,但是这又有悖于管理学的原则,效率低,浪费了人力资源,解决不了根本性的问题。
所以,我们引入物流管理信息系统,通过Internet加强超市与供货商之间的信息连接,帮助超市完成物流管理。
经过以上分析,本系统必须具有以下功能:●销售人员可以通过系统将销售量,库存量报告给经理●顾客可通过系统传达需求量信息●经理通过系统可以查询到销售,库存,需求的信息●系统通过网络与供货商传递价格,需求量等信息●系统可以作信息分析●经理查询数据分析,并作出决策(2)顾客难与超市互动,使购物效率大大降低。
顾客购物,最想了解的就是商品的价格和质量。
而在超市里面,销售人员数量很少,顾客无法询问到商品的优缺点,不能就商品的价格和质量进行对比,这样就降低了顾客的购买欲。
还有,很多顾客对超市货物摆放的位置不了解,常常会因为要去找某个商品而耽误大量时间,给顾客购物造成了很大的不便。
小型超市管理系统需求分析

小型超市管理系统需求分析超市管理系统需求分析说明书1 绪言超市随着市场经济和现代信息技术的的发展,不可必要的要卷入信息现代化的大潮,如何使用现代化的工具,使企业和经营者个人在最小的投入下获取最大的回报,成为每一个人的梦想。
因此,在超市管理中引进现代化的办公软件,就成为时下最好的解决办法。
使用软件办公,不仅能使经营者的劳力资本减少,同时能使超市的管理更规范更合理,解决了超市中用于管理进出货以及购买、库存等众多繁琐、工作量巨大从而导致耗费人员过多,超市经营紊乱等众多问题。
2 编写目的1)使广大的超市工作者脱离手工劳动,通过计算机使超市货物管理信息化。
2)提高小型超市竞争力,保持小型超市持续发展的优势。
3)提供灵活、方便的操作。
4)节约商品管理的成本,提高商品管理的效率。
5)为企业实现整体信息化的其他相关系统提供必要的数据支持。
3 功能需求本系统的功能如下:销售人员: 销售管理:商品录入。
管理者:管理者可以进行下列管理:进货管理:根据销售情况及库存情况,制定进货计划,可以避免盲目进货造成商品积压.按计划单有选择性地进货.进行商品入库登记.销售管理:商品录入。
综合查询各种销售明细记录、营业员收银记录以及结帐情况等。
库存管理:综合查询库存明细记录。
员工管理:员工个人信息管理,员工操作权限管理。
4 性能需求系统运行环境要求:1硬件环境A.一台Pentium 4 cpu 以上的微机及兼容B.内存256MB以上(最好1GB内存)C.硬盘空间:40GB2软件环境A.操作系统:windows 98 以上的操作系统B.开发软件:Microsoft Visual Studio 2008C.数据库:Microsoft Sql Server 20055 系统层次模块图“超市管理系统“主要分为登录、用户管理、进货管理、库存管理、销售管理、销售录入等6个模块。
系统主模块功能如下图所示。
系统功能模块图:登录模块输入用户名称和密码,如果用户名、密码正确,则允许进入主控制平台;并根据相应的用户权限,显示相应的界面,如果密码错误则给出信息提示,重新输入。
《2024年沃尔玛超市库存管理系统分析与设计》范文

《沃尔玛超市库存管理系统分析与设计》篇一一、引言随着零售业的快速发展,库存管理已成为超市运营中不可或缺的一环。
沃尔玛超市作为全球最大的零售商之一,其库存管理系统的效能直接关系到超市的运营效率和客户满意度。
本文将对沃尔玛超市库存管理系统进行详细分析,并提出一种设计方案,以期提升库存管理效率和效果。
二、沃尔玛超市库存管理现状分析1. 业务需求分析沃尔玛超市的库存管理涉及到商品的采购、入库、存储、销售、退货等环节。
由于超市业务规模庞大,商品种类繁多,库存管理面临着巨大的挑战。
此外,随着电子商务的快速发展,线上销售和线下实体店的库存管理也需要统一协调。
2. 现有系统分析沃尔玛超市目前采用的库存管理系统在一定程度上能够满足业务需求,但存在以下问题:(1)信息更新不及时:由于数据传输和处理的延迟,导致库存信息不准确,影响销售和采购决策。
(2)管理效率低下:人工操作和纸质记录的方式导致管理效率低下,难以满足快速变化的业务需求。
(3)缺乏数据分析:现有系统缺乏对库存数据的深入分析,无法为决策提供有力支持。
三、库存管理系统设计目标针对现有系统的问题,沃尔玛超市库存管理系统设计的目标如下:1. 提高信息更新速度和准确性:通过优化数据传输和处理流程,确保库存信息实时更新,提高准确性。
2. 提高管理效率:通过引入自动化、智能化的管理手段,减少人工操作和纸质记录,提高管理效率。
3. 强化数据分析:通过对库存数据进行深入分析,为决策提供有力支持。
四、库存管理系统设计方案1. 系统架构设计系统采用分布式架构,将数据存储、处理和分析等功能分散到不同的服务器上,以提高系统的可扩展性和稳定性。
同时,采用云计算技术,实现线上线下库存数据的统一管理和分析。
2. 数据库设计数据库采用关系型数据库和非关系型数据库相结合的方式,以适应不同类型的数据存储需求。
数据库应具备高效的数据处理能力和良好的扩展性。
3. 功能模块设计(1)采购管理模块:实现供应商信息管理、采购订单处理、到货验收等功能。
超市管理系统需求分析与详细设计

超市管理系统需求分析与详细设计一、引言超市作为零售行业的重要组成部分,为了提高经营效率和服务质量,需要一个高效的管理系统来支持其日常运营。
本文将对超市管理系统的需求进行分析,并进行详细设计,以满足超市管理的各项需求。
二、需求分析1. 用户管理超市管理系统需要支持用户管理功能,包括管理员和普通员工的账号管理、权限设置等。
管理员可以添加、删除和修改员工账号,并设置不同的权限级别。
2. 商品管理超市管理系统需要支持商品管理功能,包括商品信息的录入、修改和删除。
每个商品应包含名称、价格、库存量等基本信息,并支持商品分类的管理。
3. 库存管理超市管理系统需要支持库存管理功能,包括库存的实时监控、库存预警和进货管理。
系统应能够自动计算商品的销售量和库存量,并提供库存不足时的自动补货功能。
4. 销售管理超市管理系统需要支持销售管理功能,包括销售单据的录入、查询和统计。
系统应能够记录每笔销售的商品信息、销售数量和销售金额,并能够生成销售报表和统计分析。
5. 会员管理超市管理系统需要支持会员管理功能,包括会员信息的录入、修改和删除。
系统应能够为会员提供积分管理、优惠券发放和消费记录查询等服务。
6. 收银管理超市管理系统需要支持收银管理功能,包括商品扫码、计算价格、打印小票和处理支付等操作。
系统应能够支持不同支付方式(如现金、银行卡、支付宝等)的接入,并提供收银员的工作统计和考核功能。
7. 报表管理超市管理系统需要支持报表管理功能,包括销售报表、库存报表和财务报表等。
系统应能够根据需求生成各类报表,并支持报表的导出和打印。
三、详细设计1. 系统架构超市管理系统采用B/S架构,前端使用HTML、CSS和JavaScript进行开发,后端使用Java语言和MySQL数据库进行开发。
2. 页面设计系统应具有简洁明了的页面设计,包括主页、用户管理、商品管理、库存管理、销售管理、会员管理、收银管理和报表管理等模块。
每个模块应具有相应的功能按钮和查询条件,方便用户进行操作和查询。
超市进销存管理系统-需求分析

1 前言超市作为人们日常生活不可或缺的一部分,而且随着经济的发展,超市的规模越来越大,商品的种类也越来越纷杂,一个高效实用的超市管理系统至关重要。
超市管理系统能帮助管理人员快速有效的管理进货,销售,库存,商品进销结算等各项业务,能极大的提高超市管理的高效性,实时性,安全性,科学性和智能化程度,从而降低营业成本和增加收益。
本系统大致可实现以下功能(模块):1.系统管理:包括密码验证和系统的登录与退出,还有密码修改等功能。
2.信息查询:包括进货信息和出货信息的查询,还有商品库存信息,资金结算信息查询等。
3.进出货管理:即超市日常进出货操作,包括进货和前台销售两个子管理系统。
4.商品信息管理:包括商品进出售的信息,销售商品的定价等。
能够执行添加,修改,删除,查询等操作。
本章将简要地说明本文档的目的、范围、参考文件和术语定义。
1.1目的本文档的目的在于给出“超市进销存管理系统”(以下简称本平台)的功能说明。
1)向用户描述“超市进销存管理系统”的功能;2)为编制后续各阶段的文档提供基本依据;3)提供给用户确认或本地化修改的基本文件;4)作为日后软件确认测试和系统验收之参考依据;5)作为日后系统维护工作基准文件。
本文档的内容涵盖了本系统的总体结构设计、软件运行环境设计、处理流程设计和软件功能设计等。
本文档的使用者包括本系统用户、需求分析人员、项目管理人员、软件设计人员、软件质量控制人员以及软件维护人员。
1.2范围软件产品名称:超市进销存管理系统V1.0通过使用本软件产品,能完成如下功能:1.采购员能实时得知库存不足的商品列表,方便进行采购2.经理能得到实时的营业分析,查看商品销售和采购情况,实时调整经营策略3.系统能对销售和采购单据进行有效管理,支持用户随时进行查询和统计4.前台POS系统能对售出的商品进行方便快捷的结算,且能与会员管理系统进行联接,支持会员功能5.管理员(业务员)能实时查看商品的库存动态,实时设置商品信息。
超市管理系统需求分析说明书

超市管理系统需求分析目录1.引言 (2)1.1 编写目的 (2)1.2 背景 (2)1.3 定义 (2)2.任务概括 (3)2.1目标 (3)2.2用户特点 (3)2.3假定和限制 (3)2.3.1开发技术可行性 (3)2.3.2 经济可行性 (4)2.3.3 操作可行性 (4)3.需求规定 (5)3.1 信息与功能描述 (5)3.1.1 用户流程分析 (5)3.1.2 用户业务需求分析 (5)3.2 系统概要分析 (6)3.2.1业务流程分析 (6)3.2.2系统数据流分析 (8)3.2.3数据字典 (11)3.2.4 功能需要 (12)3.2.5 性能需要 (13)3.2.6 运行需要 (13)3.3 系统详细设计 (13)3.3.1系统功能结构图 (13)3.3.2系统功能设计 (14)3.3.3系统数据库设计 (15)3.3.3.1数据项分析 (15)3.3.3.2 E-R模型 (15)3.3.3.3 数据表的设计 (16)3.3.4 模块功能设计 (18)3.3.4.1 登录模块 (18)3.3.4.3. 销售管理模块 (20)3.3.4.4. 库存管理模块 (22)3.3.4.5. 职工管理模块 (25)3.3.4.6. 供货商信息管理模块 (28)4. 运行环境规定 (31)1。
引言随着信息社会的高速发展,得益于软件工程技术的发展和逐渐普及,各种软件系统及其开发的产品逐渐在普及我们生活的各个领域。
各种管理系统MIS(Manager Information System)受到人们的广泛关注。
在人们日益关注时间和效益的今天,传统手工录入数据的方式极大地影响了工作效率、录入数据的准确性、完整性、安全性,落后于时代发展的需求。
利用先进的超市管理系统替代传统手工录入数据,对超市日常活动信息进行管理,将极大地提高超市工作效率,节约人力物力成本。
1。
1 编写目的本需求分析说明书主要是向超市员工及管理人员详细说明系统主要构造。
超市管理系统需求分析报告

超市管理系统需求分析报告超市管理系统需求分析报告姓名:冯雪君班级:0791111报告科目:软件工程1、任务:分析员通过需求分析提供一种可转化为数据设计、结构设计和过程设计的数据与功能表示,在软件完成后,需求分析阶段研究的对象是软件项目的用户要求,使系统分析员知道要做什么.系统分析人员首先与用户协商,知道用户对开发本系统的要求。
从而进一步的得到具体的信息,分析超市管理系统对数据上的要求,大体的知道系统的面貌,为软件设计做出前提。
根据用户的要求和具体的数据,在当前管理系统能够实现的各功能基础上,画出系统的逻辑模型即数据流图,这样可以使得该系统变得更直观,以便后续软件开发更易的开展下去。
2、目的:经过需求分析阶段的工作,分析员对目标系统有了更深入更具体的认识,已经能对系统的成本预算和系统的进度做出更准确的估计。
通过需求分析可以让系统开发人员更好的与用户进行交流,了解到用户更详细的需求,能够使系统的开发得到更高的效率。
而且通过需求分析,可以把软件功能和性能的总体概念描述为具体的软件需求规格说明,进而建立软件开发的基础.3、规格说明1数据流图:数据流图是表示系统逻辑模型的工具,图中不存在任何具3。
体的物理元素只表示信息在系统中流动和处理的情况。
将制定好的方案交给人事部根据检查结果制定方案职员需求检查职人事部审招聘解聘方案员档案批招聘解聘职员人事任用修改职员记录职工档案职工档案图3-1—1 超市人事管理系统数据流图检查存货量是否满足需求量根据需求量进货货物需求量领导审检查存进货计划批货量审批通过销售接货存提货取储款进货进货销售记录文件图3-1—2 超市货物管理系统流图3。
2 数据字典:数据字典是用来解释和说明数据流图的,它在软件分析和设计的过程中给人提供关于数据的描述,在数据流程图上描述了系统由那几部分组成,各部分之间的联系等,但并未说明各个元素的含义与包含的内容. 它于数据流图共同构成系统的逻辑模型,没有数据流图数据字典也难以发挥作用。
C语言程序设计超市管理系统

程序设计——超市管理系统学院:专业:班级:姓名:学号:指导老师:超市管理系统课程设计1)需求分析:设计题目:超市管理系统设计要求:有一个小型超市,出售N(N>=10)种商品,设计并实现一个系统系统功能需求分析:1.保存及输出:超市中的各种商品信息保存在指定文件中,可以把它们输出显示。
2.计算并排序:计算每类商品的总价值(sum,单精度)及平均价(aver,单精度,输出一位小数),将每类商品按平均价从大到小的顺序排序打印出来。
3.统计:统计输出库存量低于100的货号及类别。
统计输出有两种以上(含两种)商品库存量低于100的商品类别。
2)概要设计:系统总体设计框架:系统功能模块图:3)详细设计:主要功能模块的算法设计思路:本程序主要分为八个模块:主模块、信息输出修改模块、新建信息模块、排序模块、计算模块、统计模块1、统计模块2、打印模块。
1)主模块:通过调用各分模块实现功能;2)信息输出修改模块:输出显示文件中商品信息内容,添加商品信息,删除商品信息,修改商品信息;3)新建商品信息模块:建立一个新结构体,为链表存信息用,并且将信息保存在指定的文件中;4)排序模块:把文件中顺序零乱的商品信息按单价的大小从高到低进行排序,放到链表里存储;5)计算模块:将所有商品的价格与库存量进行累加求和;6)打印模块:将商品信息按每类平均价格排序(从高到低)按顺序打印出来;7)统计模块1:统计库存量低于100的货名及类别;8)统计模块2:统计商品库存量有2种以上(含2种)低于100的商品类别工作流程图:4)主要源程序代码:#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,&p 1->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 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->kin d,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,&p 4->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; /*结束程序*/ }5)调试分析过程描述:测试数据:01 milk drink 2.5 box 502 apple fruit 3 kilo 2测试输出结果:存在问题的思考:源代码出错,漏了一些分号导致程序频频出错,在进行编写时注意小地方别出错!否则会影响大局!6)总结:学习体会与收获:通过这个超市管理系统程序设计实验,我从理论知识跨越到实践上,感到收效良多,从崇拜计算机到学会控制计算机,在心理上不再觉得计算机是万能的,人的大脑才是万能的,算法才是万能的数学才是万能的,在这次实验中,实现一个完整的程序大大加深了我对C语言课程的兴趣!对C语言课程设计的认识以及自己的建议:C语言课程设计就是通过编译实现需要的功能的一种程序的设计,建议自己以后在这方面多下功夫,真正实现自己编译以个完整的C程序,实现自己的梦想和未来!。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
超市管理系统需求分析文保31 吕建辉目录1项目计划1.1系统开发目的1.2背景说明1.3项目确立2逻辑分析与详细分析2.1需求分析2.2目标2.3数据流程图2.4系统功能2.5系统开发步骤2.6用户的特点2.7假定与约束3基于UML的建模3.1语义规则3.2UML模型3.2.1系统UML模型3.2.2子系统UML模型3.2.3系统实现图4小结1项目计划1.1系统开发目的(1) 大大提高超市的运作效率。
(2) 通过全面的信息采集和处理,辅助提高超市的决策水平。
(3) 使用本系统,可以迅速提升超市的管理水平,为降低经营成本,提高效益,增强超市扩张能力,提供有效的技术保障。
1.2背景说明21世纪,超市的竞争也进入到了一个全新的领域,竞争已不再是规模的竞争,而是技术的竞争、管理的竞争、人才的竞争。
技术的提升和管理的升级是连锁超市业的竞争核心。
零售领域目前呈多元发展趋势,多种业态:超市、仓储店、便利店、特许加盟店、专卖店、货仓等相互并存。
如何在激烈的竞争中扩大销售额、降低经营成本、扩大经营规模,成为××超市努力追求的目标。
1.3项目确立针对超市的特点,为了帮助超市解决现在面临的问题,提高超市的竞争力,我们将开发以下7个系统:“总公司管理系统”,“超市(连锁店)管理系统”,“零售前台(POS)管理系统”,“物流管理系统”,“帐务结算系统”,“总服务台系统”,“总经理查询系统”。
2逻辑分析与详细分析2.1需求分析超市的发展必需要解决以下问题:(1)物流管理方式落后,很难根据销售、库存情况,及时进行配货、补货、退货、调拨。
经过我们的调查发现,××超市在物流管理方面,仍使用传统的人工管理模式,浪费人力资源,效率低,准确率低。
有些商品紧缺,顾客要排队购买或商品供不应求,使顾客大为不满,还有一些商品,长期积压,损坏严重,造成重大经济损失,引起销售人员的极大不满,以多次向超市管理人员反映,但此类问题仍屡屡发生,得不到根本性的解决,已引起总经理的高度重视。
连锁超市是以零售为前导,以商品进销,存配,流转管理为基础。
一个大型超市,它的物流管理势必非常复杂,如果没有一个强大的信息系统来支持,那么就会造成一部分商品大量积压,而另一些商品供不应求的局面,这种局面必然会给超市带来巨大的经济损失。
有些超市为了避免这样的情况发生,就会对物流管理投入大量的人力。
虽然这样解决了物流方面的问题,但是这又有悖于管理学的原则,效率低,浪费了人力资源,解决不了根本性的问题。
所以,我们引入物流管理信息系统,通过Internet加强超市与供货商之间的信息连接,帮助超市完成物流管理。
经过以上分析,本系统必须具有以下功能:●销售人员可以通过系统将销售量,库存量报告给经理●顾客可通过系统传达需求量信息●经理通过系统可以查询到销售,库存,需求的信息●系统通过网络与供货商传递价格,需求量等信息●系统可以作信息分析●经理查询数据分析,并作出决策(2)顾客难与超市互动,使购物效率大大降低。
顾客购物,最想了解的就是商品的价格和质量。
而在超市里面,销售人员数量很少,顾客无法询问到商品的优缺点,不能就商品的价格和质量进行对比,这样就降低了顾客的购买欲。
还有,很多顾客对超市货物摆放的位置不了解,常常会因为要去找某个商品而耽误大量时间,给顾客购物造成了很大的不便。
还有一些大超市,在购物高峰期,经常出现收费台收费速度跟不上,造成顾客缴费时拥挤不堪,排很长的队伍。
超市应有会员服务,对会员的管理也是一个复杂的问题。
经过我们调查,××超市由于规模较大,上述这些问题都存在,且比较严重。
针对以上问题,我们开发了零售前台(POS)管理系统,使顾客购物更加方便。
经过以上分析,本系统必须具有以下功能:●建立POS零售系统●顾客可从导购台上,通过触摸屏,查询到商场介绍、营业区分布,商品购买指南,声文并茂地获得所需的信息,查询信息内容可定制。
●通过安装条码扫描仪,顾客可从查询机上查到商品价格,有关商品证书等通过输入密码,超收工作人员可以进行盘货,核对价格。
●支持多种收款方式:顾客交款、营业员交款。
●支持会员制折扣卡销售,可以采用严格会员制或自由会员制。
●记录顾客信息、累计顾客消费金额等功能。
●支持多种付款方式:现金、支票、信用卡IC卡、信用卡磁卡、记帐、赠券等。
可同银行提供的数据接口直接进行数据交换。
●支持多种促销方式:折扣、折让、VIP优惠卡、赠送。
●允许退货及错误更正。
●收款员非常规操作记录,有助于减少财务损失,方便汇总打印各种营业报表。
●前台交易开单、收款、退货、会员卡、折扣和优惠等●下载后台资料和将清款后的业务数据上传后台●完成前台交易中的扫描条码或输入商品编码、收款、打印收据、弹出银箱等一系列操作(3)财务,帐目管理混乱,透明度低。
××超市财务管理一直都存在一些问题:●财务人员工作量大:大量的报表:日报表:收款员明细日报表;收银员部门日报表收款机明细日报表;收款机部门日报表营业员明细日报表;大类时段分析表日商品实时明细表;日商品销售排名表供应商日销售明细;日商品优惠明细表;日商品退货表月报表:月度分类统计表月商品销售排名表月商品优惠统计表月商品退货统计表结账:商品帐、柜组帐、部门帐、客户帐。
帐务平衡检查帐务规则检查检查各个部门是否有违规操作统计报表提供各种报表,包括常用报表和自定义报表●财务管理不透明针对以上问题,我们开发了帐务结算系统,帮助超市进行财务管理。
经过以上分析,本系统必须具有以下功能:●报表,结帐,进货退货表可自动运行,减少系统管理员的工作量●可及时发现计算机系统或人为造成的错误●生成监测报告通知系统管理员(4)系统安全问题信息系统尽管功能强大,技术先进,但由于受到自身体系结构,设计思路以及运行机制等限制,也隐含许多不安全因素。
常见因素有:数据的输入,输出,存取与备份,源程序以及应用软件,数据库,操作系统等漏洞或缺陷,硬件,通信部分的漏洞,企业内部人员的因素,病毒,“黑客”等因素。
因此,为使本系统能够真正安全,可靠,稳定地工作,必须考虑如下问题:●为保证安全,不致使系统遭到意外事故的损害,系统因该能防止火,盗或其他形式的人为破坏●系统要能重建●系统应该是可审查的●系统应能进行有效控制,抗干扰能力强●系统使用者的使用权限是可识别的2.2目标(1)顾客可从导购台上,通过触摸屏,查询到超市介绍、营业区分布,商品购买指南,声文并茂地获得所需的信息,也可通过零售POS系统实现多种购物方式。
(2)提高工作人员的正确性,省略了手工核对的工作量。
(3)超市管理者从繁重的传统式经营管理中解脱出来,并且有更多的时间从事于管理工作,工作重心逐渐转到管理上来,进一步提高了工作效率。
(4)采购人员查询本系统,可以更直接、有效地获得商品情况,了解到商品是否畅销或滞销。
(5)销售管理人员根据商品的销售情况进行分析,以进行下一次的销售计划。
(6)财务人员能更加清楚地了解库存情况、帐款余额、毛利等财务数据,通过更好地控制成本和费用,提高资金周转率。
(7)超市管理者把握住商品的进销存动态,对超市各种资源的流转进行更好的控制和发展。
2.3数据流程图通过对超市现行的人工系统经过调查研究后,已经基本了解了超市的业务过程,而且也知道了超市经理想利用系统进行业务管理的想法和要求。
在这个基础上,我提出了这个系统,它可以由下面“总公司管理系统”,“超市(连锁店)管理系统”,“零售前台(POS)管理系统”,“物流管理系统”,“帐务结算系统”,“总服务台系统”,“总经理查询系统”7个子系统组成,并且确定了系统的主要逻辑功能和基本目标,详细情况见系统功能。
限于篇幅,现只将物流管理系统功能概括如下:●商品销售信息直接输入系统●商品库存量输入系统●顾客购买的商品,如果脱销,则将商品名称编号输入系统●通知物流管理部门向供货商订货●物流管理部门根据要求,将待定商品汇总,填写多份订货单●当受到供货商的发货单时,物流管理部门根据要求验收●验收后,把与每种商品有关的数据,如名称,编号,数量,单价,供应商名称等记录到应付款帐目中●将验收商品入库,并修改库存量●帐务管理系统收到供应商的应付款通知单后,要与应付款明细帐核对,正确无误后才能付款●修改会计总帐●按周,月,年定期编制库存,销售,会计报表,提交给超市经理●经理可随时查询库存量,销售量和业务情况根据上述内容,首先确定系统的外部项,其次要确定系统的输入和输出,最后逐层画出数据流程图。
该系统的外部项共有4个:顾客,销售人员,供货商,超市经理。
系统输入/输出表第一层数据流程图要反映超市最主要的业务,这是我们无须详细描述主要的业务处理。
这个地方外不想使顾客和供应商。
该图表示系统从顾客那里接受购物要求,把书卖给顾客。
当货存不足时,超市便向供货商发出订货要求,以满足销售的需要。
但是该图没有反映帐务,“销售”和“采购”也没有分开表示,只是高度概括地反映了超市的业务,需要做进一步扩展。
输入 来源 输出去处定货单 顾客 不合格订单业务员或顾客付款 顾客 发货单 顾客 到货通知单 供应商 发票 顾客 付款通知单 供应商 付款 供应商 电话咨询顾客 报表经理 公司情况查询经理商品库存量经理下图是扩展后的第二层数据流程图。
由图可知,该系统的主要逻辑功能(子系统)有五个:“超市(连锁店)管理系统”,“零售前台(POS)管理系统”,“物流管理系统”,“帐务结算系统”,“总服务台系统”。
主要外部项有两个:顾客和供应商。
当顾客的订货要求被接受以后,就要按照顾客所购商品以及需要的数量查找库存量,取定是否能够满足顾客的订货要求。
如果能够完全满足,就给顾客开发货单,并修改相应的商品库存量;同时还要通知财务部门作帐。
如果只能满足一部分或完全不能满足顾客要求,就把不能满足的商品记录下来,并通知物流管理部门,及时向供货商发出订货要求。
当供应商接到超市的订货要求,把商品发过来,物流管理部门要办入库手续,修改库存量,同时向销售部门发出到货通知。
财务部门接到供货商的发货通知单后,应该准备办理付款业务,并作帐。
2.4系统功能1. 总公司管理系统充分利用数据库的大容量、高效率等特点,为用户提供强大的功能支持,对超市进货业务、库房业务进行管理,并处理分公司销售数据和后台批发业务,利用商业流通超市的商品管理和往来客户管理,为经营管理者提供分析与决策必需的数据和信息。
该系统包含五个对象,包括:超市经理,营业员,财务管理人员,供货商,客户。
系统用例:超市经理:销售管理,货源(物流)管理,财务管理营业员:销售管理,因为要向系统提供货架管理信息,所以也参与货源管理财务管理人员:具体财务管理供货商:货源(物流)管理财务管理包含:报表,进货退伙表,结帐销售管理包含:货架管理,会员管理,结帐/使用POS机,商品查询货源(物流)管理:供货,货源调查,请求配送详见用例图和类图2. 超市(连锁店)管理系统接收总公司(配送中心)发送过来的数据,并将本地发生的业务数据上传到总部。