中小型超市管理系统修订版.docx
- 文档编号:10052537
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:43
- 大小:1.79MB
中小型超市管理系统修订版.docx
《中小型超市管理系统修订版.docx》由会员分享,可在线阅读,更多相关《中小型超市管理系统修订版.docx(43页珍藏版)》请在冰豆网上搜索。
中小型超市管理系统修订版
第1章绪论
1.1社会背景
随着现代科学技术的迅猛开展,计算机技术已经渗透到各个领域,成为各行业必不可少的工具,特别是Internet技术的推广和信息高速公路的建立,使IT产业在市场竞争中越发显示出其独特的优势,步入信息化时代,有巨大的数据信息等待加工处理和传输,这使得对书数据库的进一步开发和利用显得尤为迫切。
作为国内市场的一些中小型超市,它们在信息化过程中的步伐要落后于大中型超市,而对于这些企业的资源管理,信息的存储和处理也显得迫切需要,要适应市场竞争,就需要有高效的处理方式和管理方法,因此加快超市的信息化进程是必可少的。
实习期间,我通过对市场的调查,针对现在各中小型超市对经营业务和人事管理的实际需要,开发了这套超市管理系统。
在开发过程中,我们针对当前各超市管理的特点和技术人员的实际水平,采用基于Windows图形用户界面这一易学易用的操作环境,在系统设计过程中,我们尽量采用易懂易读的人机界面,使用户可以在短期内完全掌握。
我又始终发系统的正确性放在首位,力求数据的完整和处理的正确性。
在此根底上优化程序代码,加速系统运行和减少对系统资源的占用。
1.2超市背景
在我国超市形成在20世纪90年代初期,现在已经成为我国零售业的一种重要形态,为国民经济的开展发挥了重要的作用。
随着超市高速的开展,其经营管理也变得愈加复杂,早期的售货员站柜台的形式早已不能满足现有销售也的开展,这样就迫切地需要引入新的管理技术。
超市形态具有种种优点,但在目前状况下,它仍存在零售业企业所共有的落后的一面,如:
不能有效地管理每种商品,收款结算速度慢,容易出现营业过失,不宜进行商品调价,盘点效率低等,而且在超市日常管理中,商品的进、销、存等决策以经验为主,缺乏实时分析功能,管理人员对及时传递资料的要求始终得不到满足。
苏辙超市形态的高速开展,其经营管理也变得愈加复杂,日常所需要处理的数据量也逐渐增大,商业运转的中间环节也越来越多,原始的人工管理已无法应对这复杂的市场。
为此,在选题过程中,我选择了超市管理系统设计题目,依靠现代化的计算机信息处理技术来管理超市,从而节省了大量的人力、物力,改善了员工的工作条件,减轻了劳动强度,并且能够快速反映出商品的进、销、存等状况和各种反应信息分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率。
1.3可行性分析
1.技术可行性分析:
该系统采用MicrosoftVisualStudio2021作为开发工具,它们功能强大、开发简便,支持.NET4.0Framework、LINQ技术和AJAX技术。
尤其是LINQ技术更方便编程人员对数据库中的数据进行操作,使开发效率更高。
利用MicrosoftSQL2021软件作为数据库软件,SQL2021的强大和易用性联合VS2021在实现上更加方便。
因此超市管理系统在技术上是可行的。
2.经济可行性分析:
因为通过网络传递销售信息可以不受距离的限制,因此可以借阅许多的人力和物力,方便管理,由此可以减少不必要的开支,同时该系统可以提高超市的销售效率,即提高了超市的经济效益,所以从经济上完全是可行的。
3.操作可行性分析:
本系统采用基于Windows的图形用户界面,而该系统是大家熟悉的操作系统,对于那些有一般的计算机知识的人员就可以轻松上手。
而整个超市管理系统采用最友好的交互界面,简介明了,不需要对数据库进行深入的了解。
第2章系统需求分析
2.1用户功能需求分析
该系统主要针对四种用户的登录使用,分别是营业员,店铺管理员,超级管理员,会员管理员。
他们分别实现以下功能:
营业员通过刷条形码显示商品的所有信息,包括价格和折扣率,自动根据所有商品计算出商品总额,支付时如果有会员卡可以用会员卡里的现金支付或者使用会员卡的积分打折,结完账后自动更新会员卡中的金额和积分。
当遇到顾客突然不要某些商品时可以进行该商品的删除,或者当顾客要重新回去拿某些忘买的商品时可以对该顾客的账单进行挂单操作。
当营业员离开时可以锁定系统,重新进入系统需要输入密码。
还可以进行换岗操作。
店铺管理员可以注册营业员的信息,也可以对自己账户的信息进行修改。
可以对营业员的信息进行管理,可以对不同营业员的营业信息进行查询,包括勤务考核和营业状况,同时还可以对营业利润查询,包括按日查询和按月查询,统计利润总额。
对商品进行管理,包括添加商品,管理商品,添加商品类型,管理商品类型,添加货源公司,管理货源公司。
对超市存货进行查看,可以显示商品数量低于一定值的商品。
超级管理员可以对分店进行管理,查看分店的营业情况。
对分店管理员进行注册和管理,对会员积分,会员折扣和会员期限的设置。
对个人信息的修改。
会员管理员添加会员,管理会员,会员卡的充值,挂失,解锁,挂失。
2.2系统性能要求
1.平安性
该系统的平安性主要是防止他人非法进入系统,从而保证了数据的平安性,数据存储的完整性和数据的可靠性。
设置四种不同的身份进行登录,超级管理员,店铺管理员,营业员和会员管理员;系统也设立了数据备份和恢复机制,从一定程度上可以降低数据的损坏程度。
2.高效性
使用超市管理系统可以快速查询超市的营业情况以及每个营业员的考勤及营业情况,还可以查看货物的剩余和销售情况,可以适时的根据货物的营业情况进行调整进货措施。
3.便捷性
本系统的界面友好,操作方便,能够到达所见即所得的效果,方便用户的使用。
2.3系统用例图分析
整个超市管理系统分为四个模块,营业模块,店铺管理员模块,超级管理员模块和会员管理模块。
营业模块用例图如图2-1所示:
图2-1营业模块用例图
店铺管理员模块用例图如图2-2所示:
图2-2店铺管理员模块用例图
超级管理员模块用例图如图2-3所示:
图2-3超级管理员模块用例图
会员管理模块用例图如图2-4所示:
图2-4会员管理模块用例图
第3章系统概要设计
3.1设计思想
1.系统分成几个相对独立的模块,但这些模块都进行集中式管理。
2.分层的模块化程序设计思想,整个系统采用模块化结构设计。
作为应用程序有较强的可操作性和扩展性。
3.数据流设计,在应用系统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统平安性。
3.2系统功能结构图
系统总体结构如图3-1所示:
图3-1超市管理系统功能结构图
3.3系统功能模块分析
本系统主要分为营业模块,店铺管理员模块,超级管理员模块和会员管理模块四个功能模块。
3.3.1营业模块
可以自动计算商品总额,根据会员卡对商品进行打折。
使用会员卡支付,打印回单等
3.3.2店铺管理员模块
可以对自己和营业员的信息进行修改和管理;可以对不同营业员的营业信息进行查询,包括勤务考核和营业利润;还可以查询总的营业利润,对商品进行添加,修改,商品类型的添加和修改和货源公司的添加和修改;查看商品库存。
3.3.3超级管理员模块
可以对分店进行管理,查看分店的营业情况。
对分店管理员进行注册和管理,对会员积分,会员折扣和会员期限的设置。
3.3.4会员管理模块
可以添加会员,管理会员,对会员卡的充值,挂失,解锁,挂失。
3.4设计原那么
为了使本系统功能齐全完备,操作简便,最大限度的提高软件的质量,从而满足用户的实际需要,在设计开发过程中遵循了如下原那么:
1.合法性原那么:
依据产品核算系统的工作规定以及要求,参照核算实际的工作情况,进行诸如产品进货、销售等工作。
2.实用性原那么:
适合产品信息管理工作的实际需求,并能够处理一些特殊情况的要求,此外,尽可能预留空间,以便扩充功能。
3.准确性原那么:
对输入的相关资料建立检错机制,及时报错,使用户能够及时准确的输入合法资料。
4.易操作原那么:
要求设计的系统功能齐全,界面友好,操作方便,必要的地方进行提示。
5.平安性原那么:
可以为该系统的用户设置用户权限。
3.5业务流程分析
超市管理系统主要是是以先进的管理理念和科学的计算机技术来取代原始的手工操作。
在新系统开发前,我们对这个超市管理系统业务流程进行了系统的调查,得出了下面的几个业务模块的流程图。
营业员模块流程图如图3-2所示:
图3-2营业界面流程图
店铺管理员模块流程图如图3-3所示:
图3-3店铺管理员流程图
超级管理员模块流程图如图3-4所示:
图3-4超级管理员流程图
会员管理模块流程图如图3-5所示:
图3-5会员管理员流程图
第4章系统详细设计
4.1数据库设计
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。
合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。
本系统主要用到了以下8张表:
1.用户信息表:
图4-1用户表
2.用户日志表:
图4-2用户日志表
3.销售日志表:
图4-3销售日志表
4.会员表:
图4-4会员表
5.会员日志表:
图4-5会员日志表
6.会员管理日志表:
图4-6会员日志管理表
7.商品信息表:
图4-7商品信息表
8.货源信息表
图4-8货源信息表
4.2系统功能设计
登录界面:
图4-9登录界面
代码说明:
publicpartialclassLogin:
Form
{
publicstaticstringusername=null;
publicLogin()
{
InitializeComponent();
}
LoginAndUserl=newLoginAndUser();
publicstaticDateTimelasttime;
publicstaticintflag=0;
privatevoidbutton1_Click(objectsender,EventArgse)//登陆
{
username=ID.Text.Trim();
stringpassword=Pwd.Text.Trim();
lasttime=DateTime.Now;
if(l.judgeUsernameIsExist(username)==true)//判断是否存在该用户名
{
if(l.judgeUserNameAndPassword(username,password)==true)//判断用密码是否正确
{
if(l.getUserAllow(username)==1)//用户允许位为1
{
if(l.getUserFlag(username)==0)//标志位0,被禁用
{
MessageBox.Show("不好意思,该账号已被禁用!
","提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Information);
}
else
{
stringshopName=l.getShopNameByUsername(username);
intshopID=l.getShopIDByName(shopName);
if(l.getShopFlag(shopID)==1)
{
l.AddLoginCount(username);//增加用户登录次数
if(l.getUserTypeName(username)=="营业员")
{
this.Hide();
Choicec=newChoice();
c.ShowDialog();
}
elseif(l.getUserTypeName(username)=="分店管理员")
{
l.UpdateLastLoginTime(username);
this.Hide();
ShopManageStageab=newShopManageStage();
ab.ShowDialog();
}
elseif(l.getUserTypeName(username)=="超级管理员")
{
l.UpdateLastLoginTime(username);
this.Hide();
SuperManageBStagesm=newSuperManageBStage();
sm.ShowDialog();
}
elseif(l.getUserTypeName(username)=="会员管理员")
{
l.UpdateLastLoginTime(username);
this.Hide();
MemberCenterm=newMemberCenter();
m.ShowDialog();
}
}
else
{
MessageBox.Show("该商店已禁用!
","提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Information);
}
}
}
else//密码错误
{
MessageBox.Show("待审核。
。
。
。
","提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Information);
}
}
else
{
if(MessageBox.Show("密码错误!
","警告",MessageBoxButtons.RetryCancel,MessageBoxIcon.Information)==DialogResult.Retry)
{
Pwd.Clear();
}
}
}
else
{
if(MessageBox.Show("用户名不存在!
","警告",MessageBoxButtons.RetryCancel,MessageBoxIcon.Information)==DialogResult.Retry)
{
ID.Clear();
Pwd.Clear();
}
}
}
privatevoidbutton2_Click(objectsender,EventArgse)//退出
{
Application.Exit();
}
privatevoidID_TextChanged(objectsender,EventArgse)//显示头像
{
stringusername=ID.Text.Trim();
if(l.judgeUsernameIsExist(username)==false)
{
errorProvider1.SetError(ID,"用户名不存在");
}
else
{
errorProvider1.SetError(ID,null);
}
if(l.judgeUsernameIsExist(username)==true)
{
stringpath=Application.StartupPath.Substring(0,Application.StartupPath.Substring(0,Application.StartupPath.LastIndexOf('\\')).LastIndexOf('\\'));
pictureBox1.Image=Image.FromFile(path+"\\"+l.getUserPhotoUrlByUsername(username));
Pwd.Focus();
}
else
pictureBox1.Image=null;
}
privatevoidLogin_Load(objectsender,EventArgse)
{
ID.Focus();
if(l.judgeIsEnableRegister()==true)
label4.Enabled=true;
else
label4.Enabled=false;
}
//publicstaticintregister;
privatevoidlabel4_Click(objectsender,EventArgse)//注册
{
//register=1;//从登陆页点击
//this.Hide();
Registerr=newRegister();
r.ShowDialog();
}
privatevoidLogin_FormClosing(objectsender,FormClosingEventArgse)
{
if(e.CloseReason!
=CloseReason.UserClosing)return;
DialogResultda=MessageBox.Show("确定退出登陆吗?
","提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Question);
if(da==DialogResult.OK)
{
Application.Exit();
}
else
{
e.Cancel=true;
}
}
}
营业界面:
图4-10营业界面
局部代码说明:
条形码局部:
privatevoidtextBox1_TextChanged(objectsender,EventArgse)
{
stringGoodsNO=textBox1.Text.Trim();
intshopID=l.getShopIDByName(l.getShopNameByUsername(username));
if(l.judgeGoodsIsExist(GoodsNO,shopID))
{
dataGridView1.Rows.Add
(1);
stringgoodsName=l.getGoodNameByNO(GoodsNO,shopID);
doublesellprice=l.getGoodSellPriceeByNO(GoodsNO,shopID);
doublepreprice=l.getGoodPrePriceByNO(GoodsNO,shopID);
stringspe=l.getGoodSpecificationByNO(GoodsNO,shopID);
doubledis=l.getGoodDisCountByNO(GoodsNO,shopID);
//dataGridView1.AllowUserToAddRows=true;
//dataGridView1.AllowUserToAddRows=true;dataGridView1.CurrentRow.Index
dataGridView1.Rows[count].Cells[0].Value=GoodsNO;
dataGridView1.Rows[count].Cells[1].Value=goodsName;
dataGridView1.Rows[count].Cells[2].Value=sellprice;
dataGridView1.Rows[count].Cells[3].Value=1;//数量默认是1
dataGridView1.Rows[count].Cells[4].Value=spe;
dataGridView1.Rows[count].Cells[5].Value=dis;
doublenumber=Convert.ToDouble(dataGridView1.Rows[count].Cells[3].Value);
doubleheji=sellprice*dis*number;//获取此商品的总额
dataGridView1.Rows[count].Cells[6].Value=heji;
++count;
shiji+=heji;//累加合计值
yingshou=shiji;//总额赋值给实际应收值
profit+=(heji-number*preprice)*1;//一次交易所得利润
yingshou=Convert.ToDouble(string.Format("{0:
F2}",yingshou));//实际应收值保存两位小数
label16.Text=string.Format("{0:
C}",shiji);//总额
label24.Text=string.Format("{0:
C2}",yingshou);//应收
//利润,商品数量递减,所卖商品日志
textBox1.Clear();
}
}
结账局部代码:
privatevoidbutton2_Click(objectsender,EventArgse)//结账
{
if(isMember==true)//如果是会员
{
yingshou=yingshou*memberDiscount;
doublememberMoney=l.getMemberMoney(memberNo);
if(memberMoney>0)//如果会员卡金额大于0,那么提示是否使用会员卡支付
{
if(MessageBox.Show("是否使用会员卡支付?
","提示",MessageBoxButtons.YesNo)==DialogResult.Yes)//确定使用会员卡支付
{
if(memberMoney>=yingshou)//可完全用会员卡支付
{
try
{
doublenowmoney=l.getMemberMoney(memberNo)-yingshou;
l.updateMembreNowMoney(memberNo,nowmoney);//修改会员卡现有金额
temp=2;
stringsellGoods=PrintGoodsInfo();
sellGoods+="实收:
"+yingshou+"元\t"+"会员卡支付:
"+yingshou+"元\t";
if(MessageBox.Show(sellgoods,"打印",MessageBoxButtons.OK)==DialogResult.OK)
{
summoney+=yingshou;
Sumprofit+=profit;
//sumjiaomoney+=0;
jiaomoney=0;
l.addMemberJiFen(yingshou,memberNo);//增加会员卡积分
profit=Convert.ToDouble(string.Format("{0:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中小型 超市 管理 系统 修订版