• 577.43 KB
  • 2022-04-22 13:37:08 发布

基于Windows超市管理系统毕业论文.doc

  • 26页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'基于Windows超市管理系统毕业论文目录前言1第一章可行性分析21.1技术可行性分析21.2经济可行性分析21.3操作可行性分析2第二章需求分析32.1业务流程分析32.2数据流程分析3第三章数据库设计43.1数据库需求分析43.2数据库表设计43.2.1管理员信息表43.2.2职工信息表53.2.3商品信息表63.2.4供货商信息表63.2.5进货信息表63.2.6销售信息表73.2.7库存信息表7第四章系统设计74.1模块设计74.1.1登陆模块设计84.1.2职工管理模块设计94.1.3商品信息管理模块114.1.4供货商管理模块154.1.5销售管理模块174.1.6进货信息管理模块20第五章系统测试235.1测试目标245.2测试步骤245.3程序测试245.4功能测试245.5子系统测试24结论25参考文献26 第一章可行性分析随着计算机技术的发展和网络人口的增加,人们对网络的需求也越来越苛刻,越来越贴近其生活,电子信息管理已经成为网上的一股潮流。而更多的,是要求传统行业的管理要延伸到网络,以更方便其生活、工作和学习。可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。要达到这个目的,必须分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。系统的可行性分析主要包括经济上的可行性、技术上的可行性和操作上的可行性。本系统的可行性分析如下:1.1技术可行性分析因为该系统具有友好的人机互操作界面,操作人员只要进行少量的培训,系统的功能和使用方法就基本上能够是系统顺利运行。1.2经济可行性分析该系统带来的经济效益明显的,其最主要的表现就是减少了企业管理费用和人力开支,不仅节省了大量的时间,还为企业的各项决策提供了宝贵的资料,为企业带来巨大的经济效益。同时该系统可以提高超市的销售效率,即提高了超市的经济效益,所以从经济上完全是可行的。1.3操作可行性分析本系统采用基于Windows的图形用户界面,而该系统是大家熟悉的操作系统,对于那些有一般的计算机知识的人员就可以轻松上手。而整个超市管理系统采用最友好的交互界面,简介明了,不需要对数据库进行深入的了解。综合以上三方面,该系统的操作是可行的,开发该系统可行。 第二章需求分析2.1业务流程分析超市管理系统工作流程为:系统启动并进入登录界面,系统管理员输入正确的用户名及密码后,登陆系统主操作界面,系统管理员可对系统相关信息进行操作,包括基本信息、货物信息、供应商信息、销售信息、仓库信息等。本系统的业务流程图如图1所示:厂商商品信息营业员订货信息购买信息顾客销售信息用户信息(员工)商品信息库存信息老板图1业务流程图2.2数据流程分析数据流程分析主要包括对信息的流动、传递、处理、存储等的分析。数据流程分析的目的就是要发现和解决数据流通中的问题。现有的数据流程分析多是通过分层的数据流程图(dataflowdiagram,简称DFD)来实现的。其具体的做法是:按业务流程图理出的业务流程顺序,将相应调查过程中所掌握的数据处理过程,绘制成一套完整的数据流程图。超市管理系统的数据流程:对本系统操作的数据源有普通用户、注册用户和管理员三种,首先由系统管理员根据不同用户的需要将某些信息保存到数据库中,然后再进行发布。不同权限的用户可以对这些库信息进行添加、修改和删除处理。所有用户均可以进行信息查询。通过对本系统的需求分析,系统的基本功能已经确定。 第三章数据库设计3.1数据库需求分析用户的需求具体体现在各种信息的提供、保存、更新和查询方面,这就要求数据库结构能充分满足各种信息的输入和输出。收集基本数据、数据结构及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。通过系统功能分析,针对超市管理系统,总结出如下的需求信息:1)用户为管理员用户;2)管理员用户登陆后可进行管理员信息、货物信息及厂商信息等的维护,以且货物入库、货物出库及统计信息的维护;经过系统功能分析和需求总结,考虑到将来功能上的扩展,设计如下的数据项和数据结构:①管理员信息表包括数据项:帐号,密码等。②职工信息表包括数据项:职工编号,姓名,性别,籍贯,学历,类别,工资,联系电话,联系地址,身份证号,聘用日期,编制日期,备注等。③商品信息表包括数据项:商品编号,供货商号,名称,条形码,计量单位,类别,产地,单价,备注,等。④供货商信息表包括数据项:供货商号,名称,联系人,联系电话,联系地址,开户行,银行帐号,备注等。⑤进货信息表包括数据项:进货单号,商品编号,供货商号,进货价,数量,金额,进货日期,备注等。⑥销售信息表包括数据项:销售单号,商品编号,销售数量,销售日期等。⑦库存信息表包括数据项:商品编号,库存数量等。3.2数据库表设计3.2.1管理员信息表管理员信息表存储管理员信息。表中各字段功能定义如表1所示。中文字段名英文字段名字段类型长度主键/外键字段值约束帐号loginIDchar6P/FNOTNULL密码passWordchar6NOTNULL表1管理员信息表 3.2.2职工信息表职工信息表用于存储职工信息,表中个字段功能定义如表2所示。中文字段名英文字段名字段类型长度主键/外键字段值约束职工编号staffIDchar6PNOTNULL姓名namenvarchar8NOTNULL性别sexnchar2NOTNULL籍贯homenvarchar4NULL学历diplomanvarchar4NOTNULL类别kindnvarchar10NULL工资salaryint4NULL联系电话phonevarchar12NULL联系地址addressnvarchar50NULL身份证号idCardvarchar18NOTNULL聘用日期beginDatedatetime8NULL编制日期enactTimedatetime8NULL备注othersntext50NULL表2职员信息表 3.2.3商品信息表商品信息表用于存储商品的信息。表中各字段功能定义如表3所示。中文字段名英文字段名字段类型长度主键/外键字段值约束商品编号merchIDchar6PNOTNULL供货商号profferIDchar6FNOTNULL名称fullNamenvarchar80NOTNULL条形码barCodechar15NOTNULL计量单位metricUnitvarchar4NOTNULL类别kindnvarchar8NULL产地birthPlacenvarchar50NULL单价unitCostmoney4NOTNULL备注othersntext50NULL表3商品信息表3.2.4供货商信息表供货商信息表用于存储供货商的信息。表中各字段功能定义如表4所示。中文字段名英文字段名字段类型长度主键/外键字段值约束供货商号profferIDchar6PNOTNULL名称fullNamenvarchar50NOTNULL联系人contactPersonnvarchar8NOTNULL联系电话phonevarchar12NOTNULL联系地址addressnvarchar50NOTNULL开户行openingBanknvarchar10NULL银行帐号accountIDvarchar15NULL备注othersntext50NULL表4供货商信息表3.2.5进货信息表进货信息表用于存储货物入库的信息。表中各字段信息如表5所示。中文字段名英文字段名字段类型长度主键/外键字段值约束进货单号importBillIDchar6PNOTNULL商品编号merchIDchar6P/FNOTNULL供货商号profferIDchar6FNOTNULL 进货价importPricemoney4NOTNULL数量quantityint4NOTNULL金额totalMoneymoney4NOTNULL进货日期importDatedatetime8NOTNULL备注othersntext50NULL表5进货信息表3.2.6销售信息表销售信息表用于存储商品销售的信息。表中各字段信息如表6所示。中文字段名英文字段名字段类型长度主键/外键字段值约束销售单号saleBillIDchar6PNOTNULL商品编号merchIDchar6P/FNOTNULL销售数量saleNumint4NOTNULL销售日期saleDatedatetime8NOTNULL表6销售信息表3.2.7库存信息表库存信息表用于存储仓库内商品的信息。表中各字段信息如表7所示。中文字段名英文字段名字段类型长度主键/外键字段值约束商品编号merchIDchar6P/FNOTNULL库存数量storeNumint4NOTNULL表7库存信息表第四章系统设计4.1模块设计用户界面的大部分功能都是以管理模块为前提的,因为客户模块所显示的数据大部分需要通过管理模块来添加。因此,我们首先要来介绍管理模块的设计与开发。管理模块相对客户模块要复杂一些,因为在这里需要对所有信息进行维护,包括浏览、增加、修改和删除等操作。为了便于系统维护,页面的命名才用“模块名+功能名”的方式。概括起来,管理模块具有以下功能:*管理员登陆。*职员信息管理。*商品信息管理。 *供货商信息管理。*销售信息管理。*进货信息管理。*库存信息管理。系统的功能模块如图2所示。超市系统系统用户用户设置商品管理进货管理添加商品商品查找商品类别进货管理进货查询库存管理库存查询销售管理销售添加销售额查询图2功能模块4.1.1登陆模块设计该模块位于系统的首页。用户输入用户名和密码后,系统进行验证,验证通过进入程序的主界面。登陆界面如图3所示。图3登陆界面 实现代码如下:publicboolVeri(stringtb_table,stringId,stringPwd){DataClass.MyMeansMyClass=newSMMS.DataClass.MyMeans();booljud=false;if(Id!=""&&Pwd!=""){SqlDataReadertemDR=MyClass.getcom("select*from"+tb_table+"whereUserName=""+Id.Trim()+""andPass=""+Pwd.Trim()+""");jud=temDR.Read();if(jud){DataClass.MyMeans.Login_Name=Id.Trim();DataClass.MyMeans.Login_ID=temDR.GetString(0);DataClass.MyMeans.My_con.Close();DataClass.MyMeans.My_con.Dispose();}else{MessageBox.Show("用户名或密码错误!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);}MyClass.con_close();}elseMessageBox.Show("请将登录信息添写完整");returnjud;} 4.1.2职工管理模块设计该模块主要有对职工的添加,修改,删除等功能,能够对职工进行合理的管理,界面如图4所示。图4职工管理界面实现代码如下:privatevoidbtnSave_Click(objectsender,EventArgse){stringRecID;if(txtName.Text==""){MessageBox.Show("请添加职工姓名!");txtName.Focus();}else{if(Jud==1){RecID=MyMC.GetAutocoding("tb_Worker", "WorkerID");//获取编号Find_SQL="insertintotb_Worker(WorkerID,WorkerName,Remark)values(""+RecID+"",""+txtName.Text+"",""+txtRemark.Text+"")";MyDataClass.getsqlcom(Find_SQL);MessageBox.Show("添加成功!");InfLoad();WinstateT();}if(Jud==2){Find_SQL="updatetb_WorkersetWorkerName=""+txtName.Text+"",Remark=""+txtRemark.Text+""whereWorkerID=""+txtWorkerID.Text+""";MyDataClass.getsqlcom(Find_SQL);MessageBox.Show("修改成功!");InfLoad();WinstateT();}}}4.1.3商品信息管理模块此模块进行对商品信息的录入,能够对商品进行合理的管理,界面如图5所示。 图5商品信息管理界面实现代码如下:privatevoidbtnAdd_Click(objectsender,EventArgse){boolt=false;stringtxt;stringRecID;stringTypeID;if(txtName.Text==""){MessageBox.Show("请输入商品名称!");txtName.Focus();}elseif(txtPrice.Text==""){ MessageBox.Show("请输入商品单价!");txtPrice.Focus();}elseif(comboxType.Text==""){MessageBox.Show("请选择商品类型!");comboxType.Focus();}elseif(txtKeep.Text==""){MessageBox.Show("请输入保质期");txtKeep.Focus();}else{txt=txtName.Text.Trim();SqlDataReadertemDR=MyDataClass.getcom("select*fromtb_GoodswhereGoodsName=""+txt+""");t=temDR.Read();if(t){MessageBox.Show("此商品名称已存在!");txtName.Text="";txtName.Focus();}else{stringFind_SQL2;stringRecID2;try {TypeID=My_Set.Tables[0].Rows[comboxType.SelectedIndex][0].ToString();RecID=MyMC.GetAutocoding("tb_Goods","GoodsID");//获取编号RecID2=MyMC.GetAutocoding("tb_Stock","StockID");//获取编号Find_SQL="insertintotb_Goods(GoodsID,GoodsName,TypeID,Remark,Price,Keep)values(""+RecID+"",""+txtName.Text+"",""+TypeID+"",""+txtRemark.Text+"","+txtPrice.Text+","+txtKeep.Text+")";Find_SQL2="insertintotb_Stock(StockId,GoodsID,Amount)values(""+RecID2+"",""+RecID+"",0)";MyDataClass.getsqlcom(Find_SQL);MyDataClass.getsqlcom(Find_SQL2);//向库存添加信息MessageBox.Show("添加成功!");ListViewIteml=newListViewItem();l.Text=txtName.Text;l.SubItems.Add(comboxType.Text);l.SubItems.Add(txtPrice.Text);l.SubItems.Add(txtKeep.Text);l.SubItems.Add(txtRemark.Text);listView1.Items.Add(l);btnCancle_Click(sender,e);}catch(Exceptionec){MessageBox.Show(ec.Message);MessageBox.Show("添加失败"); }}}}4.1.4供货商管理模块此模块有对供货商的添加,修改,删除等功能,能够对供货商进行合理的管理。界面如图6所示。图6供销商管理界面实现代码如下:privatevoidbtnSave_Click(objectsender,EventArgse){boolt=false;stringtxt;stringRecID;if(txtName.Text==""){MessageBox.Show("请输入供货商名称!"); txtName.Focus();}else{if(Jud==1){txt=txtName.Text.Trim();SqlDataReadertemDR=MyDataClass.getcom("select*fromtb_SupplierwhereSupplierName=""+txt+""");t=temDR.Read();if(t){MessageBox.Show("此供货商名称已存在!");txtName.Text="";txtName.Focus();}else{RecID=MyMC.GetAutocoding("tb_Supplier","SupplierID");//获取编号Find_SQL="insertintotb_supplier(SupplierID,SupplierName,Tel,Address,Remark)values(""+RecID+"",""+txtName.Text+"",""+txtTel.Text+"",""+txtAddress.Text+"",""+txtRemark.Text+"")";MyDataClass.getsqlcom(Find_SQL);MessageBox.Show("添加成功!");InfLoad();WinstateT();}} if(Jud==2){txt=txtName.Text.Trim();Find_SQL="select*fromtb_SupplierwhereSupplierName=""+txt+""andSupplierID!=""+ID+""";SqlDataReadertemDR=MyDataClass.getcom(Find_SQL);t=temDR.Read();if(t){MessageBox.Show("此供货商名称已存在!");txtName.Text="";txtName.Focus();}else{Find_SQL="updatetb_SuppliersetSupplierName=""+txtName.Text+"",Tel=""+txtTel.Text+"",Address=""+txtAddress.Text+"",Remark=""+txtRemark.Text+""whereSupplierID=""+ID+""";MyDataClass.getsqlcom(Find_SQL);MessageBox.Show("修改成功!");InfLoad();WinstateT();}}}4.1.5销售管理模块销售员将销售信息录入方便了销售工作,提高了工作效率。界面如图7所示。 图7销售管理界面主要代码实现:privatevoidbutton2_Click(objectsender,EventArgse){if(txtSum.Text.Trim().Length!=0){strings1;strings2;strings3;strings4;floatzl;floatPayS;if(txtPayS.Text=="") {PayS=0;}else{PayS=float.Parse(txtPayS.Text);}zl=PayS-TotalPrice;txtPayS.Text=PayS.ToString();txtPayY.Text=TotalPrice.ToString();txtZL.Text=zl.ToString();s1="商品数量"+Amount1+"件"+"n"+"n";s2="实付款"+PayS+"元"+"n"+"n";s3="应付款"+TotalPrice.ToString()+"元"+"n"+"n";s4="找零"+zl.ToString()+"元";MessageBox.Show(s1+s2+s3+s4,"系统提示");txtPayS.Text="";txtPayY.Text="";txtZL.Text="";txtID.Text="";txtAmount.Text="";txtSum.Text="";TotalPrice=0;Amount1=0;listView1.Items.Clear();}else{MessageBox.Show("请购买商品!");} }4.1.6进货信息管理模块录入进货信息加强对商品的管理,使商品信息更为详细,方便了对商品的管理。界面如图8所示。图8进货管理界面实现代码如下:privatevoidbtnAdd_Click(objectsender,EventArgse){boolt=false;stringtxt;stringRecID; if(txtID.Text==""){MessageBox.Show("请输入商品编号!");txtID.Focus();}elseif(txtPrice.Text==""){MessageBox.Show("请输入商品单价!");txtPrice.Focus();}elseif(txtAmount.Text==""){MessageBox.Show("请输入商品数量!");txtAmount.Focus();}elseif(comPy.Text==""||comPm.Text==""||comPd.Text==""){MessageBox.Show("请将生产日期填写完整!");}elseif(comBy.Text==""||comBm.Text==""||comBd.Text==""){MessageBox.Show("请将进货日期填写完整");}else{txt=txtID.Text.Trim();SqlDataReadertemDR=MyDataClass.getcom("select*fromtb_GoodswhereGoodsID=""+txt+""");t=temDR.Read(); if(!t){MessageBox.Show("此商品不存在!");txtID.Text="";txtID.Focus();}else{stringFind_SQL2;stringRecID2;try{stringGoodsID;stringSupplierID;stringdatep;stringdateb;datep=comPy.Text+"/"+comPm.Text+"/"+comPd.Text;dateb=comBy.Text+"/"+comBm.Text+"/"+comBd.Text;GoodsID=txtID.Text;SupplierID=My_Set.Tables[0].Rows[comSupplier.SelectedIndex][0].ToString();RecID=MyMC.GetAutocoding("tb_Buy","BuyID");//获取编号RecID2=MyMC.GetAutocoding("tb_Stock","StockID");//获取编号Find_SQL="insertintotb_Buy(BuyID,GoodsID,EmployeeID,Price,Amount,Datep,Dateb,SupplierID,Remark)values(""+RecID+"",""+txtID.Text+"",""+DataClass.MyMeans.Login_Name+"","+txtPrice.Text+","+txtAmount.Text+ ",""+datep+"",""+dateb+"",""+SupplierID+"",""+txtRemark.Text+"")";Find_SQL2="Updatetb_StocksetAmount=Amount+"+txtAmount.Text+"whereGoodSID=""+GoodsID+""";MyDataClass.getsqlcom(Find_SQL);MyDataClass.getsqlcom(Find_SQL2);//向库存添加信息MessageBox.Show("添加成功!");ListViewIteml=newListViewItem();l.Text=RecID;l.SubItems.Add(txtID.Text);l.SubItems.Add(txtPrice.Text);l.SubItems.Add(txtAmount.Text);l.SubItems.Add(comSupplier.Text);l.SubItems.Add(txtRemark.Text);listView1.Items.Add(l);btnCancle_Click(sender,e);}catch(Exceptionec){MessageBox.Show(ec.Message);MessageBox.Show("添加失败");}}}}第五章系统测试 在完成程序设计阶段的工作后,经程序员编码调试,就为系统的运行初步奠定了基础。要了解将要投入运行的系统是否能正确无误地工作,必须实行系统测试。测试的目的是确保系统程序能符合系统分析和设计阶段的功能要求,发现并排除系统程序中的错误。难以想象未经周密测试的系统冒强行投入运行,将会造成的严重后果。5.1测试目标系统测试是从整个系统出发,考查设计是否合理。任何一个人在设计时都不可能把所有问题考虑周到,总是或多或少地发生差错。但对系统而言,就不能有差错,所以测试是非常重要的。可以说测试就是“寻找错误”,特别是寻找不经常出现的错误,尽量把系统中隐藏着的错误消灭在调试期间。此外还要对系统的容错能力、操作错误等进行测试。总之,通过测试要达到这样一个目的:寻找问题,纠正错误,提高系统技术能力,使系统早日投入运行。5.2测试步骤系统测试实际上是按以下四个步骤来完成的:①测试每个单独的模块,保证它作为一个单元测试;②将模块加以集中或装配,形成一个完整的功能,整体测试包含检验和组装这两重含义;③测试有效性要求,保证软件符合所有功能上和性能上的要求;④检验所有元素配合是否合理以及整个系统的性能和功能是否达到要求。5.3程序测试程序测试是检验软件设计的最小单位--模块。程序测试主要包括程序语法检查和程序逻辑检查。程序测试的方法有:黑箱测试、数据测试、穷举测试、操作测试和模型测试五种。5.4功能测试在单个程序测试成功的基础上,就可以进行各种功能测试。功能测试是综合性测试,因为若干个程序组成一个功能,所以功能测试是将功能范围内所有程序按处理流程图的次序串联起来进行综合测试,功能测试是从处理流程的输入开始,直到最后执行打印程序为止。如果没有逻辑问题,就说明测试成功。5.5子系统测试在各个功能测试成功的基础上就可以进行各个子系统的测试。每个子系统是由若干个功能所组成的。子系统设计成功与否,不仅取决于每个功能测试成功与否,还取决于按信息传递先后次序串联起来的功能测试成功与否。因此,子系统测试是一种连接测试。 结论在学习当中认我认识到开发一项好的软件不是某一个人就能完成的任务。一个团队的小组,一个勤奋的小组非常重要,沟通是解决问题的就好办法。俗话也得好:“不怕虎一样的敌人,就怕猪一样的队友”。所以小组中的每个成员的能力与协作能力也是致关重要的。同时,不仅是团队内部的交流,更多需要协调好团队之间的交流。其次呢,在实习中我了解了,在开发一个项目时一定要先做好规划,按照软件的开发过程,详细地写好每一个必要的文档。一般的规则是,写文档需要团队协作,这样就允许开发人员和文档编写者利用彼此的长处,取长补短。例如,如果预期读者是系统设计师,开发人员需要提供技术细节,然后文档编写者按照正确语法组织和编辑内容。软件文档的最主要目标是传达一个系统的技术要素和使用方法。第二个目标是提供软件开发过程中的需求,决策,行为,角色和责任的书面记录。只有实现了这两个目标,软件文档才真正提供了有意义的信息。软件的概念就是:程序+文档,程序就是文档,文档集成在程序中。它要求在选择开发环境时不仅要考虑环境对设计、开发的完美支持,而且要考虑对维护、文档的支持;它要求软件人员在设计、开发过程中要考虑维护问题、文档问题;它要求程序与文档存储在同一位置、同一系统中;它要求使用相同工具进行程序与文档的书写、检索;它要求在编写和维护程序的同时形成文档,在书写文档时编写、维护程序。程序与文档合一的概念不仅存在于系统的设计、开发阶段而且存在于系统的维护阶段,它贯穿软件的生命周期。 参考文献[1]KonradKing(美),杜大鹏著.SQL编程实用大全[M].中国水利水电出版社2005.5.[2]高守传著.SQL结构化查询语言详解[M].人民邮电出版社.2007.5.[3]微软公司著.SQLSever2005数据库开发与实现[M].人民邮电出版社.2007.9.[4]宋昆,李严著.SQLServer数据库开发实例解析[M].机械工业出版社.2006.1.[5]李俊民,高春燕著.Access数据库开发实例解析[M].机械工业出版社.2006.1.'