超市管理课设C.docx
《超市管理课设C.docx》由会员分享,可在线阅读,更多相关《超市管理课设C.docx(30页珍藏版)》请在冰点文库上搜索。
超市管理课设C
北华航天工业学院
《C#程序设计》
课程设计报告
课程设计题目:
超市商品管理系统
作者所在系部:
计算机科学与工程系
作者所在专业:
网络工程
作者所在班级:
作者姓名:
作者学号:
指导教师XX:
完成时间:
北华航天工业学院教务处制
摘要
随着商品化经济的发展,超市规模的不断扩大,商品的不断曾多,随之而来的就是商品管理的问题,只依靠人工的记账管理体制已经无法适应当代超市的发展,这就需要有一个先进的管理系统来管理如此繁杂的商品信息。
超市的数据和业务越来越庞大,而计算机就是一种高效的管理系统,这就需要我们把超市的管理与计算机结合起来,从而超市管理系统应运而生。
依靠现代化的计算机信息处理技术来管理超市,节省了大量的人力、物力,改善了员工的并且能够快速反映出商品的进、销、存等状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率
超市管理系统是市场上最流行的超市上常用的系统之一,它主要包含以下几个模块:
进货管理,销售管理,库存管理,商品信息。
从而,实现对进货、销售及员工信息等实现全面、动态、及时的管理。
关键词:
数据库商品超市库存C#入库出库
第1章绪论
随着商品化经济的发展,超市规模的不断扩大,商品的不断曾多,随之而来的就是商品管理的问题,只依靠人工的记账管理体制已经无法适应当代超市的发展,这就需要有一个先进的管理系统来管理如此繁杂的商品信息。
1.1课题研究现状分析
超市的数据和业务越来越庞大,而计算机就是一种高效的管理系统,这就需要我们把超市的管理与计算机结合起来,从而超市管理系统应运而生。
依靠现代化的计算机信息处理技术来管理超市,节省了大量的人力、物力,改善了员工的并且能够快速反映出商品的进、销、存等状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率 。
本次课题为:
超市商品管理系统,它的主要功能是先通过用户身份验证,然后即可登录超市商品管理系统,然后通过增、删、查、改操作对商品信息、库存量进行操作。
1.1.1本领域内已开展的研究工作
1.理论研究基础
(1)后台以SQL数据库支持。
(2)前台以.NET平台下的C#语言为开发环境,实现对超市商品的查询、修改、入库出库等操作。
2.技术层面的支持
(1)系统的设计与实现应采用MVC分层模式。
(2)系统界面采用MDI方式,即用户登录后进入主窗体,主窗体通过菜单进入子窗体。
1.1.2已经取得的研究成果
超市的数据和业务越来越庞大,依靠现代化的计算机信息处理技术来管理超市,节省了大量的人力、物力,改善了员工的并且能够快速反映出商品的进、销、存等状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率
1.2选题的目的及意义
随着人们生活水平的不断提高,对于物质的需求也越来越高,而超市作为日常生活用品聚集的场所,随着全球各种超市的数目的不断增加,规模不断增大,其管理难度也相应的增加,而为了适应当今信息化发展的时代,一套完整的超市商品管理系统显得尤为重要。
超市管理系统节省了大量的人力、物力,改善了员工的并且能够快速反映出商品的进、销、存等状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率 。
第2章系统需求分析
随着人们生活水平的不断提高,对于物质的需求也越来越高,而超市作为日常生活用品聚集的场所,随着全球各种超市的数目的不断增加,规模不断增大,其管理难度也相应的增加,而为了适应当今信息化发展的时代,一套完整的超市商品管理系统显得尤为重要。
2.1问题的提出
为了节省大量的人力、物力并且切速反映出商品的进、销、存等状况和各种反馈信息,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效。
2.2系统的设计目标
本系统主要包括四大模块,分别是商品信息管理,商品入库操作,商品出库操作,库存信息操作。
每个管理模块功能如下:
商品信息管理:
商品信息查询、添加、修改,删除。
商品入库操作:
商品入库信息查询、入库信息添加、入库信息修改,入库信息删除。
商品出库操作:
商品出库信息查询、出库信息添加、出库信息修改,出库信息删除。
库存信息操作:
库存信息查询、库存信息浏览。
第3章系统总体设计
3.1系统功能设计
本系统实现了超市商品的增删查改,总体分为四个模块:
商品信息管理,商品入库操作,商品出库操作,库存信息操作。
如图所示。
图3-1主菜单功能
图3-2商品信息管理
图3-3商品入库操作
图3-4商品出库操作
图3-5库存信息操作
3.1.1系统登录
登录为用户使用系统的起始点,用户必须先通过身份验证,方可对学生基本信息进行相关操作,登录流程如图3-6所示。
图3-6登录模块流程图
简要说明及功能描述:
功能主要是用于确保用户在提供正确的验证信息之后,可以进一步使用本系统。
3.1.2用户基本信息资料维护
(1)修改密码
(2)用户注册
3.2数据库的设计
本系统采用sqlserver2008数据库管理系统,创建的数据库名称为:
商品管理系统,数据库中包含6X表,各表功能及描述如表3-1所示。
表3-1数据库中的表
表名
作用
modity_information
用于存储商品基本信息
product_catagory
用于存储商品类别
purchase
用于存储商品入库信息
sale
用于存储商品出库信息
user_information
用于存储用户信息
product_count
用于存储库存量
3.3库中各个表的设计
1.用户基本信息表
用户基本信息user_information表用于存储用户的基本情况,主键为用户标识。
表中各字段定义及描述如表3-2所示。
表3-2user_information表
字段名
数据类型
长度
是否为空
是否主键
字段意义
用户账号
varchar
20
No
用户登录名
用户密码
varchar
20
No
密码
用户XX
varchar
25
No
XX
用户标识
int
No
是
标识用户
2.商品基本信息表
商品基本信息表modity_information表用于存储商品的基本情况,主键为商品标识。
表中各字段定义及描述如表3-3所示。
表3-3modity_information表
字段名
数据类型
长度
是否为空
是否主键
字段意义
商品编号
nchar
10
No
商品编号
商品名称
varchar
50
No
商品名称
商品价格
varchar
money
No
商品价格
生产日期
varchar
50
No
生产日期
保质期
varchar
50
No
保质期
商品标识
int
No
标识商品
3.商品类别表
商品类别表product_catagory表用于存储商品类别,主键为类别标识。
表中各字段定义及描述如表3-4所示。
表3-4商品类别表
字段名
数据类型
长度
是否为空
是否主键
字段意义
商品类别名
varchar
20
No
商品类别
类别标识
int
No
是
标识类别
4.入库信息表
入库信息表purchase表用于存储入库,主键为进货标识。
表中各字段定义及描述如表3-5所示。
表3-5入库信息表
字段名
数据类型
长度
是否为空
是否主键
字段意义
商品编号
nchar
10
No
商品编号
入库数量
int
No
入库数量
进货日期
varchar
50
No
进货日期
经手人
varchar
25
No
经手人
进货标识
int
No
是
进货标识
5.出库信息表
出库信息表sale表用于存储入库,主键为出库标识。
表中各字段定义及描述如表3-6所示。
表3-6出库信息表
字段名
数据类型
长度
是否为空
是否主键
字段意义
商品编号
nchar
10
No
商品编号
出库日期
varchar
50
No
出库日期
出库数量
int
No
出库数量
经手人
varchar
25
No
经手人
出库标识
int
No
是
出库标识
6.库存信息表
库存信息表product_count表用于存储库存信息表,主键为库存标识。
表中各字段定义及描述如表3-7所示。
表3-7库存信息表
字段名
数据类型
长度
是否为空
是否主键
字段意义
商品编号
nchar
10
No
商品编号
库存量
int
No
库存量
库存标识
int
No
是
库存标识
第4章系统实现
4.1数据库操作类
DBHelper类用于实现数据库的连接实现如下:
classDBHelper
{
//数据库连接字符串
publicstaticstringconnString=
"DataSource='.';InitialCatalog='商品管理系统';IntegratedSecurity='True'";
//数据库连接对象
publicstaticSqlConnectionconnection=newSqlConnection(connString);
}
4.2登录模块实现
本系统的登录界面如图4-1所示,输入用户账号和密码,点击登陆,判断用户名和密码是否正确,正确可进入系统主界面,否则提示错误信息。
图4-1登录界面
(1)登录按钮的代码为:
privatevoidbtnLogin_Click(objectsender,EventArgse)
{
stringconnString="DataSource='.';InitialCatalog='商品管理系统';IntegratedSecurity='true'";
SqlConnectionconnection=newSqlConnection(connString);
connection.Open();
Sqlmandmand=newSqlmand();
mand.Connection=connection;
mand.mandText=String.Format("selectcount(*)fromuser_informationwhere用户账号='{0}'and用户密码='{1}'",
txtUserId.Text,txtPassword.Text);
intcount=(int)mand.ExecuteScalar();
if(count>0)
{
ds=newDataSet();
stringselectString1=string.Format("select*fromuser_informationwhere用户账号='{0}'",txtUserId.Text.Trim());
adapter=newSqlDataAdapter(selectString1,connection);
adapter.Fill(ds,"用户信息表");
dt=ds.Tables["用户信息表"];
intcount1=dt.Rows.Count;
for(intn1=0;n1{
DataRowdr1=dt.Rows[n1];
if(txtUserId.Text==dr1[0].ToString())
{
ClassUseruse=newClassUser();
use.name=dr1[2].ToString();
ClassContext.user=use;
}
}
this.DialogResult=DialogResult.OK;
this.Close();
}
else
{
MessageBox.Show("用户名或密码错误","错误",
MessageBoxButtons.OK,MessageBoxIcon.Error);
txtUserId.Text="";
txtPassword.Text="";
}}
4.3商品信息查询模块实现
本系统的商品查询界面如图4-2所示,先选择查询条件,再输入具体条件。
即可对信息进行查询。
图4-2商品信息查询
(1)查询按钮的代码如下:
privatevoidbutSelect_Click(objectsender,EventArgse)
{
if(radioID.Checked==false&radioName.Checked==false&radioType.Checked==false)
{
MessageBox.Show("请选择具体查询条件","提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
else
{
if(radioID.Checked==true)
{
if(boBoxId.Text=="")
{
MessageBox.Show("请选择商品编号");
}
else
{
sql=string.Format("select*frommodity_informationwhere商品编号='{0}'",boBoxId.Text);
dataAdapter=newSqlDataAdapter(sql,DBHelper.connection);
dataSet=newDataSet();
dataAdapter.Fill(dataSet,"商品查询");
dataGridView_Select.DataSource=dataSet.Tables["商品查询"];
if(dataSet.Tables["商品查询"].Rows.Count==0)
{
MessageBox.Show("没有符合该条件的记录","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
}
}
}
if(radioName.Checked==true)
{
if(txtName.Text=="")
{
MessageBox.Show("请输入商品名称");
}
else
{
sql=string.Format("select*frommodity_informationwhere商品名称like'%{0}%'",txtName.Text.Trim());
dataAdapter=newSqlDataAdapter(sql,DBHelper.connection);
dataSet=newDataSet();
dataAdapter.Fill(dataSet,"商品查询");
dataGridView_Select.DataSource=dataSet.Tables["商品查询"];
if(dataSet.Tables["商品查询"].Rows.Count==0)
{
MessageBox.Show("没有符合该条件的记录","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
}
}
}
if(radioType.Checked==true)
{
if(boBoxType.Text=="")
{
MessageBox.Show("请选择商品类别"}
Else{
sql=string.Format("select*frommodity_informationwhere所属类别like'%{0}%'",boBoxType.Text.Trim());
dataAdapter=newSqlDataAdapter(sql,DBHelper.connection);
dataSet=newDataSet();
dataAdapter.Fill(dataSet,"商品查询");
dataGridView_Select.DataSource=dataSet.Tables["商品查询"];
if(dataSet.Tables["商品查询"].Rows.Count==0)
{
MessageBox.Show("没有符合该条件的记录","提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);
}
}
4.4商品信息修改模块实现
本系统的商品修改界面如图4-3,图4-4所示,选中要修改的列,点击修改按钮,即可将信息传递到另一个控件中,再进行修改操作。
图4-3商品信息修改
图4-4商品信息修改
(1)修改按钮代码如下:
privatevoidbtnAlter_Click(objectsender,EventArgse)
{
stringa=dataGridview_product_information.Rows
[dataGridview_product_information.CurrentCell.RowIndex].Cells[0].Value.ToString();
stringb=dataGridview_product_information.Rows
[dataGridview_product_information.CurrentCell.RowIndex].Cells[1].Value.ToString();
stringc=dataGridview_product_information.Rows
[dataGridview_product_information.CurrentCell.RowIndex].Cells[2].Value.ToString();
stringd=dataGridview_product_information.Rows
[dataGridview_product_information.CurrentCell.RowIndex].Cells[3].Value.ToString();
stringf=dataGridview_product_information.Rows
[dataGridview_product_information.CurrentCell.RowIndex].Cells[4].Value.ToString();
stringg=dataGridview_product_information.Rows
[dataGridview_product_information.CurrentCell.RowIndex].Cells[5].Value.ToString();
FormProduct_Alterfalt=newFormProduct_Alter(a,b,c,d,f,g);
falt.ShowDialog();}
(2)修改窗体的加载代码如下:
publicFormProduct_Alter(stringa,stringb,stringc,stringd,stringe,stringf)
{
Initializeponent();
this.txtId.Text=a;m=a;
this.txtName.Text=b;
txtPrice.Text=c;
boBox_Type.Text=d;
dateMake.Value=System.DateTime.Parse(e);
txtDays.Text=f;}
4.5商品信息添加模块实现
本系统的商品信息添加界面,将要添加的商品的信息录入完整后即可点击确定,提交信息,如图4-4,4-5,4-6所示。
图4-4商品信息添加
图4-5添加成功图4-6添加失败
(1)确定按钮实现的代码:
privatevoidbtnOk_Click(objectsender,EventArgse)
{DBHelper.connection.Open();
Sqlmandmand=newSqlmand();
mand.Connection=DBHelper.connection;
if(txtId.Text==""||txtName.Text==""||txtPrice.Text==""||boBox_Type.Text=="")
{
MessageBox.Show("信息输入不完整","提示",MessageBoxButtons.OK,MessageBoxIcon.Question);
}
else
{
mand.mandText=String.Format("selectcount(*)frommodity_informationwhere商品编号='{0}'",
txtId.Text);
intcount=(int)mand.ExecuteScalar();
if(count>0)
{
MessageBox.Show("该商品编号已存在","提示",MessageBoxButtons.OK,MessageBoxIcon.Question);
txtId.Text="";
}
else{
mand.mandText=String.Format("insertintomodity_information(商品编号,商品名称,商品价格,所属类别,生产日期,保质期)values('{0}','{1}','{2}','{3}','{4}','{5}')",
txtId.Text,txtName.Text,txtPrice.Text,boBox_Type.Text,dateMake.Value.ToShortDateString(),txtDays