admin 管理员组

文章数量: 887021


2024年1月13日发(作者:人工智能教育机构排名)

沈 阳 工 程 学 院

1.1 课程设计的目的

通过本次课程设计,使学生能够全面、深刻地掌握数据库系统的设计流程。根据在数据库原理课程中所学到的数据库理论知识,结合某个具体的实际需求,最终开发出一个较为实用的数据库系统。

1.2 课程设计的背景和意义

1.2.1课程设计的背景

20世纪90年代后期特别是近几年,我国的超市产业飞速发展,其经营模式更为复杂,旧的管理体制已经无法适应超市的发展,这就迫切的需要引进新的管理技术。

超市的数据和业务越来越庞大,而计算机就是一种高效的管理系统,这就需要我们把超市的管理与计算机结合起来,从而超市管理系统应运而生。依靠现代化的计算机信息处理技术来管理超市,节省了大量的人力、物力,改善了员工的并且能够快速反映出商品的进、销、存等状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,加快超市经营管理效率。

1.2.2 课程设计的意义

“数据库课程设计”的设计思想旨在强调学生的实际编程能力的培养与创意灵感的发挥。为此,本课程结合学科特点,除了让学生掌握数据库原理的理论知识,还增加了需求功能让学生完成,并鼓励学生的创作出个性的程序,满足客户需求,与市场的实际项目相结合。学生对此热情高,实际收获大,效果好。通过课堂学习和参与相关项目设计,学生对书本支持有了深刻的理解,实践性教学取得了良好效果。

1.3 课程设计环境

操作系统:Windows xp

开发软件:Microsoft Visual Studio 2005

数据库:Microsoft SQL Server 2005

页脚内容1

沈 阳 工 程 学 院

第2章 系统需求分析

随着人们生活水平的不断提高,对于物质的需求也越来越高,而超市作为日常生活用品聚集的场所,随着全球各种超市的数目的不断增加,规模不断增大,其管理难度也相应的增加,而为了适应当今信息化发展的时代,一套完整的超市商品管理系统显得尤为重要。

2.1 问题的提出

在信息化高速发展的今天,超市商品管理的信息化管理已成为必不可缺的一部分,但是目前的大多是超市商品管理系统应用难度较高,许多工作需要技术人员配合才能完成,角色分工不明确;改版工作量大,系统扩展能力差,应用时更是降低了灵活性,这就使得一套完善的、能够正常工作的商品管理系统应运而生。

2.2 可行性分析

系统的可行性分析是对课题的通盘考虑,是系统开发者进行进一步工作的前提,是系统设计与开发的前提与基础。系统的可行性分析可以使系统开发者尽可能早的估计到课题开发过程中的困难,并在定义阶段认识到系统方案的缺陷,这样就能花费较少的时间和精力,也可以避免许多专业方面的困难。所以,系统的可行性分析在整个开发过程中是非常重要的。

2.2.1 经济可行性分析

因为通过网络传递销售信息可以不受距离的限制,因此可以借阅许多的人力和物力,方便管理,由此可以减少不必要的开支,同时该系统可以提高超市的销售效率,即提高了超市的经济效益,所以从经济上完全是可行的。

2.2.2 技术可行性分析

本系统采用基于Windows的图形用户界面,而该系统是大家熟悉的操作系统,对于那些有一般的计算机知识的人员就可以轻松上手。而整个超市管理系统采用最友好的交互界面,简介明了,不需要对数据库进行深入的了解。

由此,该系统的操作是可行的,有必要开发该系统。

页脚内容2

沈 阳 工 程 学 院

综合以上三方面,该系统具有很高的开发可行性,无论是从技术上或者经济上还是操作上。因此,可以设计该系统的数据流程图,建立数据字典。

2.3 系统的设计目标

本系统主要包括四大模块,分别是人事管理模块,销售管理模块,进货管理模块,库存管理模块。每个模块的功能如下:

1. 人事管理模块功能:

(1)实现职工信息的查询;

(2)实现职工信息的更新,包括增加、删除、修改功能;

(3)实现供货商信息的查询;

(4)实现供货商信息的更新,包括增加、删除、修改功能。

2. 销售管理模块功能:

(1)进行前台的销售;

(2)将前台的销售与后台的数据库联系起来。

3. 进货管理模块功能:

(1)实现进货信息的查询;

(2)实现进货信息的更新,包括增加、删除、修改功能。

4. 库存管理模块功能:

(1)实现商品库存信息的查询;

页脚内容3

沈 阳 工 程 学 院

第3章 系统开发的技术背景

3.1 开发技术及运行环境

3.1.1 系统所采用的开发技术

通过权衡对各种编程语言和数据库使用的熟练程度,本系统选用Eclipse8.1作为前台开发工具,后台数据库采用SQL Server 2005,整体设计以软件工程思想为指导思想,力求开发一个实用性强、操作简单且功能完整的超市商品管理系统。

3.1.2 系统运行环境

操作系统:Windows XP

数据库:Microsoft SQL Server 2005

前台:Microsoft Visual Studio 2005

页脚内容4

沈 阳 工 程 学 院

第4章 系统分析与总体设计

4.1 系统结构框架

一般的超市商品管理系统,主要由五大模块组成,即商品信息管理模块,人事管理模块,销售管理模块,进货管理模块,库存管理模块,此系统也不例外,主要有此五大模块组成。图4-1系统功能结构图。

图4-1 系统功能结构图

4.2 系统功能设计

系统功能设计是使整个系统能基本实现超市的进、销、存等管理功能,能让超市管理者更直观的了解超市的经营状况,以做出相应的经营决策。管理信息系统(MIS)就是要对这些资源建立正确的数据库,并进行信息的收集、传送、存储、编制成各种凭证、报表、台帐、图形等信息,同时对这些信息进行维护,通过实测超市的各种运行情况,并利用过去的历史数据预测未来的发展,从超市全局的角度出发进行决策,利用信息控制超市的行为,附注超市完成其目标。

本系统主要包括四大模块,分别是人事管理模块,销售管理模块,进货管理模块,库存管理模块。每个模块的功能如下:

页脚内容5

沈 阳 工 程 学 院

1. 商品管理模块功能:

(1)实现商品信息的查询;

(2)实现职工信息的更新,包括增加、删除、修改功能;

2. 人事管理模块功能:

(1)实现职工信息的查询;

(2)实现职工信息的更新,包括增加、删除、修改功能;

(3)实现供货商信息的查询;

(4)实现供货商信息的更新,包括增加、删除、修改功能。

3. 销售管理模块功能:

(1)实现前台商品的销售;

(2)将商品的销售信息与数据库联系起来。

4. 进货管理模块功能:

(1)实现进货信息的查询;

(2)实现进货信息的更新,包括增加、删除、修改功能。

5. 库存管理模块功能:

(3)实现库存信息的查询;

页脚内容6

沈 阳 工 程 学 院

页脚内容7

沈 阳 工 程 学 院

第5章 系统数据库设计

5.1超市管理系统数据库E-R模型

通过对超市管理系统分析,得出系统的E-R图。图5-1 数据库E-R模型图。

图5-1 数据库E-R模型图

5.2数据库表设计

5.2.1 职工信息表

职工信息表(StaffBill)用于存储职工信息,职工编号为主键是唯一标识。表中各字段功能定义如表5-1所示。

页脚内容8

沈 阳 工 程 学 院

中文字段名

英文字段名

字段类型

长度

主键/外键

字段值约束

职工编号

staffID

char

6

P

NOT NULL

姓名

name

nvarchar

8

NOT NULL

性别

sex

nchar

2

NOT NULL

类别

kind

nvarchar

10

NULL

身份证号

idCard

varchar

18

NOT NULL

备注

others

ntext

50

NULL

表5-1职工信息表(StaffBill)

5.2.2 用户登录表

用户登录表(Users_Info)用于存储用户的基本登录信息。表中各字段功能定义如表5-2所示。

中文字段名

英文字段字段类型

长键

主键/外束

字段值约页脚内容9

沈 阳 工 程 学 院

帐号

loginID

char

6

P/F

NOT NULL

密码

passWord

char

6

NOT NULL

表5-2 用户信息表(Users_Info)

5.2.3 商品信息表

商品信息表(Goods_Info)用于存储商品的信息。表中各字段功能定义如表5-3所示。

中文字段名

英文字段字段类型

长键

主键/外束

字段值约商品编号

merchID

char

6

P

NOT NULL

供货商号

profferID

char

6

F

NOT NULL

名称

fullName

nvarchar

80

NOT NULL

类别

kind

nvarchar

8

NULL

单价

unitCost

money

4

NOT NULL

备注

others

ntext

50

NULL

页脚内容10

沈 阳 工 程 学 院

表5-3商品信息表(Goods_Info)

5.2.4 供货商信息表

供货商信息表(Sup_Info)用于存储供货商的信息。表中各字段功能定义如表5-4所示。

中文字段名

英文字段字段类型

长键

主键/外束

字段值约供货商号

SupplierID

char

6

P

NOT NULL

名称

Name

nvarchar

50

NOT NULL

联系人

son

contactPernvarchar

8

NOT NULL

联系电话

phone

varchar

12

NOT NULL

联系地址

address

nvarchar

50

NOT NULL

备注

others

ntext

50

NULL

表5-4 供货商信息表(Sup_Info)

5.2.5 进货信息表

进货信息表(Buy)存储进货信息。表中各字段功能定义如表5-5所示。

页脚内容11

沈 阳 工 程 学 院

中文字段名

英文字段字段类型

长键

主键/外束

字段值约进货单号

BuyID

char

6

P

NOT NULL

商品编号

GoodsID

char

6

P/F

NOT NULL

供货商号

SupplierID

char

6

F

NOT NULL

进货价

Price

money

4

NOT NULL

数量

Amount

int

4

NOT NULL

金额

Sum

money

4

NOT NULL

进货日期

Date

datetime

8

NOT NULL

备注

Remark

ntext

50

NULL

表5-5进货信息表(Buy)

5.2.6 销售信息表

销售信息表(Sell)用于存储销售信息。表中各字段功能定义如表5-6所示。

页脚内容12

沈 阳 工 程 学 院

中文字段名

英文字段字段类型

长键

主键/外束

字段值约销售单号

SeelID

char

6

P

NOT NULL

商品编号

GoodsID

char

6

P/F

NOT NULL

销售数量

Amount

int

4

NOT NULL

销售日期

Date

datetime

8

NOT NULL

表5-6销售信息表(Sell)

5.2.7 库存信息表

库存信息表(Stock)存储库存信息。表中各字段定义如表5-7所示。

中文字段名

英文字段字段类型

长键

主键/外束

字段值约商品编号

GoodsID

char

6

P/F

NOT NULL

库存数量

Amount

int

4

NOT NULL

表5-7 库存信息表(Stock)

页脚内容13

沈 阳 工 程 学 院

5.3 创建数据库

(1)使用T—SQL语句创建超市商品管理系统数据库。

CREATE DATABASE db_SMMS ON PRIMARY

( NAME = N'db_SMMS', FILENAME = F:SMMSSMMSDataBase db_' , SIZE = 3072KB , FILEGROWTH =

1024KB )

LOG ON

( NAME = N'db_SMMS_log', FILENAME = N'F:SMMSSMMSDataBase db_SMMS_' , SIZE = 1024KB ,

FILEGROWTH = 10%)

(2)使用T—SQL语句创建库存表。

CREATE TABLE Stock(

GoodsID varchar (10) COLLATE Chinese_PRC_CI_AS NOT NULL,

Amount int NOT NULL,

PRIMARY KEY (StockID),

FOREIGN KEY (GoodsID) REFERENCES tb_Goods(GoodsID));

(3)使用T—SQL语句创建库存视图。

create view v_StockS

AS

页脚内容14

沈 阳 工 程 学 院

SELECT tb_D, tb_ame, tb_, tb_

FROM

tb_Stock INNER JOIN tb_Goods ON tb_Stock.G

页脚内容15

沈 阳 工 程 学 院

第6章 系统功能模块实现

6.1 系统登录模块

用户登录模块在本系统的首页。用户输入用户名和密码后,系统进行验证,验证通过进入程序的主界面。界面如图6-1所示。

图6-1 用户登录界面

主要实现代码如下:

public bool Veri(string tb_table, string Id, string Pwd)

{

s MyClass = new s();

bool jud = false;

if (Id != "" && Pwd != "")

{

SqlDataReader temDR = ("select * from " +

页脚内容16

沈 阳 工 程 学 院

tb_table + " where UserName='" + () + "'

and Pass='" + () + "'");

jud = ();

if (jud)

{

_Name = ();

_ID = ing(0);

_();

_e();

}

else

{

("用户名或密码错误!", "提示",

, ation);

}

_close();

}

页脚内容17

沈 阳 工 程 学 院

else

("请将登录信息添写完整");

return jud;

}

6.2 商品信息管理模块

此模块进行对商品信息的录入,能够对商品进行合理的管理,界面如图6-2所示。

图6-2 商品信息管理界面

主要实现代码如下:

private void btnAdd_Click(object sender, EventArgs e)

页脚内容18

沈 阳 工 程 学 院

{

bool t = false;

string txt;

string RecID;

string TypeID;

if ( == "")

{

("请输入商品名称!");

();

}

else if ( == "")

{

("请输入商品单价!");

();

}

else if ( == "")

页脚内容19

沈 阳 工 程 学 院

{

("请选择商品类型!");

();

}

else if ( == "")

{

("请输入保质期");

();

}

else

{

txt = ();

SqlDataReader temDR = ("select * from tb_Goods where GoodsName

='" + txt + "'");

t = ();

if (t)

{

页脚内容20

沈 阳 工 程 学 院

("此商品名称已存在!");

= "";

();

}

else

{

string Find_SQL2;

string RecID2;

try

{

TypeID = My_[0].Rows[edIndex][0].ToString();

RecID = ocoding("tb_Goods", "GoodsID");//获取编号

RecID2 = ocoding("tb_Stock", "StockID");//获取编号

Find_SQL = "insert into tb_Goods(GoodsID,GoodsName,TypeID,Remark,Price,Keep)

values ('" + RecID

+ "','" + + "','" + TypeID + "','" + + "'," +

+ "," + + ")";

Find_SQL2 = "insert into tb_Stock(StockId,GoodsID,Amount) values ('" + RecID2 +

页脚内容21

沈 阳 工 程 学 院

"','" + RecID + "',0)";

com(Find_SQL);

com(Find_SQL2);//向库存添加信息

("添加成功!");

ListViewItem l = new ListViewItem();

= ;

();

();

();

();

(l);

btnCancle_Click(sender, e);

}

catch (Exception ec)

{

(e);

("添加失败");

页脚内容22

沈 阳 工 程 学 院

}

}

}

}

6.3 职工信息管理模块

此模块有对职工的添加,修改,删除等功能,能够对用户进行合理的管理,界面如图6-2所示。

图6-3 职工信息管理界面

主要实现代码如下:

private void btnSave_Click(object sender, EventArgs e)

{

string RecID;

if ( == "")

页脚内容23

沈 阳 工 程 学 院

{

("请添加职工姓名!");

();

}

else

{

if (Jud == 1)

{

RecID = ocoding("tb_Worker", "WorkerID");//获取编号

Find_SQL = "insert into tb_Worker(WorkerID,WorkerName,Remark)

values('"+RecID+"','"++"','"++"')";

com(Find_SQL);

("添加成功!");

InfLoad();

WinstateT();

}

if (Jud == 2)

页脚内容24

沈 阳 工 程 学 院

{

Find_SQL ="update tb_Worker set

WorkerName='"++"',Remark='"++"' where WorkerID='"++"'";

com(Find_SQL);

("修改成功!");

InfLoad();

WinstateT();

}

}

}

6.4 供货商信息管理模块

此模块有对供货商的添加,修改,删除等功能,能够对供货商进行合理的管理。界面如图6-3所示。

页脚内容25

沈 阳 工 程 学 院

图6-4 供货商管理界面

主要实现代码如下:

private void btnSave_Click(object sender, EventArgs e)

{

bool t = false;

string txt;

string RecID;

if ( == "")

{

("请输入供货商名称!");

();

页脚内容26

沈 阳 工 程 学 院

}

else

{

if (Jud == 1)

{

txt = ();

SqlDataReader temDR = ("select * from tb_Supplier where

SupplierName ='" + txt + "'");

t = ();

if (t)

{

("此供货商名称已存在!");

= "";

();

}

else

{

页脚内容27

沈 阳 工 程 学 院

RecID = ocoding("tb_Supplier", "SupplierID");//获取编号

Find_SQL = "insert into tb_supplier(SupplierID,SupplierName,Tel,Address,Remark)

values ('" + RecID

+ "','" + + "','" + + "','" + + "','" +

+ "')";

com(Find_SQL);

("添加成功!");

InfLoad();

WinstateT();

}

}

if (Jud == 2)

{

txt = ();

Find_SQL = "select * from tb_Supplier where SupplierName ='" + txt + "'and

SupplierID!='"+ ID+"'";

SqlDataReader temDR = (Find_SQL);

t = ();

页脚内容28

沈 阳 工 程 学 院

if (t)

{

("此供货商名称已存在!");

= "";

();

}

else

{

Find_SQL = "update tb_Supplier set SupplierName='" + + "',Tel='" +

+

"',Address='" + + "',Remark='" + +

"'where SupplierID='"+ID+"'";

com(Find_SQL);

("修改成功!");

InfLoad();

WinstateT();

}

}

页脚内容29

沈 阳 工 程 学 院

}

6.5 添加销售信息模块

销售员将销售信息录入方便了销售工作,提高了工作效率。界面如图6-4所示。

图6-5 添加销售信息界面

主要实现代码如下:

private void button2_Click(object sender, EventArgs e)

{

if (().Length != 0)

{

string s1;

string s2;

页脚内容30

沈 阳 工 程 学 院

string s3;

string s4;

float zl;

float PayS;

if ( == "")

{

PayS = 0;

}

else

{

PayS = ();

}

zl = PayS - TotalPrice;

= ng();

= ng();

= ng();

s1 = "商品数量" + Amount1+ " 件" + "n" + "n";

页脚内容31

沈 阳 工 程 学 院

s2 = "实付款 " + PayS + " 元" + "n" + "n";

s3 = "应付款 " + ng() + " 元" + "n" + "n";

s4 = "找零 " + ng() + " 元" ;

(s1+s2+s3+s4, "系统提示");

= "";

= "";

= "";

= "";

= "";

= "";

TotalPrice = 0;

Amount1 = 0;

();

}

else

{

("请购买商品!");

页脚内容32

沈 阳 工 程 学 院

}

}

6.6 添加进货信息模块

录入进货信息加强对商品的管理,使商品信息更为详细,方便了对商品的管理。界面如图6-5所示。

图6-6 用添加进货信息界面

主要实现代码如下:

private void btnAdd_Click(object sender, EventArgs e)

{

bool t = false;

string txt;

页脚内容33

沈 阳 工 程 学 院

string RecID;

if ( == "")

{

("请输入商品编号!");

();

}

else if ( == "")

{

("请输入商品单价!");

();

}

else if ( == "")

{

("请输入商品数量!");

();

}

页脚内容34

沈 阳 工 程 学 院

else if(==""||==""||=="")

{

("请将生产日期填写完整!");

}

else if ( == "" || == "" || == "")

{

("请将进货日期填写完整");

}

else

{

txt =();

SqlDataReader temDR = ("select * from tb_Goods where GoodsID

='" + txt + "'");

t = ();

if (!t)

{

("此商品不存在!");

页脚内容35

沈 阳 工 程 学 院

= "";

();

}

else

{

string Find_SQL2;

string RecID2;

try

{

string GoodsID;

string SupplierID;

string datep;

string dateb;

datep = + "/" + + "/" + ;

dateb = + "/" + + "/" +;

GoodsID = ;

SupplierID = My_[0].Rows[edIndex][0].ToString();

页脚内容36

沈 阳 工 程 学 院

RecID = ocoding("tb_Buy", "BuyID");//获取编号

RecID2 = ocoding("tb_Stock", "StockID");//获取编号

Find_SQL = "insert into

tb_Buy(BuyID,GoodsID,EmployeeID,Price,Amount,Datep,Dateb,SupplierID,Remark) values ('" + RecID

+ "','" + + "','" + _Name +

"',"+ +","+ +

",'"+datep+"','"+dateb+"','"+SupplierID+"','"++"')";

Find_SQL2 = "Update tb_Stock set Amount = Amount +" ++"where

GoodSID='"+GoodsID+"'";

com(Find_SQL);

com(Find_SQL2);//向库存添加信息

("添加成功!");

ListViewItem l = new ListViewItem();

=RecID;

();

();

();

();

页脚内容37

沈 阳 工 程 学 院

();

(l);

btnCancle_Click(sender, e);

}

catch (Exception ec)

{

(e);

("添加失败");

}

}

}

}

6.7 库存信息管理模块

库存信息管理能够使用户更为了解商品的库存情况,从而有利于商品的进货和销售的管理。界面如图6-6所示。

页脚内容38

沈 阳 工 程 学 院

图6-7 库存信息管理界面

主要实现代码如下:

private void btnSearch_Click(object sender, EventArgs e)

{

string con;

con = (ls, Link);

if (con == "")

{

("请输入查询信息");

}

else

{

页脚内容39

沈 阳 工 程 学 院

Find_SQL = "select * from StockS2" + con;

MyDS_Grid = aSet(Find_SQL, "tb_Common");

urce = MyDS_[0];

lor = Border;//设置基数行的颜色

s[0].HeaderText = "商品名称";

s[1].HeaderText = "商品单价";

s[2].HeaderText = "保质期";

s[3].HeaderText = "库存数量";

s[0].Width = 150;

s[1].Width = 150;

s[2].Width = 150;

s[3].Width = 150;

}

}

6.8权限设置管理模块

对不同的用户分不同的权限,有利于系统的管理,只有超级管理员才具有分配权限的功能。界面如图6-7所示。

页脚内容40

沈 阳 工 程 学 院

图6-8 权限设置界面

主要实现代码如下:

private void btnSave_Click(object sender, EventArgs e)

{

com("Delete tb_UserPerm where UserID='" +

() + "'");

foreach(Control c in ls )

{

if (c is CheckBox)//只遍历CheckBox控{

if (((CheckBox)c).Checked == true){

RecID = ocoding("tb_UserPerm", "ID");

com("insert into tb_UserPerm (ID,UserID,PermName) values('" +

页脚内容41

沈 阳 工 程 学 院

RecID + "','" + () + "','" + + "')");

//("jinjian");}

// ();

}

}

("设置成功"); }

页脚内容42

沈 阳 工 程 学 院

第7章 关键技术实现方法

7.1 身份验证

调用此方法来进行对用户信息的合法性验证,有利于提高系统的安全性。

主要实现代码如下:

public bool Veri(string tb_table, string Id, string Pwd)

{

s MyClass = new s();

bool jud = false;

if (Id != "" && Pwd != "")

{

SqlDataReader temDR = ("select * from " +

tb_table + " where UserName='" + () + "'

and Pass='" + () + "'");

jud = ();

if (jud)

{

_Name = ();

页脚内容43

沈 阳 工 程 学 院

_ID = ing(0);

_();

_e();

}

else

{

("用户名或密码错误!", "提示",

, ation);

}

_close();

}

else

("请将登录信息添写完整");

return jud;

}

页脚内容44

沈 阳 工 程 学 院

结 论

经过半个月的努力,报告基本完成。从最初的茫然,到慢慢的进入状态,再到对思路逐渐的清晰,整个写作过程难以用语言来表达。历经了几个月的奋战,紧张而又充实的课程设计终于落下了帷幕。回想这段日子的经历和感受,我感慨万千,在这次课程设计的过程中,我拥有了无数难忘的回忆和收获。

我不会忘记这难忘的半个月的时间。课程报告的制作给了我难忘的回忆。在我徜徉书海查找资料的日子里,面对无数书本的罗列,最难忘的是每次找到资料时的激动和兴奋;理系统里,记忆最深的是每一步小小思路实现时那幸福的心情;为了报告我曾赶稿到深夜,但看着亲手设计超市商品管亲手打出的一字一句,心里满满的只有喜悦毫无疲惫。这段旅程看似荆棘密布,实则蕴藏着无尽的宝藏。我从资料的收集中,掌握了和巩固很多专业知识,让我对我所学过的知识有所巩固和提高,并且让我超市的发展及软件设计的最新发展技术有所了解。在整个过程中,我学到了新知识,增长了见识。在今后的日子里,我仍然要不断地充实自己,争取在所学领域有所作为。页脚内容45

沈 阳 工 程 学 院

参考文献

[1方美琪 陈禹, 软件开发工具 经济科学出版社 2008年

[2]袁然,王诚梅,SQL Server 2005数据库简明教程 电子工业出版 2006 年

页脚内容46


本文标签: 系统 信息 超市 管理 模块