资源描述
北 华 航 天 工 业 学 院
《C#程序设计》
课程设计报告
课程设计题目: 顺达超市管理系统
作者所在系部: 计算机科学与工程系
作者所在专业: 计算机科学与技术
作者所在班级: XXXXXXX
作 者 姓 名 : XXX
作 者 学 号 : XXXXXXXXXXXX
指导教师姓名: XXXXXXX
完 成 时 间 : 2010.12.19
北华航天工业学院教务处制
课程设计任务书
课题名称
顺达超市管理系统
完成时间
2010.12.19
指导教师
职称
学生姓名
班 级
总体设计要求和技术要点
基本要求
1. 每个学生从所给题目中任选一个(如自拟题目,需经教师同意),必须独立完成课程设计,不能相互抄袭。
2. 设计方案正确。
3. 数据与功能分析详细。
4. 系统设计要尽量实用。
5. 编码简洁、稳定、高效。
6. 独立查阅资料。
7. 认真撰写课程设计报告。
创新要求:
在基本要求达到后,可进行完善设计,增加程序的健壮性及可靠性等。
工作内容及时间进度安排
此次课程设计时间为两周,第15、16周,共40学时。
分四个阶段完成:
1. 分析设计阶段:明确设计要求,找出实现方法,这一阶段在第1天完成。
2. 编码调试阶段:根据设计分析方案编写代码,然后调试该代码,实现课题要求的功能。
3. 这一阶段在第2-8天完成。
4. 总结报告阶段:总结设计工作,撰写课程设计报告,这一阶段在第8-9天完成。
考核阶段:这一阶段在第10天完成。
课程设计成果
1.与设计内容对应的软件程序
2.课程设计报告书
3.成果使用说明书
摘要
该系统是一套基于B/S(浏览器/服务器Browser/Server)体系,采用ASP.NET技术和SQL Server 2005作为开发软件,以管理商品信息、控制超市运作、反馈客户意见和推广超市为目的的管理系统。
随着我国信息化的普及,各行各业都已经将企业的整体向信息化方向转化,以提高自己的管理和生产的效率,提高企业的整体凝聚力量,更加高效的运转企业。
超市是一个国家社会中一个很活跃的社会角色,在发展的过程中,为了提高自己的社会竞争力和超市运行的高效率,超市也加速了向信息化方向转化的速度。而超市管理系统的出现,能使计算机通过超市管理系统的控制,流程化的高效率工作,进行超市的管理。不仅可以帮助管理者进行高效快速的管理,同时使消费者在购物的同时感受到良好的管理带来的便捷服务。超市管理系统已经是超市在社会信息化发展中不可缺少的部分,也是超市在社会发展中快速发展的驱动力之源。
关键词 ASP.NET SQL Server 2005 超市管理系统
目录
摘要 1
第1章 绪论 1
1.1课题研究现状分析 1
1.1.1 本领域内已开展的研究工作 1
1.1.2 已经取得的研究成果 3
1.2选题的目的及意义 3
第2章 系统需求分析 3
2.1 问题的提出 3
2.2 系统的设计目标 3
第3章 系统总体设计 5
3.1系统功能设计 5
3.1.2 模块设计 6
3.2数据库的设计 7
3.3库中各个表的设计 7
第4章 系统实现 10
4.1数据库操作类 10
4.2 登陆模块实现 10
4.3 员工身份登录模块实现 12
4.4 进货管理模块实现 13
4.5 员工信息管理模块实现 18
4.6商品信息管理模块实现 25
4.7会员信息管理模块实现 31
4.7部门信息管理模块实现 35
4.8供货商信息管理模块实现 36
第5章 系统使用说明 37
第6章 课程设计总结 38
6.1 主要问题及解决办法 38
6.2 课程设计体会 38
参考文献 39
第1章 绪论
随着信息产业的飞速发展,信息化管理已经引入并应用到各行业管理领域,各种形式的百货商场、大型仓储超市、便利店、连锁超市和专卖店等形式的零售业鳞次栉比,不断改变、影响着人们的价值观念和生活方式。因此,要提升企业竞争力,就要大力推进企业信息化建设,利用先进的办公自动化系统来实现企业内部信息管理、共享及交流,才能使企业在竞争激烈的21世纪取得先机。
1.1课题研究现状分析
计算机是近代社会中一项伟大的社会发明,正在以惊人的速度改变我们的人类社会,计算机的高速度处理能力,为人类社会替代了很多的复杂繁琐的工作流程,使得人类能从大量繁琐的工作中解脱出来,更加高效的做事,而超市管理系统的出现,能使计算机通过超市管理系统的控制,流程化的高效率工作,进行超市的管理。超市管理系统已经是超市在社会信息化发展中不可缺少的部分,也是超市在社会发展中快速发展的驱动力之源。
1.1.1 本领域内已开展的研究工作
1. 理论研究基础
(1)确定系统的基本建设原则是:可靠性、可扩充性、实用性、安全性、简易操作性、业务重组等组成。
经过科学的、系统的规划和论述,我们制定了信息系统的目标:以先进成熟的计算机和数据库技术为主要手段,建成覆盖公司内部各部门的管理信息系统,以做到市场、销售、采购、人事方面的信息可以及时正确地得到反映,为经营决策提供有力的信息保证。实现公司的管理现代化、信息资源化和决策科学化。
(2)作为国内市场的一些中小型超市,它们在信息化过程中的步伐要落后于大中型超市,而对于这些企业的资源管理,信息的存储和处理也显得迫切需要,要适应市场竞争,就需要有高效的处理方式和管理方法,因此加快超市的信息化进程是必可少的。
随着现代科学技术的迅猛发展,计算机技术已经渗透到各个领域,成为各行业必不可少的工具,特别是Internet技术的推广和信息高速公路的建立,使IT产业在市场竞争中越发显示出其独特的优势,步入信息化时代,有巨大的数据信息等待加工处理和传输,这使得对数据库的进一步开发和利用显得尤为迫切。
实习期间,我们通过对市场的调查,针对现在各中小型超市对经营业务和人事管理的实际需要,开发了这套超市管理系统。在开发过程中,我们针对当前各超市管理的特点和技术人员的实际水平,采用基于Windows图形用户界面这一易学易用的操作环境,在系统设计过程中,我们尽量采用易懂易读的人机界面,使用户可以在短期内完全掌握。我们又始终把系统的正确性放在首位,力求数据的完整和处理的正确性。在此基础上优化程序代码,加速系统运行和减少对系统资源的占用。
(3)我国超市形成在20世纪90年代初期,现已经成为我国零售业的一种重要形态,为国民经济的发展做出了重要的贡献。随着超市高速的发展,其经营管理也变得愈加复杂,早期的售货员站柜台的形式早已不能满足现有销售业的发展,这样就迫切地需要引入新的管理技术。
超市形态具有种种优点,但在目前状况下,它仍存在零售业企业所共有的落后的一面,如:不能有效地管理每种商品,收款结算速度慢,容易出现营业差错,不宜进行商品调价,盘点效率低等,而且在超市日常管理中,商品的进、销、存等决策以经验为主,缺乏实时分析功能,管理人员对及时传递资料的要求始终得不到满足。随着超市形态的高速发展,其经营管理也变得愈加复杂,日常所需要处理的数据量也逐渐增大,商业运转的中间环节也越来越多,原始的人工管理已无法应对这复杂的市场。为此,在选题过程中,我选择了超市管理系统设计题目,依靠现代化的计算机信息处理技术来管理超市,从而节省了大量的人力、物力,改善了员工的工作条件,减轻了劳动强度。
2. 技术层面的支持
(1)本系统采用基于Windows的图形用户界面,而该系统是大家熟悉的操作系统,对于那些有一般的计算机知识的人员就可以轻松上手。而整个超市管理系统采用最友好的交互界面,简洁明了,不需要对数据库进行深入的了解。
(2)用户界面
本系统采用Microsoft Visual Studio 2005设计,用户交互界面采用的是基于Windows的窗口界面。
(3)硬件支持
此软件有进行远程访问的功能,也就是说对服务器要求较高。因此,建议机器至少能顺畅运行SQL服务器及其相关软件。
(4)软件接口
NET框架:Microsoft.Net Framework V1.1版本及以上。
数据库服务器:Microsoft SQL Server 2005。
1.1.2 已经取得的研究成果
随着小超市规模的发展不断扩大,商品数量急剧增加,有关商品的各种信息量也成倍增长。而大型的超市管理系统功能过于强大而造成操作繁琐降低了小超市的工作效率。所以,对小型超市管理系统的研究越来越显得重要。
1.2选题的目的及意义
为了检验自己的软件技术开发水平,同时也为了开发一个很符合现实需求的很实用的软件工具,经过详细的分析和具体的实践,决定开发超市管理系统 。
第2章 系统需求分析
随着经济全球化的推进以及企业激烈的竞争,改善企业内部及整个供应链各环节的管理、调度及资源配置,迅速适应客户的新需求和市场新机遇,是企业赢得竞争胜利的决定性因素。
基于三层体系的网站开发是重要的环节。完善的三层体系开发会使开发规范化并且结构清晰,提高开发效率,并且编写的应用程序也具有良好的健壮性、可扩展性和便于维护等优点。通过各层之间的交互,形成应用程序的体系结构,实现适应于企业级应用的功能复杂的应用程序。
2.1 问题的提出
本系统能具体化,合理化的管理超市中的商品信息、进出信息,用结构化的思维方式去了解超市的基本运作原理和超市后台程序设计。
2.2 系统的设计目标
1.开发目标
超市管理系统需要完成的功能主要有:
a.商品各种信息的输入,包括商品基本信息,详细信息等。
b.各种商品信息的查询。
c.各种商品信息的修改。
d.供应商信息的输入,查询,和修改等。
e.商品库存的输入,查询,和关系性修改等。
f.商品库存的关系模式的完整性实现。
g.商品供应商的输入,查询,和修改等。
h.系统管理的管理员的登入。
2.应用目标
本软件控件均以中文形式表示,对普通程序使用者的查询提供简单方便的快捷操作,不需要技术含量。
操作人员与维护人员应懂的SQL语言。
第3章 系统总体设计
3.1系统功能设计
设计内容:该管理系统,共分为七个模块:管理者信息模块、供货商信息模块、商品信息模块、进货模块、销售模块、查询库存模块、服务模块。其中管理者信息模块主要实现各级管理者信息的管理(增加、删除、修改),分别有不同的访问权限。供货商信息模块主要实现供货商信息的管理。商品信息模块主要实现商品的录入,包括产品的类别、名称、型号、价格、供应方、介绍等,同时可以上传商品的图片。进货模块实现联系供货商,向数据库中添加商品信息的功能。销售模块实现对商品的清点。查询库存模块实现对商品库存的汇总清点。服务模块实现消费者在前台登记已购产品的信息,方便企业的售后服务。
如图3-1所示:
登陆超市管理系统
工供货商信息管理
工员工信息管理
工商品信息管理
工进货管理
工销售管理
工查看库存管理
工服务模块
图3-1 系统功能模块图
3.1.1、系统登录
登录为用户使用系统的起始点,用户必须先通过身份验证,方可对超市管理系统进行相关操作,登录流程如下图所示:
登录
失败
处理
错误提示
查询验证
成功
登录主界面
操作
结束
图3-2 登录模块流程图
简要说明及功能描述:
功能主要是用于确保用户在提供正确的验证信息之后,可以进一步使用本系统。
3.1.2 模块设计
功能模块分布图3-2
图3-2
3.2数据库的设计
本系统采用sqlserver2005数据库管理系统,创建的数据库名称为:超市数据库中包含5张表,各表功能及描述如表3-1所示:
表3-1 数据库中的表
表名
作用
用户信息表
用于存储用户信息
商品信息表
用于存储商品基本信息
员工档案表
用于存储员工基本信息
超市供货商信息表
用于存储供货商基本信息
超市进货销售信息表
用于存储商品进出信息信息
3.3库中各个表的设计
1. 用户信息表 (此表存放用户信息 )
表3-2
字段名
数据类型
长度
说明
id
Int
4
主键
username
Varchar
50
用户名
userpwd
Varchar
50
用户密码
AddTime
datetime
8
最后修改时间
email
varchar
30
用户邮箱地址
2. 商品信息表 (此表存放入库的商品信息)
表3-3
字段名
数据类型
长度
说明
c_id
Int
4
主键
CommodityName
varchar
100
商品名
ShortName
varchar
50
商品简称
ProducePlace
varchar
100
产地
Unit
varchar
20
计算单位
Specs
varchar
50
规格
PassNumber
varchar
50
批号
PassList
varchar
50
批准文号
CompanyId
int
4
公司号(外码)
Remark
varchar
20
备注
AddTime
Datetime
8
最后修改时间
3. 员工档案表 (此表存放超市员工的信息)
表3-4
字段名
数据类型
长度
说明
s_id
int
4
主键
s_name
varchar
50
姓名
s_sex
char
10
性别
s_adress
varchar
100
住址
s_tel
varchar
30
联系电话
s_email
varchar
50
邮箱地址
4. 超市供应商信息表
表3-5
字段名
数据类型
长度
说明
Cp_id
Int
4
主键
CompanyName
Varchar
50
供应商名
CompanyShort
Varchar
50
简称
CompanyAddress
Varchar
50
公司地址
Postalcode
Varchar
50
邮政编码
Tel
Varchar
50
联系电话
Fax
Varchar
50
传真
Linkman
Varchar
50
联系人
Email
Varchar
50
邮箱地址
Bank
Varchar
50
开户银行
BandAccounts
Varchar
50
银行账号
AddTime
varchar
50
最后修改时间
5. 超市进货销售信息表
表3-6
字段名
数据类型
长度
说明
id
int
4
主键
CommodityId
int
4
商品号(外码)
CompanyId
int
4
供应商号(外码)
Number
int
4
商品数量
Pirce
int
4
商品单价
StockDate
datetime
8
进货日期
Payment
int
4
应付金额
FactPayment
int
4
实付金额
NotPayment
int
4
未付金额
ManageMan
varchar
20
经手员工
Username
varchar
50
操作人员
AddTime
varchar
20
最后修改时间
第4章 系统实现
4.1数据库操作类
DBConnection类用于实现数据库的连接、执行,定义公共类DBClass实现对数据库的操作。
该类定义如下:
public class DBClass
{
public DBClass()
{
}
public SqlConnection GetConn()
{
string connstr = "Data Source=LWQ-PC\\SQLEXPRESS;Initial Catalog=超市;Integrated Security=True";
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
return conn;
}
public SqlDataReader GetReader(string sqlstr)
{
SqlConnection conn = GetConn();
SqlCommand comm = new SqlCommand();
comm.Connection = conn;
comm.CommandText = sqlstr;
SqlDataReader dr = comm.ExecuteReader();
comm.Dispose();
return dr;
}
public void ExeSql(string sqlstr)
{
SqlConnection conn = GetConn();
SqlCommand comm = new SqlCommand();
comm.Connection = conn;
comm.CommandText = sqlstr;
comm.ExecuteNonQuery();
comm.Dispose();
conn.Close();
}
public DataSet GetDataSet(string sqlstr)
{
SqlConnection conn = GetConn();
SqlDataAdapter da = new SqlDataAdapter(sqlstr, conn);
DataSet ds = new DataSet();
da.Fill(ds);
return ds;
da.Dispose();
}
}
4.2 登陆模块实现
本系统的登录界面如图4-1所示,输入姓名和密码,点击确定,判断用户名和密码是否正确,正确可进入系统主界面,否则提示错误信息。 登陆界面如图4-1所示。
图4-1 登录界面
登录界面的代码为:
public partial class _Default : System.Web.UI.Page
{
protected void Button1_Click(object sender, EventArgs e)
{
if (TextBox1.Text=="" || TextBox2.Text =="")
{
Response.Write("<script>alert('用户名和密码不能为空!')</script>");
}
else
{
if (RadioButtonList1.SelectedIndex == 0)
{
String sqlstr = "select * from 管理员 where glyid=" + TextBox1.Text;
//连接
String connStr = "Data Source=LWQ-PC\\SQLEXPRESS;Initial Catalog=超市;Integrated Security=True";
SqlConnection conn = new SqlConnection(connStr);
SqlCommand cmd = new SqlCommand(sqlstr, conn);
conn.Open();
SqlDataReader rdr = cmd.ExecuteReader();
if (rdr.Read())
{
Session["id"] = TextBox1.Text;
Server.Transfer("管理员界面.aspx?id=" + TextBox1.Text);
// Response.Redirect("管理员界面.aspx");
}
else { Response.Write("<script>alert('不存在该用户或用户名密码错误!')</script>"); }
conn.Close();
}
if (RadioButtonList1.SelectedIndex == 1)
{
String sqlstr = "select * from 员工 where workerid='"+TextBox1.Text+"' and workerpsw='"+TextBox2.Text+"'" ;
//连接
DBClass dbclass = new DBClass();
SqlDataReader rdr = dbclass.GetReader(sqlstr);
if (rdr.Read())
{
Session["id"] = TextBox1.Text;
Server.Transfer("员工界面.aspx?id=" + TextBox1.Text);
}
else { Response.Write("<script>alert('不存在或用户名密码错误!')</script>"); }
//conn.Close();
}
if (RadioButtonList1.SelectedIndex == 2)
{
String sqlstr = "select * from 经理 where managerid=" + TextBox2.Text;
//连接
String connStr = "Data Source=LWQ-PC\\SQLEXPRESS;Initial Catalog=超市;Integrated Security=True";
SqlConnection conn = new SqlConnection(connStr);
SqlCommand cmd = new SqlCommand(sqlstr, conn);
conn.Open();
SqlDataReader rdr = cmd.ExecuteReader();
if (rdr.Read())
{
Session["id"] = TextBox2.Text;
Server.Transfer("经理界面.aspx?id=" + TextBox2.Text);
Response.Redirect("经理界面.aspx");
}
else { Response.Write("<script>alert('不存在或用户名密码错误!')</script>"); }
conn.Close();
}
}
}
}
4.3 员工身份登录模块实现
员工身份登录只能修改自己的密码和查看个人信息。界面如图4-2所示。
图4-2员工登陆界面
员工登陆界面代码如下:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
String id = Request.QueryString["id"].ToString();
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("登陆界面.aspx");
}
}
4.4 进货管理模块实现
管理员身份登录后,其中一个操作是进货管理,可以根据是已有商品还是新商品来添加。运行结果如图4-3、4-4、4-5所示。
图4-3 刚进入时的界面
图4-4添加已有商品
图4-5添加新商品
public partial class 管理员界面 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
mybind();
}
DBClass dbclass = new DBClass();
void mybind()
{
string sql = "select * from 商品";
DataSet ds = dbclass.GetDataSet(sql);
GridView1.DataSource = ds;
GridView1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
Label2.Text = "进货管理操作";
mybind();
}
protected void Button2_Click(object sender, EventArgs e)
{
Response.Redirect("销售管理.aspx");
}
protected void Button3_Click(object sender, EventArgs e)
{
Response.Redirect("信息管理.aspx");
}
protected void Button8_Click(object sender, EventArgs e)
{
string sql = "update 商品 set goodscurnum = goodscurnum +'" + int.Parse(TextBox9.Text) + "' where goodsid='" + DropDownList3.SelectedItem.Text + "'";
dbclass.ExeSql(sql);
string sql2 = "select * from 商品 where goodsid='" + DropDownList3.SelectedItem.Text + "'";
DataSet ds2 = dbclass.GetDataSet(sql2);
GridView1.DataSource = ds2;
GridView1.DataBind();
if (DropDownList1.SelectedIndex == 0&&DropDownList2.SelectedIndex!=-1)
{
String sql1 = "select * from 商品,商品类别 where 商品类别.goodscategoryid=商品.goodscategory and 商品类别.goodscategoryname='" + DropDownList2.SelectedItem.Text + "'";
DataSet ds = dbclass.GetDataSet(sql1);
GridView1.DataSource = ds;
GridView1.DataBind();
}
if (DropDownList1.SelectedIndex == 1 && DropDownList2.SelectedIndex != -1)
{
String sql1 = "select * from 商品,供货商 where 供货商.factoryid=商品.goodsfactory and 供货商.factoryname='" + DropDownList2.SelectedItem.Text + "'";
DataSet ds = dbclass.GetDataSet(sql1);
GridView1.DataSource = ds;
GridView1.DataBind();
}
}
protected void Button4_Click(object sender, EventArgs e)
{
int test = 0;
string sql1 = "select * from 商品 ";
SqlDataReader dr = dbclass.GetReader(sql1);
while (dr.Read())
{
if (dr[0].ToString().Trim() == TextBox1.Text.Trim())
test = 1;
}
if (test == 0)
{
String sql = "insert into 商品 values('" + TextBox1.Text + "','" + TextBox2.Text + "','" + DropDownList4.SelectedItem.Text + "','" + TextBox4.Text + "','" + DropDownList6.SelectedItem.Text + "','" + TextBox6.Text + "','" + DropDownList5.SelectedItem.Text + "')";
dbclass.ExeSql(sql);
mybind();
}
else {
Response.Write("<script>alert('该商品编号已存在,请重新输入!')</script>");
}
}
protected void Button9_Click(object sender, EventArgs e)
{
if (RadioButtonList1.SelectedIndex == 0)
Panel3.Visible = true;
if (RadioButtonList1.SelectedIndex == 1)
{
Panel3.Visible = false;
Panel1.Visible = true;
Panel2.Visible = false;
mybind();
}
}
protected void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e)
{
if (RadioButtonList1.SelectedIndex == 0)
{
Panel3.Visible = true;
Panel2.Visible = true;
Pa
展开阅读全文