超市管理系统课设报告.docx
- 文档编号:26283753
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:22
- 大小:175.81KB
超市管理系统课设报告.docx
《超市管理系统课设报告.docx》由会员分享,可在线阅读,更多相关《超市管理系统课设报告.docx(22页珍藏版)》请在冰豆网上搜索。
超市管理系统课设报告
洛阳理工学院
信息系统设计实践报告
专业计算机科学与技术
班级B090501
学号B09050112
姓名高旭瑞
完成日期2013.01.05
实训/实验内容与要求
根据所学课程(数据库应用、软件工程、面向对象程序设计、Web程序设计),进行针对性的综合设计和实现,主要内容如下:
1.根据功能要求完成需求分析,列出系统的功能模块划分和UI设计;
2.根据功能设计数据库,合理构建相关的数据信息表;
3.编写代码,实现信息系统各个模块的功能;
4.测试软件,完善代码功能;
5.撰写报告,对整个工作进行资料总结
指导教师:
_______________
年月日
指导教师评语
成绩:
指导教师:
_______________
年月日
1系统功能分析
1.1基本功能
①基本资料管理
该模块实现物资进销存管理系统中的用户信息管理。
包括两种用户,一种是以管理员的身份登录,一种是以普通用户的身份登录。
当用户进入物资进销存管理系统时,应该输入自己的用户名和密码,用户名和密码任意一个输入错误,都不能进入系统用户管理界面,系统会报错误信息。
当用户进入之后,方可对里面的信息进行修改,删除。
而不能对管理员的信息进行修改、删除。
②进货管理
用于对企业的进货商品的信息进行管理。
它包含三个子模块,进货单管理、进货价格和单位调整、进货历史查询。
进货单管理是对本月所有的货物名称、进货的数量、价格的统计;进货价格和单位调整,即在不同是时期,商品价格会有一定的幅度变化,在这种情况下,我们就可以在此对话框中对商品的价格和单位进行调整;进货历史查询是对以往所进货物的一个记录,方便企业在年度汇总中得到更准确的信息,来计算年利润。
在此进货管理中,当企业需要进入新品种时,方可点击“添加新货物品种“,将出现一个对话框,即可对新商品名、数量、价格等进行添加。
③销售管理
用于对企业的商品销售的信息进行管理。
跟进货管理相似,同样具有销售单管理、销售价格调整、销售历史查询三大模块。
各大模块的功能与进货管理中的同样。
④库存管理
库存管理下包括商品管理和却货管理,当我们点击商品管理时,便出现一个商品管理对话框,在里面可以看到所有商品的信息。
可以对货物编号、货物名称、进价、卖价、库存数量、货物单位、备注等信息一一修改。
还可以直接在库存中添加货物。
最主要一点是,在我们的货物显示栏中有红色标记,表示缺货。
而在我们的却货管理模块当中,我可以对却货警告加以限制,根据对货物数量的设置,可以让系统给企业管理者反馈一个却货信息,让企业能够及时的补充相应的货物,避免存在却货现象。
1.2系统功能模块图
图1“进货管理”功能模块
图2“销售管理”功能模块
图3“库存管理”功能模块
2数据库设计
2.1概念结构设计(E-R图)
因为整个系统涉及的实体和属性较多,限于篇幅,这里不能也没有必要一一列举。
图3为进销存管理系统E-R图(即实体-关系图)
图3进销存管理系统E—R图
图3-1进销存管理系统E-R图
2.2逻辑结构设计
根据以上需求分析,在确定了各个表主键字段的基础上,依据表与表之间相关字段之间的联系建立了各表之间的关系,对应的关系图如图4.6数据库逻辑图所
示:
图4.6数据库逻辑图
2.3物理结构设计及表结构设计
根据物资管理进销存系统的需求分析,数据库的设计如下所述:
一、管理员信息表:
用于存放用户登录系统和用户权限的信息。
二、进货表:
用于存放进货基本信息。
三、售货表:
用于存放售货基本信息。
四、货物信息表:
存放货物的基本信息。
①管理员信息表
管理员信息表用于存放用户登录系统和用户权限的信息。
字段名
描述
类型
长度
是否允许为空
是否主键
aid
自动编号
integer
11
否
是
aName
用户名
varchar
20
否
否
aPwd
密码
varchar
20
否
否
isAdmin
是否为管理员
bit
1
否
否
表4.1管理员信息表
②货物信息表
货物信息表用于存放货物的基本信息。
字段名
描述
类型
长度
是否允许空
是否为键
gId
货物编号
integer
11
否
是
goodsName
货物名称
varchar
20
否
否
buyprice
进货价格
floatr
11
否
否
Sellprice
售货价格
Float
11
否
否
Num
库存数量
Integer
11
否
否
danwei
货物单位
Varchar
20
否
否
remark
备注
varchar
255
是
否
表4.2货物信息表
③进货表
进货表用于记录每次进货的记录。
字段名
描述
类型
长度
是否允许为空
是否主键
bid
自动编号
integer
11
否
是
buyId
货物编号
integer
11
否
否
buyNum
进货数量
integer
500
否
否
buyTime
进货时间
dateTime
20
否
否
lestNun
最低货物数量
Integer
11
否
否
remark
备注
varchar
255
是
否
表4.3进货表
④售货表
售货表存放每次售货的记录。
字段名
描述
类型
长度
是否允许空
是否主键
sid
自动编号
Integer
11
否
是
sellId
货物编号
Integer
11
否
否
sellNum
售货数量
Integer
500
否
否
sellTime
售货时间
dateTime
20
否
否
remark
备注
varchar
255
是
否
表4.4售货表
3功能实现
3.1登录模块的实现
首先获取帐号文本框和密码文本框里的值,然后根据帐号查询管理员信息表,如果查找到一条记录,再把记录当中的密码信息与密码文本框的值做对比。
相同时则登录成功,不同时则密码错误。
最后,弹出系统的主窗体,并且把登录帐号的信息传到主窗体中。
实现以上功能的代码如下:
privatevoidbutton1_Click(objectsender,EventArgse)
{
UserInfou=newUserInfo();
if(textBox1.Text==""||textBox2.Text=="")
{
MessageBox.Show("用户名或密码为空!
");
}else
{
Mangersm=newManger();
DataSetds=sm.selyh(textBox1.Text,textBox2.Text);
if(ds.Tables[0].Rows.Count==0)
{
MessageBox.Show("用户名或密码错误!
");
}else
{
u.myaccount=textBox1.Text;
u.mypwd=textBox2.Text;
u.mystatue=Convert.ToInt32(ds.Tables[0].Rows[0]["type"].ToString());
MessageBox.Show("登录成功!
");
MainFormf=newMainForm(this);
f.myInfo=u;
this.Hide();
f.Show();
}
}
}
3.2系统用户模块的实现
系统用户信息用表格的方式显示出来,可以在文本框输入用户的帐号查找某个用户的信息,提高效率。
如果不输入则全部查找。
选中表格当中的某一条信息点击修改,弹出修改窗体,并且选中的信息在修改窗体中显示出来。
选中表格当中的某一条信息点击删除,则删除该信息。
实现的主要代码如下:
publicvoidInitshow()
{
stringusername="";
Mangersm=newManger();
ds=sm.selyh(username,"");
this.dgvData.DataSource=ds.Tables[0];
}
privatevoidbutton3_Click_1(objectsender,EventArgse)
{
DialogResultdr=MessageBox.Show("你确定要删除选中记录?
","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question);
if(dr==DialogResult.No)
{
return;
}
if(ds.Tables[0].Rows[this.dgvData.CurrentRow.Index].ItemArray[0].ToString()==f.myInfo.myaccount)
{
MessageBox.Show("不能删除自己!
");
return;
}
if(ds.Tables[0].Rows[this.dgvData.CurrentRow.Index].ItemArray[0].ToString()=="admin")
{
MessageBox.Show("该用户为最高级别用户,不能被删除!
");
return;
}
tringsql="DeletefromshopUserwhereuserID=@userID";
try
{
SqlConnectionconn=newSqlConnection
("server=.;uid=sa;pwd=;database=shopDB");
SqlDataAdapterda=newSqlDataAdapter();
SqlCommandcmd=newSqlCommand(sql,conn);
//添加参数
SqlParameteruserID=newSqlParameter("@UserID",SqlDbType.VarChar,20,"用户名");
userID.SourceVersion=DataRowVersion.Current;
cmd.Parameters.Add(userID);
da.DeleteCommand=cmd;
//手动删除选中的行数据
ds.Tables[0].Rows[this.dgvData.CurrentRow.Index].Delete();
if(ds.HasChanges())
{
da.Update(ds.Tables[0]);
this.Initshow();//刷新数据
MessageBox.Show("删除成功!
");
}
}catch(Exceptionex)
{
MessageBox.Show(ex.Message);
}
}
3.3进货模块的实现
对每次进货保留记录,并且可以根据货物名称和进货时间做组合查询。
对于以有货物可以直接从下拉列表中选取,系统会自动显示货物的进货价格,当填写完进货数量时,会自动生成总价。
对于当前库存中没有的货物可以先添加新的货物品种,然后再从下拉列表中选取。
进货的价格和货物的计算单位也可以做修改。
实现主要代码如下:
//生成货物名称下拉列表
privatevoidbuyGoods_Load(objectsender,EventArgse)
{
Mangersm=newManger();
DataSetds=sm.selkucun(-1,"");
boBox1.Items.Clear();
boBox1.Text="请选择货物名称";
for(inti=0;i { boBox1.Items.Add(ds.Tables[0].Rows[i] ["GoodsName"].ToString()); } } //选择货物名称,输入进货数量,自动生成总价 privatevoidtextBox1_Leave(objectsender,EventArgse) { if(boBox1.Text! ="请选择货物名称"&&textBox1.Text! ="") { floatsum=Convert.ToInt32(textBox1.Text)*Convert.ToSingle (textBox3.Text); textBox4.Text=sum.ToString(); } } DataAccesscDbObject=newDataAccess(); publicDataSetselBuy(intbid,intshijian)//查询 { stringsql="selectB.buyId,G.goodsName,B.buyNum,B.buyTime, B.remarkfrombuyInfoasB,GoodsInfoasG"+"whereB.goodsId=G.goodsId"; DataSetds=null; if(bid! =-1) { sql+="andbuyId="+bid+""; } if(shijian! =-1) { if(shijian==4) { sql+="andDATEDIFF(m,buyTime,GETDATE())>"+shijian+""; }else { sql+="andDATEDIFF(m,buyTime,GETDATE())<="+shijian+""+"andDATEDIFF(m,buyTime,GETDATE())>"+(shijian-1)+""; } } try { ds=cDbObject.Search(sql,"GoodsInfo"); }catch(Exceptione) { throw(e); } returnds; } 3.4售货模块的实现 对每次进货保留记录,并且可以根据货物名称和进货时间做组合查询。 当出售货物后该货物库存数量低于警告数量线时会自动报警。 货物的出售价格也可以在此模块中修改。 实现主要代码如下: DataAccesscDbObject=newDataAccess(); publicDataSetselSell(intbid,intshijian)//查询 { stringsql="selectB.sellId,G.goodsName,B.sellNum,B.sellTime, B.remarkfromsellInfoasB,GoodsInfoasG"+"whereB.goodsId=G.goodsId" DataSetds=null; if(sid! =-1) { sql+="andsellId="+sid+""; } if(shijian! =-1) { if(shijian==4) { sql+="andDATEDIFF(m,sellTime,GETDATE())>"+shijian+""; }else { sql+="andDATEDIFF(m,sellTime,GETDATE())<="+shijian+""+"andDATEDIFF(m,sellTime,GETDATE())>"+(shijian-1)+""; } } try { ds=cDbObject.Search(sql,"GoodsInfo"); }catch(Exceptione) { throw(e); } returnds; } 3.5库存模块的实现 库存管理是管理剩余货物的相关信息。 并且对低于货物警告数量的货物做警报。 警告数量由管理员根据实际情况设置。 此模块还可以对以有货物信息做修改、删除或添加新的货物种类。 实现功能代码如下: privatevoidbutton1_Click(objectsender,EventArgse) { if(textBox1.Text==""||textBox2.Text==""||textBox3.Text==""||textBox4.Text==""||textBox5.Text=="") { MessageBox.Show("有未填写的信息! "); }else { stringgName=textBox1.Text; Mangersm=newManger(); DataSetds=sm.selkucun(-1,gName); if(ds.Tables[0].Rows.Count! =0) { MessageBox.Show("此货物名称已存在! "); }else { GoodsInfogf=newGoodsInfo(); gf.mygoodsName=textBox1.Text; gf.mybuyprice=Convert.ToSingle(textBox2.Text); gf.mysellprice=Convert.ToSingle(textBox3.Text); gf.mynum=Convert.ToInt32(textBox4.Text); gf.mydanwei=textBox5.Text; gf.myremark=textBox6.Text; boolflage=sm.addkucun(gf); if(flage==true) { MessageBox.Show("添加成功! "); initshow(); } } } } //设置货物警告数量 privatevoidbutton1_Click(objectsender,EventArgse)//确定按钮 { intlestName=Convert.ToInt32(textBox1.Text); stringgoodsName=boBox1.SelectedItem.ToString(); Mangersm=newManger(); boolflage=sm.shezhi(goodsName,lestName); if(flage==true) { MessageBox.Show("设置成功! "); initshow(); } } 3.6功能测试及界面显示 打开物资进销存管理系统,输入用户名和密码,若输入正确则会显示登录成功对话框,否则会提示错误信息,如图6.1登录界面 图6-1登录界面 当用户登录成功之后,方可选择一个用户信息点击修改,弹出修改界面,可以修改被选中的用户的信息(除admin最高管理员)。 “type”类型下的“1”表示最高管理员和管理员,“0”表示普通用户,如图6.2用户信息管理界面。 图6-2用户信息管理界面 在进货管理模块下,我们选择子模块“进货单管理”。 然后从货物名称的下拉列表中选择一个货物,货物价格会自动显示该货物的价格,填写进货数量,总价框会自动计算出本次进货的花销。 点击确定,提示“进货成功”。 如需要添加新货物种 类,我们点击添加货物种类按钮,即可添加新货物单。 如图6.5添加进货信息,完成之后点击确定。 图6-3添加进货信息 使用组合查询,根据选择的货物名称和进货时间,显示出符合条件的信息。 销售单操作方法和进货单类似,当销售数量大于库存会提示货物不足,如小于库存数量,则销售成功,并从库存数量减去相应的数。 如图6.7添加销售信息 图6-5添加销售信息 当有货物的库存低于最低警告数量时,会以醒目的红字显示出来,最低警告数量 可由操作员自行设定,如图6.7缺货警告。 图6-6缺货警 4总结 本次毕业设计的进销存管理系统不仅能对企业的进货、销售、库存等环节进行连续跟踪管理,进货管理依据在库产品的周转状况,合理、科学地制定产品进货计划,促使各部门把住进货关,不仅减少盲目进货,杜绝存货积压,而且保证畅销商品不缺货、不断档;销售管理不仅从计划上反映当时的完成状况,而且从客户渠道、产品类别、品牌、业务员、部门等多方位来进行核算与分析,使公司的销售管理又上新台阶。 它的经济可行性: 信息技术的运用已成社会发展主流,以前的人工处理缓慢,出错率高将导致企业内部沟通不畅,信息滞后,将很难为企业做出有效的决策提供有力的依据,因此,缺少及时,准确,有效的信息,企业在发展上寸步难行。 所以采用现代化的手段进行进销存必然会使企业提高工作效率。 这样就极大地提高企业管理的效率,使企业走向科学化、正规化管理,从而 在日益激烈的竞争中立于不败之地。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 超市 管理 系统 报告