书店管理系统汇总终结版.docx

上传人:知****量 文档编号:49625945 上传时间:2022-10-09 格式:DOCX 页数:55 大小:1.56MB
返回 下载 相关 举报
书店管理系统汇总终结版.docx_第1页
第1页 / 共55页
书店管理系统汇总终结版.docx_第2页
第2页 / 共55页
点击查看更多>>
资源描述

《书店管理系统汇总终结版.docx》由会员分享,可在线阅读,更多相关《书店管理系统汇总终结版.docx(55页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、书店管理系统汇总终结版552020年4月19日文档仅供参考,不当之处,请联系改正。河南城建学院信息系统分析与设计课程设计报告书设 计 题 目: 书店信息管理系统 专 业: 信息管理与信息系统 指 导 老 师: 郝伟 小 组 成 员: 李宁 吴典 张党伟 贾文科 李胜辉 设 计 时 间: 1月 3日目录一 引言3二 可行性分析31 技术可行性3三 需求分析4基本功能4四 组织结构分析44.1 组织结构图44.2组织/业务关系图4五 业务流程分析55.1业务流程图5六 数据流程分析6七 数据字典9八:数据库设计13九:系统设计189.1业务功能图189.2业务代码设计199.3 E-R图209.4

2、 IPO图20十:系统实现2310.1系统登录设计2310.2系统主窗体设计2410.3进货管理窗体设计2610.4销售管理窗体设计2810.5系统维护和管理3310.6 公司基本信息35一 引言信息在社会和经济的快速发展下,所起的作用越来越重要,信息资源的开发和利用的水平也成为了一个国家综合素质的一个表现。计算机在对信息的处理和使用中,有较为方便的使用,各种数据库和系统的设计也为商业带来了极大的便利。传统的书店,不论其规模的大小,都是拥有大量的图书,在管理和统计方面需要投入大量的时间和精力,因此,讲传统书店和现代的信息化结合到一起,设计一个合适的书店管理信息系统,对于书店的经营有着极为方便的

3、提升。使用计算机对书店进行管理,能够极大的提高对信息的处理速度,节省大量的人力,时间,减少开支。二 可行性分析1 技术可行性书店配置多台电脑,用于对整个书店的全局的掌控。能够对书店工作人员的基本情况和上下班情况的管理,对书店图书的进销存有着详细的记录和统计。而且对书店工作人员进行培训,能够使其学会使用该系统。2 经济可行性书店管理系统是一个小型的管理软件,开发和维护的经费都不会太高。在图书的销售上,只要做到人员的合理分配和调用,对图书的合理购货及售出,就能够为书店带来良好的经济效益。3.开发工具本系统前台数据库采用Microsoft SQL Server ,该数据库系统在安全性、准确性、运行速

4、度方面有绝正确优势,而且处理数据量大、效率高;后台选择以.NET平台作为开发平台,以C#作为开发语言,采用Visual Studio 作为主要的开发工具,可与SQL Server 数据库无缝连接。ASP.NETASP.NET 建立在 .NET Framework 的编程类之上,它提供了一个 Web 应用程序模型,而且包含使生成 ASP Web 应用程序变得简单的控件集和结构。ASP.NET 包含封装公共 HTML 用户界面元素(如文本框和下拉菜单)的控件集。但这些控件在 Web 服务器上运行,并以 HTML 的形式将它们的用户界面推送到浏览器。在服务器上,这些控件公开一个面向对象的编程模型,为

5、 Web 开发人员提供了面向对象的编程的丰富性。ASP.NET 还提供结构服务(如会话状态管理和进程回收),进一步减少了开发人员必须编写的代码量并提高了应用程序的可靠性。另外,ASP.NET 使用这些同样的概念使开发人员能够以服务的形式交付软件。使用 XML Web services 功能,ASP.NET 开发人员能够编写自己的业务逻辑并使用 ASP.NET 结构经过 SOAP 交付该服务。三 需求分析该图书管理系统针对小型的实体书店,在开发方面,以实用为目的。做到便于工作人员的使用和管理,而且能够和好的对图书的信息管理和进销存方面有较为方便快捷的处理。基本功能1登录 工作人员的登录,用于对整

6、个系统的控制,防止其它人员的随意登录2 人员信息管理 用于对整个书店的工作人员的信息的处理,工作时间的管理,人员的调度等3 会员的管理 能够对书店的会员的添加,删除,其它的操作处理4 图书查询 查询图书的详细信息,统计每天的图书的剩余量,销售的总量,库存量等5 订单管理 包括每本图书的详细订单,以及进货图书的订单6 库存管理 能够对每本图书的库存量进行统计,和需要进货的图书的提醒。四 组织结构分析4.1 组织结构图决策管理人员门 店采 购 部 门库 存统 计 部 门4.1-14.2组织/业务关系图联系 组织业务程度门店采购部仓库经理销售活动*采购活动*库存管理*行政监督管理*五 业务流程分析5

7、.1业务流程图5.1-1六 数据流程分析 顶层数据流程图 采购数据流程图销售业务顶层数据流程图销售一层数据流程图 七 数据字典有关采购业务数据字典内容提取,下面是为数据流程图做了相应的提取: 数据流包括如下几部分:(1)商品信息(2)采购申请单(3)采购订单(4)入库单(5)进货单(6)送货单(7)财务报表 数据存储包括如下几个部分:1. 商品信息2. 采购订单3. 财务报表4. 送货单5. 进货单6. 入库单外部实体包括如下几个部分:1. 库存部门2. 总经理3. 供应商4. 财务部门 处理过程包括如下几部分:1. 订单处理2. 订单汇总数据元素卡片总编号:1-01名称:采购订单编号编号:0

8、1别名:说明:本书店的采购订单编号类型:字符有关编码的说明:共8位长度:-13CD XXXXXXXX范围:采购订单操作日期当日单据流水号有关的数据结构/组合数据(使用场合):采购订单采购入库申请单采购付款单有关销售业务数据字典内容提取,下面是为数据流程图做了相应的提取:数据流包括如下部分:订单销售订单财务信息申请购买销售订单处理财务信息数据存储包括如下几个部分:图书信息销售订单财务报表外部实体包括如下几个部分:客户库存部门总经理财务部门处理过程包括如下几部分:销售订单处理财务报表汇总数据字典 销售订单 销售进账 库存信息数据流 库存信息数据流八:数据库设计主要数据表结构员工表字段包含员工编号,

9、员工姓名,性别,员工部门,联系方式等表设计:数据库中实际存储员工权限表字段包含id,用户名称,用户密码,进货管理,销售管理.库存管理,系统管理,基础信息管理表设计在数据库中实际存储仓库存储表包含字段:图书编号,图书名称,图书作者,图书版本,产品编号,出版社,库存数量,实际价格,加权平均价格,销售价格,库存总价值,本类图书库存上限,本类图书库存下限表设计数据库中实际存储销售订单统计表字段包含:订单号,订单日期,图书名称,图书数量,应付金额,实付金额,差额,出版社表设计数据库中实际存储出版社信息表字段包含:出版社编号,出版社名称,传真,电话,联系人,地址等表设计在数据库中存储其它表的设计如下九:系

10、统设计八采购业务功能模块设计9.1业务功能图总体业务功能图采购业务功能图9.2业务代码设计 代码设计9.3 E-R图9.4 IPO图采购图书申请单备货缺货处理收退货处理销售业务功能模块设计E_R图十:系统实现10.1系统登录设计窗体设计在窗体中分别添加两个Label控件,两个textbox控件,两个Button控件。1, 代码设计 private void btnLogin_Click(object sender, EventArgs e) if (txtUserName.Text = string.Empty) MessageBox.Show(用户名不正确”,”错误提示”, MessageB

11、oxButtons.OK, MessageBoxIcon.Error); return; DataSet ds = null; popedom.SysUser = txtUserName.Text; popedom.Password = txtUserPwd.Text; ds=baseinfo.Login(popedom); if (ds.Tables0.Rows.Count 0) frmMain frm_main = new frmMain(); frm_main.Show(); if (Convert.ToBoolean(ds.Tables0.Rows0stock) frm_main.tl

12、mBuy.Enabled = true; if (Convert.ToBoolean(ds.Tables0.Rows0vendition) frm_main.tlmSale.Enabled = true; if (Convert.ToBoolean(ds.Tables0.Rows0storage) frm_main.tlmStock.Enabled = true; if (Convert.ToBoolean(ds.Tables0.Rows0system) frm_main.tlmSystem.Enabled = true; if (Convert.ToBoolean(ds.Tables0.Ro

13、ws0base) frm_main.tlmBase.Enabled = true; this.Visible = false; else MessageBox.Show(用户名称或密码不正确”,”错误提示”,BoxButtons.OK,MessageBoxIcon.Error); private void txtUserName_KeyUp(object sender, KeyEventArgs e) if (e.KeyValue = 13) txtUserPwd.Focus(); private void txtUserPwd_KeyUp(object sender, KeyEventArg

14、s e) if (e.KeyValue = 13) btnLogin.Focus(); private void btnExit_Click(object sender, EventArgs e) this.Close(); private void groupBox1_Enter(object sender, EventArgs e) 10.2系统主窗体设计1,在窗体中分别添加一个MenuStrip控件、一个Timer控件和一个StatusStrip控件。2代码设计public frmMain() InitializeComponent(); private void fileUnits_C

15、lick(object sender, EventArgs e) BaseInfo.frmUnits frm_units = new EMS.BaseInfo.frmUnits(); frm_units.Show(); private void fileStore_Click(object sender, EventArgs e) new EMS.BaseInfo.frmStock().Show(); private void fileEmployee_Click(object sender, EventArgs e) new EMS.BaseInfo.frmEmployee().Show()

16、; private void new EMS.BuyStock.frmUnitsList().Show(); private void fileCurrentBook_Click(object sender, EventArgs e) new EMS.BuyStock.frmUnitsList().Show(); private void fileEnd_Click(object sender, EventArgs e) Application.Exit(); private void frmMain_FormClosed(object sender, FormClosedEventArgs

17、e) Application.Exit(); private void tlmSystem_Click(object sender, EventArgs e) new EMS.SetSystem.frmSetOP().Show(); 10.3进货管理窗体设计1.1进货单进货单是采购员进行图书采购进行操作的页面,在此页面能够进行添加一个新的进货单,如下图所示1.2代码如下 进货统计进货统计窗体是进行把进货信息整合到一起统一显示的窗体,窗体图如下:2.2,代码设计public partial class frmBuyStockSum : Form BaseClass.BaseInfo basein

18、fo = new EMS.BaseClass.BaseInfo(); BaseClass.cBillInfo billinfo = new EMS.BaseClass.cBillInfo(); public frmBuyStockSum() InitializeComponent(); private void tlbtnSumDetailed_Click(object sender, EventArgs e) DataSet ds = null; billinfo.Handle = tltxtHandle.Text; billinfo.Units = tltxtUnits.Text; ds

19、= baseinfo.BuyStockSumDetailed(billinfo,tb_StockSumDeailed,dtpStar.Value,dtpEnd.Value); dgvStockList.DataSource = ds.Tables0.DefaultView; private void tlbtnSum_Click(object sender, EventArgs e) DataSet ds = null; ds = baseinfo.BuyStockSum(tb_StockSum); dgvStockList.DataSource = ds.Tables0.DefaultVie

20、w; 10.4销售管理窗体设计1.1 销售单销售单据是书店对外销售的统计数据,此页面能够记录销售的时候生成的日期,单据编号,经手人,销售单位以及所销售的图书和金额。如下图所示:1.2 代码设计此部分代码感觉很不错的就是单据编号的自动生成,代码如下:private void frmSellStock_Load(object sender, EventArgs e) txtBillDate.Text = DateTime.Now.ToString(yyyy-MM-dd); DataSet ds = null; string P_Str_newBillCode = ; int P_Int_newBi

21、llCode = 0; ds = baseinfo.GetAllBill(tb_sell_main); if (ds.Tables0.Rows.Count = 0) txtBillCode.Text = DateTime.Now.ToString(yyyyMMdd) + XS + 1000001; else P_Str_newBillCode = Convert.ToString(ds.Tables0.Rowsds.Tables0.Rows.Count - 1billcode); P_Int_newBillCode = Convert.ToInt32(P_Str_newBillCode.Sub

22、string(10, 7) + 1; P_Str_newBillCode = DateTime.Now.ToString(yyyyMMdd) + XS + P_Int_newBillCode.ToString(); txtBillCode.Text = P_Str_newBillCode; txtHandle.Focus(); private void btnSelectHandle_Click(object sender, EventArgs e) EMS.SelectDataDialog.frmSelectHandle selecthandle; selecthandle = new EM

23、S.SelectDataDialog.frmSelectHandle(); selecthandle.sellStock = this; /将新创立的窗体对象设置为同一个窗体类的实例(对象) selecthandle.M_str_object = SellStock;/用于识别是那一个窗体调用的selecthandle窗口的 selecthandle.ShowDialog(); private void btnSelectUnits_Click(object sender, EventArgs e) EMS.SelectDataDialog.frmSelectUnits selectUnits

24、; selectUnits = new EMS.SelectDataDialog.frmSelectUnits(); selectUnits.sellStock = this; /将新创立的窗体对象设置为同一个窗体类的实例(对象) selectUnits.M_str_object = SellStock;/用于识别是那一个窗体调用的selectUnits窗口的 selectUnits.ShowDialog(); private void dgvStockList_CellDoubleClick(object sender, DataGridViewCellEventArgs e) Select

25、DataDialog.frmSelectStock selectStock = new EMS.SelectDataDialog.frmSelectStock(); selectStock.sellStock = this; /将新创立的窗体对象设置为同一个窗体类的实例(对象) selectStock.M_int_CurrentRow = e.RowIndex; selectStock.M_str_object = SellStock;/用于识别是那一个窗体调用的selectStock窗口的 selectStock.ShowDialog(); 统计图书进货数量和金额的代码如下:try floa

26、t tqty = 0; float tsum = 0; for (int i = 0; i = dgvStockList.RowCount; i+) tsum = tsum + Convert.ToSingle(dgvStockList5, i.Value.ToString(); tqty = tqty + Convert.ToSingle(dgvStockList3, i.Value.ToString(); txtFullPayment.Text = tsum.ToString(); txtStockQty.Text = tqty.ToString(); catch 10.4 库存管理pri

27、vate void SetdgvStockListHeadText() dgvStockList.Columns0.HeaderText = 商品编号?; dgvStockList.Columns1.HeaderText = 商品名?称?; dgvStockList.Columns2.HeaderText = 商品型号?; dgvStockList.Columns3.HeaderText = 商品规?格?; dgvStockList.Columns4.HeaderText = 商品单位?; dgvStockList.Columns5.HeaderText = 商品产地?; dgvStockLi

28、st.Columns6.HeaderText = 库a存?数y量?; dgvStockList.Columns7.Visible = false; dgvStockList.Columns8.Visible = false; dgvStockList.Columns9.Visible = false; dgvStockList.Columns10.HeaderText = 盘点?数y量?; dgvStockList.Columns11.Visible = false; dgvStockList.Columns12.Visible = false; private void tlBtnFind_

29、Click(object sender, EventArgs e) if (tlCmbStockType.Text = string.Empty) MessageBox.Show(查询类别e不?能为a空?!?, 错误提示?!?, MessageBoxButtons.OK, MessageBoxIcon.Error); tlCmbStockType.Focus(); return; else if (tlTxtFindStock.Text.Trim() = string.Empty) dgvStockList.DataSource = baseinfo.GetAllStock(tb_stock)

30、.Tables0.DefaultView; this.SetdgvStockListHeadText(); return; DataSet ds = null; /创建DataSet对?象 if (tlCmbStockType.Text = 商品产地?) /按单位?编号?查询 stockinfo.Produce = tlTxtFindStock.Text; ds = baseinfo.FindStockByProduce(stockinfo, tb_Stock); dgvStockList.DataSource = ds.Tables0.DefaultView; else?/按单位?名?称?查

31、询 stockinfo.FullName = tlTxtFindStock.Text; ds = baseinfo.FindStockByFullName(stockinfo, tb_stock); dgvStockList.DataSource = ds.Tables0.DefaultView; this.SetdgvStockListHeadText(); private void frmCheckStock_Load(object sender, EventArgs e) dgvStockList.DataSource = baseinfo.GetAllStock(tb_stock).T

32、ables0.DefaultView; this.SetdgvStockListHeadText(); private void dgvStockList_CellEnter(object sender, DataGridViewCellEventArgs e) tltxtFullName.Text = dgvStockList1, e.RowIndex.Value.ToString(); G_Str_tradecode = dgvStockList0, e.RowIndex.Value.ToString(); private void tlbtnCheckStock_Click(object

33、 sender, EventArgs e) if (tltxtCheckStock.Text = string.Empty) MessageBox.Show(盘点?数y量?不?能为a空?!?,错误提示?,MessageBoxButtons.OK,MessageBoxIcon.Error); return; /验证输?入?的?文?本?必?须?为a阿拉-伯?数y字?。 for (int i = 0; i tltxtCheckStock.Text.Length; i+) if (!Char.IsNumber(tltxtCheckStock.Text, i) MessageBox.Show(库a存?上?限T设置?必?须?为a阿拉-伯?数y字?!?, 错误提示?, MessageBoxButtons.OK, MessageBoxIcon.Error); return; stockinfo.TradeCode = G_Str_tradecode; stockinfo.Check = Convert.ToSingle(tltxtCheckStock.Text); int d= baseinfo.CheckStock(stockinfo); dgvStockList.DataSource = baseinfo.GetAllStock(tb_

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 初中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁