c++ sql图书管理系统(1)
- 格式:doc
- 大小:437.00 KB
- 文档页数:23
目录目录 (I)第一章绪论 (1)1.1 传统图书管理的模式和特点 (1)1.2 图书管理的现状和趋势 (1)1.3 管理信息系统概论 (2)1.4 设计目标 (3)第二章开发工具及相应技术简介 (5)2.1 Visual C++ 简介和数据库开发技术 (5)2.1.1 Visual C++ 简介 (5)2.1.2 常用开发技术比较 (5)2.2 SQL SERVER 2000简介 (6)2.2.1 与Internet的紧密结合 (7)2.2.2 可扩展性和可用性 (7)2.2.3 简单友好的操作方式 (7)2.2.4 数据仓库支持 (7)2.3 ODBC的基本思想与体系结构 (8)2.4 客户机/服务器结构(C/S) (8)第三章需求分析 (11)3.1 可行性研究 (11)3.2 功能需求 (11)3.3 数据流图(DFD) (12)3.4 数据字典 (13)3.3.1 数据流字典 (13)3.3.2 数据存储字典: (15)3.3.3 数据处理字典: (15)第四章系统结构设计 (17)4.1 系统总体结构 (17)4.2 各功子系统功能划分 (17)第五章数据库设计 (19)5.1 数据库概论 (19)5.1.1 数据库的简介 (19)I5.1.2 数据库技术 (20)5.2.3 SQL语言基础 (22)5.3 定义系统表 (23)第六章系统的实现 (25)6.1 登陆界面 (25)6.2 超级管理员界面 (25)6.3 普通管理员界面 (26)6.4 普通读者界面 (27)6.5 用户管理界面 (27)6.6 图书管理界面 (28)6.7 图书借还界面 (28)6.8 图书查询界面 (29)第七章结论 (31)致谢 (33)参考文献 (35)II第一章绪论第一章绪论1.1 传统图书管理的模式和特点传统的图书管理模式其最大的特点是手工;首先要把买来的图书资料登记到资料本上,再给每本书分类贴上标签及制作和标签相对应的图书分类卡片,最后把图书分类卡片按类别分别放置在文件柜里。
图书管理系统流程图一、引言图书管理系统是一种用于管理图书馆馆藏图书和读者借阅信息的软件系统。
本文将通过流程图来展示图书管理系统的主要功能和流程。
二、流程图下面是一个基本的图书管理系统流程图:graph TDA[开始] --> B[登录]B --> C{是否登录成功?}C -- 是 --> D[显示主菜单]D --> E{用户选择的操作}E -- 借阅图书 --> F[验证读者信息和图书是否可借]F -- 可借阅 --> G[记录借书信息并更新库存]G --> H[显示借书成功提示]E -- 归还图书 --> I[验证读者信息和图书是否借阅]I -- 已借阅 --> J[更新借书信息和库存]J --> K[显示归还成功提示]E -- 查询图书 --> L[显示可借阅图书列表]E -- 查询借阅记录 --> M[显示读者借阅记录]E -- 退出 --> N[结束]C -- 否 --> O[显示登录失败提示]O --> BH --> EK --> E三、流程说明1.开始:系统启动时,进入初始状态。
2.登录:用户输入用户名和密码进行登录。
3.是否登录成功?:判断用户输入的用户名和密码是否正确。
–若登录成功,则进入显示主菜单步骤;–若登录失败,则返回登录步骤。
4.显示主菜单:展示用户可以选择的操作,如借阅图书、归还图书、查询图书、查询借阅记录、退出。
5.用户选择的操作:根据用户选择的操作,进行相应的处理。
–借阅图书:用户输入借阅的图书编号,系统验证读者信息和图书是否可借,若可借阅,则记录借书信息并更新库存,提示借书成功。
–归还图书:用户输入归还的图书编号,系统验证读者信息和图书是否已借阅,若已借阅,则更新借书信息和库存,提示归还成功。
–查询图书:显示可借阅的图书列表。
–查询借阅记录:显示读者的借阅记录。
–退出:结束系统运行。
图书管理系统课程设计报告⽬录第1章绪论 (2)第2章需求分析 (2)第3章总体设计 (3)第4章数据库设计 (4)§4.1 概念结构设计 (4)§4.2 逻辑结构与物理结构设计 (5)第5章详细设计 (7)第6章编码 (8)第7章测试 (14)§7.1 测试 (14)§7.2 发现错误和解决⽅法 (17)第8章设计总结 (17)学习体会(附录1) (17)致谢(附录2) (18)参考⽂献(附录3) (18)第1章绪论图书馆是信息交换和资源流通的重要媒介,对图书馆的信息化管理将⼤⼤提⾼图书资源的利⽤和信息的交换速度。
图书管理系统是通过将借阅信息以数据库的形式由⽹络传输来完成各⽤户(教师或学⽣)所要的借阅⽅⾯的需求(如借阅,归还,预订等)。
以打破传统的⼈⼯选课模式,极⼤地⽅便了使⽤⼈员和管理⼈员,节约了时间和空间,实现图书借阅⾃动化,⾃由化,使图书资源得到充分利⽤。
建⽴图书管理系统,使每个⽤户⾃由地选到⾃⼰需要的图书,避免传统借书模式的繁琐、低效率、借阅程序臃肿等等的缺点,减轻相关⼈员的负担。
本图书管理系统运⽤SQLServer2000、C++Builder等软件实现了基本的管理员登录、图书管理、读者管理、借还图书、图书查询以及信息维护等功能的图书管理系统。
第2章需求分析图书管理系统主要包括系统管理、读者管理、图书采购、图书编⽬、图书流通、统计、查询等⼀系列的功能。
1、读者管理(1).新学期建⽴新班级,删除毕业班读者。
(2).为新⽣办理新借阅证。
(3).读者管理能完成读者调动、借书证挂失、补办、停⽌借阅、单独打印读者条码等⽇常事务。
(4).读者类别可以分类,可为每⼀类读者指定借阅规则。
(5).读者可以通过管理员远程预约图书。
2、采编管理(1).有完善的采编功能,能对新采购图书可以进⾏有效采编。
(2).图书采编能对相关图书进⾏分类别号编号,借助可扩展的编⽬库减轻编⽬⼈员的⼯作。
图书管理系统功能需求经过以上详细的用户调查,在现行业务流程和数据分析的基础上,基本可以确定系统设计必须达到的目标。
以下是图书管理系统必须具备的功能:1.新进图书的登记功能:对于购进的新书,系统必须具备图书信息资料的录入功能。
2.图书的查询修改功能:当图书资料发生变化,如图书丢失或有错误信息输入时,则应能够及时对数据进行修改和补充。
3.借阅的登记,归还的登记功能:系统的主要功能之一,供本校学生借阅图书、归还图书,并进行登记。
4.学生信息的增加、删除和修改功能:系统主要功能之一,建立学生信息,并对其进行维护。
业务流程根据需求分析的得到的现行业务处理流程,在用户反复研究后,首先确定目标系统的业务流程,其处理流程如图3.1。
图书图3.1 图书管理系统的业务流程针对新的业务流程,现具体描述其功能如下:1.用户登录:系统对用户合法性进行检查。
2.图书入库:对新购进的图书分类进行编号,并把图书基本信息录入计算机。
3.图书借阅:对已入库的图书,学生可以借阅,并进行登记。
4.图书归还:对学生已归还的图书进行归还登记。
5.信息查询:即对所有图书的借阅情况,或学生的基本情况和借阅情况进行查询。
6.管理措施:定义系统规定的借阅图书超期时间、超期处罚办法和丢失赔偿办法。
系统功能模块图依据需求分析阶段得到的数据流图,采用软件工程中软件设计的概念和原理,与用户成分协商后,在保证系统基本功能要求的前提下,结合系统新的业务流程确定系统必须具备的所有功能,由此给出图书管理系统的系统功能模块图如图3.2所示。
图3.2 图书管理系统功能模块图系统的流程图依据软件工程的基本原理,综合以上分析给出系统流程图如图3.4所示。
图3.4 系统流程图程序流程图依据软件工程的基本原理,详细设计阶段的根本任务是确定应该怎样具体实现所要求的系统,也就是说,经过这个阶段的设计工作,应该得出对目标系统的精确描述,从而在系统实现阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。
1. 系统安装1.2。
1 安装准备(1)确认系统硬、软件配置满足相应要求,打开计算机。
(2)以系统管理员或有类似权限的用户注册进入网络。
1。
2。
2 系统安装(1)打开安装盘文件夹如下图所示:(3)安装服务器首先安装MS—Sqlserver 在安装Sqlserver时应该注意:安装时的认证方式应该为【混合模式认证】默认的sa密码为空,或任意,或goldlibgdlis,(注:2000系统要把support文件夹里面的,这是数据访问插件,客户端也要安装,安装完之后一定要重启电脑。
)(4)点击【Setup.exe】进入安装界面,如下图:选择【安装金盘系统服务器】出现如图:点击【下一步】进入以下界面如下图:选中进入下一个界面如下图:选择安装目录,默认的是【C:\Program Files\金盘图书馆集成管理系统】点击【下一步】进入以下界面如下图:点击【下一步】进入以下界面如下图:点击【下一步】进入以下界面如下图:装好之后,用最新版本的Gdlis。
exe替换原来的主程序,方法:复制最新版本的Gdlis.exe,然后在桌面图标按右键,选择属性,打开后选“查找目标”,打开金盘软件程序安装的文件夹,粘贴,覆盖原来的主程序。
1。
2.3 系统完之后,点桌面的,会出现点击【确定】,在服务器名处输入服务器的IP或计算机名,选择SQL认证,输入连接SQL 数据库的帐号和密码即可。
如图所示(服务器的IP是192.168.1.6),帐号是默认的sa,点击【确定】,进入主界面,用1号代码进去,密码也是1,(1号为系统管理员,拥有最高权限)如图:1。
2。
4 客户端系统安装点击【Setup.exe】进入安装界面,如下图,选者“安装金盘工作站”安装步骤如上, 装好之后,用最新版本的Gdlis.exe替换原来的主程序,方法:复制最新版本的Gdlis.exe,然后在桌面图标按右键,选择属性,打开后选“查找目标",打开金盘软件程序安装的文件夹,粘贴,覆盖原来的主程序.安装完之后,双击桌面的快捷图标,会出现点击【确定】,在服务器名处输入服务器的IP或计算机名,选择SQL认证,输入连接SQL 数据库的帐号和密码即可。
图书管理系统程序设计图书管理系统是图书馆日常工作中不可或缺的一部分,它通过计算机技术实现对图书的自动化管理,提高图书馆的管理效率和服务质量。
下面将详细介绍图书管理系统的程序设计。
系统需求分析在设计图书管理系统之前,首先要进行需求分析,明确系统需要实现的功能。
一般来说,一个基本的图书管理系统应包括以下几个功能模块:1. 用户管理:包括用户注册、登录、权限分配等。
2. 图书管理:包括图书的添加、删除、修改和查询。
3. 借阅管理:实现图书的借出、归还、续借等功能。
4. 查询统计:提供图书查询、借阅记录查询、逾期统计等。
5. 系统维护:包括数据备份、恢复、系统设置等。
系统设计1. 系统架构:通常采用B/S(浏览器/服务器)架构,用户通过浏览器访问系统。
2. 数据库设计:数据库是图书管理系统的核心,需要设计合理的数据表结构,如用户表、图书表、借阅记录表等。
3. 用户界面设计:界面应简洁明了,操作方便,提供良好的用户体验。
技术选型1. 前端技术:HTML、CSS、JavaScript,可能还会使用框架如React或Vue.js。
2. 后端技术:Java、Python、Node.js等,根据开发团队熟悉度选择。
3. 数据库技术:MySQL、PostgreSQL、SQLite等关系型数据库。
功能实现1. 用户管理- 用户注册:收集用户信息,如用户名、密码、邮箱等,并存储到数据库。
- 用户登录:验证用户信息,提供登录服务。
- 权限控制:根据用户角色分配不同的操作权限。
2. 图书管理- 图书录入:允许管理员添加新图书信息,包括书名、作者、ISBN、出版社等。
- 图书修改:提供图书信息的更新功能。
- 图书删除:允许管理员从系统中移除不再需要的图书记录。
- 图书查询:提供多种查询方式,如按书名、作者、ISBN等。
3. 借阅管理- 借书操作:记录用户借阅的图书信息,包括借阅日期和预计归还日期。
- 还书操作:更新图书的借阅状态,记录归还日期。
第六章三、设计题1.一个图书管理系统中有如下信息。
图书:书号、书名、数量、位置借书人:借书证号、姓名、单位出版社:出版社名、邮编、地址、电话、E-mail其中约定:任何人可以借多种书,任何一种书可以被多个人借,借书和还书时,要登记相应的借书日期和还书日期;一个出版社可以出版多种书籍,同一本书仅为一个出版社所出版,出版社名具有唯一性。
根据以上情况,完成如下设计。
(1)设计该系统的E-R图。
(2)将E-R图转换为关系模式。
(3)指出转换后的每个关系模式的主码。
关系模式及主码图书(书号,书名,数量,位置,出版社名)借书人(借书证号,姓名,单位)出版社(出版社名,邮编,地址,电话,E-mail)2.图6-26(a)、(b)和(c)给出某企业管理系统三个不同的局部E-R图,将其合成一个全局E-R图,并设置各个实体以及联系的属性(允许增加必要的属性,也可将实体的属性改为联系的属性)。
(a ) (b ) (c ) 图6-26 局部E-R 图各实体的属性如下。
部门:部门号、部门名、电话、地址职员:职员号、职员名、职务、年龄、性别设备:设备号、名称、规格、价格零件:零件号、名称、规格、价格3.经过需求分析可知,某医院病房计算机管理系统中需要管理以下信息。
科室:科室名、科室地址、科室电话、医生姓名病房:病房号、床位号、所属科室医生:工作证号、姓名、性别、出生日期、联系电话、职称、所属科室名病人:病历号、姓名、性别、出生日期、诊断记录、主管医生、病房号其中,一个科室有多个病房、多名医生,一个病房只属于一个科室,一个医生只属于一个科室,但可负责多个病人的诊治,一个病人的主管医生只有一个。
根据以上需求分析的情况,完成以下有关的设计。
(1)画出该计算机管理系统中有关信息的E-R 图。
(2)将该E-R 图转换为对应的关系模式。
(3)指出转换以后的各关系模式的范式等级和对应的候选码。
科室(科室名,科室地址,科室电话)病房(病房号,床位号,科室名)医生(工作证号,姓名,性别,出生日期,联系电话,职称,科室名)病人(病历号,姓名,性别,出生日期,诊断记录,主管医生,病房号)4. 排课是教学环节中的重要过程,该过程包括以下实体。
//本电信学渣的大一小学期作业做的不好请见谅/*一、图书管理系统1.新书入库:图书信息包括书名,书号,库存量,现存量(库存量减去借走的图书)共4项.首先输入3本书的信息,并将其存数组book中.当有新书入库时,先判断数组中是否有此书(即比较书名或书号),若有则修改库存量,现存量的信息;若无此书,则将该书的信息添加到数组中,并将其库存量设为-1,将其标专为下次要购入的图书。
2.图书查询:(1)输入一个书号,在文件中查找此书,若找到则输出此书的全部信息;若找不到则输出查找失败的信息。
(2)查询所有要购入的图书的书名和书号。
3.借阅管理(1)每个读者的信息包括姓名,编号,借阅图书1,借阅图书2,借阅图书3,输入3个读者的信息并存入数组reader中.(2)借书登记:输入读者的姓名及所借图书的书号,先判断姓名是否在读者数组中,若有则将书号存入reader数组中,同时修改book数组中此书的现存量.若reader数组中无此姓名,则应提示错误。
(3)还书管理:输入读者的姓名,所还图书的书号,修改reader数组和book数组中相应的项。
4.输出全部图书信息和全部读者信息。
5.退出系统。
*/#include <stdio.h>#include <string.h>void zzdz();//读者注册void shuru();//新书注册void shuchu();//图书总数统计void shanchu();//删除书籍void find(); //书籍查找void borrow();//借书管理void repay(); //还书管理void scdzxx(); //读者统计//定义结构体类型struct s{char no[10];char name[10];};//定义结构体数组struct s book[50];struct i{char js[3][10],js1[10],js2[10],js3[10];char name[10],no[10];};//定义结构体数组struct i reader[50];int bzongshu=0,bxianshu=0,rzongshu=0;int n=0,m=0;int main(){int chioce=-1,xxx; //一级选项,二级选项printf("***************图书馆管理系统******************\n");while(chioce!=0){ //一级选项循环printf("请选择:\n图书管理请按1\n读者管理请按2\n退出请按0(否则将留在本层)\n请输入"); //输入提示scanf("%d",&chioce); //输入选项图书读者xxx=-1; //重置二级选项if(chioce==1){ //1为图书printf("您选择了图书管理\n");while(xxx!=0){ //二级选项循环printf("\n\n继续选择:\n"); //选printf("增加书目请按1\n"); //项printf("删除书目请按2\n"); //提printf("查询书目请按3\n"); //示printf("统计书目请按4\n"); //printf("返回上层请按0(否则将留在本层)\n");scanf("%d",&xxx);switch(xxx){case 1:shuru(); break; //新书注册case 2:shanchu(); break;//删除书籍case 3:find();break; //书籍查找case 4:shuchu();break; //图书总数统计case 0:printf("返回上层\n");break;//返回一级选项default:printf("输入错误");break;//报错}}}else{if(chioce==2){printf("\n\n您选择了读者管理\n");while(xxx!=0){printf("\n\n继续选择:\n");printf("注册读者请按1\n");printf("借阅系统2\n");printf("还书系统3\n");printf("读者统计4\n");printf("返回上层请按0(否则将留在本层)\n");printf("本馆共有读者%d人\n",rzongshu);scanf("%d",&xxx);switch(xxx){case 1:zzdz();break; //读者注册case 2:borrow();break;//借阅管理case 3:repay();break;//还书管理case 4:scdzxx();break;//读者统计case 0:printf("返回上层\n");break;default:printf("输入错误");break;//报错}}}else{if(chioce==0){printf("\n\n");break;}printf("\n\n选择错误,请重新选择\n");scanf("%d",&chioce);}}}printf("\n\n***************已退出,谢谢使用****************\n"); return 0;}//增加函数void shuru(){int j,i,geshu;printf("\n\n输入需要增加书目的个数:");scanf("%d",&geshu);for(i=bzongshu;i<(bzongshu+geshu);i++){printf("输入书号");scanf("%s",book[i].no);printf("输入书名");scanf("%s",book[i].name);}printf("结束输入;");n=n+geshu;bzongshu=bzongshu+geshu;bxianshu=bxianshu+geshu;}//输出数据void shuchu(){int i;for(i=0;i<n;i++){printf("书号:%s ",book[i].no);printf("书名:%s\n",book[i].name);}printf("共有%d本书\n现有%d本书\n",bzongshu,bxianshu); }//删除数据void shanchu(){int i,j,r=0,chxxx;char a[10];printf("删除选项:\n1:通过书号进行删除\n2:通过书名进行\n");scanf("%d",&chxxx);if(chxxx==1){printf("输入需要查询的书号:");scanf("%s",a);for(i=0;i<n;i++){if((strcmp(a,book[i].no))==0){for(;i<n;i++){strcpy(book[i].no,book[i+1].no);strcpy(book[i].name,book[i+1].name);i++;}n--;(bzongshu)--;(bxianshu)--;}}}else{if(chxxx==2){printf("输入需要查询的书名:");scanf("%s",a);for(i=0;i<n;i++){if((strcmp(a,book[i].name))==0){printf("书号:%s\n",book[i].no);printf("书名:%s\n",book[i].name);r++;}}}else{printf("输入错误");}}if(r==0) printf("无此书\n");return;}//查询数据void find() //strcmp{int i,j,r=0,chxxx;char a[10];printf("查询选项:\n1:书号查询\n2:书名查询\n");scanf("%d",&chxxx);if(chxxx==1){printf("输入需要查询的书号:");scanf("%s",a);for(i=0;i<n;i++){if((strcmp(a,book[i].no))==0){printf("书号:%s\n",book[i].no);printf("书名:%s\n",book[i].name);r++;}}}else{if(chxxx==2){printf("输入需要查询的书名:");scanf("%s",a);for(i=0;i<n;i++){if((strcmp(a,book[i].name))==0){printf("书号:%s\n",book[i].no);printf("书名:%s\n",book[i].name);r++;}}}else{printf("输入错误");}}if(r==0) printf("无此书\n");return;}//输入读者信息void zzdz(){int i,geshu;printf("输入需要注册的个数:");scanf("%d",&geshu);for(i=rzongshu;i<(rzongshu+geshu);i++){printf("输入读者号");scanf("%s",reader[i].no);printf("输入读者名");scanf("%s",reader[i].name);}m=m+geshu;rzongshu=m;printf("共有%d个读者\n",rzongshu);}//借阅管理void borrow(){int i,j,k,zdz=0,zs=0,z;char a[10],b[10],q[10];printf("您已进入借阅管理\n");printf("输入要求借书的读者姓名:\n");scanf("%s",a);for(i=0;i<rzongshu;i++){if((strcmp(a,reader[i].name))==0){printf("该读者存在,请输入要借阅图书的书号(3本)\n");for(j=1;j<=3;j++){zdz++;printf("输入要借的书号");scanf("%s",b);for(k=0;k<bzongshu;k++){if((strcmp(b,book[k].no))==0){printf("该书存在,借阅成功\n");bxianshu--;*(reader[i].js[j])=*(book[k].no);zs=1;}}if(zs==0){printf("无此书,将返回上层菜单\n");break;}}}}if(zdz==0){printf("该读者不存在,将返回上层选择菜单");}return;}//还书管理void repay(){int i,j,k,zdz=0,zs=0;char a[10],b[10];printf("您已进入还书管理\n");printf("输入要求还书的读者姓名:\n");scanf("%s",a);for(i=0;i<rzongshu;i++){if((strcmp(a,reader[i].name))==0){printf("该读者存在,请输入要归还图书的书号(3本)\n");for(j=1;j<=3;j++){zdz++;printf("输入要还的书号");scanf("%s",b);for(k=0;k<bzongshu;k++){if((strcmp(b,reader[i].js[j]))==0){printf("该书存在,还书成功\n");bxianshu++;*(reader[i].js[j])=' ';zs=1;}}if(zs==0){printf("无此书,将返回上层菜单\n");return;}}}}if(zdz==0){printf("该读者不存在,将返回上层选择菜单");}return;}//输出读者信息void scdzxx(){int i;for(i=0;i<rzongshu;i++){printf("读者号:%s\n",reader[i].no);printf("读者姓名:%s\n",reader[i].name);printf("借书1的书号:%s\n",reader[i].js[1]);printf("借书2的书号:%s\n",reader[i].js[2]);printf("借书3的书号:%S\n\n\n",reader[i].js[3]);}return;}。
目录1 前言 (1)2 需求分析 (1)2.1 课程设计目的 (1)2.2 课程设计任务 (1)2.3 设计环境 (2)2.4 开发语言 (2)3 分析和设计 (2)3.1 系统E-R模型 (5)3.2 表空间及表的设计 (6)3.3 视图设计 (14)3.4 存储过程、函数、包的设计 (15)3.5 触发器设计 (22)3.6 角色、用户、权限设计 (24)3.7 备份方案设计 (25)4 课程设计总结 (27)参考文献 (28)致谢 (28)1 前言一个简单的图书管理系统包括图书馆内书籍的信息、学校在校师生的信息以及师生的借阅信息。
此系统功能面向图书馆管理员,可以完成书籍和读者的增加、删除和修改,制定借阅规则,以及对读者借阅、续借、归还、预约的确认。
2 需求分析2.1 课程设计目的通过专业课程设计Ⅱ,即大型数据库系统课程设计,有助于培养学生综合运用数据库相关知识解决实际问题的能力。
本设计要求对实际问题进行需求分析,提炼实际问题中的数据,建立关系模型,并在大型数据库中得以实现。
同时要求对数据库的运营、管理及使用上进行必要的规划和实现。
2.2 课程设计任务(1)图书信息:包括图书编号、图书名称、所属类别等;(2)读者信息:包括读者编码、姓名、性别、专业等;(3)借还书信息:包括图书当前状态、被借还次数、借阅时间等。
基本要求:(1)根据需求,补充必要的数据库实体,建立ER模型,通过ER图表示。
(2)在Oracle中创建该系统的数据库,并在数据库中实现各表,写入一定的数据。
(3)从实际查询应用出发,为一些主要的应用模块设计至少3个参数化视图。
(4)从数据检验的角度出发,为相关的表建立至少1个触发器。
(5)从数据更新或修改的角度出发,设计至少1个存储过程。
(6)从安全的角度出发,规划系统的角色、用户、权限,并通过相关的SQL实现。
(7)预计每个表的大致容量和增长速度,指定备份的方案,写出相关的备份命令。
电子商务数据库技术课程设计报告 题目: 图书管理系统院 系:专业班级:学 号:学生姓名:指导教师:说 明1、内容要求:整个课程设计分为五部分,分别为需求分析,数据库系统设计,数据库详细设计,数据库实现和应用程序的设计与实现。
每部分按要求完成设计任务,并将结果体现在报告中。
2、排版:一级标题四号字,宋体,加粗,段前段后0.5行;二级标题小四号字,宋体,加粗,行距20磅;正文小四号字,宋体,行距20磅;参考文献五号字,宋体,行距20磅;。
采用A4纸打印,页面设置:上、下2.54厘米,左、右3.17厘米,左侧两钉装订。
页码从第一部分设计内容开始,居中标注。
参考文献等以附录形式出现。
2、成绩评定:每部分的完成情况分别为15分,报告说明的清晰度和排版等15分,创新性10分。
一、系统功能需求:1)图书馆借阅书籍于归还书籍的登记。
也就是为读者建立一个台账,应用该台账,工作人员能方便地掌握某位读者借了哪些书,借了多长时间。
2)编著催还图书通知单。
图书馆对所借书籍的最长借阅时间限制为60天,对逾期未还的读者下达催还图书通知单,促其尽快还书,以加快图书的流通。
3)提供快速的图书查询功能,方便读者尽快插大所需要的书。
4)系统提供的全部功能要简单、直观、实用。
二、系统数据库关系的E —R 图:系统所涉及到的实体及关联关系比较简单,主要的实体只有读者和图书两个,他们通过读者的借阅活动而发生联系,其E—R 图如下:三、系统设计:1、功能设计:1) 图书借阅。
为有借书证的读者办理借阅登记,登记的内容包括借书证编号、图书编号、借阅日期。
2)图书归还。
在适当位置登记,这个适当位置应该由借书证编号和图书编号决定。
3)编制催还图书通知单。
对借阅图书超过60天者打印催还图书通知单,其内容包括借书证编号、读者姓名、电话号码、图书编号、名称、作者、出版社、借阅日期等信息。
4)借书证办理与退还。
本系统只提供对借书证发放(办理)和回收(退还)两个过程的支持。
图书管理系统(VC++与SQL SERVER) 一.数据库设计 一共4张表:管理员基本信息表,图书信息表,借阅卡信息表,借书信息表 管理员信息表 字段名称 数据类型 可否为空 约束条件 用户名 Varchar(50) NOT NULL 主键 密码 Varchar(50) NOT NULL 无 图书信息表 字段名称 数据类型 可否为空 约束条件 书籍ID Varchar(50) NOT NULL 主键 书名 Varchar(50) NOT NULL 无 作者 Varchar(50) NOT NULL 无 出版社 Varchar(50) NOT NULL 无 单价 Float(8) NOT NULL 无 入库时间 Datetime(8) NOT NULL 无 总量 Int(4) NOT NULL 无 现存量 Int(4) NOT NULL 无 借阅卡信息表 字段名称 数据类型 可否为空 约束条件 借阅卡ID Varchar(50) NOT NULL 主键 姓名 Varchar(50) NOT NULL 无 性别 Varchar(50) NOT NULL 无 出生日期 Datetime(8) NOT NULL 无 地址 Varchar(50) NOT NULL 无 身份证号码 Varchar(50) NOT NULL 无 电话号码 Varchar(50) NOT NULL 无 现借书总量 Int(4) NOT NULL 无 借书信息表 字段名称 数据类型 可否为空 约束条件 借书ID Varchar(50) NOT NULL 主键 借阅卡ID Varchar(50) NOT NULL 外键(借阅信息表) 书籍ID Varchar(50) NOT NULL 外键(图书信息表) 借出时间 Dateime(8) NOT NULL 无
二.新建数据库用户的登陆和数据源的连接 1.打开企业管理器,新建一个数据库,命名为图书管理。按照上面四张表格建立四张表。在安全性目录下创建一个新登陆用户,用户名为zhang 密码为123,并设定允许该用户访问图书管理数据库。 2.打开管理工具中的数据源(ODBC),添加SQL SERVER数据源命名为Library,服务器 为Local,使用数据库用户登陆。 3.点击测试是否成功,如果测试成功则点确定。 三.工程框架设计 1.将应用程序类型设定为基于对话框的应用程序。设定工程名称为LibraryDBS。 2.将主对话框的ID改为ID_DIALOG_LIBRARYDBS,标题改为“图书馆管理系统”。 主对话框布局如图
书籍管理控件列表 控件类型 ID 属性 变量或者函数 组框 IDC_STATIC 书籍管理 无 按钮 IDC_BUTTON_BOOK_IN 新书入库 OnButtonBookIn() 按钮 IDC_BUTTON_BORROW_RETURN 借书/还书 OnButtonBorrowReturn() 按钮 IDC_BUTTON_BOOK_LOST 书籍挂失 OnButtonBookLost() 按钮 IDC_BUTTON_BOOK_CHECK 图书信息查询 OnButtonBookCheck() 按钮 IDC_BUTTON_BORROW_CHECK 借书信息查询 OnButtonBorrowCheck() 借阅卡管理控件列表 控件类型 ID 属性 变量或者函数 组框 IDC_STATIC 借阅卡管理 无 按钮 IDC_BUTTON_NEW_PROOF 办理借阅卡 OnButtonNewProof() 按钮 IDC_BUTTON_PROOF_CHECK 借阅卡信息查询 OnButtonProofCheck() 按钮 IDC_BUTTON_PROOF_LOST 借阅卡挂失 OnButtonProofLost() 系统管理控件列表 控件类型 ID 属性 变量或者函数 组框 IDC_STATIC 系统管理 无 按钮 IDC_BUTTON_ADD_USER 注册管理员 OnButtonAddUser() 按钮 IDC_BUTTON_MOD_PASSWORD 修改密码 OnButtonModPassword() 按钮 IDOK 退出 无 3.总的工程设计一共分为5个部分:管理员的登陆,书籍的入库、查询和挂失,借阅卡的办理、查询和挂失,管理员的注册和密码的修改,借书和还书的办理。 第一部分 管理员的登陆 1.添加一个对话框,对话框的类名为CLoginDlg,资源ID为IDD_DIALOG_LOGIN,对话框名称为“登陆图书管理系统” 2.登陆对话框如图
对话框控件列表: 控件类型 ID 属性 变量或者函数 静态文本 IDC_STATIC 登陆图书管理系统 无 静态文本 IDC_STATIC 用户名 无 编辑框 IDC_EDIT_USER 无 CString类型变量m_strUser 静态文本 IDC_STATIC 密码 无 编辑框 IDC_EDIT_PASSWORD 无 CString类型变量m_strPassword 按钮 IDOK 登陆 OnOK() 按钮 IDCANCLE 退出 无 3.部分程序代码 在主对话框创建前先创建登陆对话框,在BOOL CLibDBSDlg::OnInitDialog()中添加代码 BOOL CLibDBSDlg::OnInitDialog() { … CLoginDlg dlg; m_login=1; dlg.m_login=&m_login; dlg.DoModal(); if(m_login) { CDialog::OnOK(); } … } 实现登陆成功的部分代码,在void CLoginDlg::OnOK()中添加代码 void CLoginDlg::OnOK() { // TODO: Add extra validation here UpdateData(); if(m_strUser==""||m_strPassword=="") { MessageBox("请填写用户名和密码!","登陆图书管理系统"); m_strUser.Empty(); m_strPassword.Empty(); UpdateData(FALSE); return; } if(!m_database.IsOpen()) { if(!m_database.Open(_T("Library"))) { MessageBox("连接数据库失败!","数据库连接"); return; } } CLoginSet *m_pset=new CLoginSet(&m_database); CString strSQL; strSQL.Format("select * from 管理员信息表 where 用户名='%s' AND 密码='%s'",m_strUser,m_strPassword); m_pset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); if(!m_pset->GetRecordCount()) { if(count<5) { MessageBox("对不起,你输入的用户名和密码不正确!","图书管理系统"); count++; m_strUser.Empty(); m_strPassword.Empty(); UpdateData(FALSE); } else { m_database.Close(); MessageBox("你的登陆失败超过5次,请与管理员联系!","图书管理系统"); OnCancel(); } } else { m_database.Close(); *m_login=0; CDialog::OnOK(); } } 第二部分 书籍的入库,查询和挂失 书籍入库 1. 添加一个对话框,对话框的类名为CNewBookInDlg,资源ID为IDD_DIALOG_NEW_BOOK_IN,对话框名称为“新书入库” 2. 新书入库对话框如图
对话框控件列表 控件类型 ID 属性 变量或者函数 静态文本 IDC_STATIC 书号 无 编辑框 IDC_EDIT_BOOK_NO 无 CString类型变量m_strBookNo 静态文本 IDC_STATIC 书名 无 编辑框 IDC_EDIT_BOOK_NAME 无 CString类型变量m_strBookName 静态文本 IDC_STATIC 作者 无 编辑框 IDC_EDIT_WRITER 无 CString类型变量m_strWriter 静态文本 IDC_STATIC 单价 无 编辑框 IDC_EDIT_PRICE 无 double类型变量m_dPrice 静态文本 IDC_STATIC 出版社 无 编辑框 IDC_EDIT_PRESS 无 CString类型变量m_strPress 静态文本 IDC_STATIC 总量 无 编辑框 IDC_EDIT_TOTAL 无 Long类型变量m_lTotal 静态文本 IDC_STATIC 现存量 无 编辑框 IDC_EDIT_NOW 无 Long类型变量m_lNow 按钮 IDC_BUTTON_BOOK_IN 入库 OnButtonBookIn() 按钮 IDC_BUTTON_BACK 返回 OnButtonBack() 3.实现书籍入库功能在void CNewBookInDlg::OnButtonBookIn()添加代码 void CNewBookInDlg::OnButtonBookIn() { // TODO: Add your control notification handler code here UpdateData(); if(m_strBookNo.Compare("")==0)