Sql_server数据库课程设计_图书馆管理系统

合集下载

《数据库》课程设计报告--图书借阅管理系统的设计与实现

《数据库》课程设计报告--图书借阅管理系统的设计与实现

《SQL Server数据库课程设计》题目:图书借阅管理系统的设计与实现院、系:计算机信息与技术系学科专业:软件工程学号: B10060XXX ___学生姓名: XXXX指导教师:XX2012年06月目录引言1第一章需求分析1一、功能需求1二、数据需求2第二章概要设计2一、系统设计目标2二、系统功能设计2三、开发工具的选择3第三章详细设计5一。

实体E—R图5二. 表的设计6三.界面设计7第四章软件实现21一、登录实现21二、图书管理21三、图书借阅21四、图书查询21五、图书增加21第五章软件测试21一、测试方案21二、测试项目21三、测试项目及测试内容21四、测试用例21五、评价22第六章课程设计总结24参考文献25引言随着社会的发展,人们对知识的需求也不断地增长。

在这种形势下,书籍就渐渐地成为人们获取并增长知识的主要途径,而图书馆就自然而然地在人们的生活中占据了一定的位置,如何科学地管理图书馆不但关系到读者求知的方便程度,也关系到图书馆的发展,因此,开发一套完善的图书馆管理系统就势在必行.图书馆在正常运营中总是面对大量的读者信息、书籍信息以及两者相互作用产生的借书信息、还书信息。

本软件针对图书馆的业务范围及工作特点,设计了图书查询、新增图书、图书借阅书以及图书归还等5个子系统,这5个子系统包括了图书馆的主要业务,可以全面实现对图书馆采购、编目、检索、统计和流通等业务的计算机管理,使图书馆管理水平和业务水平跃上一个新的台阶。

应用本系统可以在计算机上灵活、方便地管理图书,从而大大的提高了处理速率,使管理更加现代化。

本系统是根据实际情况和具体内容,按照一定的要求,科学、合理的进行系统分析、设计,具体包括画面设计、数据输入、查询、新增、删除等设计。

从而使本系统完全能满足经济性、灵活性、系统性及可靠性的要求。

本系统的实现的主要功能有:图书馆图书的查询、新书的入库、图书的借阅和归还等等功能,是一个基本可以满足借阅者和图书馆管理人员的需要的数据库。

Sql_server数据库课程设计_图书馆管理系统

Sql_server数据库课程设计_图书馆管理系统

数据库课程设计设计选题:图书管理系统系别信息工程系专业计算机网络技术班级 01姓名马斌龙学号 0137姓名王贤宽学号 0137姓名黄晓辉学号 0140指导老师2011年12月29日一.系统需求分析图书管理工作繁琐,借阅频繁,包含大量的信息数据,因此就需要一个完善的图书管理系统来实现对这些数据的有效管理。

本系统主要任务就是对图书、读者、借阅信息、查询进行统一管理,满足各类用户的需求。

本系统在功能上要实现借阅图书、续借图书、归还图书、催还图书、信息查询等功能。

二.数据库分析图书管理系统就是要求图书管理人员通过该系统对图书、读者、借阅信息等进行统一管理,从而实现功能上的借阅图书、续借图书、归还图书、催还图书以及信息查询。

这就要求管理人员能够对数据库进行熟练操作而简单的表查询、触发器的建立、存储过程的建立以及用户自定义函数的建立等等这些管理数据库的方法都能对图书馆里系统的管理起到事半功倍的效果。

四、前后与后台连接示意图五、图书馆管理系统功能算法实现前台算法实现主界面<!DOCTYPE html PUBLIC "-">图书信息查询</a><br /> <br /><a href=".\">读者信息查询</a><br /><br /><a href=".\">借还信息记录</a></span></body></html>图书信息<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" ""> <html xmlns="" ><head runat="server"><title>无标题页</title></head><body><form id="form1" runat="server"><div style="text-align: center"><asp:Label ID="Label1" runat="server" Text="书名"></asp:Label><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br /><asp:Button ID="Button1" runat="server" OnClick="Button1_Click1" Text="查询" /><br /><asp:GridView ID="GridView1" runat="server" OnSelectedIndexChanged="GridView1_SelectedIndexChanged"></asp:GridView></div></form></body></html>读者信息<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" ""> <html xmlns="" ><head id="Head1" runat="server"><title>无标题页</title></head><body><form id="form1" runat="server"><div style="text-align: center"><asp:Label ID="Label1" runat="server" Text="姓名"></asp:Label><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br /><asp:Button ID="Button1" runat="server" OnClick="Button1_Click1" Text="查询" /><br /><asp:GridView ID="GridView1" runat="server" OnSelectedIndexChanged="GridView1_SelectedIndexChanged"></asp:GridView></div></form></body></html>借还信息表<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Transitional//EN" ""> <html xmlns="" ><head runat="server"><title>无标题页</title></head><body><form id="form1" runat="server"><div></div></form></body></html>添加图书using System;using ;using ;using ;using partial class add : protected void Button1_Click1(object sender, EventArgs e){string s1, s2, s3;s1 = ;s2 = ;s3 = ;string str = "server=WINKS80;database=图书管理系统;integrated security=true";SqlConnection con = new SqlConnection(str);SqlCommand com = new SqlCommand();try{= con;= "insert 图书信息表 values ('" + s1 + "','" + s2 + "','" + s3 + "')";();();();("插入成功");}catch (Exception a1){("插入失败");}finally{();}}删除图书protected void Button3_Click(object sender, EventArgs e){string s4;s4 = ;string str = "server=WINKS80;database=图书管理系统;integrated security=true";SqlConnection con = new SqlConnection(str);SqlCommand com = new SqlCommand();try{= con;= "delete 图书信息表 where bname = '" + s4 + "'"; ();();();("删除成功");}catch (Exception a1){("删除失败");}finally{();}}}添加读者using partial class manger : protected void Button1_Click(object sender, EventArgs e){string s1, s2, s3;s1 = ;s2 = ;s3 = ;string str = "server=WINKS80;database=图书管理系统;integrated security=true";SqlConnection con = new SqlConnection(str);SqlCommand com = new SqlCommand();try{= con;= "insert 读者信息表 values ('" + s1 + "','" + s2 + "','" + s3 + "')";();();();("添加成功");}catch (Exception a1) {("添加失败");}finally{();}}删除读者、using System;using ;using ;using ;using protected void Button2_Click(object sender, EventArgs e){string s4;s4 = ;string str = "server=WINKS80;database=图书管理系统;integrated security=true";SqlConnection con = new SqlConnection(str);SqlCommand com = new SqlCommand();try{= con;= "delete 读者信息表 where rname = '" + s4 + "'"; ();();();("删除成功");}catch (Exception a1) {("删除失败");}finally{();}}}后台算法实现创建数据库 (图书管理系统)create database 图书管理系统创建图书信息表create table 图书信息表( bid char(10) not null primary key, bname nvarchar(15) not null,bkind varchar(8) not null)创建读者信息表create table 读者信息表( rid char(10) not null primary key, rname nvarchar(15) not null,rkind varchar(8) not null)创建借还书信息表create table 借还书信息表( recordid bigint identity(1,1) not null primary key,bid char(10) foreign key references 图书信息表(bid),btimes bigint not null,retime smalldatetime not null,bstat bit not null)六.实训心得通过本次的课程设计,我清楚的感觉SQL的重要性。

数据库课程设计——图书管理系统

数据库课程设计——图书管理系统

借阅管理模块
实现图书的借阅、归还和 续借功能,记录借阅历史 和当前借阅状态。
系统管理模块
实现用户管理、权限管理 、日志管理等功能,保障 系统的安全性和稳定性。
04
系统实现
开发环境搭建
开发工具
Visual Studio Code、MySQL Workbench
运行环境
Windows 10、MySQL 5.7
息。
借阅数据
包括借阅编号、读者 编号、图书编号、借 阅日期、归还日期等
信息。
系统用户数据
包括用户编号、用户 名、密码、角色和权
限等信息。
性能需求
响应时间
01
系统响应时间应小于2秒。
并发用户数
02
系统应支持至少100个并发用户。
数据备份与恢复
03
系统应具备定期自动备份和手动备份功能,同时能够在需要时
数据库课程设计— —图书管理系统
2024-01-09
目录
• 引言 • 系统需求分析 • 系统设计 • 系统实现 • 系统测试与优化 • 课程设计总结与展望
01
引言
课程设计目的
01 掌握数据库设计的基本步骤和方法
通过课程设计,使学生熟悉数据库设计的流程, 包括需求分析、概念设计、逻辑设计、物理设计 等阶段,并掌握各个阶段的主要任务和方法。
模块实现
图书管理模块
实现图书的录入、修改、删除等功能 ,提供对图书信息的全面管理。
借阅管理模块
实现图书的借阅、归还等功能,记录 借阅历史,方便管理员和读者查看。
读者管理模块
实现读者的注册、登录、个人信息管 理等功能,提供对读者信息的全面管 理。
系统管理模块
实现用户权限管理、系统日志查看等 功能,保障系统的安全性和稳定性。

Sql_server数据库课程设计_图书馆管理系统

Sql_server数据库课程设计_图书馆管理系统

数据库课程设计设计选题:图书管理系统系别信息工程系专业计算机网络技术班级 2010022201姓名马斌龙学号 201002220137姓名王贤宽学号 201002220137姓名黄晓辉学号 201002220140指导老师2011年12月29日一.系统需求分析图书管理工作繁琐,借阅频繁,包含大量的信息数据,因此就需要一个完善的图书管理系统来实现对这些数据的有效管理。

本系统主要任务就是对图书、读者、借阅信息、查询进行统一管理,满足各类用户的需求。

本系统在功能上要实现借阅图书、续借图书、归还图书、催还图书、信息查询等功能。

二.数据库分析图书管理系统就是要求图书管理人员通过该系统对图书、读者、借阅信息等进行统一管理,从而实现功能上的借阅图书、续借图书、归还图书、催还图书以及信息查询。

这就要求管理人员能够对数据库进行熟练操作而简单的表查询、触发器的建立、存储过程的建立以及用户自定义函数的建立等等这些管理数据库的方法都能对图书馆里系统的管理起到事半功倍的效果。

五、图书馆管理系统功能算法实现5.1 前台算法实现5.1.1 主界面<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml" ><head><title>欢迎使用图书管理系统</title></head><body style="text-align: center"><span style="font-size: 24pt"><br /><br /><br /><a href=".\book.aspx">图书信息查询</a><br /><br /><a href=".\reader.aspx">读者信息查询</a><br /><br /><a href=".\record.aspx">借还信息记录</a></span></body></html>5.1.2 图书信息<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="/1999/xhtml" ><head runat="server"><title>无标题页</title></head><body><form id="form1" runat="server"><div style="text-align: center"><asp:Label ID="Label1" runat="server" Text="书名"></asp:Label><asp:TextBox ID="TextBox1"runat="server"></asp:TextBox><br /><asp:Button ID="Button1" runat="server"OnClick="Button1_Click1" Text="查询" /><br /><asp:GridView ID="GridView1" runat="server" OnSelectedIndexChanged="GridView1_SelectedIndexChanged"></asp:GridView></div></form></body></html>5.1.3 读者信息<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="/1999/xhtml" ><head id="Head1" runat="server"><title>无标题页</title></head><body><form id="form1" runat="server"><div style="text-align: center"><asp:Label ID="Label1" runat="server" Text="姓名"></asp:Label><asp:TextBox ID="TextBox1"runat="server"></asp:TextBox><br /><asp:Button ID="Button1" runat="server"OnClick="Button1_Click1" Text="查询" /><br /><asp:GridView ID="GridView1" runat="server" OnSelectedIndexChanged="GridView1_SelectedIndexChanged"></asp:GridView></div></form></body></html>5.1.4 借还信息表<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="/1999/xhtml" ><head runat="server"><title>无标题页</title></head><body><form id="form1" runat="server"><div></div></form></body></html>5.1.5添加图书using System;using System.Data;using System.Data.SqlClient;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class add : System.Web.UI.Page{protected void Button1_Click1(object sender, EventArgs e) {string s1, s2, s3;s1 = TextBox1.Text;s2 = TextBox2.Text;s3 = TextBox3.Text;string str = "server=WINKS80;database=图书管理系统;integrated security=true";SqlConnection con = new SqlConnection(str);SqlCommand com = new SqlCommand();try{com.Connection = con;mandText = "insert 图书信息表 values ('" + s1 + "','" + s2 + "','" + s3 + "')";con.Open();com.ExecuteNonQuery();con.Close();Response.Write("插入成功");}catch (Exception a1){Response.Write("插入失败");}finally{con.Close();}}5.1.6 删除图书protected void Button3_Click(object sender, EventArgs e){string s4;s4 = TextBox4.Text;string str = "server=WINKS80;database=图书管理系统;integrated security=true";SqlConnection con = new SqlConnection(str);SqlCommand com = new SqlCommand();try{com.Connection = con;mandText = "delete 图书信息表where bname = '" + s4 + "'";con.Open();com.ExecuteNonQuery();con.Close();Response.Write("删除成功");}catch (Exception a1){Response.Write("删除失败");}finally{con.Close();}}}5.1.7添加读者using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class manger : System.Web.UI.Page{protected void Button1_Click(object sender, EventArgs e) {string s1, s2, s3;s1 = TextBox1.Text;s2 = TextBox2.Text;s3 = TextBox3.Text;string str = "server=WINKS80;database=图书管理系统;integrated security=true";SqlConnection con = new SqlConnection(str);SqlCommand com = new SqlCommand();try{com.Connection = con;mandText = "insert 读者信息表 values ('" + s1 + "','" + s2 + "','" + s3 + "')";con.Open();com.ExecuteNonQuery();con.Close();Response.Write("添加成功");}catch (Exception a1){Response.Write("添加失败");}finally{con.Close();}}5.1.7删除读者、using System;using System.Data;using System.Data.SqlClient;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;protected void Button2_Click(object sender, EventArgs e){string s4;s4 = TextBox4.Text;string str = "server=WINKS80;database=图书管理系统;integrated security=true";SqlConnection con = new SqlConnection(str);SqlCommand com = new SqlCommand();try{com.Connection = con;mandText = "delete 读者信息表where rname = '" + s4 + "'";con.Open();com.ExecuteNonQuery();con.Close();Response.Write("删除成功");}catch (Exception a1){Response.Write("删除失败");}finally{con.Close();}}}5.2后台算法实现5.2.1 创建数据库(图书管理系统)create database 图书管理系统5.2.2 创建图书信息表create table 图书信息表( bid char(10) not null primary key,bname nvarchar(15) not null,bkind varchar(8) not null)5.2.3 创建读者信息表create table 读者信息表( rid char(10) not null primary key,rname nvarchar(15) not null,rkind varchar(8) not null)5.2.4 创建借还书信息表create table 借还书信息表( recordid bigint identity(1,1) not null primary key,bid char(10) foreign key references 图书信息表(bid),btimes bigint not null,retime smalldatetime not null,bstat bit not null)六.实训心得通过本次的课程设计,我清楚的感觉SQL的重要性。

SQLServer课程设计——图书馆管理系统

SQLServer课程设计——图书馆管理系统

一、题目描述本数据库的名字叫做图书馆管理系统数据库,主要是用来存储和修改图书馆中包括图书、图书类型、借阅者重要资料。

二、需求分析随着图书馆规模的不断扩大,图书数量也相应的增加,有关图书的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致图书馆管理上的混乱,人力与物力过多浪费,图书馆管理费用的增加,从而使图书馆的负担过重,影响整个图书馆的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的图书管理系统,对图书资料进行集中统一的管理。

另一方面,IT产业和Internet获得了飞速发展,计算机应用已渗透到了各个领域,引起信息管理的革命,实现了信息的自动化处理,提高了处理的及时性和正确性。

提高图书管理工作效率,作到信息的规范管理,科学统计和快速查询,让图书馆更好的为学校,社会服务。

三、数据库中各表结构的清单3.1数据库中各表主要有:3.1.1图书表:3.1.2图书类别表:3.1.3借阅表:3.1.4借阅卡表:3.2数据间的联系:1.图书表<--图书类型表2.借阅者表<-->借阅者身份表3.图书表---借阅者表3.3数据操作:添加、删减元组、修改相应属性的数据。

#include<stdio.h>#include<string.h>#include<conio.h>#include<stdlib.h>#include<ctype.h>#define STACK_INIT_SIZE 10#define OK 1#define TRUE 1#define FALSE 0#define ERROR 0struct student /*定义学生类型,用于存放借出的书籍*/{int carnum;char lendbook[10];}student[1000];struct employ /*定义职工类型*/{int employnum;char employname[15];int employage;char employsex[2];char employleve[10];long int employtage;}employ[50];struct book /*定义书的类型*/{int booknum;char bookname[10];char bookcreat[10];int turefalse; /*用于借书和还书模块判断一本书是否借出的条件*/}book[1000];struct car /*借书卡的数据类型*/{int carnum;char studentname[10];int studentclass;}car[100];huanbook() /*还书函数*/{FILE *fp,*fp2; /*定义两个文件指针,fp2用于修改数据时设立临时文件用,防止数据遭破坏*/int i,n;int carnum;char lendbook[10];printf("请你输入你的卡号\n");scanf("%d",&carnum);fp=fopen("car.txt","r"); /*读取卡号记录*/for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++) /*for循环判断卡号是否存在*/{if(car[i].carnum==carnum) /*卡号存在,进入下一循环*/{n=i;fclose(fp);printf("请输入你要还的书的名字\n");scanf("%s",lendbook);fp=fopen("record.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) /*判断是否借阅了输入的书*/{if(strcmp(student[i].lendbook,lendbook)==0) /*借阅了该书,进入下一循环,否则出错显示*/{fclose(fp);fp=fopen("record.txt","r");fp2=fopen("bookl.txt","w");for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++){if(strcmp(student[i].lendbook,lendbook)==0){continue; /*删除还掉的书的借书记录*/}fwrite(&student[i],sizeof(struct student),1,fp2); /*写入原来没还的书的记录*/}fclose(fp);fclose(fp2);fp=fopen("record.txt","w");fp2=fopen("bookl.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp2)!=0;i++){fwrite(&student[i],sizeof(struct student),1,fp); /*将借书记录信息写回*/}fclose(fp);fclose(fp2);fopen("bookl.txt","w"); /*清临时文件的记录*/fclose(fp2);fp=fopen("book.txt","r");fp2=fopen("bookl.txt","w");for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++) /*将书的记录写入临时文件,防止因为修改信息破坏以前的记录*/{if(i==n){book[i].turefalse=1;fwrite(&book[i],sizeof(struct book),1,fp2); /*将还的书的原来状态设为无人借阅的*/continue;}fwrite(&book[i],sizeof(struct book),1,fp2);}fclose(fp);fclose(fp2);fp=fopen("book.txt","w");fp2=fopen("bookl.txt","r");for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++){fwrite(&book[i],sizeof(struct book),1,fp); /*将临时文件写回*/}fclose(fp);fclose(fp2);fopen("bookl.txt","w"); /*清临时文件*/fclose(fp2);printf("还书完毕,按任意键返回\n");getch();return 1;}}printf("你没有借这样的书,任意键返回\n"); /*出错提示*/fclose(fp);getch();return 0;}}printf("系统没这样的卡,和管理员联系,按任意键返回\n"); /*出错提示*/fclose(fp);getch();}findbook(){FILE *fp;char bookname[10];int ture,i;fp=fopen("book.txt","r");printf("请输入你要查找的书名\n");scanf("%s",bookname);for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++){if(strcmp(bookname,book[i].bookname)==0){if(book[i].turefalse==1){printf("这本书的详细资料是:%d %s %s 此书现在无人借阅\n按任意键返回\n",book[i].booknum,book[i].bookname,book[i].bookcreat);}else {printf("这本书已经有人借出\n");fclose(fp);return 0;}fclose(fp);return FALSE;}}printf("没有你要查询的书籍\n");fclose(fp);return FALSE;}findbook1(){FILE *fp;char bookcreat[10];int ture,i;fp=fopen("book.txt","r");printf("请输入你要查找的作者名\n");scanf("%s",bookcreat);for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++){if(strcmp(bookcreat,book[i].bookcreat)==0){if(book[i].turefalse==1){printf("这本书的详细资料是:%d %s %s 此书现在无人借阅\n按任意键返回\n",book[i].booknum,book[i].bookname,book[i].bookcreat);}else {printf("这本书已经有人借出\n");fclose(fp);return 0;}fclose(fp);return FALSE;}}printf("没有你要查询的书籍\n");fclose(fp);return FALSE;}lendcount(){FILE *fp;int i,n=0;fp=fopen("record.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++){printf("卡号:%d 借出的书籍:%s \n",student[i].carnum,student[i].lendbook);n=n+1;}fclose(fp);printf("目前共有%d本书借出\n",n);printf("按任意键\n");getch();return n;}chabook(){char ch5;do{printf("---------------欢迎进入图书查询系统!--------------\n");printf(" 1:<按书名查找>\n");printf(" 2:<按作者查找>\n");printf(" 0:<返回>\n");printf("请输入0--2,其他输入非法!\n");scanf("%s",&ch5);switch(ch5){case '1':findbook();getch();break;case '2':findbook1();getch();break;case '0':break;default:printf("无此操作\n");getch();break;}}while(ch5!='0');return FALSE;}lendbook(){FILE *fp,*fp2;int i,n;int carnum;printf("请你输入你的卡号\n");scanf("%d",&carnum);fp=fopen("car.txt","r");for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++){if(car[i].carnum==carnum){n=i;fclose(fp);printf("请输入你要借阅的书的名字\n");scanf("%s",student[n].lendbook);fp=fopen("book.txt","r");for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++){if(strcmp(book[i].bookname,student[n].lendbook)==0){if(book[i].turefalse==0) {printf("对不起,此书有人借出,请借其他书\n");fclose(fp);getch();return;}elsefclose(fp);fp=fopen("record.txt","a+");student[n].carnum=carnum;fwrite(&student[n],sizeof(struct student),1,fp);fclose(fp);fp=fopen("book.txt","r");fp2=fopen("bookl.txt","w");for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++){if(strcmp(book[i].bookname,student[n].lendbook)==0){book[i].turefalse=0;fwrite(&book[i],sizeof(struct book),1,fp2);continue;}fwrite(&book[i],sizeof(struct book),1,fp2);fclose(fp);fclose(fp2);fp=fopen("book.txt","w");fp2=fopen("bookl.txt","r");for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++){fwrite(&book[i],sizeof(struct book),1,fp);}fclose(fp);fclose(fp2);fopen("bookl.txt","w");fclose(fp2);printf("借书完毕,按任意键返回\n");getch();return;}}printf("不存在这样的书,任意键返回\n");fclose(fp);getch();return;}}printf("你的卡号不存在,请申请新卡,按任意键返回\n");fclose(fp);getch();}carcount(){FILE *fp;int i,n=0;fp=fopen("car.txt","r");for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++){printf("第%d张卡<卡号:%d 姓名:%s 班级:%d>\n",i+1,car[i].carnum,car[i].studentname,car[i].studentclass);n=n+1;}fclose(fp);printf("目前共有%d本书\n",n);printf("按任意键\n");}delcar(){FILE *fp,*fp2;int i;int carnum;char choice;fp=fopen("car.txt","r");fp2=fopen("bookl.txt","w");printf("请输入你要删除的卡号\n");printf("如果你输入的卡号存在,系统自动删除该信息!如果不存在,系统不做任何改动\n");scanf("%d",&carnum);for(i=0;fread(&car[i],sizeof(struct car),1,fp)!=0;i++){if(car[i].carnum!=carnum){fwrite(&car[i],sizeof(struct car),1,fp2);}}fclose(fp);fclose(fp2);printf("是否真的要删除该卡?删除后该书籍的所有信息将无法恢复《Y/N》\n"); scanf("%s",&choice);if(choice=='y'||choice=='Y'){fp=fopen("car.txt","w");fp2=fopen("bookl.txt","r");for(i=0;fread(&car[i],sizeof(struct car),1,fp2)!=0;i++){fwrite(&car[i],sizeof(struct car),1,fp);}fclose(fp);fclose(fp2);fp2=fopen("bookl.txt","w");fclose(fp2);printf("按任意键返回\n");getch();return;}else{printf("按任意键返回\n");getch();return;}}addcar(){FILE *fp;int i=0;fp=fopen("car.txt","a+");printf("请你输入卡号\n");scanf("%d",&car[i].carnum);printf("请你输入学生姓名\n");scanf("%s",car[i].studentname);printf("请你输入班级\n");scanf("%d",&car[i].studentclass);fwrite(&car[i],sizeof(struct car),1,fp);fclose(fp);printf("输入完毕,任意键返回\n");getch();}changemploy(){FILE *fp,*fp2;char employname[10],choice;int i;fp=fopen("employ.txt","r");fp2=fopen("bookl.txt","w");printf("请你输入要修改的职工的名字\n");scanf("%s",employname);for(i=0;fread(&employ[i],sizeof(struct employ),1,fp)!=0;i++){if(strcmp(employ[i].employname,employname)==0){printf("你所要修改的职工的资料如下,请选择你要修改的内容\n");printf("<职工号:%d职工名:%s 年龄:%d 性别:%s 学历:%s 工资:%d>\n",employ[i].employnum,employ[i].employname,employ[i].employag e,employ[i].employsex,employ[i].employleve,employ[i].employtage);printf("2:修改职工名\n");printf("3:修改职工年龄\n");printf("4:修改职工工资\n");printf("5:修改职工学历\n");printf("请输入1-5:");scanf("%s",&choice);switch(choice){case '1':{printf("请输入新的职工号\n");scanf("%d",&employ[i].employnum);fwrite(&employ[i],sizeof(struct employ),1,fp2);}break;case '2':{printf("请输入新的职工姓名\n");scanf("%s",employ[i].employname);fwrite(&employ[i],sizeof(struct employ),1,fp2);}break;case '3':{printf("请输入新的年龄\n");scanf("%d",&employ[i].employage);fwrite(&employ[i],sizeof(struct employ),1,fp2);}break;case '4':{printf("请输入新的职工工资\n");scanf("%d",&employ[i].employtage);fwrite(&employ[i],sizeof(struct employ),1,fp2);}break;case '5':{printf("请输入新的职工学历\n");scanf("%s",employ[i].employleve);fwrite(&employ[i],sizeof(struct employ),1,fp2);}default:printf("没有这样的操作");break;}continue;}fwrite(&employ[i],sizeof(struct employ),1,fp2); }fclose(fp);fclose(fp2);fp=fopen("employ.txt","w");fp2=fopen("bookl.txt","r");for(i=0;fread(&employ[i],sizeof(struct employ),1,fp2)!=0;i++){fwrite(&employ[i],sizeof(struct employ),1,fp);}fclose(fp);fclose(fp2);fp2=fopen("bookl.txt","w");fclose(fp2);printf("按任意键返回\n");getchar();return;}delemploy(){FILE *fp,*fp2;int i;char employname[10],choice;fp=fopen("employ.txt","r");fp2=fopen("bookl.txt","w");printf("请输入你要删除的职工名\n");printf("如果你输入的职工存在,系统自动删除该信息!如果不存在,系统不做任何改动\n");scanf("%s",employname);for(i=0;fread(&employ[i],sizeof(struct employ),1,fp)!=0;i++){if(strcmp(employname,employ[i].employname)!=0){fwrite(&employ[i],sizeof(struct employ),1,fp2);}}fclose(fp);fclose(fp2);printf("是否真的要删除该职工信息?删除后的所有信息将无法恢复《Y/N》\n"); scanf("%s",&choice);if(choice=='y'||choice=='Y'){fp=fopen("employ.txt","w");fp2=fopen("bookl.txt","r");for(i=0;fread(&employ[i],sizeof(struct employ),1,fp2)!=0;i++){fwrite(&employ[i],sizeof(struct employ),1,fp);}fclose(fp);fclose(fp2);fp2=fopen("bookl.txt","w");fclose(fp2);printf("按任意键返回\n");getch();return TRUE;}else{printf("按任意键返回\n");getch();return FALSE;}}employcount(){FILE *fp;int i,n=0;fp=fopen("employ.txt","r");for(i=0;fread(&employ[i],sizeof(struct employ),1,fp)!=0;i++){printf("第%d职工的信息如下:\n<职工号:%d 职工名:%s 年龄:%d 性别:%s 学历:%s 工资:%d>\n",n+1,employ[i].employnum,employ[i].employname,employ[i].emplo yage,employ[i].employsex,employ[i].employleve,employ[i].employtage);n++;}fclose(fp);printf("目前共有%d个职工\n",n);printf("按任意键返回\n");}addemploy(){FILE *fp;char choice='y';int i=1;fp=fopen("employ.txt","a+");while(choice=='y'||choice=='Y'){printf("请你输入职工号码\n");scanf("%d",&employ[i].employnum);printf("请你输入职工名\n");scanf("%s",employ[i].employname);printf("请输入职工年龄\n");scanf("%d",&employ[i].employage);printf("请你输入性别\n");scanf("%s",employ[i].employsex);printf("请你输入职工的学历水平\n");scanf("%s",employ[i].employleve);printf("请输入职工的工资\n");scanf("%d",&employ[i].employtage);fwrite(&employ[i],sizeof(struct employ),1,fp);printf("是否要输入下个职工信息?\n");scanf("%s",&choice);}printf("按任意键返回\n");fclose(fp);}addbook(){FILE *fp;int i=0;char choice='y';fp=fopen("book.txt","a+");while(choice=='y'||choice=='Y'){printf("请你输入第%d本书的序号\n",i+1);scanf("%d",&book[i].booknum);printf("请你输入书名\n");scanf("%s",book[i].bookname);printf("请你输入书的作者\n");scanf("%s",book[i].bookcreat);printf("请设为1或0,1代表书还没人借,0表示书已经借出,设其他值,程序运行时无法得出正常结果\n");printf("请你设定书的状态\n");scanf("%d",&book[i].turefalse);fwrite(&book[i],sizeof(struct book),1,fp);printf("是否要输入下本书\n");scanf("%s",&choice);}fclose(fp);}bookcount(){FILE *fp;int i,n=0;fp=fopen("book.txt","r");for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++){if(book[i].booknum!=0&&strlen(book[i].bookname)!=0&&strlen(book[i].bookcre at)!=0){printf("第%d本书<序号:%d 书名:%s 作者:%s 状态:%d>\n",i+1,book[i].booknum,book[i].bookname,book[i].bookcreat,book[i].t urefalse);n=n+1;}}fclose(fp);printf("目前共有%d本书\n",n);printf("按任意键\n");}delbook(){FILE *fp,*fp2;int i;char bookname[10],choice;fp=fopen("book.txt","r");fp2=fopen("bookl.txt","w");printf("请输入你要删除的书名\n");printf("如果你输入的书名存在,系统自动删除该信息!如果不存在,系统不做任何改动\n");scanf("%s",bookname);for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++){if(strcmp(bookname,book[i].bookname)!=0){fwrite(&book[i],sizeof(struct book),1,fp2);}}fclose(fp);fclose(fp2);printf("是否真的要删除该书籍?删除后该书籍的所有信息将无法恢复《Y/N》\n"); scanf("%s",&choice);if(choice=='y'||choice=='Y'){fp=fopen("book.txt","w");fp2=fopen("bookl.txt","r");for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++){fwrite(&book[i],sizeof(struct book),1,fp);}fclose(fp);fclose(fp2);fp2=fopen("bookl.txt","w");fclose(fp2);printf("按任意键返回\n");getch();return;}else{printf("按任意键返回\n");getch();return;}}changebook(){FILE *fp,*fp2;char bookname[10],choice;int i;fp=fopen("book.txt","r");fp2=fopen("bookl.txt","w");printf("请你输入要修改的书籍的书字\n");scanf("%s",bookname);for(i=0;fread(&book[i],sizeof(struct book),1,fp)!=0;i++){if(strcmp(book[i].bookname,bookname)==0){printf("你所要修改的书的资料如下,请选择你要修改的内容\n");printf("序号:〈%d〉书名:〈%s〉作者:〈%s〉\n",book[i].booknum,book[i].bookname,book[i].bookcreat);printf("1:修改书的序号\n");printf("2:修改书名\n");printf("3:修改作者\n");printf("请输入1-3:");scanf("%s",&choice);switch(choice){case '1':{printf("请输入新的序号\n");scanf("%d",&book[i].booknum);fwrite(&book[i],sizeof(struct book),1,fp2);}break;case '2':{printf("请输入新的书名\n");scanf("%s",book[i].bookname);fwrite(&book[i],sizeof(struct book),1,fp2);}break;case '3':{printf("请输入新的作者\n");scanf("%s",book[i].bookcreat);fwrite(&book[i],sizeof(struct book),1,fp2);}break;defaut:printf("没有这样的操作");break;}continue;}fwrite(&book[i],sizeof(struct book),1,fp2);}fclose(fp);fclose(fp2);fp=fopen("book.txt","w");fp2=fopen("bookl.txt","r");for(i=0;fread(&book[i],sizeof(struct book),1,fp2)!=0;i++){fwrite(&book[i],sizeof(struct book),1,fp);}fclose(fp2);fp2=fopen("bookl.txt","w");fclose(fp2);printf("按任意键返回\n");getchar();return;}main(){char ch1,ch2,ch3,ch4,ch5;do{printf("\t\t请你选择操作类型:\n");printf(" 1:<查阅图书>\n");printf(" 2:<借阅图书>\n");printf(" 3:<管理系统>\n");printf(" 4:<还书>\n");printf(" 0:<退出>\n");printf("请输入0--4\n");scanf("%s",&ch1);switch(ch1){case '1':chabook();break;case '2':lendbook();;break;case '3':{do{printf("---------------欢迎进入管理系统!--------------\n");printf(" 1:<增加图书>\n");printf(" 2:<删除图书>\n");printf(" 3:<修改图书资料>\n");printf(" 4:<书籍统计>\n");printf(" 5:<职工管理系统>\n");printf(" 6:<学生管理系统>\n");printf(" 0:<返回>\n");printf("请输入0--6,其他输入非法!\n");scanf("%s",&ch2);switch(ch2){case '1':addbook();break;case '2':delbook();break;case '3':changebook();break;case '4':bookcount();getch();break;case '5':{do{printf("---------------欢迎进入职工管理系统!--------------\n");printf(" 1:<增加员工>\n");printf(" 2:<删除员工>\n");printf(" 3:<修改员工资料>\n");printf(" 4:<员工统计>\n");printf(" 0:<返回>\n");printf("请输入0--4,其他输入非法!\n");scanf("%s",&ch3);switch(ch3){case '1':addemploy();getch();break;case '2':delemploy();break;case '3':changemploy();break;case '4':employcount();getch();break;case '0':break;default:printf("无此操作\n");getch();break;}}while(ch3!='0');}break;case '6':{do{printf("---------------欢迎进入学生管理系统!--------------\n");printf(" 1:<申请新卡>\n");printf(" 2:<删除卡号>\n");printf(" 3:<借书统计>\n");printf(" 4:<卡号统计>\n");printf(" 0:<返回>\n");printf("请输入0--4,其他输入非法!\n");scanf("%s",&ch4);switch(ch4){case '1':addcar();break;case '2':delcar();break;case '3':lendcount();break;case '4':carcount();break;case '0':break;default:printf("无此操作\n");getch();break;}}while(ch4!='0');}break;case '0':break;default:printf("无此操作\n");getch();break;}}while(ch2!='0');}break;case '4':huanbook();break;case '0':break;default:printf("无此操作\n");getch();break;}}while(ch1!='0');}五.各部分功能介绍图书馆借阅系统实现的功能主要有:1. 图书信息的管理,包括分类,图书编号,书名,出版社,作者,单价及数量,此项可查阅图书信息。

Sql_server数据库课程设计_图书馆管理系统

Sql_server数据库课程设计_图书馆管理系统

数据库课程设计设计选题:图书管理系统系别信息工程系专业计算机网络技术班级2010022201姓名马斌龙学号201002220137姓名王贤宽学号201002220137姓名黄晓辉学号201002220140页脚内容I指导老师2011年12月29日一.系统需求分析图书管理工作繁琐,借阅频繁,包含大量的信息数据,因此就需要一个完善的图书管理系统来实现对这些数据的有效管理。

本系统主要任务就是对图书、读者、借阅信息、查询进行统一管理,满足各类用户的需求。

本系统在功能上要实现借阅图书、续借图书、归还图书、催还图书、信息查询等功能。

二.数据库分析图书管理系统就是要求图书管理人员通过该系统对图书、读者、借阅信息等进行统一管理,从而实现功能上的借阅图书、续借图书、归还图书、催还图书以及信息查询。

这就要求管理人员能够对数据库进行熟练操作而简单的表查询、触发器的建立、存储过程的建立以及用户自定义函数的建立等等这些管理数据库的方法页脚内容II都能对图书馆里系统的管理起到事半功倍的效果。

页脚内容III四、前后与后台连接示意图页脚内容2五、图书馆管理系统功能算法实现5.1 前台算法实现5.1.1 主界面<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns ="/1999/xhtml" > <head ><title >欢迎使用图书管理系统</title ></head><body style ="text-align: center"><span style="font-size: 24pt"><br /><br /><br /><a href=".\book.aspx">图书信息查询</a><br /><br /><a href=".\reader.aspx">读者信息查询</a><br /><br /><a href=".\record.aspx">借还信息记录</a></span></body></html>5.1.2 图书信息<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml" ><head runat="server"><title>无标题页</title>页脚内容3</head><body><form id="form1" runat="server"><div style="text-align: center"><asp:Label ID="Label1" runat="server" Text="书名"></asp:Label><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br /><asp:Button ID="Button1" runat="server" OnClick="Button1_Click1" Text="查询" /><br /><asp:GridView ID="GridView1" runat="server" OnSelectedIndexChanged="GridView1_SelectedIndexChanged"></asp:GridView></div></form></body></html>5.1.3 读者信息页脚内容4<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml" ><head id="Head1" runat="server"><title>无标题页</title></head><body><form id="form1" runat="server"><div style="text-align: center"><asp:Label ID="Label1" runat="server" Text="姓名"></asp:Label><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br /><asp:Button ID="Button1" runat="server" OnClick="Button1_Click1" Text="查询" /><br /><asp:GridView ID="GridView1" runat="server" OnSelectedIndexChanged="GridView1_SelectedIndexChanged"></asp:GridView>页脚内容5</div></form></body></html>5.1.4 借还信息表<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="/1999/xhtml" ><head runat="server"><title>无标题页</title></head><body><form id="form1" runat="server"><div></div></form></body>页脚内容6</html>5.1.5添加图书using System;using System.Data;using System.Data.SqlClient;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class add : System.Web.UI.Page{protected void Button1_Click1(object sender, EventArgs e){string s1, s2, s3;页脚内容7s1 = TextBox1.Text;s2 = TextBox2.Text;s3 = TextBox3.Text;string str = "server=WINKS80;database=图书管理系统;integrated security=true";SqlConnection con = new SqlConnection(str);SqlCommand com = new SqlCommand();try{com.Connection = con;mandText = "insert 图书信息表values ('" + s1 + "','" + s2 + "','" + s3 + "')";con.Open();com.ExecuteNonQuery();con.Close();Response.Write("插入成功");}catch (Exception a1)页脚内容8{Response.Write("插入失败");}finally{con.Close();}}5.1.6 删除图书protected void Button3_Click(object sender, EventArgs e){string s4;s4 = TextBox4.Text;string str = "server=WINKS80;database=图书管理系统;integrated security=true";SqlConnection con = new SqlConnection(str);SqlCommand com = new SqlCommand();页脚内容9try{com.Connection = con;mandText = "delete 图书信息表where bname = '" + s4 + "'";con.Open();com.ExecuteNonQuery();con.Close();Response.Write("删除成功");}catch (Exception a1){Response.Write("删除失败");}finally{con.Close();}页脚内容10}}5.1.7添加读者using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;public partial class manger : System.Web.UI.Page{protected void Button1_Click(object sender, EventArgs e){string s1, s2, s3;s1 = TextBox1.Text;s2 = TextBox2.Text;s3 = TextBox3.Text;string str = "server=WINKS80;database=图书管理系统;integrated security=true";页脚内容11SqlConnection con = new SqlConnection(str);SqlCommand com = new SqlCommand();try{com.Connection = con;mandText = "insert 读者信息表values ('" + s1 + "','" + s2 + "','" + s3 + "')";con.Open();com.ExecuteNonQuery();con.Close();Response.Write("添加成功");}catch (Exception a1){Response.Write("添加失败");}finally页脚内容12{con.Close();}}5.1.7删除读者、using System;using System.Data;using System.Data.SqlClient;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;protected void Button2_Click(object sender, EventArgs e){页脚内容13string s4;s4 = TextBox4.Text;string str = "server=WINKS80;database=图书管理系统;integrated security=true";SqlConnection con = new SqlConnection(str);SqlCommand com = new SqlCommand();try{com.Connection = con;mandText = "delete 读者信息表where rname = '" + s4 + "'";con.Open();com.ExecuteNonQuery();con.Close();Response.Write("删除成功");}catch (Exception a1){页脚内容14Response.Write("删除失败");}finally{con.Close();}}}5.2后台算法实现5.2.1 创建数据库(图书管理系统)create database 图书管理系统5.2.2 创建图书信息表create table 图书信息表( bid char(10) not null primary key,bname nvarchar(15) not null,bkind varchar(8) not null)页脚内容155.2.3 创建读者信息表create table 读者信息表( rid char(10) not null primary key,rname nvarchar(15) not null,rkind varchar(8) not null)5.2.4 创建借还书信息表create table 借还书信息表( recordid bigint identity(1,1) not null primary key,bid char(10) foreign key references 图书信息表(bid),btimes bigint not null,retime smalldatetime not null,bstat bit not null)六.实训心得通过本次的课程设计,我清楚的感觉SQL的重要性。

《SQL-Server-数据库设计》课程设计报告(图书馆管理系统)

《SQL-Server-数据库设计》课程设计报告(图书馆管理系统)

《SQL-Server-数据库设计》课程设计报告(图书馆管理系统)目录一、系统需求分析:3系统目标3系统的功能需求4系统功能描述4二、本项目的系统设计4系统的功能分析4系统的功能模块设计5三、数据库设计5数据库需求分析:5图书馆管理流程图6图书馆管理系统实体E-R图7数据库的完整性要求7四、数据库的物理结构设计:8图书信息表8借阅表8读者信息表8读者类别表9管理员信息表9五、数据库安全设计9六、数据库的实现10创建图书信息表10创建借阅表10读者信息表11(读者类别表11管理员信息表11七、系统功能实施需要的语句12读者类别表12读者信息表13管理员信息表15借阅表16图书信息表18视图19存储过程20触发器21一、系统需求分析:A.系统目标:本系统将实现用计算机管理图书馆的功能。

具体完成图书信息管理、读者信息管理、管理员信息管理及图书借阅管理等功能。

B.系统的功能需求:本系统用户分为读者用户和管理员用户两类,管理员用户负责系统的维护,包括对图书信息、读者信息、借阅信息的录入、修改、查询、删除等。

读者用户只具有查询书籍和自己信息的权限。

管理员对读者信息进行增加、删除、查询及修改等操作。

读者只能对读者信息进行查询操作。

C.管理员信息管理。

D.图书借阅管理。

(二)图书馆管理流程图(三)图书馆管理系统实体E-R图(四)数据库的完整性要求通过各种约束,默认值,规则和触发器实现数据的完整性。

由于学生管理系统的重要性和各个数据之间的复杂相关性,保证数据的完整性很重要,不能随便删除、修改数据。

1、通过check约束保证成绩输入的正确性。

2、通过各种外键保证数据的完整性,不能随便删除数据。

外键在建表时列出(见后)。

3、通过主键保证实体的完整性。

外键在建表时列出(见后)。

4、创建触发器,保证在添加借阅信息时,自动将该借阅的书籍在馆状态改为否。

创建触发器,保证在添加借阅信息时,自动将该读者的已借数目累计加1。

也可以通过其他方法保证数据的完整性。

数据库课程设计--图书馆管理系统

数据库课程设计--图书馆管理系统

数据库课程设计--图书馆管理系统数据库系统概论课程设计设计题目:图书管理系统学院:计算机信息与科学学院专业:计算机科学与技术学号:20110514323姓名:刘静指导教师:潘林森目录1.引言 .................................. 错误!未定义书签。

2. 需求分析阶段......................... 错误!未定义书签。

2.1任务概述(目标)………………………………………..错误!未定义书签。

2.2数据需求:..................................3 概念设计阶段.......................... 错误!未定义书签。

3.1 任务与目标……………………………………….错误!未定义书签。

3.2 各阶段的结果…………………………………………3.3各E-R图中联系的属性4.逻辑设计阶段 (12)4.1逻辑设计的任务和目标 (12)4.2数据组织 (12)4.2.1将E-R图转换为关系模型 (12)4.2.2模型优化 ............................................. 错误!未定义书签。

4.3具体的基本E-R图向关系模型转化5.物理设计阶段 (15)5.1物理设计阶段的目标与任务 (15)5.2数据存储方面 (15)5.3系统功能模块 (16)5.3.1 读者基本信息的查询和更新模块 (16)5.3.2 图书基本信息的查询和更新模块 (16)6.数据库实施阶段 (17)6.1建立数据库、数据表、视图、索引 (17)6.1.1 建立数据库 (17)6.1.2 建立数据表 (17)6.1.3 建立视图 (21)6.1.4 建立索引 (23)6.1.5 建立触发器 (23)6.2数据入库............................................................. 错误!未定义书签。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

序言 (1)一、图书馆管理系统E-R 图 (2)二、图书馆管理系统功能实现示意图 (3)三、图书馆管理系统功能图例 (4)3.1 读者借阅图书 (4)3.2 读者归还图书 (4)3.3 读者续借图书 (5)3.4 读者查询借阅图书情况 (5)3.5 读者检索图书信息 (6)四、图书馆管理系统附加功能 (7)4.1 往学生表中插入列"系部",其值等于学号中代表系部的位的值,再插入列"专业号",其值等于学号中代表专业的位的值 . 74.2 查询每个学生对书本的借阅数量 (9)4.3 查询各个专业的学生借阅书本的数量 (11)五、图书馆管理系统数据库、数据表源代码......... 错误!未定义书签。

5.1 图书馆管理系统"数据库"源代码 ................ 错误!未定义书签。

5.2 图书馆管理系统"数据表"源代码 ................ 错误!未定义书签。

六、图书馆管理系统存储过程源代码..................... 错误!未定义书签。

6.1 读者借阅图书存储过程................................ 错误!未定义书签。

6.2 读者还书存储过程........................................ 错误!未定义书签。

6.3读者续借图书存储过程................................. 错误!未定义书签。

6.4 读者查询借阅图书情况存储过程................ 错误!未定义书签。

6.5 读者检索的图书信息存储过程.................... 错误!未定义书签。

七、图书馆管理系统触发器源代码......................... 错误!未定义书签。

7.1 借书要求(书本没有库存,则无法进行借书操作)错误!未定义书签。

7.2 借书要求(读者最多借阅量).................... 错误!未定义书签。

7.3 续借次数要求................................................ 错误!未定义书签。

7.4 读者还书信息插入RDeleted表................... 错误!未定义书签。

序言本图书馆管理系统谨根据实际需求所创建,创建有如下八个数据表:Book(图书信息表),Dept(学生系部信息表),Major(学生专业信息表),Student(学生信息表),StudentBook(学生借阅图书信息表),Teacher(教师信息表),TeacherBook(教师借阅图书信息表),RDeleted(读者还书信息表)等。

这些数据表结合图书馆数据库中的五个存储过程,即实现了普通图书馆的大部分功能。

如读者借阅图书功能(Execute RBorrowBook '读者号','图书分类号'),读者归还图书功能(Execute RReturnBook '读者号','图书分类号'),读者续借图书功能(Execute RRenewBook '读者号','图书分类号'),读者查询图书借阅情况功能(Execute RQueryBook '读者号'),读者检索的图书信息功能(Execute RIndexBook '关键字')等。

具体的功能表现皆在“第二章:图书馆管理系统功能”中有详细的图例说明。

本图书馆管理系统谨根据实际需要,创建了七个触发器,就此,创作者对这些触发器做如下说明:1、tri_Book 功能表现:只有在图书馆内相关书籍尚有库存的情况下,读者才可以进行借阅操作2、tri_SborrowNum 功能表现:控制学生的图书借阅量在5本以内(包括5本)3、tri_SrenewBook 功能表现:控制学生续借图书次数在3次以内(包括3次)4、tri_SreturnBook 功能表现:将学生的还书信息插入RDeleted表5、tri_TborrowNum 功能表现:控制教师的图书借阅量在10本以内(包括10本)6、tri_TrenewBook 功能表现:控制学生续借图书次数在4次以内(包括4次)7、tri_TreturnBook 功能表现:将教师的还书信息插入RDeleted表本图书馆管理系统设计思路较为肤浅,但在一定程度上实现了图书馆数据库管理系统的实用功能。

初次设计数据库,其中肯定会有不足之处,还望读者谅解!本课程设计附有“图书馆数据库管理系统的所有源代码”,您可以根据需要在“第四章节”至“第七章节”中进行查看,或查看与本课程设计处于同一目录下的 *.sql 源代码文件!一、图书馆管理系统E-R 图教师借阅图书期限较长,并且允许借阅的书本量较大。

因此,将教师借阅关系与学生借阅关系分开较为适宜。

二、图书馆管理系统功能实现示意图由于教师与学生的借阅图书、归还图书等等过程大致相同,在此,仅借学生有关表对象信息来对各存储过程作简要说明:tri_Book图书库tri_SreturnBook三、图书馆管理系统功能图例3.1 读者借阅图书Execute RBorrowBook '读者号','图书分类号'--------------读者借阅图书实例use LibrarySystemgoexec RBorrowBook T006324,'D630.3 L836'--其中T006324以T为标识,代表教师编号exec RBorrowBook S070407101,'D630.3 L836'---其中S070407101以S为标识,代表学生学号go -----结果如下:3.2 读者归还图书Execute RReturnBook '读者号','图书分类号'----------------读者归还图书实例use LibrarySystemgoexec RReturnBook T006324,'D630.3 L836'exec RReturnBook S070407101,'D630.3 L836'go -----结果如下:3.3 读者续借图书Execute RRenewBook '读者号','图书分类号' --------------读者续借图书实例use LibrarySystemgo-------读者借阅图书exec RBorrowBook T006324,'D630.3 L836' exec RBorrowBook S070407101,'D630.3 L836' gowaitfor delay '0:0:5'--------读者续借图书exec RRenewBook T006324,'D630.3 L836' exec RRenewBook S070407101,'D630.3 L836' go-----结果如下:3.4 读者查询借阅图书情况Execute RQueryBook '读者号'------------读者查询图书借阅情况实例use LibrarySystemgoexec RQueryBook T006432exec RQueryBook S070407101go-----结果如下:3.5 读者检索图书信息Execute RIndexBook '关键词' ------------读者检索图书信息实例use LibrarySystemgoexec RIndexBook 数据库go-------结果如下:四、图书馆管理系统附加功能4.1 往学生表中插入一列"系部",其值等于学号中代表系部的位的值,再插入一列"专业号",其值等于学号中代表专业的位的值---------------往学生表S中插入一列"系部",其值等于学号中代表系部的位的值use LibrarySystemgoalter table Studentadd SdeptNo char(2)godeclare @sno char(10),@total int,@i intselect @total=count(*),@i=1from Studentwhile(@i<=@total)begin------------查询数据表第@i 行数据的SQL语句select top 1 @sno=Sno from Student where Sno not in(select top(@i-1) Sno from Student)update Studentset SDeptNo=substring(@sno,4,2)where Sno=@snoset @i=@i+1endselect*from Studentgo-----------结果如下:-------------往学生表S中插入一列"专业号",其值等于学号中代表专业的位的值use LibrarySystemgoalter table Studentadd SMajorNo varchar(50)godeclare @sno char(10),@total int,@i intselect @total=count(*),@i=1from Studentwhile(@i<=@total)begin------------查询数据表第@i 行数据的SQL语句select top 1 @sno=Sno from Student where Sno not in(select top(@i-1) Sno from Student)update Studentset SMajorNo=substring(@sno,4,4)where Sno=@snoset @i=@i+1endgo-----------结果如下:4.2 查询每个学生对书本的借阅数量--查询每个学生对书本的借阅数量use LibrarySystemgoselect Student.Sno 学号,Sname 姓名,Book.ClassifyNo 图书分类号,Bname 书名from StudentBook,Student,Bookwhere Student.Sno=StudentBook.Sno andStudentBook.ClassifyNo=Book.ClassifyNoorder by Student.Snocompute count(Student.Sno)by Student.Snogo-----------结果如下:4.3 查询各个专业的学生借阅书本的数量use LibrarySystemgodeclare @tempDept table(专业编号char(4)primary key,专业varchar(30)not null,学生借阅书本数量int default 0)Insert into @tempDept(专业编号,专业) select Mno,Mname from Majordeclare @i int,@total int,@no char(10)select @total=count(*),@i=1 from StudentBookwhile(@i<@total) beginselect top1 @no=Sno from StudentBook where Sno not in(select top(@i-1) Sno from StudentBook)update @tempDeptset学生借阅书本数量=学生借阅书本数量+1where专业编号=substring(@no,4,4)set @i=@i+1endselect*from @tempDeptselect @total as学生借阅书本总量go -----------结果如下:。

相关文档
最新文档