图书馆管理系统课程设计报告(2010年6月)
图书馆管理系统课设报告
山西大学工程学院课程设计报告书题目图书馆管理系统系别专业班级姓名指导教师指导教师评语目录一.引言 (3)二. 需求分析阶段 (4)2.1 引言 (4)2.2 需求分析阶段的目标与任务 (4)2.2.1处理对象 (4)2.2.3.安全性和完整性要求 (5)2.3 需求分析阶段成果 (5)三.概念设计阶段 (6)3.1 引言 (6)3.2 任务与目标 (6)3.3 阶段结果 (7)四.逻辑设计阶段 (8)4.1逻辑设计的任务和目标 (8)4.2数据组织 (8)4.2.1将E-R图转换为关系模型 (8)4.2.2用户子模式定义 (9)4.3数据处理 (10)五.物理设计阶段 (11)5.1物理设计阶段的目标与任务 (11)5.2数据存储方面 (11)六.数据库实施阶段 (12)6.1建立数据库、数据表、视图、索引 (12)6.1.1 建立数据库 (12)6.1.2 建立数据表 (12)6.1.3 建立视图 (14)6.1.4 建立索引 (14)6.1.5 建立触发器 (15)6.2数据入库 (15)七.系统调试和测试 (15)八.实习心得 (15)一.引言随着社会信息量的与日俱增,职场竞争的日趋激烈,越来越多的人更关注知识的积累、能力的培养。
作为信息存储的主要媒体之一图书,数量、规模比以往任何时候都大的多,不论个人还是图书管理部门都需要使用方便而有效的方式来管理自己的书籍。
在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。
对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,为了便于图书资料的管理需要有效的图书管理软件。
对于日益扩大的图书馆,查找特定的书目总是借阅者或工作人员劳神费力,有时还没有结果。
因此往往是投入了大量的人力和财力却得不到高效的管理效率。
为了缩短借阅者的等待时间,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效、智能化管理,从而达到提高图书借阅信息管理效率的目的,采用数据库技术生成的图书馆借阅管理系统将会极大地方便借阅者并简化图书馆管理人员和工作人员的劳动,使工作人员从繁忙、复杂的工作进入到一个简单、高效的工作中。
图书管理信息系统——课程设计报告
目录第一章概述................................................................................................................................................ 错误!未定义书签。
第二章系统需求与设计 ........................................................................................................................... 错误!未定义书签。
2.1 系统目标与需求.......................................................................................................................... 错误!未定义书签。
2.2 系统业务分析............................................................................................................................... 错误!未定义书签。
2.3 系统流程分析............................................................................................................................... 错误!未定义书签。
第三章系统设计......................................................................................................................................... 错误!未定义书签。
图书馆管理系统课程设计报告
目录第一章课程设计目的与要求 (2)1.1课程设计目的 (2)1.2课程设计环境 (2)1.3课程设计内容和要求 (2)第二章课程设计内容 (3)2.1数据库设计 (3)2.1.1需求分析 (3)2.1.2概念设计 (4)2.1.3逻辑设计 (5)2.1.4物理设计 (6)2.1.5数据库实现 (6)2.2程序设计 (2)2.2.1系统流程图 (2)2.2.2数据库存储过程 (3)第三章课程设计总结 (8)参考文献 (8)第一章课程设计目的与要求1.1课程设计目的1、掌握运用数据库原理进行系统分析和设计的方法;2、掌握关系数据库的设计方法;3、掌握利用SQL Server 2000技术;4、掌握应用程序对数据库的访问方法。
1.2课程设计环境硬件:计算机一台。
软件: Windows XP、SQL Server 2000、Microsoft Visual Basic 6.01.3课程设计内容和要求一、内容1.要求根据数据库原理,按照数据库系统设计的步骤和规范,完成各阶段的设计内容。
2.需求分析具体实现3.在sql server2000 上实现设计的数据库模型。
4.对应用程序进行概要设计。
5.用VB实现简单的调用。
二、要求课程设计过程中,要严格遵守课程设计的时间安排,听从指导教师的指导。
正确地完成上述内容,规范完整地撰写出课程设计报告。
第二章课程设计内容2.1数据库设计图书管理系统主要设计目的是利用数据库软件编制一个管理软件,用以实现图书、读者以和日常工作等多项管理。
同时对整个系统的分析、设计过程给出一个完整论证。
图书管理系统是一种基于集中统一规划的数据库数据管理新模式。
在对图书、读者的管理,其实是对图书、读者数据的管理。
本系统的建成无疑会为管理者对图书管理系统提供极大的帮助。
2.1.1需求分析数据需求需求分析是指准确了解和分析用户的需求,这是最困难、最费时、最复杂的一步,但也是最重要的一步。
它决定了以后各步设计的速度和质量。
图书管理系统课程设计报告
管理信息系统课程设计设计内容:学生班级:学生姓名:学号:班内序号:设计日期:一、课设目的通过对图书管理信息系统的系统分析、系统设计、编码和调试等工作的实践,了解管理信息系统的一般设计方法和实现思路,深入了解数据库设计的基本理论及方法。
二、系统功能框图该系统主要由四大功能模块组成:用户登录、图书管理、用户管理和借阅查询。
各大功能模块又由一些子功能模块构成,其功能框图如下。
三、数据库结构1、读者类别表(ReaderType)2、读者信息表(Reader)3、图书信息表(Book)4、借阅信息表(Borrow)四、功能模块图书管理用户管理借阅查询五、界面设计1、登入窗口2、图书管理窗口3、用户管理窗口4、系统管理窗口5、借阅信息窗口6、图书借阅窗口7、还书窗口8、个人信息修改窗口六、实现代码1、登入代码int right=1;QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");QString strDatabaseName=QString("DRIVER={SQLServer};SERVER=TERRY;Database=book;uid=tt;pwd=123");db.setDatabaseName(strDatabaseName);db.setPort(1433);bool ok=db.open();if(ok){QSqlQuery query;query.exec(tr("select 用户编号,用户姓名,用户密码,用户类别 from users"));if (!query.isActive()){QMessageBox tempMsgBox(QMessageBox::Warning,tr("查找用户失败!"),stError().text(),QMessageBox::Ok);tempMsgBox.exec();}else{while(query.next()){this->rid=query.value(0).toString();QString name=query.value(1).toString();QString passward=query.value(2).toString();this->type=query.value(3).toString();if(this->lineEdit0->text()==name&&this->lineEdit1->text()==passw ard){right=0;if(type=="1"){managesystem *w1=new managesystem;w1->rid=this->rid;w1->type=this->type;w1->show();this->close();}else if(type=="2"){manageusers *w2=new manageusers;w2->rid=this->rid;w2->type=this->type;w2->show();this->close();}else if(type=="3"){managebooks *w3=new managebooks;w3->rid=this->rid;w3->type=this->type;w3->show();this->close();}else{reader *w4=new reader;w4->rid=this->rid;w4->type=this->type;w4->show();this->close();}}}if(right){QMessageBox tempMsgBox(QMessageBox::Warning,tr("消息"),tr("用户名或密码错误,请重新输入!"),QMessageBox::Ok);tempMsgBox.exec();}else{QMessageBoxtempMsgBox(QMessageBox::Information,tr("消息"),tr("欢迎进入图书管理系统!"),QMessageBox::Ok); tempMsgBox.exec();}}}else{QMessageBox tempMsgBox(QMessageBox::Warning,tr("消息"),tr("数据库连接错误,请重新连接!"),QMessageBox::Ok); tempMsgBox.exec();}2、添加图书代码//构造sql添加语句QString sqlString(tr("insert into books(图书编号,书名,作者,出版社,出版日期,分类名,语言,页数,价格,入馆日期,内容简介,是否在馆)"));sqlString.append(QString("values('")+this->lineEdit0->text()+ QString("',"));sqlString.append(QString("'")+this->lineEdit1->text()+QString ("',"));sqlString.append(QString("'")+this->lineEdit2->text()+QString ("',"));sqlString.append(QString("'")+this->lineEdit3->text()+QString ("',"));sqlString.append(QString("'")+this->lineEdit4->text()+QString ("',"));sqlString.append(QString("'")+this->lineEdit5->text()+QString ("',"));sqlString.append(QString("'")+this->lineEdit6->text()+QString ("',"));sqlString.append(QString("'")+this->lineEdit7->text()+QString ("',"));sqlString.append(QString("'")+this->lineEdit8->text()+QString ("',"));sqlString.append(QString("'")+this->lineEdit9->text()+QString ("',"));sqlString.append(QString("'")+this->lineEdit10->text()+QStrin g("',"))sqlString.append(QString("'")+this->lineEdit11->text()+QStrin g("')"))//执行添加QSqlQuery query;query.exec(sqlString);//显示QSqlTableModel *model=new QSqlTableModel;model->setTable("books");model->select();this->tableView->setModel(model);//判断添加是否成功if (!query.isActive()){QMessageBox tempMsgBox(QMessageBox::Warning,tr("添加失败"),stError().text(),QMessageBox::Ok);tempMsgBox.exec();}else{QMessageBox tempMsgBox(QMessageBox::Information,tr("消息"),tr("添加成功!"),QMessageBox::Ok);tempMsgBox.exec();}3、删除图书代码//构造sql删除语句QString sqlString(tr("delete from books where 图书编号='")); sqlString.append(this->lineEdit0->text()+QString("'"));QSqlQuery query;query.exec(sqlString);//显示QSqlTableModel *model=new QSqlTableModel;model->setTable("books");model->select();this->tableView->setModel(model);//判断删除是否成功if(!query.isActive()){QMessageBox tempMsgBox(QMessageBox::Warning,tr("删除失败!"),stError().text(),QMessageBox::Ok);tempMsgBox.exec();}else{QMessageBox tempMsgBox(QMessageBox::Information,tr("消息"),tr("删除成功!"),QMessageBox::Ok);tempMsgBox.exec();}4、查询图书代码//构造sql查询语句QString sqlString(tr("select 书名,作者,出版社,出版日期,分类名,语言,页数,价格,入馆日期,内容简介,是否在馆 from books where 图书编号='"));sqlString.append(this->lineEdit0->text()+QString("'"));QSqlQuery query;query.exec(sqlString);if (!query.isActive()){QMessageBox tempMsgBox(QMessageBox::Warning,tr("查找图书失败!"),stError().text(),QMessageBox::Ok);tempMsgBox.exec();}else{while(query.next()){this->lineEdit1->setText(query.value(0).toString()); this->lineEdit2->setText(query.value(1).toString()); this->lineEdit3->setText(query.value(2).toString()); this->lineEdit4->setText(query.value(3).toString()); this->lineEdit5->setText(query.value(4).toString()); this->lineEdit6->setText(query.value(5).toString()); this->lineEdit7->setText(query.value(6).toString()); this->lineEdit8->setText(query.value(7).toString()); this->lineEdit9->setText(query.value(8).toString()); this->lineEdit10->setText(query.value(9).toString());this->lineEdit11->setText(query.value(10).toString()); }}5、修改图书代码//构造sql更新语句QString sqlString(tr("update books"));sqlString.append(QString(tr(" set 书名 ='"))+this->lineEdit1->text()+QString("',"));sqlString.append(QString(tr("作者 ='"))+this->lineEdit2->text()+QString("',"));sqlString.append(QString(tr("出版社 ='"))+this->lineEdit3->text()+QString("',"));sqlString.append(QString(tr("出版日期 ='"))+this->lineEdit4->text()+QString("',"));sqlString.append(QString(tr("分类名 ='"))+this->lineEdit5->text()+QString("',"));sqlString.append(QString(tr("语言 ='"))+this->lineEdit6->text()+QString("',"));sqlString.append(QString(tr("页数 ='"))+this->lineEdit7->text()+QString("',"));sqlString.append(QString(tr("价格 ='"))+this->lineEdit8->text()+QString("',"));sqlString.append(QString(tr("入馆日期 ='"))+this->lineEdit9->text()+QString("',"));sqlString.append(QString(tr("内容简介 ='"))+this->lineEdit10->text()+QString("',"));sqlString.append(QString(tr("是否在馆 ='"))+this->lineEdit11->text()+QString("' "));sqlString.append(QString(tr("where 图书编号 ="))+this->lineEdit0->text()+QString(";"));//执行更新QSqlQuery query;query.exec(sqlString);//显示QSqlTableModel *model=new QSqlTableModel;model->setTable("books");model->select();this->tableView->setModel(model);//判断更新是否成功if (!query.isActive()){QMessageBox tempMsgBox(QMessageBox::Warning,tr("更新失败!"),stError().text(),QMessageBox::Ok);tempMsgBox.exec();}else{QMessageBox tempMsgBox(QMessageBox::Information,tr("消息"),tr("更新成功!"),QMessageBox::Ok);tempMsgBox.exec();}6、借阅图书代码int right,isin,haveborrownum,canborrownum,canborrowdays;right=1;//构造sql查询语句QString sqlString(tr("select 是否在馆 from books where 图书编号 ='"));sqlString.append(this->lineEdit0->text()+QString("'"));QSqlQuery query;query.exec(sqlString);if(!query.isActive()){right=0;QMessageBox tempMsgBox(QMessageBox::Warning,tr("数据库连接失败!"),stError().text(),QMessageBox::Ok);tempMsgBox.exec();}else{while(query.next())isin=query.value(0).toInt();}//构造sql查询语句1QString sqlString1(tr("select 已借书数量 from users where 用户编号 ='"));sqlString1.append(rid+QString("'"));QSqlQuery query1;query1.exec(sqlString1);if(!query1.isActive()){right=0;QMessageBox tempMsgBox(QMessageBox::Warning,tr("数据库连接失败!"),stError().text(),QMessageBox::Ok); tempMsgBox.exec();}else{while(query1.next())haveborrownum=query1.value(0).toInt(); }//构造sql查询语句2QString sqlString2(tr("select 可借书数量,可借书天数 from usertype where 用户类别 ='"));sqlString2.append(type+QString("'"));QSqlQuery query2;query2.exec(sqlString2);if(!query2.isActive()){right=0;QMessageBox tempMsgBox(QMessageBox::Warning,tr("数据库连接失败!"),stError().text(),QMessageBox::Ok);tempMsgBox.exec();}else{while(query2.next()){canborrownum=query2.value(0).toInt();canborrowdays=query2.value(1).toInt();}}if(isin==0){right=0;QMessageBox tempMsgBox(QMessageBox::Information,tr("消息"),tr("本图书已经借出,请借阅其他书籍!"),QMessageBox::Ok);tempMsgBox.exec();}if(haveborrownum>=canborrownum){right=0;QMessageBox tempMsgBox(QMessageBox::Information,tr("消息"),tr("您图书已经借满,请还书后再借!"),QMessageBox::Ok); tempMsgBox.exec();}if(right){QDateTime dateTime = QDateTime::currentDateTime();QDateTime dateTime1;dateTime1=dateTime.addDays(canborrowdays);QString strtime=dateTime1.time().toString();int y=dateTime.date().year();int m=dateTime.date().month();int d=dateTime.date().day();int y1=dateTime1.date().year();int m1=dateTime1.date().month();int d1=dateTime1.date().day();QStringdate1(QString::number(y)+"-"+QString::number(m)+"-"+QString::number(d)+" "+strtime);QStringdate2(QString::number(y1)+"-"+QString::number(m1)+"-"+QString::number(d1)+" "+strtime);//this->lineEdit1->setText(date1);//构造sql添加语句3QString sqlString3(tr("insert into borrow(图书编号,用户编号,续借次数,借书日期,应还日期,超期天数,超期金额)"));sqlString3.append(QString("values('")+this->lineEdit0->text()+QString("',"));sqlString3.append(QString("'")+rid+QString("','0',"));sqlString3.append(QString("'")+QString(date1)+QString("',"));sqlString3.append(QString("'")+QString(date2)+QString("','0','0')"));sqlString3.append(QString("'")+date2+QString("','0','0')"));//执行添加QSqlQuery query3;query3.exec(sqlString3);//判断添加是否成功if (!query3.isActive()){QMessageBox tempMsgBox(QMessageBox::Warning,tr("借阅失败!"),stError().text(),QMessageBox::Ok);tempMsgBox.exec();}else{QMessageBox tempMsgBox(QMessageBox::Information,tr("消息"),tr("借阅成功!"),QMessageBox::Ok);tempMsgBox.exec();isin=0;haveborrownum+=1;//构造sql更新语句QString sqlString(tr("update books"));sqlString.append(QString(tr(" set 是否在馆 ='"))+QString::number(isin)+QString("'"));sqlString.append(QString(tr("where 图书编号 ="))+this->lineEdit0->text()+QString(";"));//执行更新QSqlQuery query;query.exec(sqlString);//显示this->lineEdit11->setText("0");QSqlTableModel *model=new QSqlTableModel;model->setTable("books");model->select();this->tableView->setModel(model);//判断更新是否成功if (!query.isActive()){QMessageBox tempMsgBox(QMessageBox::Warning,tr("更新图书失败!"),stError().text(),QMessageBox::Ok); tempMsgBox.exec();}else{//构造sql更新语句QString sqlString(tr("update users"));sqlString.append(QString(tr(" set 已借书数量 ='"))+QString::number(haveborrownum)+QString("'"));sqlString.append(QString(tr("where 用户编号 ="))+rid+QString(";"));//执行更新QSqlQuery query;query.exec(sqlString);//判断更新是否成功if (!query.isActive()){QMessageBoxtempMsgBox(QMessageBox::Warning,tr("更新用户失败!"),stError().text(),QMessageBox::Ok);tempMsgBox.exec();}}}}7、续借图书代码int right=1;int borrowtimes,canborrowtimes,canborrowdays;QString shouldreturndays;//构造sql查询语句QString sqlString(tr("select 续借次数,可续借的次数,可借书天数,应还日期 from borrowagainview where 图书编号 ="));sqlString.append(this->lineEdit0->text()+QString(" "));QSqlQuery query;query.exec(sqlString);if (!query.isActive()){right=0;QMessageBox tempMsgBox(QMessageBox::Warning,tr("续借失败!"),stError().text(),QMessageBox::Ok);tempMsgBox.exec();}else{while(query.next()){borrowtimes=query.value(0).toInt();canborrowtimes=query.value(1).toInt();canborrowdays=query.value(2).toInt();shouldreturndays=query.value(3).toString();}}if(borrowtimes>=canborrowtimes){right=0;QMessageBox tempMsgBox(QMessageBox::Information,tr("续借失败"),tr("续借次数已满,不能续借!"),QMessageBox::Ok);tempMsgBox.exec();}if(right){QDateTime dateTime = QDateTime::currentDateTime();QDateTime dateTime1;dateTime1=dateTime.addDays(canborrowdays);QString strtime=dateTime1.time().toString();int y1=dateTime1.date().year();int m1=dateTime1.date().month();int d1=dateTime1.date().day();QStringdate2(QString::number(y1)+"-"+QString::number(m1)+"-"+QString::number(d1)+" "+strtime);borrowtimes+=1;//构造sql更新语句QString sqlString(tr("update borrowagainview"));sqlString.append(QString(tr(" set 续借次数 ='"))+QString::number(borrowtimes)+QString("',"));sqlString.append(QString(tr(" 应还日期 ='"))+QString(date2)+QString("'"));sqlString.append(QString(tr("where 图书编号 ='"))+this->lineEdit0->text()+QString("'"));//执行更新QSqlQuery query;query.exec(sqlString);//显示QSqlTableModel *model=new QSqlTableModel;model->setTable("borrowedview");model->select();this->tableView->setModel(model);//判断更新是否成功if (!query.isActive()){QMessageBox tempMsgBox(QMessageBox::Warning,tr("续借失败!"),stError().text(),QMessageBox::Ok);tempMsgBox.exec();}else{QMessageBoxtempMsgBox(QMessageBox::Information,tr("消息"),tr("续借成功!"),QMessageBox::Ok);tempMsgBox.exec();}}}8、还书代码int haveborrownum;//构造sql查询语句QString sqlString1(tr("select 已借书数量 from borrowagainview where 图书编号 = '"));sqlString1.append(this->lineEdit0->text()+QString("'"));QSqlQuery query1;query1.exec(sqlString1);if (!query1.isActive()){QMessageBox tempMsgBox(QMessageBox::Warning,tr("查询失败!"),stError().text(),QMessageBox::Ok);tempMsgBox.exec();}else{while(query1.next())haveborrownum=query1.value(0).toInt(); }haveborrownum-=1;//构造sql更新语句QString sqlString(tr("update books"));sqlString.append(QString(tr(" set 是否在馆 ='"))+"1"+QString("'"));sqlString.append(QString(tr("where 图书编号 ="))+this->lineEdit0->text()+QString(";"));//执行更新QSqlQuery query;query.exec(sqlString);//判断更新是否成功if (!query.isActive()){QMessageBox tempMsgBox(QMessageBox::Warning,tr("更新图书失败!"),stError().text(),QMessageBox::Ok);tempMsgBox.exec();}else{//构造sql更新语句QString sqlString(tr("update users"));sqlString.append(QString(tr(" set 已借书数量 ='"))+QString::number(haveborrownum)+QString("'"));sqlString.append(QString(tr("where 用户编号 ="))+rid+QString(";"));//执行更新QSqlQuery query;query.exec(sqlString);//判断更新是否成功if (!query.isActive()){QMessageBox tempMsgBox(QMessageBox::Warning,tr("更新用户失败!"),stError().text(),QMessageBox::Ok);tempMsgBox.exec();}else{//构造sql删除语句QString sqlString(tr("delete from borrow where 图书编号 = '"));sqlString.append(this->lineEdit0->text()+QString("'"));QSqlQuery query;query.exec(sqlString);//显示this->display();//判断删除是否成功if(!query.isActive()){QMessageBox tempMsgBox(QMessageBox::Warning,tr("删除借阅表失败!"),stError().text(),QMessageBox::Ok);tempMsgBox.exec();}else{QMessageBoxtempMsgBox(QMessageBox::Information,tr("消息"),tr("还书成功!"),QMessageBox::Ok);tempMsgBox.exec();}}七、总结其实在这次课设的过程中我发现了自己的很多不足,很多的知识不是没有掌握,是根本就不理解也不去研究,在做课设的过程中有好多的知识都是现学现用,还有好多是在网络上面找到的,通过同学的帮助,与老师的指导在最后才做出来一个半成品,有点觉得自己没有用,但是在课设的过程我也学会了很多的东西。
图书馆管理系统课程设计
软件设计报告题目:图书馆管理系统院系名称:电子工程学院专业名称:电子信息工程班级:电子0902班内序号:学生姓名:指导教师:时间:2010年6月7日至2010年6月18日三、需求分析可以实现图书馆图书数据的录入,保存,浏览,查找,添加,删除,修改排序,使图书信息一目了然。
三、课程设计目的加深对C语言课程所学知识的理解,进一步巩固C语言语法规则。
学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力,使学生通过系统分析、系统设计、编程调试、,写实验报告等环节,初步掌握软件系统设计的方法和步骤,训练灵活运用程序设计语言进行软件开发的能力,提高分析问题和解决问题的能力,提高程序设计水平,培养必要的工程实践动手能力。
四、程序内容数据的录入数据存储、数据读写数据添加数据删除数据查询数据修改数据排序数据打印五、详细设计及运行结果功能模块的说明①输入信息模块:函数名为input,分为三个小的模块,即在程序目录下创建文件保存数据。
②浏览模块:函数名为scan,分别打印出输入的:图书号,图书名,作者,出版社,出版时间,价格。
③查询模块:函数名为search,分为两个小的模块,即分别以图书号(search_num)或图书名(search_name)查询。
④添加信息模块:函数名为add,读出信息,读入结构体,插入信息后,覆盖写入源文件。
⑤删除细细模块:函数名为del,打开文件读出信息至结构体后,先查询并确认,然后跳过该信息覆盖写入源文件。
⑥修改信息模块:函数名为change,通过strcmp(number,library.book[i].number)检索出要修改的图书号,通过scanf分别输入各成员的值,在通过strcpy将各值覆盖到原成员的值上,就完成了修改。
⑦排序模块:函数名为sort,通过比较price的大小排序,用for循环将小的放在前面。
⑧main六、调试情况,设计技巧及体会①调试情况:经过若干次调试,程序已基本达到设计功能要求。
图书管理系统设计报告
主要价值
态度
主要兴趣
约束条件
管理员
提高管理员工作效率,节省学校的开支
图书馆工作人员接受使用图书管理系统
使用该系统操作简单,方便,提高工作人员的工作效率,降低操作出错率
培训管理员,尤其是对计算机基本操作不熟练的管理员,熟悉掌握系统的各种操作
读者
可以通过网上查询所需图书,方便快捷
积极支持使用该系统
使用简单快捷
§3。1。4参考资料
1.李伟波。软件工程。武汉:武汉大学出版社,2006
2.郑人杰.实用软件工程.北京:清华大学出版社,2003
3.张海藩.软件工程导论。北京:清华大学出版社,2008
§3.2业务愿景和范围
§3。2.1业务需求
1.
随着社会信息量的与日俱增,作为信息存储的主要媒体之一图书,数量、规模比以往任何时候都大的多,不论个人还是图书管理部门都需要使用方便而有效的方式来管理自己的书籍。在计算机日益普及的今天,对个人而言,若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,为了便于图书资料的管理需要有效的图书管理软件。
3.经济可行性:服务端及客户端的支出使用原有设备即可.但是对软件有一次性软件费用支出和定期性软件维护支出。软件使用后,能够减少人力的支出和维护.预计两年之内能够回收投资。
4.法律可行性:本软件属项目组开发,符合法律的各项规定。
5.使用可行性:软件针对普通的的小型图书馆,对使用人员没有特殊限制,管理人员、各种读者等均可使用.界面友好,操作简单,能够保证大多数用户使用该系统的要求。
4.投资方案:由小组自行集资。
§2.5系统可行性分析
可行性分析是为了清除的了解系统开发是否能够实际进行,是否能够带来一定效益,是否值得实现.因而进行可行性分析是非常必要的,从下面几个方面来进行分析。
图书馆信息管理系统——设计报告
管理工程实验中心
学生实验报告
实验课程名称管理信息系统
开课实验室企业管理信息化综合实验室
系(部)08年级城建营销专业班①
学生姓名马明成学号08290090148开课时间2010 至2011 学年第一学期
前言
一、实验目的
根据管理信息系统课程教学要求,要求学生掌握运用科学的方法和工具去开发管理信息系统的思路。
二、实验原理
要求学生运用课堂所学知识,进行系统的开发试验。
即根据实际的业务流程,进过系统分析、系统设计到系统实施。
学会撰写系统分析报告、系统设计说明书;初步设计几面的实现框架,已使学生管理信息系统及其开发过程有一个循序渐进的、从感性到理性再到实践的掌握过程。
三、实验内容
1、系统演示:(4课时)
2、系统分析:(8课时)
1)业务流程调查
2)数据流程调查(处理逻辑的描述)
3)数据字典
3系统设计:(8课时)
1)数据库设计:E-R图、代码设计、关系模型的建立
2)输入输出设计:界面设计
4、系统实施:(选做)
程序设计和调试。
图书管理系统课程设计报告
目录第1章绪论 (1)第2章需求分析 (1)第3章总体设计 (2)第4章数据库设计 (3)§4.1 概念结构设计 (3)§4.2 逻辑结构与物理结构设计 (4)第5章详细设计 (6)第6章编码 (6)第7章测试 (11)§7。
1 测试 (11)§7。
2 发现错误和解决方法 (12)第8章设计总结 (12)学习体会(附录1) (12)致谢(附录2) (13)参考文献(附录3) (13)第1章绪论图书馆是信息交换和资源流通的重要媒介,对图书馆的信息化管理将大大提高图书资源的利用和信息的交换速度。
图书管理系统是通过将借阅信息以数据库的形式由网络传输来完成各用户(教师或学生)所要的借阅方面的需求(如借阅,归还,预订等)。
以打破传统的人工选课模式,极大地方便了使用人员和管理人员,节约了时间和空间,实现图书借阅自动化,自由化,使图书资源得到充分利用.建立图书管理系统,使每个用户自由地选到自己需要的图书,避免传统借书模式的繁琐、低效率、借阅程序臃肿等等的缺点,减轻相关人员的负担。
本图书管理系统运用SQLServer2000、C++Builder等软件实现了基本的管理员登录、图书管理、读者管理、借还图书、图书查询以及信息维护等功能的图书管理系统.第2章需求分析图书管理系统主要包括系统管理、读者管理、图书采购、图书编目、图书流通、统计、查询等一系列的功能。
1、读者管理(1)。
新学期建立新班级,删除毕业班读者.(2).为新生办理新借阅证。
(3)。
读者管理能完成读者调动、借书证挂失、补办、停止借阅、单独打印读者条码等日常事务。
(4).读者类别可以分类,可为每一类读者指定借阅规则。
(5)。
读者可以通过管理员远程预约图书。
2、采编管理(1).有完善的采编功能,能对新采购图书可以进行有效采编.(2)。
图书采编能对相关图书进行分类别号编号,借助可扩展的编目库减轻编目人员的工作。
(3)。
图书馆管理系统实验报告
3.5 读者检索图书信息
Execute RIndexBook '关键词'
------------读者检索图书信息实例 use LibrarySystem go exec RIndexBook 数据库 go -------结果如下:
图书馆管理系统附加功能
8
华北科技学院计算机系综合性实验报告
往学生表中插入一列"系部 ,其值等于学号中代表系部的位的值, 往学生表中插入一列 系部",其值等于学号中代表系部的位的值,再插入一列 系部 "专业号 ,其值等于学号中代表专业的位的值 专业号", 专业号
华北科技学院计算机系综合性实验 华北科技学院计算机系综合性实验 计算机系
实 验 报 告
课程名称 实验学期 2009 学生所在系部 学生所在系部 年级 学生姓名 任课教师 任课教师 实验成绩
数据库系统 至 2010 学年 第 2 学期
计算机系 专业班级 网络 B081 学号 200807024102 郭红
单
图书
出版单位 借书时限 卡号 库存
借阅
剩
读者 名
借
限
读者
借
8
华北科技学院计算机系综合性实验报告
图书馆管理系统功能图例
读者借阅图书
Execute RBorrowBook '读者号','图书分类号'
--------------读者借阅图书实例 use LibrarySystem go exec RBorrowBook T006324,'D630.3 L836'--其中T006324以T为标识,代表教师编号 exec RBorrowBook S070407101,'D630.3 L836'---其中S070407101以S为标识,代表学生学号 go -----结果如下:
图书管理系统设计实验报告
信息系统分析与设计课程设计目录一图书馆图书借阅管理系统规划1.1绪论 (3)1.2图书馆系统分析及功能论述 (3)1.3 图书借阅系统可行性分析 (4)二图书管理系统分析2.1 系统组织结构与功能分析 (5)2.2 业务流程分析 (5)2.3 数据流程分析 (6)三图书管理系统设计3.1 系统设计的任务及原则 (9)3.2 代码设计 (9)3.3 数据库设计 (10)3.4输入输出设计 (11)3.5物理配置方案设计 (13)四系统评价4.1图书管理系统系统优点 (14)4.2图书管理系统缺点 (14)五总结一图书管理系统规划1.1绪论2010年的今天是一个信息高度发达的时代,伴随着科技的进步,文化的汲取,人们对于图书信息的了解与掌握也达到了一定的高度。
尤其是学生对于知识的渴求更是与日俱增。
图书馆作为学生学习知识的重要场所,作为信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理。
介于这一现象,我们对于图书馆的借阅管理系统进行了全面的分析处理,在信息高速发展的今天,促使图书馆管理运用网络技术,通过信息系统的开发,在图书馆之间互通有无,有利于提高图书的利用率。
本次系统分析设计以中国计量学院的图书馆为原型对其图书其中的借阅系统进行分析,逐步体现图书馆的信息管理现状,及其日后的改进方案的提供。
1.2图书馆系统分析“图书馆借阅管理信息系统”的主要功能有:读者登陆、图书借阅、图书采编、读者信息管理和系统维护。
系统功能如下图1.2.1:图书管理信读者登陆系统维护图书采编图书借阅用户管理口令修改图书编目图书典藏图书征订图1.2.1 系统组织结构图各子系统功能如下所述:读者登陆读者访问系统时系统将检验读者的名字和密码,经过注册的读者允许进入系统。
图书借阅系统读者查找到所需图书后,在图书保留期内到图书馆办理借阅手续。
图书借阅系统处理图书借阅、还书、续借等手续。
图书采编体统图书采购入库,经过编目等处理后,将其目录信息存入数据库,提供给读者检索适用。
书籍管理系统课程设计报告
书籍管理系统课程设计报告一、引言本次课程设计旨在开发一款实用的书籍管理系统,以方便图书馆或书店等机构对书籍进行高效管理。
通过该系统,管理员可以轻松地添加、查询、修改和删除书籍信息,提高工作效率,减少人工操作错误。
二、系统需求分析1. 用户管理:系统应支持管理员和普通用户两种角色,管理员具有所有权限,普通用户只能进行查询和浏览操作。
2. 书籍信息管理:管理员可以添加、修改和删除书籍信息,包括书名、作者、出版社、ISBN号、价格、库存等。
3. 查询功能:普通用户可以通过书名、作者或ISBN号查询书籍信息。
4. 报表生成:系统应支持生成各类报表,如销售报表、库存报表等。
5. 系统安全性:系统应保证数据的安全性,防止数据泄露和非法访问。
三、系统设计1. 数据库设计:采用关系型数据库管理系统,设计合理的表结构和字段名称,以满足系统需求。
2. 系统架构:采用B/S架构,客户端通过浏览器访问系统,服务器端处理请求并返回数据。
3. 界面设计:界面简洁明了,易于操作,支持多语言显示。
4. 模块划分:将系统划分为用户管理模块、书籍信息管理模块、查询模块、报表生成模块和系统管理模块。
四、系统实现1. 开发环境:采用Java语言开发,使用Spring框架进行MVC模式开发。
2. 数据库连接:使用JDBC连接数据库,实现数据的增删改查操作。
3. 界面实现:使用HTML、CSS和JavaScript实现界面交互功能。
4. 功能实现:通过编写Java代码实现各模块功能,包括用户管理、书籍信息管理、查询、报表生成和系统管理等。
5. 安全性实现:采用加密技术保证数据传输安全,使用权限控制保证系统安全性。
五、系统测试1. 功能测试:对系统的各个功能进行测试,确保功能正常实现。
2. 性能测试:测试系统的响应速度和并发处理能力。
3. 安全性测试:测试系统的安全性,包括数据传输安全和权限控制等。
4. 用户手册编写:编写用户手册,提供系统的使用说明和操作指南。
图书馆管理系统课程设计报告
C#图书馆管理系统课程设计报告设计题目图书馆管理系统学生姓名学号080370099专业班级08 计算机指导教师2010/5/31摘要随着现代科学技术的进步,人类社会正逐走向信息化。
图书馆拥有丰富的文献信息资源,是社会信息系统的重要组成部分,在信息社会中的作用愈来愈重要。
我国图书馆计算机等信息技术的应用起步于20世纪70年代末期,随着改革开放的步伐得以迅速发展,特别是90年代以后,我国图书馆信息网络建设取得了较大发展,图书馆信息化建设迈上了一个新台阶。
本文介绍了在Visual C#.NET环境下开发图书管理信息系统的过程。
文章介绍了图书馆管理信息系统的系统分析部分,包括可行性分析、图书借阅流程分析等;系统设计部分主要介绍了系统功能设计和数据库设计及代码设计;系统实现部分说明了几个主要模块的算法,本系统界面友好,操作简单,比较实用。
【项目任务目标】:本图书馆管理系统总的实现目标是:建立以馆藏目录为基础的书目数据库;实现馆内采购、编目、流通、文献检索等信息化管理;建立图书馆动态网站;接入校园网为广大师生及时提供馆内的最新信息。
长期的目标还要实现直接浏览电子图书以及馆际间的图书借等。
目录摘要 (1)第一章系统概述 (2)1.1图书馆管理系统需求分析 (2)1.11 系统需求 (2)1.12 开发环境 (2)1.2系统的功能简介 (4)(1) 项目规划 (5)(2)系统管理模块 (5)(3)读者管理模块 (5)(4)流通管理模块 (5)(5)图书管理模块 (5)(6)系统开发的目标 (6)第二章图书馆管理系统数据库分析 (6)2.1图书馆管理系统示意图 (6)系统流程图如下: (7)2.2图书馆管理系统数据表清单: (7)第三章图书馆数据库设计 (8)3.1创建数据库 (8)3.2数据库设计 (8)(1) 本系统中所涉及到的主要实体共有六个数据表: (8)(2) 各表的物理结构如下: (9)第四章系统的功能 (13)4.1系统登陆界面: (13)4.2系统主界面: (14)4.3用户管理模块: (15)4.4读者类别管理模块: (16)4.5图书借阅: (17)4.6图书类别设置: (18)第五章课程设计总结 (19)第六章:参考文献 (20)第一章系统概述本图书管理系统就是将传统图书馆业务的手工操作转变成由计算机馆理,即图书馆的图书期刊、音像资料等各种载体文献的采编、典藏、流通、检索及常规业务管理等工作,利用计算机技术,使得图书馆的管理更智能、更有效的进行,最终的目的以方便图书借阅者方便借阅及管理者高效、方便管理为目的。
图书馆管理系统课程设计报告
图书馆管理系统设计报告2008.09.05一、实习题目:图书馆管理系统二、实习工具:前台开发工具选择 Visual Basic 6.0;后台数据库选择 Access;中间层采用 ADO 数据访问技术,将对数据库的操作以类的形式封装。
三、实习目的:通过建立一个图书馆管理系统来管理图书。
掌握 Visual Basic 的语言特点和编程技巧,熟悉控件的属性、事件和方法。
掌握用 ADO 控件访问数据库的技术,实现在数据库中的添加、查询和删除等操作。
四、实习内容:1)需求分析:在进行一个项目的设计之前,先要进行必要的需求分析。
图书馆信息系统要求完成如下基本功能:➢可以实现图书的类别管理和图书的信息管理。
对图书的各种信息的查询,包括逐个浏览,以及对图书信息的增加、删除和修改操作。
另外,可以根据输入的信息来检索某个图书的信息。
➢可以实现读者的类别管理和读者的信息管理。
对读者的各种信息的查询,包括逐个浏览,以及对读者信息的增加、删除和修改操作。
另外,可以根据输入的信息来检索某个读者的信息。
➢可以实现图书借阅管理。
包括借书信息、还书信息以及相关信息的查询。
➢可以实现对系统管理。
2)结构设计:根据上面的需求分析,开发设计不同的窗体系统,每一个窗体实现不同的功能,可以设计下面的几个模块。
➢图书管理模块:用来实现图书类别和信息管理。
➢读者管理模块:用来实现读者类别和信息管理。
➢图书借阅管理模块:用来实现借书和还书管理。
➢系统管理模块:用来实现用户的增加和修改等操作。
系统功能模块图如下:3)数据库设计:这里的数据库采用,用 ADO 作为连接数据对象。
设计数据库系统时应该首先充分了解用户各个方面的需求, 包括现有的以及将来 可能增加的需求。
数据库设计一般包括如下几个步骤: ➢ 数据库需要分析。
➢ 数据库概念结构设计。
➢ 数据库逻辑结构设计。
数据库需求分析更 改 密 码删除读 者 类 别添加管 理 员添加 读 者 类 别查询 读 者 类 别修改 读 者 类 别添加 读 者 信 息查询 还 书 信 息添加 还 书 信 息查询 借 书 信 息删除 借 书 信 息添加 借 书 信 息查询 图 书 信 息修 改 图 书 信 息添 加 图 书 信 息修 改 图 书 类 别删 除 图 书 类 别添 加 图 书 类 别图书管理图书 借阅 管理读者管理系统管理读者 信 息 管 理读者 类 别 管 理图 书 信 息 管 理图 书 类 别 管 理图书馆管理系统借书 管 理还书 管 理用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入,收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后而后具体设计打下基础。
图书管理系统课程设计报告
山西大学工程学院课程设计报告书题目教学成绩管理系统系别计算机工程系专业计算机科学与技术班级计本1018班姓名董昶君指导教师米晓萍指导教师评语成绩评定:指导教师签字:年月日图书管理系统内容摘要图书管理系统是采用Visual Basic6.0开发的一个数据库管理系统。
开发本系统的基本步骤:需求分析、系统概念设计、系统逻辑和物理设计、系统实现和维护。
在系统分析中先后用数据字典、数据流程、系统的功能结构图、ER图分析了系统所需的各种数据。
在系统的设计过程中,我们采用了模块独立设计法,比较详细的展现了各个模块的功能。
在库和表的设计当中,我们力求层次清晰,设计简单实用。
在系统具体实行阶段中,我们精心细致的画出了各个窗体并给出了相应的事件和代码,以实现各个窗体的作用。
开发环境:为方便系统开发,减少开发过程的难度,本图书管理开发系统是基于以下的软件环境。
·以Windows XP为操作系统·以Visual Basic6.0为开发工具·以Access2000作为后台数据库功能概述:该系统界面友好,操作简便,能完成添加图书信息,修改图书信息,查询图书信息,添加读者类别,修改读者类别,查询读者信息,修改读者信息等一系列图书管理功能,开发本系统的总体任务是实现图书管理的系统化和自动化,帮助管理人员更好更高效地完成图书管理工作。
本着实用性和介绍性的原则,整个系统由四大模块组成,每个大的模块又包括三至四个小的模块。
一、图书管理部分:包括图书信息管理和类别管理,其功能是实现对各部分数据内容进行添加、修改、查询等操作。
二、读者管理部分:包括读者信息管理和读者类别管理,其功能是实现对各部分数据内容的添加和修改等操作。
三、借阅管理部分:包括借书管理和还书管理,其功能是实现对各部分数据内容的添加和查询等操作。
四、系统管理部分:包括修改系统用户密码和增加新用户两项功能。
系统具有高效、易操作、易维护等特点,并且系统结构清晰、界面友好,功能较为齐全,能有效地协助管理人员进行图书管工作。
数据库课程设计报告--图书馆管理系统
说明书指导老师:学生姓名:班级:学号:完成日期:2010年6月23日数据库技术原理课程设计报告一、设计内容课题名称:图书馆管理系统(1)课程设计目的使学生在学完《数据库技术原理》这门课程后,能够充分理解和掌握这门技术,所以进行这样一个课程设计。
(2)功能要求本系统至少应该包含图书的基本信息、读者的基本信息、读者借阅图书的信息,用户信息等。
要求能够实现图书信息的维护、读者信息的维护、图书的借阅登记处理、各类信息的查询、用户的管理等功能。
图书馆管理人员实现对图书信息、借阅者信息、总体借阅情况信息的管理和统计、对工作人员和管理人员的信息进行查看及维护;图书借阅者可直接查看图书馆图书情况。
二、系统设计1、需求分析(1)信息需求书籍信息:图书ID ,书名,分类号,作者,出版单位,单价,册数,页数,出版日期,登记日期,备注。
职员信息:职员ID,姓名,性别,电话,家庭住址。
学生信息:姓名,性别,系部,电话,借阅证类型编号,办证日期。
图书类型信息:图书类别编号,图书类别名称,上级图书编号。
借阅证类型信息:借阅证类型编号,借阅证类型名称,借阅证有效期限,最大借阅量,最大借阅时间。
图书借阅信息:图书ID,学生ID,职员ID,借阅日期,归还日期,备注。
(2)功能模块划分图书信息查询提供按图书名称进行查询,查询结果应以主表明细格式显示,即查询结果记录显示在一个表格中,在明细部分显示当前记录的所有信息。
图书入库由管理员凭借密码进入图书入库界面进行操作,能够对图书进行入库、过时无用图书清除出库的操作,同时要能够查看书库中所有图书信息。
系统设置模块下面应设置图书类别设置和借阅证类型设置两个子模块,分别实现对图书类别和借阅证类型的增加、删除操作。
借阅登记模块由人员信息设置、图书借阅登记两部分组成。
而在人员设置下面可在同一个窗口口中是实现对图书馆职员和读者信息的登记、修改和删除等功能;图书借阅有管理员对读者借阅图书进行信息登记。
图书馆管理系统设计报告管理系统设计报告
现代的信息管理系统几乎都以数据库技术作为核心。
现在大多数的图书管理方式为手工处理,重复劳动多,劳动强度大,而且容易出错,新系统的使用能否可以很好的解决这些问题要看系统的可行性。
可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。
系统的可行性分析有以下几个方面:( )技术可行性:处理速度快、准确通过权限的设置,数据的安全性好、方便查询、借阅管理等。
( )经济可行性:系统建设不需要很大的投入、可缩减人力投入。
( )运行上可行性:本系统作为一个小型的图书馆信息管理系统,所耗费的资源非常的小。
( )从各种社会因素可行性分析:可降低工作人员工作强度,提高效率,得到学校工作人员的一致同意。
综上所述通过可行性分析认为新系统的开发方案切实可行,可进行开发。
总体功能需求与关键信息需求系统开发的总体任务是实现读者信息、图书信息、借书信息以及还书信息的系统化、规范化和自动化。
本系统设计的目的是实现以下功能:( )读者管理:有关读者基本信息的输入、修改以及读者信息的查询和删除。
( )书籍管理:有关图书基本信息的输入、修改以及图书信息的查询和删除。
( )借阅管理:有关图书的借阅、归还以及遗失登记和借阅查询等。
系统实现的目标学校图书管理系统的开发主要要实现的目标有以下几个方面:( )界面设计友好、美观。
( )数据存储安全、可靠。
( )信息分类清晰、准确。
( )强大的查询功能,保证数据查询的灵活性。
( )实现对图书借阅和归还过程的全程数据信息跟踪。
( )具有易维护性和易操作性。
系统 图系统业务流程分析系统的主要业务流程根据开发图书管理系统的需求分析,本系统设计了两种用户,分别为系统管理员、读者(学生和教师)。
系统管理员用户使用帐号登陆后系统后,可以通过系统导航菜单进入读者管理界面、图书管理界面、图书借还界面、系统查询界面。
在读者界面中,管理员可以添加和修改学生、教师信息和用户可查看信息。
在图书管理界面中,管理员可以添加和修改图书信息和用户可查看图书。
图书馆管理信息系统课程设计(实用版)
2009~2010学年第二学期课程设计任务书一、课程设计目的《管理信息系统》课程的学习,不仅需要理论上的深入探讨,而且需要通过实践上机,自己开发一个管理信息系统,才能真正理解书本知识,牢固掌握课堂教学内容。
因此,本课程设计的目的就是要通过一个实际的管理信息系统的分析设计和开发,提高学生应用所学知识分析问题,解决问题和实际动手的能力,更加熟练地掌握管理信息系统开发的基本方法和工作步骤,对管理信息系统开发实践有进一步体会。
要求:(1) 严格按照课程设计规定时间上机,不得无故缺席和调换;(2)独立完成课程设计的所有工作,保质保量做完任务书规定的分析、设计任务;(3) 课程设计期间,在规定的上机时间外必须广泛查阅参考书籍,编写好各种程序,以充分利用有限的上机时间.二、课程设计内容(含技术指标)课题一:库房信息管理系统的设计.库房管理既是日常处理业务,也是物资管理的基础工作。
因此,做好库房信息管理工作意义重大.要求完成如下功能:(1)能输入入库单、出库单,在输入过程中,能自动显示其名称、规格、单价,并自动计算金额,有出错提示。
(2)屏幕可显示物品明细台帐.(3)能输出物品的超储或欠储报警。
(4)能显示目前的库存情况。
课题二:学校选课系统设计随着学校的学生越来越多、开设的课程越来越丰富和多元化的情况下,考虑建立一个方便、快速、公平和符合学分制管理制度的选课平台和应用系统就显得至关重要了。
学生选课管理系统,在学生选课的规范管理、科学统计和快速查询方面具有较大的实用意义。
它提高了信息的开放性,大大地改善了学生、教师对其最新信息查询的准确性。
要求完成如下功能:(1)学生可以选修规定范围内的课程,查看已修学分总数,还可以修改个人信息.(2)教师可以根据统计的人数挑选一定数量的学生,也可以直接在网上公布成绩,让学生直接在网上查询成绩。
(3)管理员可以指定每门课程的任课教师,修改课程信息,增加、修改、删除学生信息。
通过对学生选课管理系统工作内容和相关数据流程分析,根据学生选课管理系统的需要,就可以设计出能满足用户需求的各种实体,以及它们之间的关系。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库课程设计图书管理系统学院:信息科学与工程学院专业:计算机科学与技术班级:计 0804 小组成员:指导教师: *****2010 年 6 月 13日图书馆管理系统第一部分需求分析第一、用户调查需求本系统的最终用户为学校的学生老师以及对学校图书馆进行管理工作的工作人员,我们根据从学校方面取得的图表资料、文字资料以及其他细节方面的信息,根据我们日常生活中的经验,根据我们所做的其他询问和调查,得出用户的下列实际要求:图书管理系统需要满足来自三个方面的需求,这三个方面分别是读者、图书馆工作人员和图书馆管理人员。
一、读者1.在图书管理系统中,图书馆工作人员要为每个读者建立借阅账户,并给读者发放不同类别的借阅卡(借阅卡可提供卡号、读者姓名),账户内存储读者的个人信息和借阅记录信息。
2.持有借阅卡的读者可以通过管理员借阅、归还图书,不同类别的读者可借阅图书的范围、数量和期限不同,可通过互联网或图书馆内查询终端查询图书信息和个人借阅情况,以及续借图书(系统审核符合续借条件)。
3.借阅图书时,先输入读者的借阅卡号,系统验证借阅卡的有效性和读者是否可继续借阅图书,无效则提示其原因,有效则显示读者的基本信息(包括照片),供管理员人工核对。
然后输入要借阅的书号,系统查阅图书信息数据库,显示图书的基本信息,供管理员人工核对。
最后提交借阅请求,若被系统接受则存储借阅纪录,并修改可借阅图书的数量。
4.归还图书时,输入读者借阅卡号和图书号(或丢失标记号),系统验证是否有此借阅纪录以及是否超期借阅,无则提示,有则显示读者和图书的基本信息供管理员人工审核。
如果有超期借阅或丢失情况,先转入过期罚款或图书丢失处理。
然后提交还书请求,系统接受后删除借阅纪录,并登记并修改可借阅图书的数量。
二、图书馆工作人员图书馆工作人员有修改图书借阅者借书和还书记录的权限,所以需对工作人员登陆本模块进行更多的考虑。
在此模块中,图书馆工作人员可以为图书借阅者加入借书记录或是还书记录。
三、图书馆管理人员1.图书馆管理人员功能的信息量大,数据安全性和保密性要求最高。
本功能实现对图书信息、借阅者信息、总体借阅情况信息的管理和统计、工作人员和管理人员信息查看及维护。
2.图书馆管理员可以浏览、查询、添加、删除、修改、统计图书的基本信息;浏览、查询、统计、添加、删除和修改图书借阅者的基本信息。
3.浏览、查询、统计图书馆的借阅信息,但不能添加、删除和修改借阅信息,这部分功能应该由图书馆工作人员执行,但是,删除某条图书借阅者基本信息记录时,应实现对该图书借阅者借阅记录的级联删除。
并且还应具有生成催还图书报表,并打印输出的功能。
第二、图书关系系统数据流图第三、数据字典readertype 读者类别信息表列名数据类型可否为空说明typeno varchar NOT NULL 类别编号typename varchar NOT NULL 类别名称booknumber numeric NULL 借书数量Bookdays numeric NULL 借书期限userfullife numeric NULL 有效有限memo text NULL 备注readers 读者信息表列名数据类型可否为空说明readerno varchar NOT NULL 读者编号readername varchar NOT NULL 读者姓名readersex varchar NULL 读者性别readertype varchar NULL 读者类别readerdep varchar NULL 工作单位address varchar NULL 家庭地址readertel varchar NULL 电话号码email varchar NULL 电子邮件地址checkdate datetime NULL 登记日期readermemo varchar NULL 备注books 书籍信息表列名数据类型可否为空说明bookkid varchar NOT NULL 书籍编号bookname varchar NOT NULL 书籍各称booktype varchar NULL 书籍类别bookauthor varchar NULL 书籍作者bookpub varchar NULL 出版社名称bookpubdate varchar NULL 出版日期bookpages numeric NULL 书籍页码bookkeyword varchar NULL 关键词bookindate datetime NULL 登记日期putup varchar NULL 是否被借出bookmemo text NULL 备注booktype 书籍类别信息表列名数据类型可否为空说明booktypeno varchar NULL 类别编号typename varchar NOT NULL 类别各称keyword varchar NOT NULL L 关键词memo test NOT NULL 备注borrowinfo 借阅信息表列名数据类型可否为空说明borrowno varchar NOT NULL 借阅编号readerid varchar NOT NULL 读者编号readername varchar NOT NULL 读者姓名bookid varchar NOT NULL 书籍编号bookname varchar NULL 书籍名称borrowdate datetime NULL 借出日期returndate datetime NULL 还书日期memo text NULL 备注信息第二部分概念结构设计根据需求分析中画出的图书馆管理系统的第一层数据流图,可以看出在图书馆管理中一切活动都以读者,图书馆管理人员,图书普通工作人员三类人员为核心。
比如图书的借出与归还是以图书馆工作人员跟读者为核心的,而新的图书的录入以及旧书的删除则是图书馆管理人员的工作。
图书管理系统概念结构以图书管理系统的第一层数据流图为基础,接下来对于各个稍微复杂的处理过程进行细化,画出其具体数据流图,从而抽象出E-R图,为进一步的逻辑设计打下基础。
而在本系统的第一层数据流图中,检查项目处理和检验项目处理的数据比较简单,可以很简单的找出其关系表,不再进行细化分析。
另外几个处理过程的具体数据流图如下:〃分数据流图分析(1)自助查询本子系统是用于不熟悉的读者进行查询之用,可进行图书资料的查询,个人借书信息查询等。
查询中需要的信息有很多,但是并非所有的都需要用数据库查询来完成,对于图书馆概况、建筑物布局和名称等数据并不需要用数据库来完成,而对于图书资料信息以及是否在馆由数据库来完成。
类似这里有两个常用的查询:(a)个人借书情况查询;(b)查询要借的书籍的信息。
(2)读者借书以及还书读者根据自己的读者ID号借书,还书。
(如果没有读者ID号的话就要先由图书图书资料〃相应实体分析及E-R图设计根据上面给出的数据流图,可以规划出实体的设计:读者类别信息实体、读者信息实体、书籍类别信息实体、书籍信息实体、借阅信息实体。
读者类别信息实体的E-R图读者信息实体的E-R图书籍类别信息实体的E-R图书籍信息实体的E-R图借阅信息实体的E-R图实体之间关系的E-R图(注:由于空间所限E-R图中只给出了实体的部分属性,详细的属性信息在实体及相应属性中给出。
)●实体及相应的属性读者类别(类别编号、类别名称、借书数量、借书期限,有效期限、备注)读者(读者编号、读者姓名、读者类别、读者性别、工作单位、家庭住址、电话号码、电子邮件地址、办证日期、备注)书籍类别(类别编号、类别名称、关键字、备注信息)书籍(书籍编号、书籍类别、作者姓名、出版社名称、出版日期、书籍页数、关键词、登记日期、备注信息)借阅(借阅信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、还书信息、备注信息)●联系说明及其相应属性:读者与图书间有借阅关系,借阅(借阅信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、还书信息、备注信息)如果读者未在规定时间内还书,图书馆管理员还会对读者开罚单,只有交清了罚款,读者才可以继续借书。
第三部分逻辑结构设计在概念设计的基础上,根据设计得到系统总的E-R图,按照概念模式与关系表转化的一般规则,结合实际的需要进行逻辑设计,E—R图中的实体、实体的属性和实体之间的联系转化为关系模式。
最后生成的关系及关系表如下(同时附优化说明):1.具体关系表的设计及优化说明1.读者类别(类别编号、类别名称、借书数量、借书期限,有效期限、备注)说明:读者不止是学生,还有教职工。
学生又可以分为研究生,本科生;教职工又可以分为教课的教师和一般的职工。
他们可以借书的数量,日期,续借次数等都是不同的。
所以要有读者类别这一实体。
2.读者(读者编号、读者姓名、读者类别、读者性别、工作单位、家庭住址、电话号码、电子邮件地址、办证日期、备注)说明:读者的属性:类别编号、类别名称、借书数量、借书期限,有效期限均可由读者类别推出,故可将他们删除。
3.书籍类别(类别编号、类别名称、关键字、备注信息)说明:书籍分类更便于管理,因此为了避免信息的冗余可以将书籍类别中相关信息单拉出来新建一个书籍类别表。
4.书籍(书籍编号、书籍类别、作者姓名、出版社名称、出版日期、书籍页数、关键词、登记日期、备注信息)说明:书籍的属性:类别编号、类别名称、关键字均可由书籍类别推出,故可将他们删除。
5.借阅(借阅信息编号、读者编号、读者姓名、书籍编号、书籍名称、借书日期、还书信息、备注信息)说明:借书和还书都是读者与图书间的关系,这两个表中存在太多相同的信息可以将他们合并为借阅表。
6.系统用户(用户名,密码)2.设计用户子模式在将概念模型转化为全局逻辑模型后,根据图书管理系统的局部应用需求,以下设计用户子模式:●考虑需求考虑以下的几个需求:1)管理员查阅读者借阅信息2)管理员维护借阅者信息3)管理员维护书籍信息4)读者查阅其用户信息5)读者查阅借阅信息●定义用户级别对读者,管理员的级别定义如下:.1)管理员:对所有表的所有内容都有查看的权限2)读者可以查看自己信息,并进行修改,查看读书在馆情况,以及自己借书情况。
3)借阅者能够借阅图书、归还图书、查询借阅信息等4)管理员能够注册借阅证、注销借阅证、添加图书、删除图书、添加用户、删除用户等●制作查询子系统:根据分析需求,我们设计了以下几个子系统:◆读者类别信息子系统◆读者信息子系统◆书籍信息子系统◆书籍类别信息子系统◆借阅信息子系统◆系统用户子系统第四部分物理结构设计一、建立索引的依据:所谓选择索引存取方法实际上就是根据应用要求确定对关系的哪些属性列建立索引、哪些属性列建立组合索引、哪些索引要设计为唯一索引等。