




免费预览已结束,剩余32页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河南城建学院信息系统分析与设计课程设计报告书设 计 题 目: 书店信息管理系统 专 业: 信息管理与信息系统 指 导 老 师: 郝伟 小 组 成 员: 李宁 吴典 张党伟 贾文科 李胜辉 设 计 时 间: 2015年 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 IPO图20十:系统实现2310.1系统登录设计2310.2系统主窗体设计2410.3进货管理窗体设计2610.4销售管理窗体设计2810.5系统维护和管理3310.6 公司基本信息35一 引言信息在社会和经济的快速发展下,所起的作用越来越重要,信息资源的开发和利用的水平也成为了一个国家综合素质的一个表现。计算机在对信息的处理和使用中,有较为方便的使用,各种数据库和系统的设计也为商业带来了极大的便利。传统的书店,不论其规模的大小,都是拥有大量的图书,在管理和统计方面需要投入大量的时间和精力,因此,讲传统书店和现代的信息化结合到一起,设计一个合适的书店管理信息系统,对于书店的经营有着极为方便的提升。使用计算机对书店进行管理,可以极大的提高对信息的处理速度,节省大量的人力,时间,减少开支。二 可行性分析1 技术可行性书店配置多台电脑,用于对整个书店的全局的掌控。可以对书店工作人员的基本情况和上下班情况的管理,对书店图书的进销存有着详细的记录和统计。并且对书店工作人员进行培训,可以使其学会使用该系统。2 经济可行性书店管理系统是一个小型的管理软件,开发和维护的经费都不会太高。在图书的销售上,只要做到人员的合理分配和调用,对图书的合理购货及售出,就可以为书店带来良好的经济效益。3.开发工具本系统前台数据库采用Microsoft SQL Server 2005,该数据库系统在安全性、准确性、运行速度方面有绝对的优势,并且处理数据量大、效率高;后台选择以.NET平台作为开发平台,以C#作为开发语言,采用Visual Studio 2005作为主要的开发工具,可与SQL Server 2005数据库无缝连接。ASP.NETASP.NET 建立在 .NET Framework 的编程类之上,它提供了一个 Web 应用程序模型,并且包含使生成 ASP Web 应用程序变得简单的控件集和结构。ASP.NET 包含封装公共 HTML 用户界面元素(如文本框和下拉菜单)的控件集。但这些控件在 Web 服务器上运行,并以 HTML 的形式将它们的用户界面推送到浏览器。在服务器上,这些控件公开一个面向对象的编程模型,为 Web 开发人员提供了面向对象的编程的丰富性。ASP.NET 还提供结构服务(如会话状态管理和进程回收),进一步减少了开发人员必须编写的代码量并提高了应用程序的可靠性。另外,ASP.NET 使用这些同样的概念使开发人员能够以服务的形式交付软件。使用 XML Web services 功能,ASP.NET 开发人员可以编写自己的业务逻辑并使用 ASP.NET 结构通过 SOAP 交付该服务。三 需求分析该图书管理系统针对小型的实体书店,在开发方面,以实用为目的。做到便于工作人员的使用和管理,而且可以和好的对图书的信息管理和进销存方面有较为方便快捷的处理。基本功能1登录 工作人员的登录,用于对整个系统的控制,防止其他人员的随意登录2 人员信息管理 用于对整个书店的工作人员的信息的处理,工作时间的管理,人员的调度等3 会员的管理 可以对书店的会员的添加,删除,其他的操作处理4 图书查询 查询图书的详细信息,统计每天的图书的剩余量,销售的总量,库存量等5 订单管理 包括每本图书的详细订单,以及进货图书的订单6 库存管理 可以对每本图书的库存量进行统计,和需要进货的图书的提醒。四 组织结构分析4.1 组织结构图决策管理人员门 店采 购 部 门库 存统 计 部 门4.1-14.2组织/业务关系图联系 组织业务程度门店采购部仓库经理销售活动*采购活动*库存管理*行政监督管理*五 业务流程分析5.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名称:采购订单编号编号:01别名:说明:本书店的采购订单编号类型:字符有关编码的说明:共8位长度:-13CD XXXXXXXX范围:采购订单操作日期当日单据流水号有关的数据结构/组合数据(使用场合):采购订单采购入库申请单采购付款单有关销售业务数据字典内容提取,下面是为数据流程图做了相应的提取:数据流包括如下部分:订单销售订单财务信息申请购买销售订单处理财务信息数据存储包括如下几个部分:图书信息销售订单财务报表外部实体包括如下几个部分:客户库存部门总经理财务部门处理过程包括如下几部分:销售订单处理财务报表汇总数据字典 销售订单 销售进账 库存信息数据流 库存信息数据流八:数据库设计主要数据表结构员工表字段包含员工编号,员工姓名,性别,员工部门,联系方式等表设计:数据库中实际存储员工权限表字段包含id,用户名称,用户密码,进货管理,销售管理.库存管理,系统管理,基础信息管理表设计在数据库中实际存储仓库存储表包含字段:图书编号,图书名称,图书作者,图书版本,产品编号,出版社,库存数量,实际价格,加权平均价格,销售价格,库存总价值,本类图书库存上限,本类图书库存下限表设计数据库中实际存储销售订单统计表字段包含:订单号,订单日期,图书名称,图书数量,应付金额,实付金额,差额,出版社表设计数据库中实际存储出版社信息表字段包含:出版社编号,出版社名称,传真,电话,联系人,地址等表设计在数据库中存储其它表的设计如下九:系统设计八采购业务功能模块设计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(用户名不正确”,”错误提示”, MessageBoxButtons.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.tlmBuy.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.Rows0base) 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, KeyEventArgs 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_Click(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(); 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 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 baseinfo = 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 = 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.DefaultView; 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_newBillCode = 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.Substring(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 EMS.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; selectUnits = new EMS.SelectDataDialog.frmSelectUnits(); selectUnits.sellStock = this; /将新创建的窗体对象设置为同一个窗体类的实例(对象) selectUnits.M_str_object = SellStock;/用于识别是那一个窗体调用的selectUnits窗口的 selectUnits.ShowDialog(); private void dgvStockList_CellDoubleClick(object sender, DataGridViewCellEventArgs e) SelectDataDialog.frmSelectStock selectStock = new EMS.SelectDataDialog.frmSelectStock(); selectStock.sellStock = this; /将新创建的窗体对象设置为同一个窗体类的实例(对象) selectStock.M_int_CurrentRow = e.RowIndex; selectStock.M_str_object = SellStock;/用于识别是那一个窗体调用的selectStock窗口的 selectStock.ShowDialog(); 统计图书进货数量和金额的代码如下:try float 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 库存管理private void SetdgvStockListHeadText() dgvStockList.Columns0.HeaderText = 商品编号?; dgvStockList.Columns1.HeaderText = 商品名?称?; dgvStockList.Columns2.HeaderText = 商品型号?; dgvStockList.Columns3.HeaderText = 商品规?格?; dgvStockList.Columns4.HeaderText = 商品单位?; dgvStockList.Columns5.HeaderText = 商品产地?; dgvStockList.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_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).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?/按单位?名?称?查询 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).Tables0.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 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_stock).Tables0.DefaultView; this.SetdgvStockListHeadText(); MessageBox.Show(保存?库a存?商品盘点?成功|!?,成功|提示?,MessageBoxButtons.OK,MessageBoxIcon.Information); private void tlBtnExit_Click(object sender, EventArgs e) this.Close(); 10.5系统维护和管理主要代码 private void tlbtnAdd_Click(object sender, EventArgs e) if (tltxtUserName.Text = string.Empty) MessageBox.Show(用?户名?称?不?能为a空?!?,错误提示?,MessageBoxButtons.OK,MessageBoxIcon.Error); return; if(baseinfo.FindUserName(tltxtUserName.Text) MessageBox.Show(用?户名?称?已?经-存?在,?不?添加重?复的?用?户名?!?,错误提示?,MessageBoxButtons.OK,MessageBoxIcon.Error); return; baseinfo.AddSysUser(tltxtUserName.Text,tltxtPwd.Text); MessageBox.Show(系统3新?用?户-添加成功|!?,成功|提示?,MessageBoxButtons.OK,MessageBoxIcon.Information); dgvSysUserList.DataSource = baseinfo.GetAllUser().Tables0.DefaultView; this.SetHeadText(); private void tlbtnDel_Click(object sender, EventArgs e) if (ID = 0) MessageBox.Show(请?选?择?将?要a删?除y的?系统3用?户!?, 错误提示?, MessageBoxButtons.OK, MessageBoxIcon.Error); return; baseinfo.DeleteSysUser(ID); MessageBox.Show(系统3用?户-删?除y成功|!?, 成功|提示?, MessageBoxButtons.OK, MessageBoxIcon.Information); dgvSysUserList.DataSource = baseinfo.GetAllUser().Tables0.DefaultView; this.SetHeadText(); private void dgvSysUserList_CellEndEdit(object sender, DataGridViewCellEventArgs e) try popedom.Stock = Convert.ToBoolean(dgvSysUserList3, e.RowIndex.Value.ToString(); popedom.Vendition = Convert.ToBoolean(dgvSysUserList4, e.RowIndex.Value.ToString(); popedom.Storage = Convert.ToBoolean(dgvSysUserList5, e.RowIndex.Value.ToString(); popedom.SystemSet = Convert.ToBoolean(dgvSysUserList6, e.RowIndex.Value.ToString(); popedom.Base_Info = Convert.ToBoolean(dgvSysUserList7, e.RowIndex.Value.ToString(); catch private void dgvSysUserList_CellClick(object sender, DataGridViewCellEventArgs e) try ID = Convert.ToInt16(dgvSysUserList0, e.RowIndex.Value.ToStr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 化学安全培训考核课件
- 先秦文学课件
- 化学品安全培训漫画课件
- 第四单元名著导读《简爱》公开课一等奖创新教学设计
- 6 飞向蓝天的恐龙 公开课一等奖创新教案
- 创伤性肋骨骨折课件
- 12在牛肚子里旅行第2课时 同步+公开课一等奖创新教学设计+学习任务单+分层练习+听写
- 2026年中考语文文言文专练专题04古诗词鉴赏之表现手法(讲义)(学生版+解析)
- 客服岗位月度汇报
- 路基挖方施工技术交底
- PICC堵管原因与再通方法
- 标杆地产五星级酒店精装修标准
- 脑器质性精神障碍患者的护理查房
- (高清版)TDT 1013-2013 土地整治项目验收规程
- 初中数学分层作业设计举例-有理数
- 西方经济学简史
- 信息管理系统的设计与实现
- 新闻报道与舆论导向
- 局放实验操作规程
- 透明土实验技术的研究进展
- 戴海崎心理与教育测量第4版课后习题答案
评论
0/150
提交评论