1、 信息系统分析与设计课程设计 课程设计题目 姓 名 学 号 2012 专 业 信息管理与信息系统 指导教师 2013年6月24日 14 目录 1.系统规划 1 2.系统分析 1 2.1系统主要业务分析 1 2.2系统数据流分析 2 2.3数据字典 4 2.4数据加工描述 4 3.系统设计 5 3.1 系统功能分析 5 3.2 信息处理分析 6 3.3数据库设计 6 3.4代码设计 7 3.5面向对象建模工具UML 8 3.6人机界面设计 9 4.系统实施 11 4.1程序处理流程图 11
2、 4.2主要算法源程序 11 4.3模拟运行数据 14 5.总结 15 1.系统规划 随着超市形态的高速发展,其经营管理也变得愈加复杂,日常所需要处理的数据量也逐渐增大,商业运转的中间环节也越来越多,原始的人工管理已无法应对这复杂的市场。而依靠现代化的计算机信息处理技术来管理超市,能节省了大量的人力、物力,改善了员工的工作条件,减轻了劳动强度,并且能够快速反映出商品的进、销、存等状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率。基于本学期所学知识,本系统拟定采用B/S架构体系,应用面向对象的开发技术予以实现。 本系统的具体实现:基于Mic
3、rosoft Visual Studio 2008开发平台,采用ASP.NET开发技术,以SQL Server 2008作为后台数据库。 2.系统分析 以下为本系统分析阶段的相关描述: 2.1系统主要业务分析 (1)进货业务 进货管理是企业生产经营活动中及其重要的一环,它关系到产品质量能否得到保证,生产是否能够顺利进行,采购成本能否得到有效控制等问题。下面是进货业务程序的主要内容:超市根据自身的资金条件和销售状况,综合分析市场规律,拟定采购计划表。 (2)库存业务 库存管理是指在上产经营中为销售和耗用而存储的各种资产。企业存货不当都会增加不必要的费用:存货过多将导致物资的积压、
4、存储费用增加、流动资金周转不利,并且过量的库存会掩盖管理不善的问题。存货不足则影响企业的正常销售活动。因此,需科学合理地确定某库存物资的库存控制参数。如:最佳订货批量、最大库存量、最佳缺货量、最佳订购周期等,进行严格的库存控制工作。 (3)销售业务 销售对一个企业的生存和发展是至关重要的,对外关系到企业产品、服务和企业形象等多方面因素,对内涉及到销售、库存、财务等信息。此外信息化的高速发展为企业的销售工作提出了新的挑战,封闭意味着落后,超市要抓住时机,引入现代化的销售管理模式,实施企业的信息化、智能化销售管理。 系统业务流程图如下: 图2.1-1超市业务流程图 2.2系统数据
5、流分析 图2.2-1关联图 图2.2-2顶层图 图2.2-3第一层图 2.3数据字典 数据流条目 (1)F1销售信息=销售单号+商品编号+销售数量+销售日期 (2)F3库存信息=商品编号+库存数量 文件条目 (1)文件名:D1销售清单 组成:{销售单号+商品编号+销售数量+销售日期} 组织:按销售单编号递增排列 (2)文件名:D3库存清单 组成:{商品编号+库存数量} 组织:按商品编号递增排列 (3)文件名:商品清单 组成:{商品编号+名称+计量单位+类别+单价+备注} 组织:按商品编号递增排列 2.4数据加工描述 (1)
6、加工名:1销售更新 加工逻辑:根据销售信息更细销售清单 输入流:前台销售信息,库存信息 输出流:更新销售清单/库存清单 (2)加工名:3库存更新 根据进货信息和销售信息更新库存信息 输入流:进货信息,销售信息 输出流:更新库存数据 3.系统设计 3.1 系统功能分析 本系统采用自顶向下方法开发,其功能模块主要有如下几个部分:进货管理模块、库存管理模块、销售管理模块、员工管理模块和系统模块。我主要的任务就是分析 具体的功能描述如下: 库存管理:对采购来的产品进行企业内部编码入库,产品分类等活动,同时能够根据销售清单进行出货管理,以及库存统计。 销售管理:提供一般
7、的销售管理,能够进行销售明细查询和打印销售报表。 图3-1功能分析图 3.2 信息处理分析 图3-2系统信息处理流程图 3.3数据库设计 3.3.1 E-R模型 超市管理系统数据库E-R模型,如图所示: 3.3.2数据库逻辑结构设计 结合以上E-R图,可以导出各个关系,即逻辑结构设计。如下: 用户表:帐号、密码、权限; 商品表:商品编号、名称、计量单位、类别、单价、备注; 销售表:商品编号、销售数量、销售日期; 库存表:商品编号、库存数量; 3.3.3数据库物理结构设计 (1) 用户清单(Users) 中文字段名 英文字段名
8、 字段类型 长度 主键/外键 字段值约束 帐号 UserID char 7 P/F NOT NULL 密码 passWord char 6 NOT NULL 权限 permission Char 8 NOT NULL 说明:此表存放系统用户信息。 (2) 商品清单(MerchBill) 中文字段名 英文字段名 字段类型 长度 主键/外键 字段值约束 商品编号 merchID char 7 P NOT NULL 名称 mName nvarchar 80 NOT NULL 计量单位 Unit varch
9、ar 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
10、 说明:此表存放销售信息。 (4) 库存清单(StoreBill) 中文字段名 英文字段名 字段类型 长度 主键/外键 字段值约束 商品编号 merchID char 7 P/F NOT NULL 库存数量 storeNum int 4 NOT NULL 3.4代码设计 1)“职工清单”中的“职工编号”的代码设计如下: 2)“商品清单”中的“商品编号”的代码设计如下: 前两位商品大类,中间两位主要表示商品的具体型号,后三位是辅码代表商品的产地。 3.5面向对象建模工具UML 1. 销售管理模块 功能:本模块的主要功能是把销售
11、信息写入销售清单,同时对库存清单进行更新,以备用户将来对库存信息进行查询和打印,此外还可以对销售信息进行查询和盘点功能。 销售信息查询:根据商品销售情况,按需要对销售情况进行查询。在该查询模块中,可以按照商品的编号、销售日期等多种方式进行商品销售信息查询。 (1)销售模块的用例图,如图所示: (2)销售管理模块的活动图,如图所示: 2. 库存管理模块 功能:本模块的主要功能是商品信息的查询和更新,库存信息的查询和更新。 输入项、输出项:本模块的数据输入项主要是商品编号。 (1)库存管理模块的用例图,如图所示: (2)库存管理模块活动图,如图所示: 3.
12、6人机界面设计
3.6.1登陆界面
3.6.2前台收银界面
3.6.3后台管理
4.系统实施
4.1程序处理流程图
4.2主要算法源程序
4.2.1配置数据源
13、nStrings>
4.2.2登录页面
protected void LinkButton1_Click(object sender, EventArgs e)
{
string strConn = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
SqlConnection Conn = new SqlConnection(strConn);//定义新的数据连接控件并初始化
Conn.Open();//打开连接
14、string strsql = "select * from Users where USERID='" + TextID.Text + "' and PASSWORD = '" + TextPwd.Text + "'";
SqlDataAdapter Cmd = new SqlDataAdapter(strsql, Conn);//定义并初始化数据适配器
DataSet ds = new DataSet();
Cmd.Fill(ds); //将数据适配器中的数据填充到数据集ds中
Conn.Close();/ 15、/关闭连接
if (ds.Tables[0].Rows.Count == 0)
{
Response.Write("");
return;
}
DataRow Myrow = ds.Tables[0].Rows[0];
if (Myrow[3].ToString().Trim() == "管理员")
{
Sessi 16、on["pass"] = "ok";
Session["Uname"] = Myrow[1].ToString().Trim();
Session["Level"] = Myrow[3].ToString().Trim();
Response.Redirect("admin_default.aspx?name=" + Myrow[1].ToString().Trim());
}
else
{
Session["pass"] = "ok"; 17、
Session["Uname"] = Myrow[1].ToString().Trim();
Response.Redirect("settleaccounts.aspx?name=" + Myrow[1].ToString().Trim());
}
}
4.2.3销售页面
private void fill() //GW数据源更新函数
{
DataSet myds = new DataSet();
myds = 18、 (DataSet)Session["myds"];
Gw.DataSource = myds.Tables["sell"] ;
Gw.DataBind();
}
protected void addsell_Click(object sender, EventArgs e)
{
time.Text = System.DateTime.Now.ToString();
try
{
string strConn = ConfigurationMana 19、ger.ConnectionStrings["ConnString"].ConnectionString;
SqlConnection Conn = new SqlConnection(strConn);//定义新的数据连接控件并初始化
Conn.Open();//打开连接
string information = "select mName from Merchans where merchid like '" + sname.Text.Trim() + "'";
string sp 20、rice = "select Price from Merchans where merchid like '" + sname.Text.Trim() + "'";
string kucun = "select storenum from Storebill where merchId like '" + sname.Text.Trim() + "'";
kc -= i ;
string skc = kc.ToString();
DataSet myds = new DataSet() 21、
myds = (DataSet)Session["myds"];
DataRow row = myds.Tables["sell"].NewRow();
row["价格"] = s1;
row["商品"] = sname.Text;
row["名称"] = s;
row["数量"] = amount.Text;
myds.Tables["sell"].Rows.Add(row);
Se 22、ssion["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();
23、 string kuc2 = "UPDATE 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.Dat 24、eTime.Now.ToShortDateString();
sname.Focus();
}
catch
{
Response.Write("系统出错,请稍候重新操作!");
}
}
4.2.4商品入库页面
protected void Button1_Click(object sender, EventArgs e)
{
try
{
string strConn = Configurat 25、ionManager.ConnectionStrings["ConnString"].ConnectionString;
SqlConnection Conn = new SqlConnection(strConn);//定义新的数据连接控件并初始化
Conn.Open();//打开连接
string sqlstr = "select * from storebill where merchid='" + DropDownList1.Text.Trim()+"'";
SqlDataAdapt 26、er Cmd = new SqlDataAdapter(sqlstr, Conn);//定义并初始化数据适配器
SqlCommandBuilder scb = new SqlCommandBuilder(Cmd);
DataSet ds = new DataSet();
Cmd.Fill(ds); //将数据适配器中的数据填充到数据集ds中
if (ds.Tables[0].Rows.Count == 0)
{
stri 27、ng sqlstr1 = "select * from storebill";
Cmd.SelectCommand = new SqlCommand(sqlstr1, Conn);
Cmd.Fill(ds);
DataRow newrow = ds.Tables[0].NewRow();
newrow["merchid"] = DropDownList1.Text.Trim();
newrow["storenum"] = Co 28、nvert.ToInt32(TextBox2.Text);
ds.Tables[0].Rows.Add(newrow);
Cmd.Update(ds);
}
else
{
string str = "UPDATE Storebill SET storenum=storenum+'" + Convert.ToInt32(TextBox2.Text) + "' WHERE merchId ='" + DropDownLi 29、st1.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.Sele 30、ctCommand = new SqlCommand(sqlstr, Conn);
DataSet ds1 = new DataSet();
Cmd.Fill(ds1);
Conn.Close();//关闭连接
GridView1.Caption = "商品库存清单";
GridView1.DataSource = ds1.Tables[0];
GridView1.DataBind();
}
31、 catch
{
Response.Write("系统出错,请稍候重新操作!");
}
}
4.3模拟运行数据
用户登录数据:
商品信息数据:
商品库存数据:
5.总结
通过这次课程设计的实践,使我对信息系统的项目开发有了更加深刻的认识,同时,对C#.NET和ASP.NET技术也进行了更细致的学习,更加重要的是我切身感受到了团队合作的力量,在系统开发过程中,每个同学都积极参与,发挥自己所长,遇困难大家一起商量探讨,共享所得成果。
与此同时,还要感谢句全老师这学期对我们的细心教导,带领我们大家一起学习信息系统分析与设计这门课程,相信这对我们以后的工作大有裨益。






