数据库系统原理_书店信息管理系统_第1页
数据库系统原理_书店信息管理系统_第2页
数据库系统原理_书店信息管理系统_第3页
数据库系统原理_书店信息管理系统_第4页
数据库系统原理_书店信息管理系统_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、- - access 课程设计题目书店信息管理系统一. 题目二. 功能三. 设计四. 数据库的实现五. 数据模式- - 六. 系统实施七. 参考文献八. 设计感想某书店信息管理系统一题目:某书店信息管理系统二功能:1通过用户登陆及身份验证确定用户对数据的操作权限。以系统管理员身份登陆时享有对所有数据查阅及进行任意操作的权限,以普通用户登陆时只享有查阅数据的权限, 且数据内容的开放程度由管理员设定。2对管理员,会员,普通职员及图书资料档案的管理。3对书店经营期间的所有支出,收入已及盈亏情况进行记录。4对书店经营期间各个方面的监控及实时处理。包括供书商提供图书的价格是否合理,管理员及职员工作态度是

2、否认真和是否出差错,顾客对书店经营的意见,哪些书销售情况好,哪些差,购买图书的数量种类,书店设施的磨损以及是否需要维修或者更换添加。三设计:1.用户要求- - 1 会员档案数据包括:会员证号、姓名、性别、出生日期、身份证号、单位、通讯地址、邮政编码、联系电话、办证日期、会员期限、照片、职业等。2 图书档案数据包括:书号、书名、作者、出版单位、出版日期、版次、单价、内容提要、分类号、索书号、藏书册数、每册图书馆藏注册号、所在书库、入库日期等。3 检索系统能根据书号、书名、作者、出版单位、内容提要关键字、分类号、索书号、每册图书馆藏注册号等进行查询。4 进书系统输入书号后, 能根据借书号判断该书进

3、货时间,书库中是否还有该书可卖,是否需要再进货。5、卖书系统对一定时间段卖出去的书做出各种统计。2总体功能框图:- - 3. 数据流:3.1 档案管理子系统数据流图某书店数据库系统用户登陆及验证身份档案管理财务管理经营管理管理员档案普通职员档案会员顾客档案图书资料档案支出情况盈亏情况收入情况管理员工作情况职员工作情况图书收售情况书店设施磨损供书商情况- - 3.2 财务管理子系统数据流图3.3 经营管理子系统数据流图说明: 1.收银员享有修改会员数据,销售记录数据,创建会员数据的操作权限。2供货商包括图书供应商,家具供应商等书店可能涉及到的物品的供应商,不限与某一种和某一个供货商。3.采购,财

4、务,主管部门由书店规模决定,可能仅仅是一个人,也可能是有组织有一定成员的独立部门。4. 业务范围:1采购和出售各种图书,从中赢利,根据顾客需要调整购买图书的种类和数量。2办理会员顾客,会员购书实行折扣,根据会员累计消费情况举行会员优顾客办 理 会员职员人 事 变动管理员图书资料库 存 变动档案收入情况支出情况处理盈亏及债务情况- - 惠活动,吸引顾客办理会员和会员消费。四. 数据库的实现1. 1 建立数据库 st-course 2 各表的建立,如 2.3 物理结构的设计。3 录入数据2. 数据表的创建和设计使用 access 数据库管理系统建立应用系统,首先需要创建一个数据库。然后在该数据库中

5、添加所需的表、查询、窗体、报表、宏等对象。3. 数据库的创建首先,使用向导设计“书店管理系统”数据库,然后才进行表的设计。具体步骤如下:(1)启动 microsoft access 2003 ,出现“ microsoft access ”数据库设计界面。(2 )单击工具栏上的新建按钮,在 access 2003 窗体的右边出现“新建文件”任务窗格。(3 )在该任务窗格中选择项,系统弹出“模板”对话,单击“常用”选项卡,然后选择其中的模板。(4 )单击“确定”按钮,这时出现要选择数据库的保存路径的对话框。在“文件名”右边的文本框里输入文件名为“书店管理系统”。(5 )单击“创建”按钮,就进入数据

6、库窗口。至此,就创建了“书店管理系统”数据库。- - 4.e-r 图五. 数据模式现将其中几个表的关系数据模式给出:管理管理员职员属于部门服务维护设施会员书籍购买折扣规则供应供书商供应量n 1 n 1 m n m n 1 n m n - - 1.书籍信息(书籍编号,书名,作者,进货价格,进货数量,供书商编号,剩余数量)2.供书商(供书商编号,名称,地址,联系电话)- - 3.会员(会员编号,姓名,性别,联系方式,会员有效期,累计消费,享有优惠)- - 4. 数据库创建表- - 六.系统实施基于 mocrosoft visual studio 的 mfc 平台,将数据库与mfc 连接并进行相应的

7、处理的代码如下:(1)头文件的基本设置#include #include #include #include #include #include #include #define course_no1 5 / 注意定义的大小应为数据库中定义的长度加一,cstring 的结束字符也算在内#define len 10 /变量的长度,一般属性列的长度定义都为#define code_len 6 /密码的长度- - bool findbookdlg:oninitdialog()/初始化列表框的函数 cdialog:oninitdialog(); /初始化列表框m_list.settextcolor(r

8、gb (0, 0, 0); m_list.setbkcolor(rgb(255,255,255); m_list.setextendedstyle(lvs_ex_gridlines|lvs_ex_fullrowselect); m_list.insertcolumn(0,_t( 书号 ),lvcfmt_center,100); m_list.insertcolumn(1,_t( 书名 ),lvcfmt_center,100); m_list.insertcolumn(2,_t( 作者 ),lvcfmt_center,100); m_list.insertcolumn(3,_t( 价格 ),lv

9、cfmt_center,100); m_list.insertcolumn(4,_t( 所属类型 ),lvcfmt_center,100); return true; begin_message_map(findbookdlg, cdialog) on_bn_clicked(idc_button1, &findbookdlg:onbnclickedbutton1) end_message_map() / findbookdlg message handlers (2)查询信息按钮的消息响应函数( 以查询书籍信息为例) 。void findbookdlg:onbnclickedbutto

10、n1() / todo: add your control notification handler code here updatedata(true ); / 初始化环境ret=sqlallochandle(sql_handle_env,sql_null_handle,&serverhenv); ret=sqlsetenvattr(serverhenv,sql_attr_odbc_version,(void *)sql_ov_odbc3,0); / 建立连接 ret=sqlallochandle(sql_handle_dbc,serverhenv,&serverhdbc);

11、 ret=sqlconnect(serverhdbc,(sqlchar*)bookinfo,sql_nts,(sqlchar*) sa ,sql_nts,(sqlchar*) ,sql_nts); if (!sql_succeeded(ret) return ; / 初始化语句句柄ret=sqlallochandle(sql_handle_stmt,serverhdbc,&serverhstmt); / 执行语句char sql256; if (m_bookno!= & m_bookname!= ) ret=sqlexecdirect(serverhstmt,(sqlchar*

12、)select * from bookinfo where bookno=m_bookno and bookname=m_bookname,sql_nts); - - if (!(ret=sql_success|ret=sql_success_with_info) afxmessagebox(_t( 你输入的书号和书名不匹配,请重新出入! 书号和书名可以任输一个! ); findbookdlg dlg; dlg.domodal(); elseif(m_bookno!= ) sprintf(sql,select * from bookinfo where bookno=%s ,m_bookno)

13、; ret=sqlexecdirect(serverhstmt,(sqlchar*)sql,sql_nts); elseif(m_bookname!= ) sprintf(sql,select * from bookinfo where bookno=%s ,m_bookname); ret=sqlexecdirect(serverhstmt,(sqlchar*)sql,sql_nts); elseif(m_bookno= & m_bookname= ) ret=sqlexecdirect(serverhstmt,(sqlchar*)select * from bookinfo ,sq

14、l_nts); m_list.deleteallitems(); if (ret=sql_success | ret=sql_success_with_info) ret=sqlbindcol(serverhstmt,1,sql_c_char,bookno,len,&cbbookno); ret=sqlbindcol(serverhstmt,2,sql_c_char,bookname,len,&cbbookname); ret=sqlbindcol(serverhstmt,3,sql_c_char,bookauthor,len,&cbbookauthor); ret=s

15、qlbindcol(serverhstmt,4,sql_c_float,&bookprice,0/*sizeof(float)*/,&cbbookprice); ret=sqlbindcol(serverhstmt,5,sql_c_char,booktype,len,&cbbooktype); while ( (ret = sqlfetch(serverhstmt) != sql_no_data_found) cstring temp; temp.format( %f ,bookprice);/将double 型转换为字符型if (ret=sql_error) afxm

16、essagebox(_t( error!); return ; int row=m_list.insertitem(0,(lpctstr)bookno); - - m_list.setitemtext(row,1,(lpctstr)bookname); m_list.setitemtext(row,2,(lpctstr)bookauthor); m_list.setitemtext(row,3,(lpctstr)temp); m_list.setitemtext(row,4,(lpctstr)booktype); sqlfreehandle(sql_handle_stmt,serverhstm

17、t); updatedata( false ); (3)消费模块(以书店进货为例)这里只给出查询信息按钮的消息响应函数void newbookdlg:onbnclickedok() / todo: add your control notification handler code here updatedata(true ); / 初始化环境ret=sqlallochandle(sql_handle_env,sql_null_handle,&serverhenv); ret=sqlsetenvattr(serverhenv,sql_attr_odbc_version,(void *)

18、sql_ov_odbc3,0); / 建立连接 ret=sqlallochandle(sql_handle_dbc,serverhenv,&serverhdbc); ret=sqlconnect(serverhdbc,(sqlchar*)bookinfo,sql_nts,(sqlchar*) sa ,sql_nts,(sqlchar*) ,sql_nts); if (!sql_succeeded(ret) return ; / 初始化语句句柄ret=sqlallochandle(sql_handle_stmt,serverhdbc,&serverhstmt); / 执行语句re

19、t=sqlprepare(serverhstmt,(sqlchar*)insert into bookinfo(bookno,bookname,bookauthor,bookprice,booktype) values(?,?,?,?,?),sql_nts); if (ret=sql_success|ret=sql_success_with_info) lstrcpy(char *)bookno,m_bookno); lstrcpy(char *)bookname,m_bookname); lstrcpy(char *)bookauthor,m_bookauthor); bookprice=m

20、_bookprice; lstrcpy(char *)booktype,m_booktype); ret=sqlbindparameter(serverhstmt,1,sql_param_input,sql_c_char,sql_char,len,0,bookno,0,&cbbookno); ret=sqlbindparameter(serverhstmt,2,sql_param_input,sql_c_char,sql_char,len,- - 0,bookname,0,&cbbookname); ret=sqlbindparameter(serverhstmt,3,sql_

21、param_input,sql_c_char,sql_char,len,0,bookauthor,0,&cbbookauthor); ret=sqlbindparameter(serverhstmt,4,sql_param_input,sql_c_char,sql_char, sizeof (float),0,&bookprice,0,&cbbookprice); ret=sqlbindparameter(serverhstmt,5,sql_param_input,sql_c_char,sql_char,len,0,booktype,0,&cbbooktype); / 处理结果集并执行预编译后的语句ret=sqlexecute(serverhstmt); onok(); 七. 参考文献1 数据库系统原理李建中主编电子工业出版社2 数据库系统概论杨开英主编武汉理工大学出版社3 数据库原理与应用张冬青主编中国轻工业出版社4 数据库应用张晓华主编重庆大学出版社八.设计感想刚开始设计这个数据信息管理系统时候对他的定位是一个小型的书店管理系统,其规模也就是个人开设的书店,软件开发完后使用者是店主,同时店主也是收银员,管理职员和办理会员。店主即系统管理员。但后来思考的深入,考虑细节的过多,不知不觉中偏离了这个定位,后面将会说明设计功能机构框图时参考了同学的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论