中小型超市管理系统.docx

上传人:小飞机 文档编号:2014702 上传时间:2022-12-31 格式:DOCX 页数:41 大小:1.92MB
返回 下载 相关 举报
中小型超市管理系统.docx_第1页
第1页 / 共41页
中小型超市管理系统.docx_第2页
第2页 / 共41页
中小型超市管理系统.docx_第3页
第3页 / 共41页
中小型超市管理系统.docx_第4页
第4页 / 共41页
中小型超市管理系统.docx_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《中小型超市管理系统.docx》由会员分享,可在线阅读,更多相关《中小型超市管理系统.docx(41页珍藏版)》请在三一办公上搜索。

1、中小型超市管理系统目录第1章 绪论11.1社会背景11.2超市背景11.3可行性分析1第2章 系统需求分析32.1 用户功能需求分析32.2 系统性能要求32.3 系统用例图分析4第3章 系统概要设计73.1 设计思想73.2 系统功能结构图73.3 系统功能模块分析73.3.1 营业模块73.3.2 店铺管理员模块73.3.3 超级管理员模块73.3.4 会员管理模块83.4 设计原则83.5 业务流程分析8第4章 系统详细设计一三4.1 数据库设计一三4.2 系统功能设计17第5章 系统测试运行335.1 模块测试335.2 整体测试33第6章 总结34参考文献35致谢辞36第1章 绪论1

2、.1社会背景随着现代科学技术的迅猛发展,计算机技术已经渗透到各个领域,成为各行业必不可少的工具,特别是Internet技术的推广和信息高速公路的建立,使IT产业在市场竞争中越发显示出其独特的优势,步入信息化时代,有巨大的数据信息等待加工处理和传输,这使得对书数据库的进一步开发和利用显得尤为迫切。作为国内市场的一些中小型超市,它们在信息化过程中的步伐要落后于大中型超市,而对于这些企业的资源管理,信息的存储和处理也显得迫切需要,要适应市场竞争,就需要有高效的处理方式和管理方法,因此加快超市的信息化进程是必可少的。实习期间,我通过对市场的调查,针对现在各中小型超市对经营业务和人事管理的实际需要,开发

3、了这套超市管理系统。在开发过程中,我们针对当前各超市管理的特点和技术人员的实际水平,采用基于Windows图形用户界面这一易学易用的操作环境,在系统设计过程中,我们尽量采用易懂易读的人机界面,使用户可以在短期内完全掌握。我又始终发系统的正确性放在首位,力求数据的完整和处理的正确性。在此基础上优化程序代码,加速系统运行和减少对系统资源的占用。1.2超市背景在我国超市形成在20世纪90年代初期,现在已经成为我国零售业的一种重要形态,为国民经济的发展发挥了重要的作用。随着超市高速的发展,其经营管理也变得愈加复杂,早期的售货员站柜台的形式早已不能满足现有销售也的发展,这样就迫切地需要引入新的管理技术。

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

5、且能够快速反映出商品的进、销、存等状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率。1.3可行性分析 1.技术可行性分析:该系统采用 Microsoft Visual Studio 2010作为开发工具,它们功能强大、开发简便,支持.NET 4.0 Framework、LINQ技术和AJAX技术。尤其是LINQ技术更方便编程人员对数据库中的数据进行操作,使开发效率更高。利用Microsoft SQL 2008软件作为数据库软件,SQL 2008的强大和易用性联合VS 2010在实现上更加方便。因此超市管理系统在技术上是可行的。2.经济可行性分析:因为通过网

6、络传递销售信息可以不受距离的限制,因此可以借阅许多的人力和物力,方便管理,由此可以减少不必要的开支,同时该系统可以提高超市的销售效率,即提高了超市的经济效益,所以从经济上完全是可行的。3.操作可行性分析:本系统采用基于Windows的图形用户界面,而该系统是大家熟悉的操作系统,对于那些有一般的计算机知识的人员就可以轻松上手。而整个超市管理系统采用最友好的交互界面,简介明了,不需要对数据库进行深入的了解。第2章 系统需求分析2.1 用户功能需求分析 该系统主要针对四种用户的登录使用,分别是营业员,店铺管理员,超级管理员,会员管理员。他们分别实现以下功能: 营业员通过刷条形码显示商品的所有信息,包

7、括价格和折扣率,自动根据所有商品计算出商品总额,支付时如果有会员卡可以用会员卡里的现金支付或者使用会员卡的积分打折,结完账后自动更新会员卡中的金额和积分。当遇到顾客突然不要某些商品时可以进行该商品的删除,或者当顾客要重新回去拿某些忘买的商品时可以对该顾客的账单进行挂单操作。当营业员离开时可以锁定系统,重新进入系统需要输入密码。还可以进行换岗操作。店铺管理员可以注册营业员的信息,也可以对自己账户的信息进行修改。可以对营业员的信息进行管理,可以对不同营业员的营业信息进行查询,包括勤务考核和营业状况,同时还可以对营业利润查询,包括按日查询和按月查询,统计利润总额。对商品进行管理,包括添加商品,管理商

8、品,添加商品类型,管理商品类型,添加货源公司,管理货源公司。对超市存货进行查看,可以显示商品数量低于一定值的商品。超级管理员可以对分店进行管理,查看分店的营业情况。对分店管理员进行注册和管理,对会员积分,会员折扣和会员期限的设置。对个人信息的修改。会员管理员添加会员,管理会员,会员卡的充值,挂失,解锁,挂失。2.2 系统性能要求1.安全性该系统的安全性主要是防止他人非法进入系统,从而保证了数据的安全性,数据存储的完整性和数据的可靠性。设置四种不同的身份进行登录,超级管理员,店铺管理员,营业员和会员管理员;系统也设立了数据备份和恢复机制,从一定程度上可以降低数据的损坏程度。2.高效性使用超市管理

9、系统可以快速查询超市的营业情况以及每个营业员的考勤及营业情况,还可以查看货物的剩余和销售情况,可以适时的根据货物的营业情况进行调整进货措施。 3.便捷性本系统的界面友好,操作方便,能够达到所见即所得的效果,方便用户的使用。2.3 系统用例图分析整个超市管理系统分为四个模块,营业模块,店铺管理员模块,超级管理员模块和会员管理模块。营业模块用例图如图2-1所示:图2-1 营业模块用例图店铺管理员模块用例图如图2-2所示:图2-2 店铺管理员模块用例图超级管理员模块用例图如图2-3所示:图2-3 超级管理员模块用例图 会员管理模块用例图如图2-4所示:图2-4会员管理模块用例图第3章 系统概要设计3

10、.1 设计思想1系统分成几个相对独立的模块,但这些模块都进行集中式管理。2分层的模块化程序设计思想,整个系统采用模块化结构设计。作为应用程序有较强的可操作性和扩展性。3数据流设计,在应用系统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。3.2 系统功能结构图系统总体结构如图3-1所示:图3-1 超市管理系统功能结构图3.3 系统功能模块分析本系统主要分为营业模块,店铺管理员模块,超级管理员模块和会员管理模块四个功能模块。3.3.1 营业模块可以自动计算商品总额,根据会员卡对商品进行打折。使用会员卡支付,打印回单等3.3.2 店铺管理员模块可以对

11、自己和营业员的信息进行修改和管理;可以对不同营业员的营业信息进行查询,包括勤务考核和营业利润;还可以查询总的营业利润,对商品进行添加,修改,商品类型的添加和修改和货源公司的添加和修改;查看商品库存。3.3.3 超级管理员模块 可以对分店进行管理,查看分店的营业情况。对分店管理员进行注册和管理,对会员积分,会员折扣和会员期限的设置。3.3.4 会员管理模块 可以添加会员,管理会员,对会员卡的充值,挂失,解锁,挂失。3.4 设计原则为了使本系统功能齐全完备,操作简便,最大限度的提高软件的质量,从而满足用户的实际需要,在设计开发过程中遵循了如下原则:1合法性原则:依据产品核算系统的工作规定以及要求,

12、参照核算实际的工作情况,进行诸如产品进货、销售等工作。2实用性原则:适合产品信息管理工作的实际需求,并能够处理一些特殊情况的要求,此外,尽可能预留空间,以便扩充功能。3准确性原则:对输入的相关资料建立检错机制,及时报错,使用户能够及时准确的输入合法资料。4易操作原则:要求设计的系统功能齐全,界面友好,操作方便,必要的地方进行提示。5安全性原则:可以为该系统的用户设置用户权限。3.5 业务流程分析超市管理系统主要是是以先进的管理理念和科学的计算机技术来取代原始的手工操作。在新系统开发前,我们对这个超市管理系统业务流程进行了系统的调查,得出了下面的几个业务模块的流程图。营业员模块流程图如图3-2所

13、示:图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.会员日志

14、表:图4-5 会员日志表6.会员管理日志表:图4-6 会员日志管理表7.商品信息表:图4-7 商品信息表8.货源信息表图4-8 货源信息表4.2 系统功能设计 登录界面:图4-9 登录界面代码说明:public partial class Login : Form public static string username = null; public Login() InitializeComponent(); LoginAndUser l = new LoginAndUser(); public static DateTime lasttime; public static int fla

15、g=0; private void button1_Click(object sender, EventArgs e)/登陆 username = ID.Text.Trim(); string password = Pwd.Text.Trim(); lasttime = DateTime.Now; if (l.judgeUsernameIsExist(username) = true)/判断是否存在该用户名 if (l.judgeUserNameAndPassword(username, password) = true)/判断用密码是否正确 if (l.getUserAllow(userna

16、me) = 1)/用户允许位为1 if (l.getUserFlag(username) = 0)/标志位0,被禁用 MessageBox.Show(不好意思,该账号已被禁用!, 提示, MessageBoxButtons.OKCancel, MessageBoxIcon.Information); else string shopName=l.getShopNameByUsername(username); int shopID=l.getShopIDByName(shopName); if (l.getShopFlag(shopID) = 1) l.AddLoginCount(userna

17、me);/增加用户登录次数 if (l.getUserTypeName(username) = 营业员) this.Hide(); Choice c = new Choice(); c.ShowDialog(); else if (l.getUserTypeName(username) = 分店管理员) l.UpdateLastLoginTime(username); this.Hide(); ShopManageStage ab = new ShopManageStage(); ab.ShowDialog(); else if (l.getUserTypeName(username) = 超

18、级管理员) l.UpdateLastLoginTime(username); this.Hide(); SuperManageBStage sm = new SuperManageBStage(); sm.ShowDialog(); else if (l.getUserTypeName(username) = 会员管理员) l.UpdateLastLoginTime(username); this.Hide(); MemberCenter m = new MemberCenter(); m.ShowDialog(); else MessageBox.Show(该商店已禁用!, 提示, Mess

19、ageBoxButtons.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.Sho

20、w(用户名不存在!, 警告, MessageBoxButtons.RetryCancel, MessageBoxIcon.Information) = DialogResult.Retry) ID.Clear(); Pwd.Clear(); private void button2_Click(object sender, EventArgs e)/退出 Application.Exit(); private void ID_TextChanged(object sender, EventArgs e)/显示头像 string username = ID.Text.Trim(); if (l.

21、judgeUsernameIsExist(username) = false) errorProvider1.SetError(ID, 用户名不存在); else errorProvider1.SetError(ID, null); if (l.judgeUsernameIsExist(username) = true) string path = Application.StartupPath.Substring(0, Application.StartupPath.Substring(0, Application.StartupPath.LastIndexOf().LastIndexOf(

22、); pictureBox1.Image = Image.FromFile(path + + l.getUserPhotoUrlByUsername(username); Pwd.Focus(); else pictureBox1.Image = null; private void Login_Load(object sender, EventArgs e) ID.Focus(); if (l.judgeIsEnableRegister() = true) label4.Enabled = true; else label4.Enabled = false; / public static

23、int register; private void label4_Click(object sender, EventArgs e)/注册 /register = 1;/从登陆页点击 / this.Hide(); Register r = new Register(); r.ShowDialog(); private void Login_FormClosing(object sender, FormClosingEventArgs e) if (e.CloseReason != CloseReason.UserClosing) return; DialogResult da = Messa

24、geBox.Show(确定退出登陆吗?, 提示, MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (da = DialogResult.OK) Application.Exit(); else e.Cancel = true; 营业界面:图4-10 营业界面部分代码说明:条形码部分:private void textBox1_TextChanged(object sender, EventArgs e) string GoodsNO=textBox1.Text.Trim(); int shopID = l.getShopIDBy

25、Name(l.getShopNameByUsername(username); if (l.judgeGoodsIsExist(GoodsNO,shopID) dataGridView1.Rows.Add(1); string goodsName = l.getGoodNameByNO(GoodsNO,shopID); double sellprice = l.getGoodSellPriceeByNO(GoodsNO, shopID); double preprice = l.getGoodPrePriceByNO(GoodsNO, shopID); string spe = l.getGo

26、odSpecificationByNO(GoodsNO, shopID); double dis = l.getGoodDisCountByNO(GoodsNO, shopID); / dataGridView1.AllowUserToAddRows = true; / dataGridView1.AllowUserToAddRows = true; dataGridView1.CurrentRow.Index dataGridView1.Rowscount.Cells0.Value = GoodsNO; dataGridView1.Rowscount.Cells1.Value = goods

27、Name; dataGridView1.Rowscount.Cells2.Value = sellprice; dataGridView1.Rowscount.Cells3.Value = 1;/数量默认是1 dataGridView1.Rowscount.Cells4.Value = spe; dataGridView1.Rowscount.Cells5.Value = dis; double number=Convert.ToDouble(dataGridView1.Rowscount.Cells3.Value); double heji = sellprice * dis * numbe

28、r ;/获取此商品的总额 dataGridView1.Rowscount.Cells6.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

29、.Format(0:C2, yingshou); /应收 /利润,商品数量递减,所卖商品日志 textBox1.Clear(); 结账部分代码:private void button2_Click(object sender, EventArgs e)/结账 if (isMember = true)/如果是会员 yingshou = yingshou * memberDiscount; double memberMoney = l.getMemberMoney(memberNo); if (memberMoney 0)/如果会员卡金额大于0,则提示是否使用会员卡支付 if (MessageBo

30、x.Show(是否使用会员卡支付?, 提示, MessageBoxButtons.YesNo) = DialogResult.Yes)/确定使用会员卡支付 if (memberMoney = yingshou)/可完全用会员卡支付 try double nowmoney = l.getMemberMoney(memberNo) - yingshou; l.updateMembreNowMoney(memberNo, nowmoney);/修改会员卡现有金额 temp = 2; string sellGoods = PrintGoodsInfo(); sellGoods += 实收: + yin

31、gshou + 元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:F2, profit);/利润值保留两位小数l.ad

32、dSellLog(sellID, username, Business.shopID, sellGoods, yingshou, profit, Business.memberNo, 0);/保存单次交易营业日志double addjifen = l.getMemberJiFenBySell(yingshou, memberNo);l.addMemberLog(memberNo, yingshou, addjifen, shopID, null,sellID); /会员卡使用日志 UpdateGoodsNumber();/修改商品减少商品数量 /现金为0 此处不再加 ClearStaticInfo();/清除静态变量值 clear();/清除控件值(初始化) textBox1.Focus(); catch MessageBox.Show(支付失败!, 提示); else /只够一部分 try memberElseMoney = yingshou - l.getMemberMoney(memberNo);/剩余应付金额 / UpdateGoodsNumber();/修改商品减少商品数量 / l.addMemberJiFen(l.getMemberMoney(memberNo), memberNo);/增加会员

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号