图书营销管理报告.docx
《图书营销管理报告.docx》由会员分享,可在线阅读,更多相关《图书营销管理报告.docx(47页珍藏版)》请在冰点文库上搜索。
第一章开发背景及意义
随着现代图书流通市场竞争的愈演愈烈,如何以一种新的管理方式提高图书流通信息的反馈速度,降低库存占用,加快资金周转,提高工作效率,已经成为图书企业提高竞争的关键。
信息技术的发展给图书企业的管理带了新的力量,通过图书管理系统对图书企业经营运作的全程管理,不仅使企业拜托了人工管理带来的一系列的问题,更重要的是提高了工作效率,进而提高了企业的经济效益。
通过管理系统对企业的管理,为企业的发展提供了大量的、关键性的数据,企业根据这些数据,及时作出决策,进行调整,使之能够更好的把握市场的销售规律,适应市场变化,在激烈的行业竞争中取得一席之地。
第二章需求分析
2.1、功能分析:
主要利用计算机系统实现图书的信息化管理。
图书管理涉及基本信息,库存信息,销售信息等多种数据管理。
①在基本信息管理中需要实现添加、修改和删除,包括操作员信息管理、图书信息管理、图书种类信息管理、供应商信息管理、仓库信息管理、柜台信息管理。
②在库存信息管理中需要实现添加,包括图书的入库、入库退货、库存调拨管理。
③在图书价格信息管理中需要实现添加和删除,包括图书定价管理、图书调价管理。
④在图书销售信息管理中主要实现添加和删除,包括图书销售、销售退货管理。
⑤在查询信息管理中主要实现入库查询管理、入库退货查询管理、销售查询管理、销售退货查询管理。
2.2、工作流图:
图书管理系统的结构图如图所示:
图书管理系统的业务流程图如图所示
2.3、数据流图:
在该系统中
主要的数据记录有:
图书、仓库、入库、入库退货、销售、销售退货、调拨、定价等信息;
主要的数据流有:
图书信息数据流、入库信息数据流、入库退货数据流、销售数据流、销售退货信息流、调拨信息流、仓库信息流;
主要的数据处理有:
对图书入库、入库退货、入库退货结账、入库结账、销售、销售结账、销售退货、销售退货结账、调拨信息的处理。
由该分析得数据流图如下:
2.4、数据字典:
重要数据库及其简要描述:
1、数据项
名称
说明
条形码
唯一标识一种图书,形式随便
书籍种类
把图书归成几类,方面查找
操作员名称
管理员,使用系统时,拥有系统账户的人
供应商名称
唯一标识一个供应商
销售单号
以此记录一次销售记录。
唯一标识每次销售记录,形式如:
XS20050812001
入库单号
以此记录一次入库登记,唯一标识每次入库登记,形式如:
EQ20060208001
退货单号
以此记录一次入库退货登记,唯一标识每次入库退货登记,形式如:
EQ20060209001
调拨单号
以此记录每一次调货登记,唯一标识每次调货登录,形式如:
AD20060210002
销售退货单号
以此记录一次销售退货记录。
唯一标识每次销售退货记录,形式如:
EQ20060211001
仓库名称
唯一标识某个仓库
柜台名称
唯一标识某个柜台
2、数据存储
名称
说明
图书信息表
记录图书的基本信息
图书种类信息表
记录图书种类
仓库信息表
记录仓库的基本信息
操作员信息表
记录操作员的用户名,密码,等级
供应商信息表
记录供应商的基本信息
柜台图书表
记录柜台图书的基本信息
柜台信息表
记录柜台的基本信息
入库单
记录入库时的图书及数量,单价等信息
入库结账单
记录入库结账的金额,操作员,日期等信息
入库退货单
记录入库退货时的图书及数量信息
入库退货结账单
记录入库退货时的供应商,金额,时间等信息
图书销售单
记录销售时的图书及数量信息
图书销售结账单
记录销售结账的金额,操作员,金额,销售时间等信息
图书仓库表
记录图书条形码,数量及仓库名称
图书调拨单
记录调拨时的单号,条形码,数量,操作员,调拨时间,仓库名称等信息
图书定价表
记录图书销售价格信息
销售退货单
记录销售时的条形码,数量等信息
销售退货结账单
记录销售退货结账的金额,操作员,日期等信息
3、处理过程
名称
说明
销售登记
进行销售交易,即出库
销售退货登记
进行销售退货交易
入库登记
进行入库交易,也可以称为采购登记
入库退货登记
进行入库退货交易
入库结账登记
入库结账操作,也可以称为采购结账
销售结账登记
销售结账操作
入库退货结账登记
入库退货结账操作,也可以称为采购退货结账
销售退货结账登记
销售退货结账操作
调拨登记
在仓库之间重新分配库存量
第三章概念模型设计
这一设计阶段是在需求分析的基础上进行的,目的是设计出能够设计出能够满足用户需求的各种实体以及它们之间的关系,为后面的逻辑结构设计打下基础。
根据以上的分析设计的结果,得到以下实体:
图书、操作员、供应商、仓库、柜台图书、入库单、入库退货单、销售单、调拨单、定价单、销售退货单、入库退货结账单、销售结构单、入库结账单、销售退货结账单
下图为图书实体E-R图:
下图为操作员实体E-R图:
操作员
等级
密码
名称
下图为供应商实体E-R图:
下图为仓库实体E-R图:
仓库
数量
仓库名称
条形码
下图为柜台图书实体E-R图:
柜台图书
柜台名称
数量
条形码
下图为入库单实体E-R图:
下图为入库退货单实体E-R图:
下图为销售单实体E-R图:
下图为调拨单实体E-R图:
下图为定价单实体E-R图:
定价单
销售价格
条形码
下图为销售退货单实体E-R图:
下图为入库退货结账单实体E-R图:
下图为销售结账单实体E-R图:
下图为入库结账单实体E-R图:
下图为销售退货结账单实体E-R图:
下图为销售单与操作员相关的E-R图:
销售单
销售
操作员
下图为入库单与操作员相关的E-R图:
入库单
采购
操作员
下图为入库相关的E-R图:
入库结账单
m
结账
供应商
1
1
图书入库
m
1
入库单
采购
n
1
m
图书
仓库
退货
m
1
n
m
图书出库
入库退货单
1
结账
m
入库退货结账单
下图为销售相关的E-R图:
销售结账单
m
顾客
结账
1
1
m
1
图书出库
销售单
销售
n
1
m
退货
仓库
图书
m
m
n
图书入库
销售退货单
1
结账
m
销售退货结账单
第四章逻辑结构设计
4.1、E-R图向关系模型的转换:
图书信息表(tb_bookinfo):
字段名称
字段类型
主键
外键
允许为空
描述
bookname
varchar(30)
书籍名称
shortname
varchar(10)
简码
barcode
varchar(30)
是
条形码
author
varchar(30)
作者
bookconcern
varchar(30)
出版社
price
money
价格
memo
varchar(100)
是
备注
kind
varchar(30)
是
种类
图书种类信息表(tb_bookkinds):
字段名称
字段类型
主键
外键
允许为空
描述
bookkind
varchar(30)
是
书籍种类
仓库信息表(tb_storageinfo):
字段名称
字段类型
主键
外键
允许为空
描述
storagename
varchar(30)
是
仓库名称
操作员信息表(tb_operator):
字段名称
字段类型
主键
外键
允许为空
描述
name
varchar(30)
是
名称
password
varchar(50)
密码
level
smallint
等级
供应商信息表(tb_providerinfo):
字段名称
字段类型
主键
外键
允许为空
描述
provider
varchar(30)
是
供应商名称
corporation
varchar(30)
法人
principal
varchar(10)
负责人
phone
varchar(30)
联系电话
adder
varchar(50)
地址
web
varchar(50)
是
网址
e_mail
varchar(30)
是
电子邮件
柜台图书表(tb_counterbook):
字段名称
字段类型
主键
外键
允许为空
描述
barcode
varchar(30)
外键
条形码
counter
varchar(30)
外键
柜台名称
booknum
float
数量
柜台信息表(tb_counterinfo):
字段名称
字段类型
主键
外键
允许为空
描述
counter
varchar(30)
是
柜台名称
入库单表(tb_instock_sub):
字段名称
字段类型
主键
外键
允许为空
描述
instockid
varchar(30)
外键
入库单号
barcode
varchar(30)
外键
条形码
unitPrice
money
单价
numbers
float
数量
rebate
float
折扣
paymoney
money
应付金额
stockname
varchar(30)
外键
仓库名称
入库退货单表(tb_cancelinstock_sub):
字段名称
字段类型
主键
外键
允许为空
描述
CancelID
varchar(30)
是
退货单价
barcode
varchar(30)
是
条形码
unitPrice
money
单价
numbers
float
数量
rebate
float
折扣
paymoney
money
金额
stockname
varchar(30)
是
仓库名称
图书仓库表(tb_bookstorage):
字段名称
字段类型
主键
外键
允许为空
描述
barcode
varchar(30)
是
条形码
storagename
varchar(30)
是
仓库名称
booknum
float
数量
图书调拨明细表(tb_bookmove_sub):
字段名称
字段类型
主键
外键
允许为空
描述
moveID
varchar(30)
是
调拨单号
barcode
varchar(30)
是
条形码
booknum
float
数量
图书调拨主表(tb_bookmove_main):
字段名称
字段类型
主键
外键
允许为空
描述
moveID
varchar(30)
是
调拨单号
storage
varchar(30)
是
仓库名称
counter
varchar(30)
是
柜台名称
operator
varchar(30)
是
操作员
movetime
datetime
调拨时间
入库退货结账表(tb_cancelinstock_main):
字段名称
字段类型
主键
外键
允许为空
描述
CancelID
varchar(30)
是
退货单号
provider
varchar(50)
是
供应商
operator
varchar(30)
是
操作员
rebate
float
折扣
sumtotal
float
总计
paymoney
money
应付金额
factmoney
money
实付金额
inttime
datetime
退货金额
图书销售单表(tb_sell_sub):
字段名称
字段类型
主键
外键
允许为空
描述
SellID
varchar(30)
是
销售单号
barcode
varchar(30)
是
条形码
unitPrice
money
单价
numbers
float
数量
rebate
float
折扣
paymoney
money
金额
图书销售结账表(tb_sell_main):
字段名称
字段类型
主键
外键
允许为空
描述
SellID
varchar(30)
是
销售单号
Customer
varchar(30)
是
顾客
operator
varchar(30)
是
操作员
rebate
float
折扣
sumtoal
money
总计
paymoney
money
应付金额
factmoney
money
实付金额
intime
datetime
销售时间
counter
varchar(30)
是
柜台名称
图书定价表(tb_fixprice):
字段名称
字段类型
主键
外键
允许为空
描述
barcode
varchar(30)
是
条形码
sellprice
money
销售价格
图书入库结账表(tb_instorage_main):
字段名称
字段类型
主键
外键
允许为空
描述
ID
varchar(30)
是
入库单号
provider
varchar(50)
是
供应商
operate
varchar(30)
是
操作员
rebate
float
折扣
sumtoal
money
总计
paymoney
money
应付金额
factmoney
money
实付金额
intime
datetime
入库时间
销售退货单表(tb_cancelsell_sub):
字段名称
字段类型
主键
外键
允许为空
描述
SellCancelID
varchar(30)
是
销售退货单号
barcode
varchar(30)
是
条形码
unitPrice
money
单价
numbers
float
数量
rebate
float
折扣
paymoney
money
金额
销售退货结账表(tb_cancelsell_main):
字段名称
字段类型
主键
外键
允许为空
描述
SellCancelID
varchar(30)
是
销售退货单号
Customer
varchar(30)
是
顾客
operator
varchar(30)
是
操作员
rebate
float
折扣
sumtoal
money
总计
paymoney
money
应付金额
factmoney
money
实付金额
intime
datetime
退货时间
counter
varchar(30
是
柜台名称
4.2、说明:
以上表中均不存在非主属性和主属性对码的部分函数依赖和传递函数依赖,每一个非平凡函数依赖的决定因素都包含有候选键,因此满足BC范式。
第五章源代码及查询截图
5.1源代码:
1、登录窗口:
为了防止非法用户进入系统,程序中设计了一个系统登录窗口。
在程序启动时,首先显示登录窗口,进行用户身份验证,如果用户输入的用户名称和密码不正确,将禁止进入系统。
(用户名:
宗吉密码:
123456)
程序相关代码:
设计思路:
首先判断用户名和密码是否为空,如果为空,则提示用户输入用户名和密码,否则以用户名和密码为条件,从数据库中查询数据,有数据返回,证明用户身份合法;反之,身份不合法。
voidCDlgLogin:
:
OnButton1()
{
CStringc_user,c_password;
m_user.GetWindowText(c_user);
m_password.GetWindowText(c_password);
if(c_user.IsEmpty()||c_password.IsEmpty())
{
MessageBox("用户名称或密码不能为空","用户登录信息");
return;
}
CStringsql;
sql.Format("select*fromtb_operatorwherename='%s'andpassword='%s'",c_user,c_password);
m_pRs->raw_Close();
m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
if(m_pRs->RecordCount>0)
{
Flag=true;
user=m_pRs->GetCollect("name").bstrVal;
password=m_pRs->GetCollect("password").bstrVal;
//PostMessage(WM_CLOSE,0,0);
EndDialog(0);
}
else
{
user="";
password="";
MessageBox("用户名或密码不正确.","提示",64);
return;
}
}
2、主窗体:
图书管理系统主界面由菜单和客户区域两部分组成。
3、基本信息管理:
①操作员信息的添加、修改和删除程序相关代码:
利用函数LoadOperatorInfo()加载操作员信息。
在窗口初始化时,调用该函数将所有操作员信息添加到列表中。
voidCDlgOperator1:
:
LoadOperatorInfo()
{
m_list.DeleteAllItems();
m_pRs->raw_Close();
CStringsql;
sql.Format("select*fromtb_operator");//设置SQL语句
m_pRs->Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
introw=0;
CStringitemtext;
while(!
m_pRs->adoEOF)//利用循环向表中添加数据
{
m_list.InsertItem(100,"");
for(intindex=0;indexFields->Count;index++)
{
itemtext=(TCHAR*)(_bstr_t)m_pRs->GetFields()->GetItem((long)index)->Value;
m_list.SetItemText(row,index,itemtext);
}
row+=1;
m_pRs->MoveNext();//向下移动记录
}
}
voidCDlgOperator1:
:
AddOperator()
{
//判断基础信息是否为空
if(!
InfoIsNull())
{
CStringc_operator,c_password,c_level;
m_operator.GetWindowText(c_operator);
m_password.GetWindowText(c_password);
m_level.GetWindowText(c_level);
intlevel=atoi(c_level);
CStringsql;
sql.Format("insertintotb_operatorvalues('%s','%s',%d)",c_operator,c_password,level);
if(m_pRs->State==adStateOpen)
m_pRs->raw_Close();
try
{
m_pRs->Open((_bstr_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
LoadOperatorInfo();
ClearInterface();
MessageBox("操作成功.","提示",MB_OK);
}
catch(_com_error*e)
{
MessageB