1、信息系统分析与设计课程设计课程设计题目姓 名学 号 2012专 业 信息管理与信息系统指导教师2013 年 6 月 24 日目录1.系统规 划 12.系统分析 12.1 系统主要业务分析 .12.2 系统数据流分析 .22.3 数据字典 .42.4 数据加工描述 .43.系统设计 53.1 系统功能分析 53.2 信息处理分析 63.3 数据库设计 .63.4 代码设 计 .73.5 面向对象建模工具 UML .83.6 人机界面设计 .94.系统实施 114.1 程序处理流程图 .114.2 主要算法源程序 .114.3 模拟运行数据 .145.总结 1501.系统规划随着超市形态的高速发展
2、,其经营管理也变得愈加复杂,日常所需要处理的数据量也逐渐增大,商业运转的中间环节也越来越多,原始的人工管理已无法应对这复杂的市场。而依靠现代化的计算机信息处理技术来管理超市,能节省了大量的人力、物力,改善了员工的工作条件,减轻了劳动强度,并且能够快速反映出商品的进、销、存等状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率。基于本学期所学知识,本系统拟定采用 B/S 架构体系,应用面向对象的开发技术予以实现。本系统的具体实现:基于 Microsoft Visual Studio 2008 开发平台,采用 ASP.NET 开发技术,以 SQL Server 2
3、008 作为后台数据库。2.系统分析以下为本系统分析阶段的相关描述:2.1 系统主要业务分析(1)进货业务进货管理是企业生产经营活动中及其重要的一环,它关系到产品质量能否得到保证,生产是否能够顺利进行,采购成本能否得到有效控制等问题。下面是进货业务程序的主要内容:超市根据自身的资金条件和销售状况,综合分析市场规律,拟定采购计划表。(2)库存业务库存管理是指在上产经营中为销售和耗用而存储的各种资产。企业存货不当都会增加不必要的费用:存货过多将导致物资的积压、存储费用增加、流动资金周转不利,并且过量的库存会掩盖管理不善的问题。存货不足则影响企业的正常销售活动。因此,需科学合理地确定某库存物资的库存
4、控制参数。如:最佳订货批量、最大库存量、最佳缺货量、最佳订购周期等,进行严格的库存控制工作。(3)销售业务销售对一个企业的生存和发展是至关重要的,对外关系到企业产品、服务和企业形象等多方面因素,对内涉及到销售、库存、财务等信息。此外信息化的高速发展为企业的销售工作提出了新的挑战,封闭意味着落后,超市1要抓住时机,引入现代化的销售管理模式,实施企业的信息化、智能化销售管理。系统业务流程图如下:采购 采购单 经理审批 购货清单采购清单供应商发货清单货物运输仓库入库单出库单入库清单出库清单综合处理商品库存库存清单销售数据销售清单销售 商品上架财务 营业数据计算利润利润报表总经理图 2.1-1 超市业
5、务流程图2.2 系统数据流分析信息系统顾客供应商职工经理图 2.2-1 关联图2进货信息采购单进货单库存信息销售信息销售单职工信息供货商信息新供货商信息前台销售信息库存管理进货管理人事管理销售管理顾客供应商职工紧缺商品信息图 2.2-2 顶层图进货信息采购单进货单库存信息销售信息销售单职工信息F 4 新供货商信息前台销售信息顾客供应商职工紧缺商品信息3库存更新F 3 库存信息清单1销售更新F 1 销售信息清单2进货更新F 2 进货信息清单4人事更新D 3D 1D 2D 4销售数据人事数据库存数据进货清单经理经理销售信息查询 进货信息查询库存信息查询人事信息查询图 2.2-3 第一层图32.3
6、数据字典数据流条目(1)F1 销售信息=销售单号 +商品编号+销售数量+销售日期(2)F3 库存信息=商品编号 +库存数量文件条目(1)文件名:D1 销售清单组成: 销售单号 +商品编号+销售数量+ 销售日期组织:按销售单编号递增排列(2)文件名:D3 库存清单组成: 商品编号 +库存数量组织:按商品编号递增排列(3)文件名:商品清单组成: 商品编号 +名称+计量单位 +类别+单价+备注组织:按商品编号递增排列2.4 数据加工描述(1)加工名:1 销售更新加工逻辑:根据销售信息更细销售清单输入流:前台销售信息,库存信息输出流:更新销售清单/库存清单(2)加工名:3 库存更新根据进货信息和销售信
7、息更新库存信息输入流:进货信息,销售信息输出流:更新库存数据43.系统设计3.1 系统功能分析本系统采用自顶向下方法开发,其功能模块主要有如下几个部分:进货管理模块、库存管理模块、销售管理模块、员工管理模块和系统模块。我主要的任务就是分析具体的功能描述如下: 库存管理:对采购来的产品进行企业内部编码入库,产品分类等活动,同时能够根据销售清单进行出货管理,以及库存统计。销售管理:提供一般的销售管理,能够进行销售明细查询和打印销售报表。超市管理系统人事管理模块 销售管理模块 进货管理模块 库存管理模块职工信息管理供货商信息管理销售信息查询 销售信息盘点销售信息维护进货信息查询 进货信息维护 库存信
8、息查询 库存信息维护图 3-1 功能分析图53.2 信息处理分析入库单 出库单 采购单 销售单供应商 职员编辑事务编辑后的事务供应商 职员库存清单财务报表销售历史库存历史修正文件错误图 3-2 系统信息处理流程图3.3 数据库设计3.3.1 E-R 模型超市管理系统数据库 E-R 模型,如图所示:职工 / 用户姓名银行账号供货日期电话地址姓名供货商编号价格名称商品编号进货日期进货单号数量销售日期销售单号工资职工编号籍贯身份证号性别销售 顾客进货供货商品 供货商m nmnm n3.3.2 数据库逻辑结构设计6结合以上 E-R 图,可以导出各个关系,即逻辑结构设计。如下:用户表:帐号、密码、权限;
9、商品表:商品编号、名称、计量单位、类别、单价、备注;销售表:商品编号、销售数量、销售日期;库存表:商品编号、库存数量;3.3.3 数据库物理结构设计(1) 用户清单 (Users)中文字段名 英文字段名 字段类型 长度 主键/外键 字段值约束帐号 UserID char 7 P/F NOT NULL密码 passWord char 6 NOT NULL权限 permission Char 8 NOT NULL说明:此表存放系统用户信息。(2) 商品清单 (MerchBill)中文字段名 英文字段名 字段类型 长度 主键/外键 字段值约束商品编号 merchID char 7 P NOT NUL
10、L名称 mName nvarchar 80 NOT NULL计量单位 Unit varchar 4 NOT NULL类别 kind nvarchar 8 NULL单价 price money 4 NOT NULL备注 others ntext 50 NULL说明:此表存放商品信息。(3) 销售清单 (SaleBill)中文字段名 英文字段名 字段类型 长度 主键/外键 字段值约束商品编号 merchID char 7 P/F NOT NULL销售数量 saleNum int 4 NOT NULL销售日期 saleDate datetime 8 NOT NULL说明:此表存放销售信息。(4) 库
11、存清单 (StoreBill)中文字段名 英文字段名 字段类型 长度 主键/外键 字段值约束商品编号 merchID char 7 P/F NOT NULL库存数量 storeNum int 4 NOT NULL3.4 代码设计1)“职工清单”中的“职工编号”的代码设计如下:7X X月份权限顺序号X XXX X年份2)“商品清单”中的“商品编号”的代码设计如下:X X型号产地X X XX X类别前两位商品大类,中间两位主要表示商品的具体型号,后三位是辅码代表商品的产地。3.5 面向对象建模工具 UML1. 销售管理模块功能:本模块的主要功能是把销售信息写入销售清单,同时对库存清单进行更新,以备
12、用户将来对库存信息进行查询和打印,此外还可以对销售信息进行查询和盘点功能。销售信息查询:根据商品销售情况,按需要对销售情况进行查询。在该查询模块中,可以按照商品的编号、销售日期等多种方式进行商品销售信息查询。(1)销售模块的用例图,如图所示:管理者查询销售信息销售信息盘点(2)销售管理模块的活动图,如图所示:查询输入查询信息确认信息盘点查询销售数量进行盘点2. 库存管理模块功能:本模块的主要功能是商品信息的查询和更新,库存信息的查询和更新。输入项、输出项:本模块的数据输入项主要是商品编号。8(1)库存管理模块的用例图,如图所示:系统管理员查询商品信息添加商品信息修改商品信息删除商品信息(2)库
13、存管理模块活动图,如图所示:库存管理查询 添加 删除 修改输入查询信息 输入新商品信息 输入删除信息 查询欲修改信息确认信息 确认添加信息 确认删除信息 输入新的商品信息保存 删除商品信息确认商品信息保存信息 保存商品信息3.6 人机界面设计3.6.1 登陆界面3.6.2 前台收银界面93.6.3 后台管理104.系统实施4.1 程序处理流程图登录界面身份验证前台销售 后台管理用户信息维护商品入库销售信息查询库存信息查询商品信息维护销售界面普通用户 管理员N用户切换退出开始NYY4.2 主要算法源程序4.2.1 配置数据源4.2.2 登录页面protected void LinkButton1
14、_Click(object sender, EventArgs e)string strConn = ConfigurationManager.ConnectionStrings“ConnString“.ConnectionString;SqlConnection Conn = new SqlConnection(strConn);/定义新的数据连接控件并初始化Conn.Open();/打开连接string strsql = “select * from Users where USERID=“ + TextID.Text + “ and PASSWORD = “ + TextPwd.Text
15、 + “;11SqlDataAdapter Cmd = new SqlDataAdapter(strsql, Conn);/定义并初始化数据适配器DataSet ds = new DataSet();Cmd.Fill(ds); /将数据适配器中的数据填充到数据集ds 中Conn.Close();/关闭连接if (ds.Tables0.Rows.Count = 0)Response.Write(“alert(“用户名不存在或密码错误,请确认后再登录! “);“);return;DataRow Myrow = ds.Tables0.Rows0;if (Myrow3.ToString().Trim(
16、) = “管理员“)Session“pass“ = “ok“;Session“Uname“ = Myrow1.ToString().Trim();Session“Level“ = Myrow3.ToString().Trim();Response.Redirect(“admin_default.aspx?name=“ + Myrow1.ToString().Trim();elseSession“pass“ = “ok“;Session“Uname“ = Myrow1.ToString().Trim();Response.Redirect(“settleaccounts.aspx?name=“
17、+ Myrow1.ToString().Trim();4.2.3 销售页面private void fill() /GW数据源更新函数DataSet myds = new DataSet();myds = (DataSet)Session“myds“;Gw.DataSource = myds.Tables“sell“ ;Gw.DataBind();protected void addsell_Click(object sender, EventArgs e)time.Text = System.DateTime.Now.ToString();trystring strConn = Config
18、urationManager.ConnectionStrings“ConnString“.ConnectionString;SqlConnection Conn = new SqlConnection(strConn);/定义新的数据连接控件并初始化Conn.Open();/打开连接string information = “select mName from Merchans where merchid like “ + sname.Text.Trim() + “;string sprice = “select Price from Merchans where merchid like “
19、 + sname.Text.Trim() + “;string kucun = “select storenum from Storebill where merchId like “ + sname.Text.Trim() + “;kc -= i ;12string skc = kc.ToString();DataSet myds = new DataSet();myds = (DataSet)Session“myds“;DataRow row = myds.Tables“sell“.NewRow();row“价格“ = s1;row“商品“ = sname.Text;row“名称“ = s
20、;row“数量“ = amount.Text;myds.Tables“sell“.Rows.Add(row);Session“myds“ = myds;fill();string ms = “INSERT INTO salebill(merchid,salenum,saledate) VALUES (“ + sname.Text + “,“ + amount.Text + “,“ + time .Text.Trim() + “)“;SqlCommand Comm = new SqlCommand(ms, Conn);Comm.ExecuteNonQuery();string kuc2 = “U
21、PDATE Storebill SET storenum=“+skc +“ WHERE merchId like “ + sname.Text.Trim() + “;SqlCommand kuc3 = new SqlCommand(kuc2, Conn);kuc3.ExecuteNonQuery();Conn.Close();amount.Text = “;time.Text = System.DateTime.Now.ToShortDateString();sname.Focus();catchResponse.Write(“系统出错,请稍候重新操作!“);4.2.4 商品入库页面prote
22、cted void Button1_Click(object sender, EventArgs e)trystring strConn = ConfigurationManager.ConnectionStrings“ConnString“.ConnectionString;SqlConnection Conn = new SqlConnection(strConn);/定义新的数据连接控件并初始化Conn.Open();/打开连接string sqlstr = “select * from storebill where merchid=“ + DropDownList1.Text.Tri
23、m()+“;SqlDataAdapter Cmd = new SqlDataAdapter(sqlstr, Conn);/定义并初始化数据适配器SqlCommandBuilder scb = new SqlCommandBuilder(Cmd);DataSet ds = new DataSet();Cmd.Fill(ds); /将数据适配器中的数据填充到数据集ds 中if (ds.Tables0.Rows.Count = 0)string sqlstr1 = “select * from storebill“;Cmd.SelectCommand = new SqlCommand(sqlstr1
24、, Conn);13Cmd.Fill(ds);DataRow newrow = ds.Tables0.NewRow();newrow“merchid“ = DropDownList1.Text.Trim();newrow“storenum“ = Convert.ToInt32(TextBox2.Text);ds.Tables0.Rows.Add(newrow);Cmd.Update(ds);elsestring str = “UPDATE Storebill SET storenum=storenum+“ + Convert.ToInt32(TextBox2.Text) + “ WHERE m
25、erchId =“ + DropDownList1.Text.Trim() + “;SqlCommand kuc = new SqlCommand(str, Conn);kuc.ExecuteNonQuery();sqlstr = “select merchans.merchid 商品ID,Mname 名称,storenum 数量 from storebill,merchans where merchans.merchid=storebill.merchid“;Cmd.SelectCommand = new SqlCommand(sqlstr, Conn);DataSet ds1 = new
26、DataSet();Cmd.Fill(ds1);Conn.Close();/关闭连接GridView1.Caption = “商品库存清单“ ;GridView1.DataSource = ds1.Tables0;GridView1.DataBind();catchResponse.Write(“系统出错,请稍候重新操作!“);4.3 模拟运行数据用户登录数据:商品信息数据:14商品库存数据:5.总结通过这次课程设计的实践,使我对信息系统的项目开发有了更加深刻的认识,同时,对C#.NET 和 ASP.NET 技术也进行了更细致的学习,更加重要的是我切身感受到了团队合作的力量,在系统开发过程中,每个同学都积极参与,发挥自己所长,遇困难大家一起商量探讨,共享所得成果。与此同时,还要感谢句全老师这学期对我们的细心教导,带领我们大家一起学习信息系统分析与设计这门课程,相信这对我们以后的工作大有裨益。