超市管理系统课设报告.docx

上传人:b****6 文档编号:13806603 上传时间:2023-06-17 格式:DOCX 页数:22 大小:175.81KB
下载 相关 举报
超市管理系统课设报告.docx_第1页
第1页 / 共22页
超市管理系统课设报告.docx_第2页
第2页 / 共22页
超市管理系统课设报告.docx_第3页
第3页 / 共22页
超市管理系统课设报告.docx_第4页
第4页 / 共22页
超市管理系统课设报告.docx_第5页
第5页 / 共22页
超市管理系统课设报告.docx_第6页
第6页 / 共22页
超市管理系统课设报告.docx_第7页
第7页 / 共22页
超市管理系统课设报告.docx_第8页
第8页 / 共22页
超市管理系统课设报告.docx_第9页
第9页 / 共22页
超市管理系统课设报告.docx_第10页
第10页 / 共22页
超市管理系统课设报告.docx_第11页
第11页 / 共22页
超市管理系统课设报告.docx_第12页
第12页 / 共22页
超市管理系统课设报告.docx_第13页
第13页 / 共22页
超市管理系统课设报告.docx_第14页
第14页 / 共22页
超市管理系统课设报告.docx_第15页
第15页 / 共22页
超市管理系统课设报告.docx_第16页
第16页 / 共22页
超市管理系统课设报告.docx_第17页
第17页 / 共22页
超市管理系统课设报告.docx_第18页
第18页 / 共22页
超市管理系统课设报告.docx_第19页
第19页 / 共22页
超市管理系统课设报告.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

超市管理系统课设报告.docx

《超市管理系统课设报告.docx》由会员分享,可在线阅读,更多相关《超市管理系统课设报告.docx(22页珍藏版)》请在冰点文库上搜索。

超市管理系统课设报告.docx

超市管理系统课设报告

 

洛阳理工学院

信息系统设计实践报告

专业计算机科学与技术

班级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总结

本次毕业设计的进销存管理系统不仅能对企业的进货、销售、库存等环节进行连续跟踪管理,进货管理依据在库产品的周转状况,合理、科学地制定产品进货计划,促使各部门把住进货关,不仅减少盲目进货,杜绝存货积压,而且保证畅销商品不缺货、不断档;销售管理不仅从计划上反映当时的完成状况,而且从客户渠道、产品类别、品牌、业务员、部门等多方位来进行核算与分析,使公司的销售管理又上新台阶。

它的经济可行性:

信息技术的运用已成社会发展主流,以前的人工处理缓慢,出错率高将导致企业内部沟通不畅,信息滞后,将很难为企业做出有效的决策提供有力的依据,因此,缺少及时,准确,有效的信息,企业在发展上寸步难行。

所以采用现代化的手段进行进销存必然会使企业提高工作效率。

这样就极大地提高企业管理的效率,使企业走向科学化、正规化管理,从而

在日益激烈的竞争中立于不败之地。

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2