文档库 最新最全的文档下载
当前位置:文档库 › 软件专业毕业论文

软件专业毕业论文

摘要

随着现代工业的发展,计算机信息企业管理系统越来越受到企业的重视,本系统是根据企业的特点,集进、销、存于一体的进销存管理软件。在设计过程中最大限度的满足用户的要求,因此,该系统具有较强的实用性。本系统界面友好,操作简单,可维护性强,功能完备。本系统介绍了进销存管理信息系统开发的全过程,主要从管理思想、系统分析说明、系统使用说明、技巧与体会等方面对管理系统加以论述。前言部分指明了选题背景和开题意义;而后有详细介绍了系统的分析、系统的开发与设计说明等内容;最后给出了系统的心得体会。本系统开发以SQL Server 2005为后台数据库的进销存管理系统。

关键词:.NET Framework 2.0; C/S; 进销存

Abstract

With the development of modern industry,the information management system of the computer is being paid attention to by enterprises,This system is the administrant software which according to the characteristics of the enterprise gather stock,sale,merchandise in an organic whole.In the course of designing, the maximum meets users demand, so it has stronger practicability is strong and the function is complete. The thesis introduced the whole course that the management information system develops,manily from manage thought、elucidation of system analysis、systematic specification 、systematic operation instructions、skill、respect of realizing etc.Preface part pointed out the background

of the selected title and turned on the question meaning; Then introduced such contents as systematic analysis,systematic development and specification,etc. in detail:Finally,provide the systematic operation instructions and gains in depth of comprehension designed systematically. Key word: .net Framework 2.0; C/S;Sql Server 2005

目录

1绪论 (1)

2系统概述 (2)

2.1系统需求分析 (2)

2.1.1 系统需求概述 (2)

2.2系统功能需求 (2)

2.2.1 登录管理模块 (2)

2.2.2 资料管理模块 (2)

2.2.3 进货管理模块 (2)

2.2.4 销售管理模块 (3)

2.2.4 报表管理模块 (3)

2.2.5 权限管理模块 (3)

2.3用户角色分析 (3)

3 系统总体设计 (4)

3.1系统流程分析 (4)

3.2操作流程图分析 (5)

3.3软件模块结构设计 (5)

3.3.1 系统方案确定 (5)

3.3.2 软件结构设计 (5)

3.4数据库的设计 (7)

3.4.1概念结构设计 (7)

3.4.2表结构设计 (9)

3.4.3触发器设计 (13)

3.4.4存储过程设计 (13)

4 系统的实现 (15)

4.1系统的登录界面 (15)

4.2系统主界面 (16)

4.3货物信息界面 (17)

4.4供应商信息维护界面 (19)

4.5客户信息维护界面 (21)

4.6进货入库界面 (23)

4.7入库商品查询界面 (25)

4.8销售出库界面 (27)

4.9销售出库商品查询界面 (29)

4.10红铭退货商品查询界面 (31)

4.11客户退货商品查询界面 (33)

4.12商品信息水晶报表打印界面 (35)

4.13供应商水晶报表打印界面 (37)

总结 (38)

致谢 (38)

参考文献 (39)

1绪论

中小企业在我国经济发展中具有重要地位,目前我国的中小企业数量较多、地区分布广泛、行业分布跨度大,随着全球经济一体化的发展及中国加入WTO,中小企业将面临外资企业的和国外产品与服务的严峻挑战,比较而言,外资企业具有更为雄厚的资金实力、丰富的管理经验和先进的技术手段,因此,如果我国的中小企业不借助先进的管理思想转变经营理念、使用信息化手段提高企业的管理水平和工作效率,将很难在今后的国际竞争中取胜利。企业管理在很多方面、很大程度上都必须借助信息化的工具来完成,采用电脑管理进货,库存和销售等诸多环节也已成为必然趋势。为了适应这种形式,中小企业不仅要有一定的硬件的基础,还要有一套完整的进销存管理系统。而要实现这一功能,就要求中小企业管理者配备一套高效的进销存管理系统,以方便对信息资源进行高效的管理。

通过设计开发,本系统分为普通用户和超级用户,实现了普通操作员能根据超级用户(管理员)分配的权限进行进货入库,销售出库等相应的操作。超级用户能进行所有的操作,完善商品信息,添加修改用户权限等。

经过分析,我们使用Microsoft公司的Visual Studio 2005开发工具,Visual studio 2005是企业级开发管理工具,也是Visual Studio产品发布10年来最具有革命意义的一次升级。它的优点不胜枚举,其中最突出的三点是商务智能(BI )、可编程性和安全性。非常适合进销存系统的开发。

2系统概述

2.1系统需求分析

2.1.1 系统需求概述

进销存管理系统目前应用越来越普遍,几乎每个企业都具有相应的进销存管理系统,该项目开发的软件为红铭电脑销售公司的进销存管理系统软件,是鉴于目前公司的业务不断扩大,公司先前的纯文本式管理以不能满足公司的日常事物管理,为提高公司的运转效率,公司对业务和员工管理的自动化与准确化的要求日益强烈背景下构思出来的。

2.2 系统功能需求

2.2.1 登录管理模块

此模块是系统的用户管理模块,本模块分两种身份登录普通用户和超级用户,用户不必选择身份,系统会自动识别登陆身份。输入用户名和密码,验证正确后方可进入系统。

2.2.2资料管理模块

资料管理模块主要用于对公司人员、商品的基本信息、供货商的基本信息、客户的基本信息等进行维护。

2.2.3进货管理模块

该模块主要用于实现商品进货数据录入、退货数据录入和相应的查询。

2.2.4销售管理模块

该模块主要是用于实现商品的销售数据录入、客户退货数据录入和销售信息查询。

2.2.4报表管理模块

报表模块主要是用于客户信息打印,商品信息打印,供应商信息打印等。

2.2.5权限管理模块

该模块用于实现系统用户设置、操作权限设置、修改密码等。

2.3 用户角色分析

本系统主要面向两类用户:普通用户和超级用户,不同的用户对系统的需求则不同

如下:

(1)普通用户对功能的需求

普通用户登录后可对系统进行进货入库,入库货物查询,销售出库出库货物查询操作等基本操作。

(2)超级用户对系统的需求

超级用户登录后可以对系统进行所有的操作,包括商品信息维护,公司人员管理,销售入库,销售出库,出库货物查询,权限设置等

3 系统总体设计

3.1系统流程分析

为了更清楚地说明系统框架,以便更好地说明设计该系统的解决方案,我们给出了系统流程图,如图3.1。系统流程图展示了该系统所有功能模块之间的逻辑关系,其中的各个功能模块基本上都代表了一个或多个独立的页面,并将在下面的的系统设计阶段得到体现。

3.1系统流程图

系统用户

是否登录

分配权限

理员用户权限

分配

普通用户操作权限 操作模块中的数据

操作所有模块

资料管理 进货管理 销售管理 报表管理 报表管理 帮助

由流程图可以看出,使用者首先通过登录管理模块进行身份验证,验证通过后,系统会根据该使用者的账户信息进行授权。如果是超级用户,则为其提供全部模块的使用权限,如果是普通用户,则为其开放对相应模块的权限。

3.2操作流程图分析

用户进入系统首先打开起始页登陆界面。输入用户名和密码即可进入系统界面,超级用户,通过导航可以操作其他功能。使用普通用户身份登录输入用户名和密码进入系统界面,只能操作超级用户为其分配的模块。

3.3软件模块结构设计

3.3.1 系统方案确定

通过对系统的调研与分析,系统主要完成的功能有:资料管理、进货管理、销售管理、报表管理、权限管理、系统帮助。

3.3.2软件结构设计

本系统是执行时,先根据不同的操作人员的需要来进行相应的模块,然后可以输入数据或者进行其它的查询和浏览等操作。总体来说,本系统属于一个事务型管理系统。系统结构图3.3.2所示

红铭进销存管理系统

资料管理

人员管理商

退

退

退

退

3.3.2系统结构图

3.4数据库的设计 3.

4.1概念结构设计

概念结构设计的重点在于信息结构的设计,它是整个数据库系统设计的关键。它独立于逻辑结构设计和DBMS 。现实世界中一组具有某些共同特性和行为的对象就可以抽象为一个实体。对象类型的组成成分可以抽象为实体的属性。为此本系统从业务逻辑数据流中抽象出各个实体:普通用户、超级用户、客户、入库货物等。并根据系统实际确定各实体之间的关系。

红铭进销存管理系统中用户与货物的E-R 图

图3.4.1 E-R 图

普通用户与货物这两个实体是多对多联系;一位普通用户要添加多种货物,一种货物可以由多位普通用户可以添加。 超级用户与货物的E-R 图

普通用户

查询

货物

添加

货物

图3.4.2 E-R 图

数据流层图

返回 数据 信息 信息

返回信息 数据信息

修改命令 返 修 返回信息

回 改 信 命 息 令

图3.4.3超级用户管理货物DFD 图

超级用户

查询

货物 添加

货物

删除

货物

超级用户(管理员) 进货入库

销售出库 删除入库货物

删除出库货物

3.4.2表结构设计

在需求分析,系统分析的工作完成后,接下来就是数据库的设计了。数据库设计是整个数据库应用系统开发过程中一个重要环节,在设计数据库表结构之前,首先要创建一个数据库,数据库采用Microsoft推出的SQL 2005的数据库。表3.9这个表是用来记录供货商信息的。

表3.9供货商清单

编号字段名称数据结构是否为空关键字

1 供应商号 Char(10) 否是

2 拼音编码Char(10) 是否

3 名称 Varchar(20) 否否

4 地址 Varchar(20) 是否

5 邮编Char(4) 是否

6 区号 Char(4) 是否

7 类型 Char(10) 是否

8 电话 Varchar(20) 是否

9 传真 Varchar(12) 是否

表3.10表是用来记录以入库货物的信息的

表3.10进货入库

编号字段名称数据结构是否为空关键字

1 订单号Char(14) 否是

2 供货商号Char(10) 是否

3 业务员Char(10) 是否

4 拼音编码Char(10) 是否

5 货物名称Char(10) 是否

6 货物数量int 是否

7 货物单位Char(10) 是否

8 进价Money 是否

9 进货日期Datetime 是否

10 税额Numeric(28,6) 是否

表3.11客户清单是用来记录客户信息的。

表3.11客户清单

编号字段名数据类型是否为空关键字

1 客户编号Char(10) 否是

2 拼音编码Char(10) 是否

3 名称Varchar(20) 是否

4 地址Varchar(20) 是否

5 邮编Char(6) 是否

6 区号Char(6) 是否

7 地区Char(6) 是否

8 电话Varchar(12) 是否

9 传真Varchar(12) 是否

10 业务员Char(10) 是否

表3.12人员管理是用来管理公司职员的。

表3.12人员管理

编号字段名数据类型是否为空关键字

1 姓名Char(10) 否是

2 工作类型Char(10) 是否

3 职位Char(10) 是否

4 文化程度Char(10) 是否

5 工作经验Char(10 是否

6 单位Char(20) 是否

表3.13商品清单是用来记录商品信息的。

表3.13商品清单

编号字段名数据类型是否为空关键字

1 货号Char(14) 否否

2 拼音编码Char(10) 是否

3 品名Char(15) 否是

4 单位Char(6) 是否

5 产地Varchar(50) 是否

6 类别Char(20) 是否

7 进货价Money 是否

8 销售价Money 是否

9 最低销价Money 是否

10 税额float 是否

11 剩余数量int 是否

表3.14退货出库是用来记录以退货物的信息的。

表3.14退货出库

编号字段名数据类型是否为空关键字

1 订单号Char(14) 否是

2 供货商号Char(10) 是否

3 业务员Char(10) 是否

4 拼音编码Char(10) 是否

5 货物名称Char(10 是否

5 退货数量Int 是否

6 退货单位Char(10) 是否

7 退货价格Money 是否

8 退货日期datetime 是否表3.15退货入库是用来记录客户退货入库信息的。

编号字段名数据类型是否为空关键字

1 订单号Char(14) 否是

2 客户编号Char(14) 是否

3 退货产品Char(10) 是否

4 退货数量Int 是否

5 货物单位Char(10) 是否

6 退货日期Datetime 是否

7 业务员Char(10) 是否

8 退货价格money 是否

表3.15退货入库

表3.16销售出库是用来记录以买出货物信息的。

表3.16销售出库

编号字段名数据类型是否为空关键字

1 订单号Char(14) 否是

2 客户编号Char(10) 是否

3 销售产品Char(10) 是否

4 销售数量Int 是否

5 销售日期Datetime 是否

6 业务员Char(10) 是否

7 销售价格Money 是否

8 最低价格Money 是否

9 税额Char(10) 是否

10 货物单位Char(10) 是否

表3.17用户清单是用来记录用户信息的。

表3.17用户清单

编号字段名字段类型是否为空关键字

1 用户名(主键) Char(10) 否是

2 密码Char(10) 否否

3 说明Char(8) 是否

3.4.3触发器设计

为了使系统的使用尽量简单,减少用户的输入工作量,同时提高系统的工作效率。根据实际需求设计如下触发器:

1.触发器Buy , Sell 用途:在卖出和进货时,自动更改商品的数量。

Create trigger [buy]

on [dbo].[进货入库] for insert,update

as

declare @num int

select @num=货物数量from inserted

update商品清单

set剩余数量=((select剩余数量from商品清单where品名=(select货物名称from inserted))+@num)

where品名=(select货物名称from inserted)

Create trigger [sell]

on [dbo].[销售出库] for insert,update

as

declare @num int

select @num=销售数量from inserted

update商品清单

set剩余数量=((select剩余数量from商品清单where品名=(select销售产品from

inserted))-@num)

where品名=(select销售产品from inserted)

3.4.4存储过程设计

存储过程提供了数据驱动应用程序中的许多优点,使用它数据操作可以封装在单个命令中,为获取最佳性能而进行优化并通过附加安全性得到增强。根据实际需求设计如下存储过程:

1.用途:断开数据库的连接。

Create proc p_killspid

@dbname varchar(200)--要关闭进程的数据库名

as

declare @sql nvarchar(500)

declare @spid nvarchar(20)

declare #tb cursor for

select spid=cast(spid as varchar(20))from

master..sysprocesses where dbid=db_id(@dbname)

open #tb

fetch next from #tb into @spid

while@@fetch_status=0

begin

exec('kill '+@spid)

fetch next from #tb into @spid

end

close #tb

deallocate #tb

go

2.用途:备份数据库。

Create proc rstsky

@pl1 int

as

if @pl1 = 1

begin

RESTORE DATABASE [sky] FROM DISK= N'C:\backUp\sky.bak' end

else if @pl1 =2

begin

RESTORE DATABASE [sky] FROM DISK= N'D:\backUp\sky.bak' end

else if @pl1 =3

begin

RESTORE DATABASE [sky] FROM DISK= N'E:\backUp\sky.bak' end

else

RESTORE DATABASE [sky] FROM DISK= N'F:\backUp\sky.bak'

4 系统的实现

经过前面的精心准备,现在我们终于可以进行系统的实现阶段了,本节我

们将首先进行系统的界面设计,下面就将这些页面分别进行介绍。

4.1 系统的登录界面

1) 用户登录界面

图4.1 系统登录主页面

代码如下:

public static DataTable Description;

int i =0; //用于记载登陆的次数

private void button1_Click(object sender, EventArgs e)

{

if (i<2)

{

Program.mycon = new SqlConnection("Data Source=.; Initial Catalog=Sky;

Integrated Security=True");

Program.mycon.Open();

Program.mycommand = new SqlCommand("select * from 用户清单 where 用户名='" +

this.textBox1.Text + "' and 密码='"+ this.textBox2.Text + "'",Program.mycon);

SqlDataReader myread =Program.mycommand.ExecuteReader();

myread.Read();

if (myread.HasRows)

{

https://www.wendangku.net/doc/7f5348878.html,erName = this.textBox1.Text;

https://www.wendangku.net/doc/7f5348878.html,erPwd = this.textBox2.Text; //记载当前用户名和密码

Description = Program.linkTb("select 说明 from 用户清单 where 用户名 ='"

+ this.textBox1.Text + "'", "用户清单");

https://www.wendangku.net/doc/7f5348878.html,erDes = Description.Rows[0][0].ToString(); //用于记载是否

是超级用户

Mainform a = new Mainform();

this.Hide();

a.Show();

}

else

{ 、

i+=1;

MessageBox.Show("用户名或密码错误,还有" +(3-i)+ "次机会", "信息提示",

MessageBoxButtons.OK, MessageBoxIcon.Question);

}......

4.2 系统主界面

图4.2 系统主页面

代码如下:

private void Mainform_Load(object sender, EventArgs e)

{

try

{

string week = "";

DateTime Date = System.DateTime.Now;

week = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetDayName(Co

nvert.ToDateTime(Date).DayOfWeek);

this.notifyIcon1.ShowBalloonTip(2, "HM进销存管理系统", "今天是:" + System.DateTime.Now.ToString("D") + " " + week + " 欢迎您的使用",

https://www.wendangku.net/doc/7f5348878.html,);

string txt = "select * from 用户权限表 where 用户名='" + https://www.wendangku.net/doc/7f5348878.html,erName + "'"; //判断用户的权限

string table = "用户权限表";

myTable = Program.linkTb(txt, table);

}......

4.3货物信息界面

图4.3 货物信息主页面

代码如下:

public Goods()

{

InitializeComponent();

}

private void Fill1()

{

this.textBox11.DataBindings.Add("Text", dataGridView1.DataSource, "货号");

this.textBox12.DataBindings.Add("Text", dataGridView1.DataSource, "拼音编码");

this.textBox13.DataBindings.Add("Text", dataGridView1.DataSource, "品名");

this.textBox14.DataBindings.Add("Text", dataGridView1.DataSource, "单位");

this.textBox15.DataBindings.Add("Text", dataGridView1.DataSource, "产地");

相关文档