课程设计报告图书馆销售管理系统Word文档格式.docx
《课程设计报告图书馆销售管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《课程设计报告图书馆销售管理系统Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
在各行各业中离不开信息处理,计算机被广泛应用于B/S系统环境。
计算机的好处在于它能够进行信息管理。
使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了安全性。
对于复杂的信息管理,计算机能够充分发挥它的优越性。
计算机与信息管理系统的开发密切相关,系统的开发是系统管理的前提。
本系统就是为了管理好图书信息而设计的。
1.1开发背景
图书销售管理包括的图书的入库,出库,销售,包含很多的信息数据的管理,现今,有很多的图书管理销售系统都是初步开始使用,甚至尚未使用计算机进行信息管理。
以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书销售,入库情况的统计和核实等往往采用对借书卡的人工检查进行。
数据信息处理工作量大,容易出错;
由于数据繁多,容易丢失,且不易查找。
总的来说,缺乏系统,规范的信息管理手段。
尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是图书管理系统开发所要解决的问题。
基于这此问题,有必要建立一个图书销售管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的进行查询和修改图书情况等图书管理操作。
1.2开发工具的选用及介绍
1.2.1ASP简介
ActiveServerPages:
是一套微软开发的服务器端脚本环境,ASP内含于IIS之中,通过ASP我们可以结合HTML网页、ASP指令和ActiveX元件建立动态、交互且高效的WEB服务器应用程序。
有了ASP你就不必担心客户的浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通HTML中的脚本程序。
当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。
1.2.2Dreamweaver简介
Dreamweaver是Macromedia公司最新推出的主页编辑工具。
这是一个所见即所得主页编辑器,并带有站点管理功能,让你方便地设计和管理多个站点。
而它最棒的地方就是支持最新的DHTML和CSS标准,你可以用它设计出生动的DHTML动画、多层次的页面(layer)以及CSS样式表。
1.2.3MicrosoftSQLServer2000简介
SQL是英文(Structured
QueryLanguage)的缩写,意思为结构化查询语言。
SQL语言的主要功能就是同各种数据库建立联系,进行沟通。
SQL被作为关系型数据库管理系统的标准语言。
SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。
目前,绝大多数流行的关系型数据库管理系统,如Oracle,Sybase,MicrosoftSQLServer,Access等都采用了SQL语言标准。
SQL语言有以下几个优点:
1非过程化语言
SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。
SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集,所有SQL语句接受集合作为输入,返回集合作为输出。
SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。
SQL不要求用户指定对数据的存放方法,这种特性使用户更易集中精力于要得到的结果;
所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿使用索引合适,而用户则从不需要知道表是否有索引、有什么类型的索引。
2.统一的语言
SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户。
基本的SQL命令只需很少时间就能学会,最高级的命令在几天内便可掌握。
3.所有关系数据库的公共语言
由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS(关系数据库管理系统)转到另一个,所有用SQL编写的程序都是可以移植的。
2需求分析
2.1系统分析
一般的图书销售管理系统包括系统管理,进货管理,供应商信息管理,退货管理,销售管理,销售统计,库存管理等功能。
以下介绍一下销售管理系统的一些必备功能,每个功能具有若干相关的子模块构成。
1基本信息管理
主要是操作管理员信息管理,设置管理员密码登陆,以保障安全性。
2进货管理
包括供应商报价,根据报价选择供应商,更新进货记录于供应记录,显示进货记录等若干模块。
报价以外部输入的方式进行,一次可输入多种图书的多个供应商的报价,同种图书选择报价最低者进货,并将进货信息记录到进货记录中,进货表设置表示序列号,记录每次的进货情况,被选择的供应商信息将被记录到供应记录中,管理员可以查看所有的进货记录。
3退货管理
退货管理包括办理退货业务,以及显示历史退货记录,退货业务办理,一次办理一种图书的退货业务,业务办理完成及更新退货表,表中设置标识序列号,记录每次的退货业务记录。
4销售统计
销售统计包括销售记录,日销售记录,以及销售量排行榜,销售记录记录每次图书销售的情况,设置标识序列号,日销售量对每天售出的图书情况进行统计,统计每种书的销售情况,销售排行榜按图书的销售量排行,查看时可取排名前若干名进行显示。
5销售管理
在销售模块首先是可以查看现有的库存图书情况,然后可根据需求选择图书添加到订单中,也可从订单中去掉不想购买的图书,确认购买时可以进行结算,如计算价格,更新库存表,销售表,销售量表等
2.2系统目标
主要包括进货、退货、销售、统计功能。
进货:
根据某种书籍的库存量及销售情况确定进货数量,根据供应商报价选择供应商。
输出一份进货单并自动修改库存量,把本次进货的信息添加到进货库中。
退货:
顾客把已买的书籍退还给书店。
输出一份退货单并自动修改库存量,把本次退货的信息添加到退货库中。
统计:
根据销售情况输出统计报表。
一般内容为每月的销售总额、销售量及排行榜。
销售:
输入顾客要买书籍的信息,自动显示此书的库存量。
如果可以销售,打印销售单并修改库存,同时把此次销售的有关信息添加到日销售库中。
查询:
可以根据一个单体来查询整个数据库中符合要求的条款。
2.3系统模块流程图
2.3.1系统登陆流程图
3数据库设计
3.1概念结构设计
图书馆管理系统,总共含有三个实体:
管理员,图书,读者,之间的关系如下图的E-R图如下:
入库登记
3.2逻辑结构设计
3.3创建表的脚本文件
关于创建数据库部分,可以通过SQLServer企业管理器来创建,也可以通过查询分析器来创建
4详细设计
4.1用户登陆页面
该页面用于用户登陆,包括游客,用户和管理员。
成功登陆则取得用户的session用于以后的操作权限认定。
程序执行时首先判断用户类型,如果是游客则对session赋值为游客类型,然后直接进入主页;
如果不是游客则执行查询语句,看数据库中是否存在这样的用户名和密码,根据选择用户类型的不同在不同的表中进行操作,成功则进入主页,否则提示输入错误。
截图如下:
图4.1.1用户登陆
主界面
代码:
BEGIN_MESSAGE_MAP(CLogin,CDialog)
//{{AFX_MSG_MAP(CLogin)
ON_BN_CLICKED(IDC_OK,OnCollate)
ON_BN_CLICKED(IDC_QUIT,OnQuit)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CLoginmessagehandlers
/*登陆确认*/
voidCLogin:
:
OnCollate()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(TRUE);
if(m_InputName.IsEmpty()||m_InputCode.IsEmpty())
{MessageBox("
用户名或密码不能为空..."
"
提示!
"
);
return;
}
//搜索匹配的帐号...
CStringsql;
sql.Format("
select*frombm_OperaInforwhereusername='
%s'
andpassword='
m_InputName,m_InputCode);
m_pRs->
raw_Close();
Open((_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
//匹配成功之后打开主界面...
if(m_pRs->
RecordCount>
0)
{
loginflag=TRUE;
m_user=m_InputName;
EndDialog(0);
else
MessageBox("
用户名或密码错误..."
错误!
m_InputName.Empty();
m_InputCode.Empty();
UpdateData(FALSE);
return;
}
4.2图书入库页面
图4.2.1图书入库
voidCStockManage:
OnSave()
{if(!
HasSupp)
请先生成供货信息"
CStringtime,sql;
GetDate(time);
//获取当前时间并进行格式化
for(inti=0;
i<
bit;
i++)
{//将供应商信息插入到供应表bm_Supply
sql.Format("
insertintobm_Supplyvalues(%d,%d,'
'
%f,%d)"
str_to_int(time),supply[i].ISBN,supply[i].bookname,supply[i].author,
supply[i].bookconcern,supply[i].cost,supply[i].supplycount);
m_pRs->
m_pRs->
//保存到进货表bm_BookStock
insertintobm_BookStockvalues(%d,%d,'
str_to_int(time),supply[i].ISBN,supply[i].bookname,supply[i