超市管理系统
asp.net 课程设计报告
课 题: 超市管理系统 姓 名: 李振东 学 号: 13170110 专业班级: 计算机1301 指导教师: 唐海蓉 设计时间: 2016.06.26
目录
【摘要】 ........................................................................................................................................................ 1 前 言 . ........................................................................................................................................................... 1 第一章 系统分析 ........................................................................................................................................ 2
1.1需求分析 ......................................................................................................................................... 2 1.2数据流程分析 ................................................................................................................................. 3 1.3开发环境 ......................................................................................................................................... 4 第二章 系统数据库结构 ............................................................................................................................ 4
2.1数据库分析设计 ...................................................................................................................... 4 2.2数据库表结构 ........................................................................................................................... 4
2.2.1商品信息表 ......................................................................................................................... 5 2.2.2商品出售表 ......................................................................................................................... 5 2.2.3商品入库表 ......................................................................................................................... 5 2.2.4供应商表 ............................................................................................................................. 6 2.2.5会员表 ................................................................................................................................. 6 2.2.6商品库存情况表 ................................................................................................................. 7 2.2.7职员表 ................................................................................................................................. 7 2.2.8用户表 ................................................................................................................................. 8 2.3数据表关系图 ........................................................................................................................... 8 2.4数据库ER 图 . ............................................................................................................................. 8 第三章 系统功能模块 ................................................................................................................................ 9
3.1系统各功能模块划分 ..................................................................................................................... 9 3.2系统功能结构图 . ........................................................................................................................ 10 第四章 系统功能实现 .............................................................................................................................. 10
4.1界面设计 ..................................................................................................................................... 10
4.1.1登录界面 ......................................................................................................................... 10 4.1.2操作主界面 ..................................................................................................................... 11 4.2 数据访问层 ................................................................................................................................ 12 4.3 主要功能及实现 ........................................................................................................................ 14
4.3.1商品添加界面 .............................................................................................................. 14 4.3.2商品查询界面 ................................................................................................................... 17 4.3.3商品入库界面 ................................................................................................................... 18 4.3.4商品出售界面 ................................................................................................................... 21 4.3.5供应商浏览界面 ............................................................................................................... 24
第五章 结论 .............................................................................................................................................. 25 第六章 参考文献 ...................................................................................................................................... 26 第七章 致谢 .............................................................................................................................................. 26
【摘要】
随着计算机的技术的日趋成熟,各种数据库软件业得到了很大的发展,信息管理系统的应用已经深入到社会的各个领域。为满足超市管理现代化的需求,国内软件商已经开发出很多较好的商品化超市管理软件,虽然这些超市管理软件其功能和性能都很完善,但它大多是面向大型超市而开发的,专业性很强、功能分工较细、操作和使用比较复杂,难以掌握。而很多小型超市由于管理人员不多且大多数不是超市管理业务人员、业务分工也不是很详细明确,这样的软件对于他们而言太庞大、大复杂,所以应用效果并不是很好。鉴于此,本文利用Microsoft Visual Studio 2005和SQL Server 2005编制《超市管理系统》,它一种适用于小型超市商品的进、销、存和超市员工的信息进行综合管理的应用软件。
关键字:超市管理系统 管理 系统 SQL Server 2005
前 言
目前大的超市已经拥有一整套比较完整的信息管理系统,而在一般小型的超市中大部分工作还是进行着手工管理,工作效率很低,并且不能及时了解超市各类商品的存库,顾客比较需求的商品难以在短时间找到、商品的入库和更新比较麻烦等等,不便于动态及时调整商品结构。同时由于不可避免的人为因素,造成数据的遗漏、误报等。
该《超市管理系统》较现有的大型超市的管理系统有如下的特点:①及时性:管理人员可以在任何时间内了解超市内的情况。②高效性:统一管理提高了办事效率;管理层能够迅速的对突发情况做出及时决策,如:货物的调配等。③低成本:该方案缩小了人员编制,减少了人员开发,货物的统一调配也带来了低成本高收入。④易操作性:该系统使用了现在流行的编译环境设计出的软件,操作简单,界面有好,而且软件的更新换代也很方便。本系统具有员工登记、查询、编辑、查询、修改、报表打印等功能,对
于实现小型超市进、销、存等管理的数字化具有可行性,值得推广。
第一章 系统分析
1.1需求分析
(1)超市商品信息的维护
有新商品入库时,系统允许管理员添加新商品的记录; 当商品出售或产品过期需要清除时,管理员可以删除产品信息。当记录有误时,管理员可以手动修改数据表中的记录。
(2)库存商品信息的查询
信息查询是《超市管理系统》的重要组成部分。用户可以按照商品编号和商品名称等查询条件浏览仓库中的商品信息。在需要时(可每隔一个时间段查询一次) 生成商品库存情况报告,实时报告商品库存情况,如库存量不足(小于某一自定的数量) 时,可生成缺货报告,并提供商品种类,来源等商品属性信息,方便采购人员进行商品采购。 (3)商品的入库、出售
采购员采购商品后,及时录入商品信息等数据,在数据库中进行数据更新。货架上商品卖到一定数量时,实时生成提货报告,并提供商品的库存信息。在收银处,随时录入卖出商品信息,如名称,数量,单价等,及时更新数据库数据。当超市客户大批量需要某商品时,允许直接从商品仓库中提货,此时系统应及时更新数据库信息。在某时间段内,当某类商品卖出数量较大,受到人们的欢迎,可将此类商品打印输出,用于市场导购和商品采购指导。
(4)报表打印功能
可以打印库存情况表,商品入库出售表及每个时间段的利润统计的报表。 (5)供应商、超市会员、登录账号
采购员可以根据供应商信息快速的采购所需商品,营业员可以根据会员进行打折和商品销售,每个员工都有不同权限的登录名,根据自己的登录名查找自己所需信息。
1.2数据流程分析
由商品的采购员根据商品的短缺报告进行商品的采购、入库,然后交由仓库管理员进行处理; 仓库管理员根据架上商品的短缺报告从仓库记录中进行查询,并从中提取商品修改记录或生成缺货报告; 货架管理员从仓库管理员处提取商品后应进行架存商品的相关信息录入及对应商品位置的摆放; 场内服务员引导顾客完成商品的购买并促进商品的热销; 顾客从商场内出来后首先应到柜台营业员处进行商品的购买记录并交付所购商品的金额,这样顾客方可完成商品的购买。如图1-1
图1-1
1.3开发环境
微软公司的Micrsoft Visual Studio.NET 2005是Windows 应用程序开发工具,是目前最为广泛的、易学易用的面向对象的开发工具。C#.NET2005提供了大量的控件,这些控件可用于设计界面和实现各种功能,减少了编程人员的工作量,也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。故而,实现本系统使用C#.NET2003是一个相对较好的选择。 计算机操作系统:Windows XP,
开发工具:Microsoft Visual Studio 2005 开发语言:C#语言
数据库管理系统: SQL Server 2005
电脑配置: 一般的主流配置完全可以顺畅实用
第二章 系统数据库结构
2.1数据库分析设计
在《超市管理系统》中,首先要创建超市信息管理系统数据库,然后在数据库中创建需要的表和字段。选用SQL Server2005做为数据库开发工具,SQL Server2005数据库汇集各种信息以供查询、存储和检索。SQL Server2005 的优点在于安全性高,他采用二级安全验证、登录验证及数据库用户帐号和角色的许可验证。SQL Server2005也提供了数据存储库,可以使用桌面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。SQL Server2005 是一种关系数据库工具,关系数据库是已开发的最通用的数据库之一。
在上章1.1节需求分析中列出了《超市管理系统》的所需表:商品信息表、商品出售表、商品入库表、商品库存情况表、供应商表、会员表、职员表、用户表。
2.2数据库表结构
为了实现系物应有的功能,结合本系统对有关数据的存储的需要,现将本系统数据库设计成8个数据库表: 2.2.1商品信息表
2.2.2商品出售表
2.2.3商品入库表
2.2.4供应商表
2.2.5会员表
2.2.6商品库存情况表
2.2.7职员表
2.2.8用户表
2.3数据表关系图
数据表关系如图2-1
图2-1
2.4数据库ER 图
超市管理系统数据库ER 模型如图2-2
图2-2
第三章 系统功能模块
3.1系统各功能模块划分
《超市管理系统》属综合性系统,数据量较大,数据间的处理复杂。为了更好的实现该系统所需的功能,将本系统划分为9个管理模块。
·商品信息管理:服务员可以根据市场的要求来进行添加或删除商品信息。
采购员可以浏览商品信息来进行商品的采购。 管理员可以进行商品信息添加、删除、修改、浏览。
·商品查询: 服务员根据顾客的要求进行查询,以满足顾客的需求。商品查询
可以根据商品编、名称和供应商进行。
·商品库存管理:仓库管理员根据商品库存情况进行商品货物的存放以便商品上架。 货架管理员根据销售情况进行商品的上架,保证商品部空缺。
管理员可以根据营业员的报表进行商品入库、商品销售进行修改。
以便商品数据部遗漏、重复。
·供应商管理: 采购员可以根据供应商的信息进行采购,还可以根据新商品的供
应商,进行供应商的添加、删除和修改。
·打印报表: 打印商品的出入库和销售报表,便以结算。
·职员管理: 对超市的职员进行登记,录入数据库,方便管理员进行超市管理。 ·会员信息管理:营业员可以根据会员信息进行打折和查找会员;览会员信息。
管理员注册新会员,会员卡的挂失,会员信息的修改删除。
·用户管理: 管理员对本超市的职员给每人一个注册用户,职员根据自己的用
户名进行工作;每个用户都可以修改自己的密码方便记忆,保证秘密性。
·退出系统: 保存数据退出系统。
3.2系统功能结构图
系统功能结构图如图3-1。
图3-1
第四章 系统功能实现
4.1界面设计
4.1.1登录界面
系统将会根据登录用户的类型进入不同的操作界面。(普通用户登陆进入有些功能不
显示;管理员登陆进入所有功能都显示)如图4-1。
图4-1
4.1.2操作主界面
用户登陆进入的界面。如图4-2。
图4-2
管理用户登录得界面、如图4-3。
图4-3
4.2 数据访问层
根据软件开发的基本流程,在完成了系统需求、系统分析、系统设计后,就进入系统实现阶段了,首先就是数据的交换层,数据交换层是本系统最重要的技术之一。其代码如下:
class DB {
SqlConnection con;
const string link = @"Data Source=.\sqlexpress;Initial Catalog=superstore_Data;Integrated Security=True"; public DB() {
con = new SqlConnection (link); }
public void open() {
if (con != null ) {
if (con.State == ConnectionState .Closed) {
con.Open(); } } }
public void close() {
if (con != null ) {
if (con.State == ConnectionState .Open) {
con.Close(); } } }
public int set(string sql) {
open();
SqlCommand cmd = new SqlCommand (sql, con); int i = cmd.ExecuteNonQuery(); close(); return i; }
public int selectCount(string sql) {
open();
SqlCommand cmd = new SqlCommand (sql, con); int i = Convert .ToInt32(cmd.ExecuteScalar()); close(); return i; }
public string firstr(string sql) {
SqlCommand cmd = new SqlCommand (sql, con); SqlDataAdapter sda = new SqlDataAdapter (cmd); DataSet ds = new DataSet (); sda.Fill(ds);
return ds.Tables[0].Rows[0][0].ToString(); }
public DataView filedata(string sql) {
SqlCommand cmd = new SqlCommand (sql, con); SqlDataAdapter sda = new SqlDataAdapter (cmd); DataSet ds = new DataSet (); sda.Fill(ds);
return ds.Tables[0].DefaultView; }
public int checklogin(string name, string password, string userflag) {
string s = "select count(*) from 用户表 where 用户名=@name and 密码=@password and 权限=@userflag"; open();
SqlCommand cmd = new SqlCommand (s, con);
cmd.Parameters.Add("@name", SqlDbType .VarChar);
cmd.Parameters.Add("@password", SqlDbType .VarChar); cmd.Parameters.Add("@userflag", SqlDbType .VarChar); cmd.Parameters["@name"].Value = name;
cmd.Parameters["@password"].Value = password; cmd.Parameters["@userflag"].Value = userflag; int i = Convert .ToInt32(cmd.ExecuteScalar()); close(); return i; }
}
4.3 主要功能及实现
4.3.1商品添加界面
界面如图4-4。
图4-4
实现代码:
public partial class wareIsertnForm : Form {
private bool checkAdd() {
if (this .tbbianhao.Text.Trim().Length == 0) {
MessageBox .Show(" 商品编号不能为空!!!" ); tbbianhao.Focus(); return false ; }
if (this .tbshpmingcheng.Text.Trim().Length == 0) {
MessageBox .Show(" 商品名称不能为空!!!" ); tbshpmingcheng.Focus(); return false ; }
if (this .tbshpleibie.Text.Trim().Length == 0) {
MessageBox .Show(" 商品类别不能为空!!!" ); tbshpleibie.Focus(); return false ; } try {
double n1 = Convert .ToDouble(tbshpjinjia.Text.Trim()); if (n1
MessageBox .Show(" 商品进价应大于或等于零!!!" ); tbshpjinjia.Focus(); return false ; } }
catch (Exception err) {
MessageBox .Show(" 商品进价只能为数字!!!" ); tbshpjinjia.Focus(); return false ; } try {
double n2 = Convert .ToDouble(tbshoujia.Text.Trim()); if (n2
MessageBox .Show(" 商品售价应大于零!!!" );
tbshoujia.Focus(); return false ; } }
catch (Exception err) {
MessageBox .Show(" 商品售价只能为数字!!!" ); tbshoujia.Focus(); return false ; }
if (this .comboBox1.Text.Trim().Length == 0) {
MessageBox .Show(" 商品厂家不能为空!!!" ); comboBox1.Focus(); return false ; }
if (this .tbbaozhij.Text.Trim().Length == 0) {
MessageBox .Show(" 保质期不能为空!!!" ); tbbaozhij.Focus(); return false ; }
return true ; }
private void add() {
string sql = string .Format("insert into 商品信息表(商品编号, 商品名称, 商品类别, 商品进价, 商品售价, 供应商, 生产日期, 保质期, 过期日期, 备
注)values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}')" , tbbianhao.Text.Trim(),tbshpmingcheng.Text.Trim(),tbshpleibie.Text.Trim(),tbshpjinjia.Text.Trim(),tbshoujia.Text.Trim(),comboBox1.Text.Trim(), Convert .ToDateTime(dateTimePicker1.Text), tbbaozhij.Text.Trim(), Convert .ToDateTime(dateTimePicker2.Text), tbbeichu.Text.Trim()); DB n = new DB (); if (n.set(sql) > 0) {
MessageBox .Show(" 添加成功!!!" ); } else {
MessageBox .Show(" 添加失败!!!" ); }
}
private void btnUpdata_Click(object sender, EventArgs e) {
try {
if (checkAdd()) {
add();
this .Close(); } }
catch (Exception er) {
MessageBox .Show(er.Message); } }
private void wareIsertnForm_Load(object sender, EventArgs e) {
this . 供应商表TableAdapter.Fill(this .superstore_DataDataSet.供应商表); } }
4.3.2商品查询界面 界面如图4-5。
图4-5
实现代码:
public partial class namequeryForm : Form
{
private void button1_Click(object sender, EventArgs e) {
try {
if (check()) {
fill(); } }
catch (Exception er) {
MessageBox .Show(er.Message); } }
private bool check() {
if (comboBox1.Text.Trim().Length==0) {
MessageBox .Show(" 商品名称能为空!" ); comboBox1.Focus(); return false ; }
return true ; }
private void fill() {
string sql = "select * from 商品库存情况表 where 商品名称 like '%" + comboBox1.Text.Trim() + "%'"; DB n = new DB ();
dgvName.DataSource = n.filedata(sql); }
private void namequeryForm_Load(object sender, EventArgs e) {
this . 商品库存情况TableAdapter.Fill(this .superstore_DataDataSet.
商品库存情况表); }
} 4.3.3商品入库界面
界面如图4-6。
图4-6
实现代码:
public partial class wareInsertkuForm : Form {
private void wareInsertkuForm_Load(object sender, EventArgs e) {
this . 供应商表TableAdapter.Fill(this .superstore_DataDataSet.供应商表); this . 商品信息表TableAdapter.Fill(this .superstore_DataDataSet.商品信息表); }
private void button1_Click(object sender, EventArgs e) {
try {
if (checkAdd()) {
add();
this .Close(); } }
catch (Exception err) {
MessageBox .Show(err.Message); } }
private bool checkAdd() {
try {
double n2 = Convert .ToDouble(tbjiage.Text.Trim()); if (n2
MessageBox .Show(" 进货价格不应为零!!!" ); tbjiage.Focus(); return false ; } }
catch (Exception err) {
MessageBox .Show(" 进货价格只能为数字!!!" ); tbjiage.Focus(); return false ; }
return true ; }
private void add() {
DB n = new DB ();
string sql = "select count(*) from 商品库存情况表 where 商品名称='" + comboBox1.Text.Trim() + "'" ;
if (n.selectCount(sql) > 0) {
//取出剩余库存数量,计算入库后总的库存数
string sql2 = "select 库存数量 from 商品库存情况表 where 商品名称='" + comboBox1.Text.Trim() + "'" ;
int lian = Convert .ToInt32(n.firstr(sql2));
int sum = lian + Convert .ToInt32(tbshuolian.Text.Trim()); string sql4 = string .Format("insert into 商品入库表(商品名称, 进货日期, 进货价格, 进货数量, 供应商, 备注)
values('{0}','{1}','{2}','{3}','{4}','{5}')" , comboBox1.Text.Trim(), Convert .ToDateTime(DateTimePicker.Text.Trim()), tbjiage.Text.Trim(), tbshuolian.Text.Trim(), comboBox2.Text.Trim(), tbbeizhu.Text.Trim()); if (n.set(sql4) > 0) {
string sql3 = "update 商品库存情况表 set 库存数量='" + sum + "', 进货价格='"+tbjiage.Text.Trim()+"', 总额='" + sum *
Convert .ToDouble(tbjiage.Text.Trim()) + "' where 商品名称='" + comboBox1.Text.Trim() + "'" ; n.set(sql3);
MessageBox .Show(" 入库成功!!!" ); }
else {
MessageBox .Show(" 入库失败!!!" ); } } else {
string sql6 = string .Format("insert into 商品入库表(商品名称, 进货日期, 进货价格, 进货数量, 供应商, 备注)
values('{0}','{1}','{2}','{3}','{4}','{5}')" , comboBox1.Text.Trim(), Convert .ToDateTime(DateTimePicker.Text.Trim()), tbjiage.Text.Trim(), tbshuolian.Text.Trim(), comboBox2.Text.Trim(), tbbeizhu.Text.Trim()); if (n.set(sql6) > 0) {
string sql5 = string .Format("insert into 商品库存情况表(商品名称, 库存数量, 进货价格, 总额, 备注)
values('{0}','{1}','{2}','{3}','{4}')" ,comboBox1.Text.Trim(),tbshuolian.Text.Trim(),tbjiage.Text.Trim(),Convert .ToInt32(tbshuolian.Text.Trim())*Conve rt .ToDouble(tbjiage.Text.Trim()), tbbeizhu.Text.Trim()); n.set(sql5);
MessageBox .Show(" 入库成功!!!" ); } else {
MessageBox .Show(" 入库失败!!!" ); } } }
} 4.3.4商品出售界面
界面如图4-7。
图4-7
实现代码:
public partial class sellForm : Form {
public sellForm() {
InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) {
try {
if (checkupdate()) {
add();
this .Close(); } }
catch (Exception err) {
MessageBox .Show(err.Message); } }
private void button2_Click(object sender, EventArgs e) {
Close(); }
private bool checkupdate() {
try {
int n = Convert .ToInt32(tbshulian.Text.Trim()); if (n
MessageBox .Show(" 出售数量应大于或等于零!!!" ); tbshulian.Focus(); return false ; } }
catch (Exception err) {
MessageBox .Show(" 出售数量只能为数字!!!" ); tbshulian.Focus(); return false ; }
return true ; }
private void add() {
Double ss,li; DB n = new DB (); //计算出售总额
Double s = Convert .ToDouble(tbshoujia.Text.Trim()); Double sh = Convert .ToDouble(tbshulian.Text.Trim()); Double sum = s * sh; //出售
string sql= "select 库存数量 from 商品库存情况表 where 商品名称='" + comboBox1.Text.Trim() + "'" ; try {
int m = Convert .ToInt32(n.firstr(sql));
if (m > 0 && m - Convert .ToInt32(tbshulian.Text.Trim()) >= 0) {
//计算利润
string sql2 = "select 进货价格 from 商品入库表 where 商品名称='" + comboBox1.Text.Trim() + "'" ;
ss = Convert .ToDouble(n.firstr(sql2)); li = sum - sh * ss; // 计算剩余库存数量
int lian = Convert .ToInt32(n.firstr(sql)); int cun = lian - Convert .ToInt32(tbshulian.Text.Trim());
//添加到表中
string sql3 = string .Format("insert into 商品出售表(商品名称, 出售价格, 出售数量, 出售日期, 出售总额, 本次利润, 备注)
values('{0}','{1}','{2}','{3}','{4}','{5}','{6}')" , comboBox1.Text.Trim(), tbshoujia.Text.Trim(),tbshulian.Text.Trim(),Convert .ToDateTime(DateTimePicker.Text.Trim()), sum, li, tbbeizhu.Text.Trim()); if (n.set(sql3) > 0) { string sql4 = "update 商品库存情况表 set 库存数量='" + cun + "', 总额='"+ ss*cun+"' where 商品名称='" + comboBox1.Text.Trim() + "'" ; n.set(sql4);
MessageBox .Show(" 出售成功!!!" ); } else {
MessageBox .Show(" 出售失败!!!" ); } } else {
MessageBox .Show(" 货物不够!现库存量为" +m.ToString());
} }
catch (Exception err) {
MessageBox .Show(" 缺货!!!" ); } }
private void sellForm_Load(object sender, EventArgs e) {
this . 商品信息表TableAdapter.Fill(this .superstore_DataDataSet.商品信息表); } }
4.3.5供应商浏览界面
界面如图4-8。
图4-8
实现代码:
private void 供应商表BindingNavigatorSaveItem_Click(object sender, EventArgs e) {
this .Validate();
this . 供应商表BindingSource.EndEdit();
this . 供应商表TableAdapter.Update(this .superstore_DataDataSet.供应商表); }
private void offerForm_Load(object sender, EventArgs e) {
this . 供应商表TableAdapter.Fill(this .superstore_DataDataSet.供应商表); }
第五章 结论
本系统适合于商店尤其是小型超级市场、便利店的使用,把计算机技术应用于超市管理,更有效的对超市的各种商品信息进行归类、划分、合理的组合,实现了超市近销存管理工作的自动化,减少了手工劳动量,提高了工作效率。且系统性能良好,可靠性高,可根据用户的需求进行功能的改进。
经过一个多月的努力,完成了本系统的开发及文档写作。通过该项目的开发使我更好的掌握了Microsoft Visual Studio 2005 、SQL Server 2005相关知识。懂得了软件开发的基本流程及软件测试相关的知识,为以后开发道路打下了良好基础。
第六章 参考文献
[1].丁士锋 C#2.0实用开发详解 北京:电子工业出版社 [2].陈伟 SQL Server2005数据库应用与开发教程 北京:清华大学出版社
第七章 致谢
在本次毕业设计中遇到不少问题,经林为超老师的精心指导问题都成功解决。林老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。她无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高,对于我以后的工作和学习都有一种巨大的帮助,感谢她耐心的辅导。还有其他的同学同样给与我不少帮助,这里一并表示感谢。