C#超市进销存.详细设计.doc_第1页
C#超市进销存.详细设计.doc_第2页
C#超市进销存.详细设计.doc_第3页
C#超市进销存.详细设计.doc_第4页
C#超市进销存.详细设计.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

超市进销存详细设计【设计目的】数据库课程设计是在我们系统地学习了数据库系统原理课程后,按照关系型数据库的基本原理,综合运用所学的知识,设计开发一个小型的数据库管理信息系统。通过对一个实际问题的分析、设计与实现,将原理与应用相结合,使我们学会如何把书本上学到的知识用于解决实际问题,培养我们的动手能力;另一方面,使我们能深入理解和灵活掌握教学内容。【概要】超市进销存系统一、 设计目的根据所学的数据库原理与程序设计的知识,能够针对一个小型的数据库管理信息系统,进行系统的需求分析,系统设计,数据库设计,编码,测试等,完成题目要求的功能,从而达到掌握开发一个小型数据库管理信息系统的目的。二、 设计内容题目可根据自己熟悉的物品填充,例如图书进销存系统、电脑设备进销存系统、药品进销存系统等等,下面以超市进销存系统为例完成功能:1) 商品信息、供应商信息2) 商品进货、商品查询 以上功能可根据自己对不同物品主要的管理需求进行调整,可以增加或减少相应功能。【需求分析】对普通超市来讲,涉及原材料的进货渠道、销售情况及库存等方面的管理,管理的好与坏对超市的持久性至关重要。概括地说,用户对进销存系统的需求具有普遍性。超市进销存销售管理系统适用于超市采购、销售和仓库部门,对超市采购、销售及仓库的业务全过程进行有效控制和跟踪。使用超市进销存销售管理系统可有效减少盲目采购、降低采购成本、合理控制库存、减少资金占用并提高市场灵敏度,提升超市的市场竞争力。【系统运行环境】l 系统开发平台:Microsoft Visual Studio 2005l 系统开发语言:C#l 数据库管理软件:SQL Server 2005l 运行平台:Win7l 运行环境:Microsoft.NET Framework SDK v2.0【系统设计】超市进销存销售管理系统功能结构图:超市进销存管理系统销售管理进货管理库存管理系统维护基本档案员工信息供应商信息商品进货商品查询商品销售商品退货库存警报库存查询数据备份数据还原系统业务流程图:否是系统登 录是否登录系统主窗体销售管理进货管理库存管理系统维护基本档案【概念结构设计】供应商信息实体E-R图:供应商信息表备注地址加入时间传真是否发布供应商编号供应商姓名联系人姓名联系电话员工信息实体E-R图:员工信息表家庭电话员工职位手机号码员工生日是否发布员工编号员工姓名登录密码员工性别所属部门家庭住址登录ID进货信息实体E-R图:进货信息表应付金额销售单价实付金额商品数量删除标记操作员编号员工姓名库存名称货物名称进货单价备注进货公司名称商品计量单位进货时间【逻辑结构设计】根据设计好的E-R图在数据库中建立各表,系统数据库中各表的逻辑结构如下:供应商信息表:字段名数据类型长度主键描述CompanyIDvarchar50否供应商编号CompanyNamenvarchar100否供应商姓名CompanyDirectornvarchar50否联系人姓名CompanyPhonenvarchar20否联系电话CompanyFaxnvarchar20否传真CompanyAddressnvarchar200否地址CompanyRemarknvarchar400否备注ReDateTimedatetime8否加入日期Falgint4否是否发布员工信息表:字段名数据类型长度主键描述EmpIDnvarchar20是员工编号EmpNamenvarchar20否员工姓名EmpLoginNamenvarchar20否登录IDEmpLoginPwdnvarchar20否登录密码EmpSexnvarchar4否员工性别EmpBirthdaydatetime8否员工生日EmpDeptnvarchar20否所属部门EmpPostnvarchar20否员工职位EmpPhonenvarchar20否家庭电话EmpPhoneMnvarchar20否手机号码EmpAddressnvarchar200否家庭住址EmpFalgint1否是否发布进货信息表:字段名数据类型长度主键描述GoodsIDnvarchar20是商品编号EmpIdnvarchar20否操作员编号JhCompNamenvarchar100否进货公司名称DepotNamenvarchar20否仓库名称GoodsNamenvarchar50否货物名称GoodsNumint4否商品数量GoodsUnitnvarchar20否商品计量单位GoodsJhPricenvarchar8否进货单价GoodsSellPricenvarchar8否销售单价GoodsNeedPricenvarchar8否应付金额GoodsNoPricenvarchar8否实付金额GoodsRemarknvarchar200否备注GoodTimedatetime8否进货时间Falgint4否删除标记【窗体设计】登录窗口:主窗口:员工基本信息窗体:供应商信息窗体:商品进货窗体:商品查询窗体:窗体顶端【总结】 该系统是用C#完成的,实现的功能比较全面,界面美观。但是需要写太多代码,会遇到许多细节方面的问题(如:数据库的连接、类的使用、函数的使用等等)。还有很多地方有待完善。通过这次的学习设计,对数据库更加了解,还有很多不足的地方。对C#学的还不深,还要多学习,提高自己。【主要代码设计】【员工基本信息窗体】1.通过对员工信息的录入,修改,删除,保存进行操作,在对员工的信息录入时候,员工姓名,登录名称和登录密码的相关操作是必须的 ,因为涉及到了下次登录时候身份的鉴定,相关代码如下: public int getPan() int intFalg1 = 0; if (intFalg != 3) if (txtEmpName.Text = ) MessageBox.Show(员工姓名不能为空!, 提示); txtEmpName.Focus(); return intFalg1; if (txtEmpLoginName.Text = ) MessageBox.Show(登录名称不能为空!, 提示); return intFalg1; if (intFalg != 2) if (txtEmpLoginPwd.Text = ) MessageBox.Show(登录密码不能为空!, 提示); return intFalg1; 2.通过对员工的查询,可以知道员工的信息,查询可根据很多方面的信息而查到所向知道的员工的信息,所一就需要输入查询条件,根据查询条件而知道所向知道的信息,比如员工姓名,性别,所属部门,员工职位,姓名查询是最准确并且速度的方法,性别,所属部门,职位这些查询条件是比较含糊的查询,客户通过自己想要的方式查到员工的信息,相关的代码如下: private void txtOK_Click(object sender, EventArgs e) string P_Str_selectcondition = this.cbxCondition.Text; /Itemsthis.cbxCondition.SelectedIndex.ToString(); if (P_Str_selectcondition = null) MessageBox.Show(请选择查询条件!); return; if (this.txtKeyWord.Text = ) MessageBox.Show(输入查询条件!); return; switch (P_Str_selectcondition) case 员工姓名: tbMenthod.tb_EmpInfoFind(txtKeyWord.Text,1,dataGridView1); break; case 员工性别: tbMenthod.tb_EmpInfoFind(txtKeyWord.Text, 2, dataGridView1); break; case 所属部门: tbMenthod.tb_EmpInfoFind(txtKeyWord.Text, 3, dataGridView1); break; case 员工职位: tbMenthod.tb_EmpInfoFind(txtKeyWord.Text, 4, dataGridView1); break; default: break; 如果客户 查询到员工的信息之后,想做一些的修改 删除,添加之类的修改,如果添加员工信息的话,则要录入新员工的详细信息,如修改的员工信息的话可根据某方面的信息进行相关的修该,如删除员工信息的话,则要对员工的信息进行全部的删除,并相应的保存到数据库里面,方便下次客户对员工的信息进行相关的操作,具体修改 ,删除,添加的操作代码如下: private void toolSave_Click(object sender, EventArgs e) if (getPan() = 1) if (intFalg = 1) if (tbMenthod.tb_EmpInfoFind(txtEmpLoginName.Text,1) = 1) MessageBox.Show(登录名称已被占用!!); txtEmpLoginName.Text = ; txtEmpLoginName.Focus(); return; if (tbMenthod.tb_EmpInfoAdd(EmpClass) = 1) MessageBox.Show(添加成功); intFalg = 0; tbMenthod.tb_EmpInfoFind(, 5, dataGridView1); ClearControls(); ControlStatus(); else MessageBox.Show(添加成失败); intFalg = 0; /tbMenthod.tb_EmpInfoFind(2,dataGridView1); ClearControls(); ControlStatus(); if (intFalg = 2) if (tbMenthod.tb_EmpInfoUpdate(EmpClass)=1) MessageBox.Show(修改成功); intFalg = 0; tbMenthod.tb_EmpInfoFind(, 5, dataGridView1); ClearControls(); ControlStatus(); else MessageBox.Show(修改成失败); intFalg = 0; /tbMenthod.tb_EmpInfoFind(2,dataGridView1); ClearControls(); ControlStatus(); if (intFalg = 3) if (tbMenthod.tb_EmpInfoDelete(EmpClass) = 1) MessageBox.Show(删除成功); intFalg = 0; tbMenthod.tb_EmpInfoFind(, 5, dataGridView1); ClearControls(); ControlStatus(); else MessageBox.Show(删除失败); intFalg = 0; ClearControls(); ControlStatus(); 【供应商信息窗体】2对控件的清零状态,方便进行相关的操作,即信息初始化,代码如下: private void ClearControls() txtCompanyDirector.Text = ; txtCompanyAddress.Text = ; txtCompanyFax.Text = ; txtCompanyName.Text = ; txtCompanyPhone.Text = ; txtCompanyRemark.Text = ; 2.1 通过对供应商的信息录入,并保存到数据库里面,此外应注意的是供应商的名称,联系电话,地址是必须的填写的,否则不不可以录入并进行相关操作的,如少填写一项,会弹出相应的对话框,代码如下: public int GetCount() int intReslult = 0; if (intFalg = 1 | intFalg = 2) if (txtCompanyName.Text = ) MessageBox.Show(供应商名称不能为空!, 提示); return intReslult; if (txtCompanyPhone.Text = ) MessageBox.Show(联系电话不能为空!, 提示); return intReslult; if (txtCompanyDirector.Text = ) MessageBox.Show(地址不能为空!, 提示); return intReslult; 2.2客户对相关的信息进行操作之后,需要保存到数据库,但是应注意的是相关的信息必须是准确的,避免下次信息调出的时候出现差错,因为数据库是共同享有的,所以必须保证供应商资料的准确性,通过保存之前的添加,修改,删除操作并保存到数据库的代码如下: private void toolSave_Click(object sender, EventArgs e) if (GetCount() = 1) if (intFalg = 1) if (CompanyMenthod.tb_CompanyMenthodAdd(Company) = 1) if (intReturn = 1) frmGonYingShang frmCop= (frmGonYingShang)this.Owner; jhgood.filltProd(frmCop.treeView1,frmCop.imageList1); ClearControls(); ControlStatus(); intFalg = 0; this.Close(); MessageBox.Show(添加成功); intFalg = 0; CompanyMenthod.tb_CompanyFind(, 3, dataGridView1); ClearControls(); ControlStatus(); else MessageBox.Show(添加失败); intFalg = 0; CompanyMenthod.tb_CompanyFind(, 3, dataGridView1); ClearControls(); ControlStatus(); if (intFalg = 2) if (CompanyMenthod.tb_CompanyMenthodUpDate(Company) = 1) MessageBox.Show(修改成功); intFalg = 0; CompanyMenthod.tb_CompanyFind(, 3, dataGridView1); ClearControls(); ControlStatus(); else MessageBox.Show(修改失败); intFalg = 0; CompanyMenthod.tb_CompanyFind(, 3, dataGridView1); ClearControls(); ControlStatus(); if (intFalg =3) if (CompanyMenthod.tb_CompanyMenthodDelete(Company) = 1) MessageBox.Show(删除成功); intFalg = 0; CompanyMenthod.tb_CompanyFind(, 3, dataGridView1); ClearControls(); ControlStatus(); else MessageBox.Show(删除失败); intFalg = 0; CompanyMenthod.tb_CompanyFind(, 3, dataGridView1); ClearControls(); ControlStatus(); 2.3客户对供应商的信息做好相关的操作之后,则方便其他客户对供应商的资料查询,可根据的供应商的名称,负责人姓名而知道所想知道的相关信息,相关的代码如下: private void txtOK_Click(object sender, EventArgs e) string P_Str_cmdtxt = String.Empty; string P_Str_selectcondition = this.cbxCondition.Text; if (P_Str_selectcondition = null) MessageBox.Show(请选择查询条件!); return; if (this.txtKeyWord.Text = ) MessageBox.Show(输入查询条件!); return; switch (P_Str_selectcondition) case 供应商名称: CompanyMenthod.tb_CompanyFind(txtKeyWord.Text,1,dataGridView1); break; case 负责人姓名: CompanyMenthod.tb_CompanyFind(txtKeyWord.Text, 2, dataGridView1); break; default: break; 【商品进货窗体】3定义方法getIntCount(),用于获取表单的信息,在具体的实现上,将通过if语句验证各字段的输入的数据不为空,对应放入实现代码如下: public int getIntCount() int intReslut = 0; if (intFalg = 1) if (txtGoodsID.Text = ) MessageBox.Show(商品编号不能为空!); return intReslut; if (txtGoodsName.Text = ) MessageBox.Show(商品名称不能为空!); return intReslut; if (txtJhCompName.Text = ) MessageBox.Show(供应商名称不能为空!); return intReslut; if (txtEmpId.Text = ) MessageBox.Show(进货人姓名不能为空!); return intReslut; if (txtGoodsNum.Text = ) MessageBox.Show(数量不能为空!); return intReslut; if (txtGoodsName.Text = ) MessageBox.Show(进货单价不能为空!); return intReslut; if (intFalg = 2) if (txtGoodsID.Text = ) MessageBox.Show(商品编号不能为空!,选择要修改记录,提示); return intReslut; if (intFalg = 3) if (txtGoodsID.Text = ) MessageBox.Show(商品编号不能为空!,选择要删除记录, 提示); return intReslut; jhGood.strGoodsID = txtGoodsID.Text; jhGood.strEmpId = txtEmpId.Text; jhGood.strJhCompName = txtGoodsName.Text; jhGood.strDepotName = cmbDepotName.Text; jhGood.strGoodsNum = Convert.ToInt32(txtGoodsNum.Text); jhGood.strGoodsName = txtGoodsName.Text; jhGood.strGoodsUnit = cmbGoodsUnit.Text; jhGood.deGoodsJhPrice = txtGoodsJhPrice.Text; jhGood.deGoodsNeedPrice = txtGoodsNeedPrice.Text; jhGood.deGoodsNoPrice = txtGoodsNoPrice.Text; jhGood.deGoodsSellPrice = txtGoodsSellPrice.Text; jhGood.strGoodsRemark = txtGoodsRemark.Text; jhGood.DaGoodTime = dateTimePicker1.Value; if (intFalg != 3) jhGood.Falg = 0; else jhGood.Falg = 1; intReslut = 1; return intReslut; 3.1加载时显示所有的商品信息,将结果绑定到DataGirdView控件上,对应的实现代码如下: private void frmJhGoodsInfo_Load(object sender, EventArgs e) jhMenthod.tb_JhGoodsInfoFind(, 5, dataGridView1); 3.2在上述代码中,通过调用方法FillControls()显示了单击新机的详细内容,方法FillControls()的具体实现代码如下: private void FillControls() try SqlDataReader sqldr = jhMenthod.tb_JhGoodsInfoFind(this.dataGridView10, this.dataGridView1.CurrentCell.RowIndex.Value.ToString(),1); sqldr.Read(); if (sqldr.HasRows) txtEmpId.Text=sqldr1.ToString(); txtGoodsName.Text=sqldr4.ToString(); cmbDepotName.Text = sqldr3.ToString(); txtGoodsNum.Text=sqldr5.ToString(); cmbGoodsUnit.Text=sqldr6.ToString(); txtGoodsJhPrice.Text=sqldr7.ToString(); txtGoodsNeedPrice.Text=sqldr9.ToString(); txtGoodsNoPrice.Text=sqldr10.ToString(); txtGoodsSellPrice.Text=sqldr8.ToString(); txtGoodsRemark.Text=sqldr11.ToString(); txtJhCompName.Text = sqldr2.ToString(); txtGoodsID.Text = sqldr0.ToString(); txtGoodsID.Enabled = false; catch (Exception ee) MessageBox.Show(ee.ToString(); 3.3单击【添加】按钮可以添加新的进货信息,单击【修改】

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论