收藏 分销(赏)

课程设计报告-图书馆销售管理系统.doc

上传人:人****来 文档编号:5309119 上传时间:2024-10-30 格式:DOC 页数:22 大小:430.50KB
下载 相关 举报
课程设计报告-图书馆销售管理系统.doc_第1页
第1页 / 共22页
课程设计报告-图书馆销售管理系统.doc_第2页
第2页 / 共22页
课程设计报告-图书馆销售管理系统.doc_第3页
第3页 / 共22页
课程设计报告-图书馆销售管理系统.doc_第4页
第4页 / 共22页
课程设计报告-图书馆销售管理系统.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、闽江学院课程设计说明书题目: 图书馆管理系统院 系: 计算机科学系专业班级: 07计本2班学 号: 120071101215学生姓名: 刘思旭 指导教师: 谢储晖 2009年 1月7日目录1 绪论11.1 开发背景11.2 开发工具的选用及介绍11.2.1 ASP简介11.2.2 Dreamweaver简介21.2.3 Microsoft SQL Server 2000简介22 需求分析32.1 系统分析32.2 系统目标32.4系统模块流程图52.4.1 系统登陆流程图53 数据库设计63.1概念结构设计63.2 逻辑结构设计73.3创建表的脚本文件84 详细设计104.1 用户登陆页面10

2、4.2图书入库页面114.3入库退货144.4销售系统154.5条件查询库存量164.6销售统计174.7帮助195课程设计小结226参考文献221 绪论当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,计算机被广泛应用于B/S系统环境。计算机的好处在于它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了安全性。对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好图书信息而设计的。 1.1 开发背景图书销售管理包括的图书的入库,出库,销售,包含很多的信息数据的管理,现今,有很多

3、的图书管理销售系统都是初步开始使用,甚至尚未使用计算机进行信息管理。以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书销售,入库情况的统计和核实等往往采用对借书卡的人工检查进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是图书管理系统开发所要解决的问题。基于这此问题,有必要建立一个图书销售管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的进行查询和修改图书情

4、况等图书管理操作。1.2 开发工具的选用及介绍1.2.1 ASP简介Active Server Pages:是一套微软开发的服务器端脚本环境,ASP内含于IIS之中 , 通过ASP我们可以结合 HTML 网页、ASP 指令和 ActiveX元件建立动态、交互且高效的WEB服务器应用程序。有了ASP你就不必担心客户的浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通 HTML中的脚本程序。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。 1.2.2 Dreamweaver简介Dreamweaver是M

5、acromedia公司最新推出的主页编辑工具。这是一个所见即所得主页编辑器,并带有站点管理功能,让你方便地设计和管理多个站点。而它最棒的地方就是支持最新的DHTML和CSS标准, 你可以用它设计出生动的DHTML动画、多层次的页面(layer)以及CSS样式表。 1.2.3 Microsoft SQL Server 2000简介SQL是英文(Structured Query Language)的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提

6、取数据等。目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准。SQL语言有以下几个优点:1 非过程化语言 SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集,所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。SQL不要求用户指定对数据的存放方法, 这种特性使用户更易集中精力于要得到的结果;所有SQL语句使用查询优化器,它是RD

7、BMS的一部分,由它决定对指定数据存取的最快速度的手段,查询优化器知道存在什么索引,在哪儿使用索引合适,而用户则从不需要知道表是否有索引、有什么类型的索引。2. 统一的语言 SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL 命令只需很少时间就能学会,最高级的命令在几天内便可掌握。3. 所有关系数据库的公共语言 由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS(关系数据库管理系统)转到另一个,所有用SQL编写的程序都是可以移植的。2 需求分析2.1 系统分析一般的图书销

8、售管理系统包括系统管理,进货管理,供应商信息管理,退货管理,销售管理,销售统计,库存管理等功能。以下介绍一下销售管理系统的一些必备功能,每个功能具有若干相关的子模块构成。1基本信息管理主要是操作管理员信息管理,设置管理员密码登陆,以保障安全性。2进货管理包括供应商报价,根据报价选择供应商,更新进货记录于供应记录,显示进货记录等若干模块。报价以外部输入的方式进行,一次可输入多种图书的多个供应商的报价,同种图书选择报价最低者进货,并将进货信息记录到进货记录中,进货表设置表示序列号,记录每次的进货情况,被选择的供应商信息将被记录到供应记录中,管理员可以查看所有的进货记录。3退货管理退货管理包括办理退

9、货业务,以及显示历史退货记录,退货业务办理,一次办理一种图书的退货业务,业务办理完成及更新退货表,表中设置标识序列号,记录每次的退货业务记录。4 销售统计销售统计包括销售记录,日销售记录,以及销售量排行榜,销售记录记录每次图书销售的情况,设置标识序列号,日销售量对每天售出的图书情况进行统计,统计每种书的销售情况,销售排行榜按图书的销售量排行,查看时可取排名前若干名进行显示。5销售管理在销售模块首先是可以查看现有的库存图书情况,然后可根据需求选择图书添加到订单中,也可从订单中去掉不想购买的图书,确认购买时可以进行结算,如计算价格,更新库存表,销售表,销售量表等2.2 系统目标主要包括进货、退货、

10、销售、统计功能。进货:根据某种书籍的库存量及销售情况确定进货数量,根据供应商报价选择供应商。输出一份进货单并自动修改库存量,把本次进货的信息添加到进货库中。退货:顾客把已买的书籍退还给书店。输出一份退货单并自动修改库存量,把本次退货的信息添加到退货库中。统计:根据销售情况输出统计报表。一般内容为每月的销售总额、销售量及排行榜。销售:输入顾客要买书籍的信息,自动显示此书的库存量。如果可以销售,打印销售单并修改库存,同时把此次销售的有关信息添加到日销售库中。查询:可以根据一个单体来查询整个数据库中符合要求的条款。2.3系统模块流程图2.3.1 系统登陆流程图 3 数据库设计3.1概念结构设计图书馆

11、管理系统,总共含有三个实体:管理员,图书,读者,之间的关系如下图的E-R图如下:管理员ID密码管理图书分类作者ISBN进货时间进货量成本书名入库销售统计销售排行日销售量销售记录现有库存记录供应商入库信息登记mmmn序列号分类查询入库登记3.2 逻辑结构设计3.3创建表的脚本文件关于创建数据库部分,可以通过SQL Server企业管理器来创建,也可以通过查询分析器来创建4 详细设计4.1 用户登陆页面该页面用于用户登陆,包括游客,用户和管理员。成功登陆则取得用户的session用于以后的操作权限认定。程序执行时首先判断用户类型,如果是游客则对session赋值为游客类型,然后直接进入主页;如果不

12、是游客则执行查询语句,看数据库中是否存在这样的用户名和密码,根据选择用户类型的不同在不同的表中进行操作,成功则进入主页,否则提示输入错误。截图如下:图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_MAPEND_MESSAGE_MAP()/ CLogin message handlers/* 登陆确认 */void CLogin:OnCollate() / TO

13、DO: Add your control notification handler code hereUpdateData(TRUE);if(m_InputName.IsEmpty() | m_InputCode.IsEmpty()MessageBox(用户名或密码不能为空.,提示!);return;/搜索匹配的帐号.CString sql;sql.Format(select * from bm_OperaInfor where username=%s and password=%s,m_InputName,m_InputCode);m_pRs-raw_Close();m_pRs-Open(_

14、variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);/匹配成功之后打开主界面.if(m_pRs-RecordCount 0)loginflag = TRUE;m_user = m_InputName;EndDialog(0);elseMessageBox(用户名或密码错误.,错误!);m_InputName.Empty();m_InputCode.Empty();UpdateData(FALSE);return;4.2图书入库页面图4.2.1图书入库代码:void CStockManag

15、e:OnSave() if(!HasSupp)MessageBox(请先生成供货信息,错误!);return;CString time,sql;GetDate(time);/获取当前时间并进行格式化for(int i=0;iraw_Close();m_pRs-Open(_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);/保存到进货表bm_BookStocksql.Format(insert into bm_BookStock values (%d,%d,%s,%s,%s,%s,%f,

16、%d),str_to_int(time),supplyi.ISBN,supplyi.bookname,supplyi.author,supplyi.bookconcern,supplyi.cost,supplyi.supplycount);m_pRs-raw_Close();m_pRs-Open(_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);/更新库存sql.Format(select * from bm_BookStorage where ISBN=%d,supplyi.ISB

17、N);m_pRs-raw_Close();m_pRs-Open(_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);if(m_pRs-RecordCount 0) /此书库中已有int newcount = supplyi.supplycount + str_to_int(TCHAR*)(_bstr_t)m_pRs-GetFields()-GetItem(long)6)-Value);sql.Format(update bm_BookStorage set storecount=%d,

18、cost=%f where ISBN=%d,newcount,supplyi.cost,supplyi.ISBN);else /库中没有这本书,就插入信息sql.Format(insert into bm_BookStorage values (%d,%s,%s,%s,%s,%f,%d,%f),supplyi.ISBN,supplyi.bookname,supplyi.author,supplyi.bookconcern,supplyi.cost*1.12,supplyi.supplycount,supplyi.cost);m_pRs-raw_Close();m_pRs-Open(_varia

19、nt_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);MessageBox(完成.,提示!);stockdlg1-m_StockList.DeleteAllItems();stockdlg1-ShowStock(); /在第一个对话框中回显信息2./确认退货,并更新相关信息void CRefundDlg1:OnRefundEnter() UpdateData(TRUE);if(m_ISBN.IsEmpty()|m_Count.IsEmpty()MessageBox(ISBN或数量不能留空,提示!);

20、return;CString sql;sql.Format(select * from bm_BookSold where ISBN=%d,str_to_int(m_ISBN);m_pRs-raw_Close();m_pRs-Open(_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);if(m_pRs-RecordCount raw_Close();m_pRs-Open(_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLo

21、ckOptimistic,adCmdText);int tmp = str_to_int(m_Count) + str_to_int(TCHAR*)(_bstr_t)m_pRs-GetFields()-GetItem(long)6)-Value);CString time; GetDate(time); /获取当前时间.sql.Format(insert into bm_BookRefund values(%d,%d,%s,%s,%s,%s,%d,%d), /更新退货记录str_to_int(time),str_to_int(m_ISBN),(TCHAR*)(_bstr_t)m_pRs-Get

22、Fields()-GetItem(long)1)-Value,(TCHAR*)(_bstr_t)m_pRs-GetFields()-GetItem(long)2)-Value,(TCHAR*)(_bstr_t)m_pRs-GetFields()-GetItem(long)3)-Value,(TCHAR*)(_bstr_t)m_pRs-GetFields()-GetItem(long)4)-Value,str_to_int(TCHAR*)(_bstr_t)m_pRs-GetFields()-GetItem(long)5)-Value),str_to_int(m_Count);m_pRs-raw_

23、Close();m_pRs-Open(_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);sql.Format(update bm_BookStorage set storecount=%d where ISBN=%d,tmp,str_to_int(m_ISBN);m_pRs-raw_Close(); /更新库存m_pRs-Open(_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdTe

24、xt);MessageBox(完成退货,提示!);OnRefundClear();p_refund.refunddlg2-ShowRefund(); /重画报表3./在控件中显示销售信息void CStasticDlg1:ShowVend()m_pRs-raw_Close();CString sql;sql.Format(select * from bm_BookSold);m_pRs-Open(_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);int index = 0;m_Ven

25、dList.DeleteAllItems();while (!m_pRs-adoEOF) index = m_VendList.InsertItem(m_VendList.GetItemCount(),(TCHAR*)(_bstr_t)m_pRs-GetFields()-GetItem(long)0)-Value);for(int col = 1;col GetFields()-GetItem(long)col)-Value);m_pRs-MoveNext();4.3入库退货 图4.3.1 入库退货代码:4.4销售系统图4.4.1销售系统代码:void CVendManage:OnPuche(

26、) if(m_PucheList.GetItemCount() 1)MessageBox(请先选择书籍,提示!);return;CString sql;float cost = 0;for(int i=0;iraw_Close(); /更新库存m_pRs-Open(_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);int newcount = str_to_int(TCHAR*)(_bstr_t)m_pRs-GetFields()-GetItem(long)6)-Value)-str

27、_to_int(m_PucheList.GetItemText(i,6);sql.Format(update bm_BookStorage set storecount=%d where ISBN=%s,newcount,m_PucheList.GetItemText(i,0);m_pRs-raw_Close();m_pRs-Open(_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);CString time;GetDate(time); /更新销售表sql.Format(inser

28、t into bm_BookSold values (%d,%d,%s,%s,%s,%s,%f,%d),str_to_int(time),str_to_int(m_PucheList.GetItemText(i,0),m_PucheList.GetItemText(i,1),m_PucheList.GetItemText(i,2),m_PucheList.GetItemText(i,3),m_PucheList.GetItemText(i,4),str_to_float(m_PucheList.GetItemText(i,5),str_to_int(m_PucheList.GetItemTex

29、t(i,6);m_pRs-raw_Close();m_pRs-Open(_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);sql.Format(select * from bm_BookSummry where ISBN=%s,m_PucheList.GetItemText(i,0);m_pRs-raw_Close(); /更新销售榜m_pRs-Open(_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimi

30、stic,adCmdText);if(m_pRs-RecordCount 0) /已有出售记录,需更新销售量和销售额int newcount = str_to_int(TCHAR*)(_bstr_t)m_pRs-GetFields()-GetItem(long)6)-Value)+str_to_int(m_PucheList.GetItemText(i,6); float newsummry = (float)(str_to_float(TCHAR*)(_bstr_t)m_pRs-GetFields()-GetItem(long)5)-Value)*newcount);sql.Format(u

31、pdate bm_BookSummry set soldcount=%d,soldsummry=%f where ISBN=%s,newcount,newsummry,m_PucheList.GetItemText(i,0);cost += (float)(str_to_float(TCHAR*)(_bstr_t)m_pRs-GetFields()-GetItem(long)5)-Value)*str_to_int(m_PucheList.GetItemText(i,6);else/之前未曾卖过该书,则新插入一条记录float x = (float)(str_to_float(m_PucheL

32、ist.GetItemText(i,5)*str_to_int(m_PucheList.GetItemText(i,6);cost += x;sql.Format(insert into bm_BookSummry values (%d,%s,%s,%s,%s,%f,%d,%f),str_to_int(m_PucheList.GetItemText(i,0),m_PucheList.GetItemText(i,1),m_PucheList.GetItemText(i,2),m_PucheList.GetItemText(i,3),m_PucheList.GetItemText(i,4),str

33、_to_float(m_PucheList.GetItemText(i,5),str_to_int(m_PucheList.GetItemText(i,6),x);m_pRs-raw_Close();m_pRs-Open(_variant_t)sql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);m_StorageList.DeleteAllItems();ShowStorage(); /重新显示相关信息sql.Format(%f,cost);sql.TrimRight();MessageBox(交易成功.n

34、应付款为:+sql+元n,提示!);4.5条件查询库存量图4.5.1条件查询库存量代码:void CVendManage:OnButtonFind() UpdateData();CString strSql;strSql=select * from bm_BookStorage where bookname like %+m_strBookname+% and author like %+m_strAuthor+% and bookconcern like %+m_strC+%;/strSql=select * from bm_BookStorage where bookname=%+m_st

35、rBookname+%;m_pRs-raw_Close();m_pRs-Open(_variant_t)strSql,m_pCon.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);m_StorageList.DeleteAllItems();int i=0;while(!m_pRs-adoEOF)m_StorageList.InsertItem(i,(TCHAR*)(_bstr_t)m_pRs-GetCollect(ISBN);m_StorageList.SetItemText(i,1,(TCHAR*)(_bstr_t)m_

36、pRs-GetCollect(bookname);m_StorageList.SetItemText(i,2,(TCHAR*)(_bstr_t)m_pRs-GetCollect(author);m_StorageList.SetItemText(i,3,(TCHAR*)(_bstr_t)m_pRs-GetCollect(bookconcern);i+;m_pRs-MoveNext();4.6销售统计图4.6.1销售统计代码如下:BOOL CStasticManage:OnInitDialog()CDialog:OnInitDialog();stasticdlg1 = new CStasticD

37、lg1();stasticdlg2 = new CStasticDlg2();stasticdlg3 = new CStasticDlg3();/将对话框贴在标签上.stasticdlg1-Create(IDD_STASTIC_DIALOG1,&m_StasticTab);stasticdlg2-Create(IDD_STASTIC_DIALOG2,&m_StasticTab);stasticdlg3-Create(IDD_STASTIC_DIALOG3,&m_StasticTab);m_StasticTab.InsertItem(0,销售记录,0);m_StasticTab.InsertIt

38、em(1,日销售量,1);m_StasticTab.InsertItem(2,销售排行榜,2);m_StasticTab.SetMinTabWidth(100);m_StasticTab.SetCurSel(PID);DoTab(PID);return TRUE;void CStasticManage:OnSelchangeStasticTab(NMHDR* pNMHDR, LRESULT* pResult) / TODO: Add your control notification handler code hereint select = m_StasticTab.GetCurSel();

39、if(select = 0)DoTab(select);*pResult = 0;void CStasticManage:SetDlgState(CWnd *pWnd, BOOL bShow)pWnd-EnableWindow(bShow);if(bShow)pWnd-ShowWindow(SW_SHOW);pWnd-CenterWindow();elsepWnd-ShowWindow(SW_HIDE);void CStasticManage:DoTab(int nPid)if(nPid 2) nPid = 2;if(nPid 0) nPid =0;BOOL iPid3;iPid0=iPid1

40、=iPid2=FALSE;iPidnPid=TRUE;SetDlgState(stasticdlg1,iPid0);SetDlgState(stasticdlg2,iPid1);SetDlgState(stasticdlg3,iPid2);void CStasticManage:OnExitStastic() / TODO: Add your command handler code hereEndDialog(0);4.7帮助5课程设计小结通过本次课程设计,我深深体会到需求分析与系统分析规划的重要性,团队的合作以及知识面的拓宽,主动的学习实践,都是不可或缺的,总体来说,这次课程设计让我收获很大。最后要感谢曾在课程设计过程中给于我帮助的老师和同学。6参考文献1 王珊 萨师煊. 数据库系统概论(第四版).北京:高等教育出版社2 求是科技. ASP数据库开发技术与工程实践M .北京:人民邮电出版社3 刘意成.SQL实战演练M .北京:西安电子科技大学出版社4 周绪.SQL Server 2000中文版入门与提高M .北京:清华大学出版社5 李存斌.数据库应用技术M .北京:中国水利水电出版社6 罗运模. SQL Server 2000数据仓库应用与开发M .北京:人民邮电出版社21 / 22

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服