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

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

目录
第一章绪论
1.1开发背景---------------------------------------3
1.2 开发工具的选用及介绍---------------------------3
1.3 本文主要内容-----------------------------------4第二章需求分析
2.1 系统总体功能需求分析---------------------------5
2.2 总体功能结构图---------------------------------5
2.3 各模块分析-------------------------------------7第三章概要设计
3.1 概念结构设计----------------------------------7
3.2 逻辑结构设计----------------------------------11
3.3 物理结构设计----------------------------------12第四章各模块详细设计
4.1 登录模块设计----------------------------------15 4.2 用户管理模块设计-------------------------------17 4.3 读者管理模块设计-------------------------------21第五章编码
5.1 编码的重要性-----------------------------------25 5.2部分模块的代码----------------------------------25第六章系统的测试--------------------------------29设计总结-------------------------------------29
学习心得-------------------------------------30参考文献-------------------------------------30
第一章绪论
1.1开发背景
书是人们的良师益友,在课余时间,读一本好书,给我们很大的精神享受,但需要一个良好的学习环境。

图书馆不仅藏书丰富的,而且拥有安静的阅读氛围,可以在很大程度上满足读者的需求,是我们借书,读书的好地方,所以我们在畅游书的海洋,吸收营养,获得更大的精神上的满足。

随着信息时代的来临,竞争日趋激烈的职场的数量不断增加,越来越多的人更注重知识和能力的积累。

随着各行各业信息存储量增加,书籍储存的增加,规模数量比以往任何时候都更大,个人或部门都需要使用图书馆管理系统简单而有效的方式来管理他们的书。

图书管理系统是典型的信息管理系统。

提出实现图书管信息管理,资源共享的管理目标,从而推动迈向数字化图书馆的脚步。

书籍的管理会浪费大量的人力物力,即使工作人员尽心尽力的工作,有时也没有很明显的效果。

所以往往投入了大量的人力和财力,但缺乏有效的管理效率。

为了缩短查询时间,减少工作人员的工作量,将工作更加科学化,规范化,达到高效,智能化管理的质量和水平,以提高信息化管理图书借阅目的的效率,应建立有效的图书馆管理系统,使图书管理规范化,制度化,程序化。

图书管理系统要求提高信息处理的及时性,准确性,达到高效的查询速度,减少工作人员的工作量。

因此图书管理系统是一件必须开发的工作软件。

1.2 开发工具的选用及介绍
1.2.1 开发工具的选用
本系统选用的是SQL Sever 2000及Visual C++6.0
1.2.2 开发工具的介绍
1 SQL Server 2000简介
SQL Server是微软公司开发的数据库产品,SQL Server 2000被广泛使用,很多电子商务网站、企业内部信息化平台等都是基于SQL Server产品上。

今天的商业环境要求不同类型的数据库解决方案。

性能、可伸缩性及可靠性是基本要求,而进入市场时间也非常关键。

除这些核心企业品质外,SQL Server 2000 还为您的数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,。

SQL Server 2000 为快速开发新一代企业级商业
应用程序、为企业赢得核心竞争优势打开了胜利之门。

SQL Server 2000 带有交互式调节和调试查询、从任何数据源快速移动和
转化数据、以及按Transact-SQL方式定义和使用函数等功能。

您可以从任意
Visual Studio 工具以可视化方式设计和编写数据库应用
2 Visual c++6.0简介
Visual C++6.0由Microsoft开发,它不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development
environment,IDE)。

Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序
向导App Wizard、类向导Class Wizard等开发工具。

这些组件通过一个名为Developer Studio的组件集成为和谐开发环境。

Visual C++6.0以拥有“语法高亮”,自动编译功能以及高级除错功能而著称。

界面
简单,占用资源少,操作方便Visual c++6.0,简称VC或者VC6.0,是微软推出的一
款C++编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。

Visual C++6.0
是一个功能强大的可视化软件开发工具。

自1993年Microsoft公司推出Visual C++1.0
后,随着其新版本的不断问世,Visual C++.ENT(Visual C++7.0),但它的应用有很
大的局限性,只适用于部分系统,所以实际运用中,更多的是以Visual C++6.0为平
台。

1.3本文主要内容
在本文中,通过SQL SEVER2000和Visual C ++6.0进行链接,实现用户管理,图书管理系统读者管理,图书借阅等操作。

本文从对系统设计的需求分析开始,画出了系统之后到概念结构以及逻辑结构设计功能结构图,并对每个模块进行功能分析。

接下来是第2章数据库设计的需求分析,概念结构设计,逻辑结构设计及物理结构设计和第3章的详细设计。

之后第4,5章就是编码以及编码在环境中的实现及测试。

第二章需求分析
2.1系统的主要功能需求分析
该系统将在计算机上实现图书馆的管理功能。

具体的实现书籍信息管理、读者信
息管理、系统用户信息管理及图书借阅管理等功能。

对于一个图书管理系统,作为一个读者来说只要拿着自己的借阅卡就可在图书管
借到自己所想的书籍。

作为一个管理员,只要读者说出他的借阅证号和所借图书编号,
就能将借阅信息存入数据库中,而不需要做其他的复杂工作。

所以处理好图书、管理员、读者间的关系是最重要的。

图书馆最基本的功能是为读者提供数量庞大的藏书,并且通过图书馆与读者之间
的借阅——归还——借阅完成图书在读者与图书馆间的流通。

显然,对图书借阅信息和馆
藏图书信息的管理也构成了图书借阅管理系统最主要的功能。

图书管理系统按照实际
业务需要,主要包括用户管理、读者管理、图书管理和借还书管理四个方面。

图书管
理系统程序运行界面分为登陆界面,功能选择系统主菜单界面两个主要界面。

使用时
应先知道管理员账号和密码,登陆进入系统主菜单界面,里面包括用户信息管理,读
者信息管理,图书信息管理,借书还书信息管理,系统简介等五个菜单选项。

然后可
以根据操作需要点击相应的模块即可实现相应的功能。

2.2系统功能结构图
根据分析的功能,可以画出整体的功能结构图,该结构图为以后编写软件的菜单是一个基础,以后的数据库设计就是围绕这个结构功能图做的,只要实现了系统功能结构里的
所有功能,该系统可以说是做好了。

图2-1 图书管理系统功能结构2.3模块功能分析
1.用户管理模块主要是为用户设计,一般是用户管理者的操作。

主要有添加用户,删除用户,修改密码,查询用户,退出系统五个子功能。

在实际中,当有新的用户来管理该图书管理系统时则必须将其信息写入数据库,否则该用户可能无法进入该系统。

同理当有用户退出管理该系统时,管理员必须将其信息删除以减少数据内存。

用户的密码修改在实际上也是很必须的,因为一旦用户的密码丢失和泄露可能危及该数据库的安全,所以随时为用户提供修改密码是很必须的。

查询用户功能是对各个用户进行随时的管理,对用户信息查询查看其权限也是很必须的。

2.读者管理模块是数据库管理系统中不能少的一部分。

图书馆的最终目的还是为读者服务的,所以需求分析中对读者管理设计是很重要的。

在实际中一个图书馆的读者是很庞大的,要管理好他们不能靠人力,当然由系统完成。

同对用户的管理一样,对读者的管理包括:添加读者,删除读者,修改密码,查询读者。

3.图书管理模块是图书管理系统中不可缺少的一部分。

添加图书后要对图书进行入库信息输入,如果不明确这些信息,很可能造成日后清查的困难,难以管理。

所以,以后购买的或是通过其他渠道得到的图书都可以通过该模块进行录入。

另外对图书进行删除,修改等操作已达到规范性和灵活性的结合。

4.图书借阅、归还管理是本系统的核心部分,可完成图书的借与还,ixu做好这一功能的操作,以保证图书馆系统的有效运行。

第三章概要设计
3.1 概念结构设计
概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定,它是整个数据库设计的关键。

概念结构的特点是:
(1)能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据处理要求,是现实世界的一个真实模型。

(2)易于理解,从而可以用它和不熟悉计算机的用户交换意见,用户的积极参与式数据库设计成功的关键。

(3)易于更改,当应用环境和应用要求该变时,容易对概念模型修改和扩充
(4)易于向关系、网状、层次等各种数据模型转换。

图3-1图书管理系统总体E-R图
图3-2 图书及其属性图
n
1
用户权限
管理用户
姓名
密码
图3-3 用户管理E-R 图
图3-4 读者管理E-R图
3.2 逻辑结构设计
概念结构是独立任何一种数据结构的信息结构。

逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为基本关系模式。

用户(用户姓名,用户密码,权限)
读者(借书证号,学号,读者姓名,班级,性别,班级,读者密码,到期日期)图书(图书编号,图书名,出版社,作者,价格,数量,条形码,类别)
管理读者(用户姓名,借书证号,权限,用户密码)
借书信息表(借书证号,图书编号,借书日期,还书日期)
还书信息表(借书证号,图书编号,应还日期,最长期限,罚款金额)。

3.3 物理结构设计
数据库在物理设备上的存储结构域存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。

为一个给定的逻辑数据模型选取一个合适应用要求的物理结构的过程,就是数据库的物理结构设计。

数据库的物理结构,在关系数据库中主要指存取方法和存储结构;对物理结构进行评价,评价的重点是时间和空间效率。

如果评价结果满足原设计要求,则可进入到物理实施阶段,否则就需要重新设计或修改物理结构又时甚至要返回逻辑设计阶段修改数据模型。

对于不同的数据库产品所提供的物理环境、存取方法和存储结构有很大差别,能提供设计人员使用的设计变量、参数范围也很不相同,因此没有通用的物理设计方法可遵循,只能给出一般的设计内容和原则。

希望设计优化的物理数据库结构,使得在数据库运行的各种事物响应时间小、存储空间利用率高、事物吞吐率。

为此,首先对要运行的事物进行详细分析,或得选择物理数据库设计所需要的参数。

其次,要充分了解所用RDBMS的内部特征,特别是系统提供的存储方法和存储物理结构。

物理设计可分五步完成,前三步涉及到物理结构设计,后两步涉及到约束和具体的程序设计:
(1)存储记录结构设计:包括记录的组成、数据项的类型、长度,以及逻辑记录到存储记录的映射。

(2)确定数据存放位置:可以把经常同时被访问的数据组合在一起,“记录聚簇(cluster)”技术能满足这个要求。

(3)存取方法的设计:存取路径分为主存取路径及辅存取路径,前者用于主键检索,后者用于辅助键检索。

(4)完整性和安全性考虑:设计者应在完整性、安全性、有效性和效率方面进行分析,作出权衡。

(5)程序设计:在逻辑数据库结构确定后,应用程序设计就应当随之开始。

物理数据独立性的目的是消除由于物理结构的改变而引起对应用程序的修改。

当物理独立性未得到保证时,可能会引发对程序的修改。

数据库物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构,包括存储结构和存取方法。

表3-1 用户信息表
表3-2 读者信息表
表3-3借书信息表
表3-5还书信息表
第四章详细设计
4.1 登录模块设计
登录模块:主要是为管理员设计的,是管理员进入系统的验证之口!因此需要管理员进行姓名与密码的验证!当用户名与密码同时正确时才能进入系统,否则提示用户名不存在或密码错误!
图4-1 用户图
将表中的users 用户名及密码输入即可登录。

图4-2 登陆界面
表4-1登录界面控件列表
控件类型ID属性
Lable IDC_STATIC登录信息
Lable IDC_STATIC保存用户名
Lable IDC_STATIC保存密码
Lable IDC_STATIC用户名:
Lable IDC_STATIC密码:
EDIT IDC_EDIT1无
EDIT IDC_EDIT2无
BUTTON IDOK登录
BUTTON IDCANCEL退出
进入系统后的主界面,在这个界面可以进行具体操作,如对系统,读者,图书,借书,还书等进行操作。

图4-3 系统主界面
接下来是退出系统的提示界面,当想退出系统时,点击系统管理的“退出系统”,这样系统就会弹出如下对话框,提示是否确定退出。

若想退出,点击“确定”,否者关闭
该对话框即可。

图4-4 退出系统界面
4.2 系统用户管理模块
该模块主要包括:修改密码,删除用户,添加用户,查询用户,退出系统,这五个功能。

一个很庞大的图书管理系统一般管理人员也很多,所以对这些用户进行很好的管理也是管理好图书的一部分。

1、添加用户功能:当有新的用户要加入时,需将其信息存入用户信息表中。

主要记
录用户的姓名,密码,和其权限。

该功能设计较好的地方是,当用户在设置自己的密码时,为了不让用户的密码记错,会有第二次确认密码的输入。

如果两次密码输入不一致,这会提醒请重新输入,并添加失败。

图4-5 添加用户界面图4-6 添加用户失败界面
表4-2添加用户界面的控件列表
控件类型ID属性
Lable IDC_STATIC用户名
Lable IDC_STATIC密码
Lable IDC_STATIC确认密码
Lable IDC_STATIC权限
EDIT IDC_EDIT1无
EDIT IDC_EDIT2无
EDIT IDC_EDIT3无
EDIT IDC_EDIT4无
BUTTON IDADDUSERS确定
BUTTON IDCANCEL取消

2删除用户功能:如果某个用户不管理该图书管理系统了,需要将其信息从用户信息表中删除,只要输入该用户的名即可将其删除。

但如果用户表中不存在,系统则会提醒无此用户请重新输入。

图4-7 删除用户界面
表4-3删除用户界面的控件列表
控件类型ID属性
Lable IDC_STATIC用户名
EDIT IDC_EDIT1无
BUTTON IDDELUSER删除
3修改密码:当用户密码丢失或被盗时,必须对密码进行修改,该功能更好的保护了该系统的安全。

修改密码时需要用户知道以前的密码,并且用户在修改新密码时会要两次输入,两次的输入一样时才会提醒修改成功。

图4-8修改用户密码界面
表4-4修改密码界面的控件列表
控件类型ID属性
Lable IDC_STATIC用户名:
Lable IDC_STATIC原密码:
Lable IDC_STATIC新密码:
Lable IDC_STATIC确认密码:
EDIT IDC_EDIT1无
EDIT IDC_EDIT2无
EDIT IDC_EDIT3无
EDIT IDC_EDIT4无
BUTTON ID_MODPASSWD确定
BUTTON IDCANCEL返回
4、查询用户功能:如果想了解某个用户的对该图书管理系统的权限,比如想了
解某个管理员是普通的管理员,还是有超级权限的,可通过次功能查询。

图4-9 查询用户界面
表4-5查询用户信息界面的控件列表
控件类型ID属性
Lable IDC_STATIC用户名
Lable IDC_STATIC权限
EDIT IDC_EDIT1无
EDIT IDC_EDIT2无
BUTTON IDCHECKUSERS查询
BUTTON IDCANCEL返回
4.3 读者管理模块
主要包括添加读者,删除读者,修改读者,查询读者四个功能。

读者管理模块也是图书管理系统的一个重要模块,因为图书馆就是为读者免费提供书籍的场所。

所以管理好读者,也就是管理好图书管理系统的一部分。

1、添加读者功能模块设计:当有新的读者要在图书馆借书时,就要将该读者的信息存入数据库中,可通过该模块的功能进行操作。

添加的读者信息有:为读者办的借书证号,读者的姓名,性别,学号,班级和密码。

当信息添加成功后,系统这会提示
“添加成功”。

图4-10 添加读者界面
表4-6添加读者信息界面控件列表
控件类型ID属性
Lable IDC_STATIC借书证号
Lable IDC_STATIC姓名
Lable IDC_STATIC班级
Lable IDC_STATIC学号
Lable IDC_STATIC性别
Lable IDC_STATIC密码
EDIT IDC_EDIT1无
EDIT IDC_EDIT2无
EDIT IDC_EDIT3无
EDIT IDC_EDIT4无
EDIT IDC_EDIT5无
EDIT IDC_EDIT6无
BUTTON IDADDREADER添加
BUTTON IDCANCEL返回
2删除读者功能模块设计:当读者毕业离开学校,或有特殊情况需将其信息删除时,可通过该功能模块执行。

由于在图书管理系统中,读者信息中借书证号就是其主码,则只要将借书证号删除时,该读者的信息就会被删除。

但如果输入的借书证号不存在,系统则会提醒“无此读者,请重新输入。

图4-11 删除读者界面
表4-7删除读者界面控件列表
控件类型ID属性
Lable IDC_STATIC借书证号
EDIT IDC_EDIT1无
BUTTON IDDELREADER删除
BUTTON IDCANCEL取消
3、修改读者功能设计:这个是现实中很实际的一个问题,当读者的个人信息发生改变时,管理员也必须将其信息在数据库中修改过来,否则信息不吻合可能无法借书。

图4-12 修改读者界面
表4-8修改读者信息界面控件列表
控件类型ID属性
Lable IDC_STATIC借书证号
Lable IDC_STATIC借书证号
Lable IDC_STATIC姓名
Lable IDC_STATIC性别
Lable IDC_STATIC学号
Lable IDC_STATIC班级
Lable IDC_STATIC密码
EDIT IDC_EDIT1无
EDIT IDC_EDIT2无
EDIT IDC_EDIT3无
EDIT IDC_EDIT4无
EDIT IDC_EDIT5无
EDIT IDC_EDIT6无
EDIT IDC_EDIT7无
BUTTON IDMODREADER修改
BUTTON IDCANCEL取消
4、查询读者信息功能模块设计:该功能设计是为管理员可以随时了解读者信息,查看该借书证的到期时间,这样可以很好的对借书证进行管理。

为了方便管理员的操作,
则只要输入借书证号点击查询即可。

图4-13查询读者界面
表4-9查询读者信息控件列表
控件类型ID属性
Lable IDC_STATIC借书证号
Lable IDC_STATIC到期日期
Lable IDC_STATIC姓名
Lable IDC_STATIC性别
Lable IDC_STATIC学号
Lable IDC_STATIC班级
Lable IDC_STATIC密码
EDIT IDC_EDIT1无
EDIT IDC_EDIT2无
EDIT IDC_EDIT3无
EDIT IDC_EDIT4无
EDIT IDC_EDIT5无
EDIT IDC_EDIT6无
EDIT IDC_EDIT7无
BUTTON IDCHEREADERS查询
BUTTON IDCANCEL取消以上就是各个分功能的界面设计以及每个界面的控件列表。

第五章编码
5.1 编码的重要性
编写代码是系统实现的基础,写代码一般也是一向很重要的任务,他要求程序员要很好的熟悉高级语言的编程。

这项工作是最枯燥无味的,一般需要很好的耐心和毅力。

一般一个系统开发后都需要很长的时间维护,这样为了以后的管理员能更好的了解该数据的程序,所以程序编写者一定要有很好的编程习惯,对一些重要而难理解的语句加以标志。

在理想情况下,一个新的项目是这样创建的:它将已有的可重新利用的组件进行组合,并将新的开发难度降低到最小。

如果要编写商业代码,应该尽量限制结构中所用到的代码行数。

一个最常使用的方法就是:重新使用已有的代码,而不是为一个新任务编写一个和原来代码只有微小区别的新代码。

更少的代码意味着更低的成本。

修改已有的代码可能会比编写新代码更加困难。

系统的外部接口应该是一致的,其中包括用户接口和系统的外部接口。

只要原来的代码是模块化的而且编写良好,那么重复使用代码还会节省许多工作。

所以不能看编写代码是个很简单的工作,其实要做好它也不是很容易,尤其是在一些大的工程中,所以一定要注重代码的重要。

5.2部分模块代码
1 //用户密码修改时的算法
void CModpsDlg::OnModpasswd()
{
// TODO: Add your control notification handler code here
CString str1,str2,str3,str4;
int suc;
if(m_uset.IsOpen()){
m_uset.Close(); }
else{
m_uset.Open();
}
if(!m_uset.CanUpdate()){
AfxMessageBox(_T("无法修改密码!"));
}
else{
GetDlgItemText(IDC_EDIT1,str1);
GetDlgItemText(IDC_EDIT2,str2);
m_uset.MoveFirst();
while(!m_uset.IsEOF())
{
m_uset.m_users.Replace(" ","");
m_uset.m_passwd.Replace(" ","");
if(m_uset.m_users==str1 && m_uset.m_passwd==str2)//判断密码与名称是否正确
{
suc = 1;
break;
}
else{
m_uset.MoveNext();
}
}
if(suc==1)
{
GetDlgItemText(IDC_EDIT3,str3);
GetDlgItemText(IDC_EDIT4,str4);
if(str3==str4)
{
m_uset.Edit();
m_uset.m_passwd=str3;
m_uset.Update();
MessageBox("修改成功!");
}
else
{
MessageBox("两次输入的新密码不一致,请重新输入!");
}
}
else{
MessageBox("用户名或密码错误,请重新输入!");
} }
m_uset.Close();
m_puset->Invalidate();}
2 //删除读者算法
void CDelredDlg::OnDelreader()
{// TODO: Add your control notification handler code here CString edit1;
int suc=0;
if(m_delredet.IsOpen())
m_delredet.Close();
m_delredet.Open();
if (!m_delredet.CanUpdate())
{
AfxMessageBox(_T("无法完成删除功能!"));
}
m_delredet.MoveFirst();
GetDlgItemText(IDC_EDIT1,edit1);
while(!m_delredet.IsEOF())
{m_delredet.m_reader_code.Replace(" ","");
if(m_delredet.m_reader_code==edit1)
{suc=1;
break;
}
else
m_delredet.MoveNext();
}
if(suc==1)
{m_delredet.Delete();
MessageBox("删除成功!");
}
else
{MessageBox("无此读者,请重新输入!");
}
m_delredet.Close();
m_pdelredet->Invalidate(); }
第六章系统的测试
1.启动计算机。

2.进入图书馆管理系统源程序部分,点击可执行文件图标。

3.屏幕上出现登录画面,输入正确的用户名和密码即可进入,随后可对其各项功能进行测试。

设计总结
本系统的设计只能用于一些简单的小型图书管理系统。

该系统可以实现管理员的增加,管理员的删除,管理员密码的修改,管理员信息查询。

管理员可以实现对读者借书证的注销,为新读者办理借阅证,为读者提供修改信息和查询信息。

可以实现对图书的管理,如新书入库,删除图书,修改图书信息,查询图书信息。

还可以实现借还书,续借,查询借阅信息功能。

该系统不是一个完善的图书管理系统,还需要很多改进的地方。

首先,该系统只有管理员才可以登陆,读者是无法进入的。

作为一个图书管理系统,读者应该可以通过这个系统来借还图书等。

另外,这个系统针对图书的管理也有一个很大的缺陷,因为通过该系统查询图书时是通过索引号查询的,但是在一个比较大的图书馆中那么多书的索引号光靠人工记忆是无法实现的,所以如果可以通过书名,条形码等来查阅图书是最好的,而且这一个图书管理系统的美化做的不够好,有待改进。

学习体会
我们组在两周的时间一起克服了种种困难之后完成了这个图书管理系统,虽然说比较简单,但是对于我们只是掌握了书上的知识的学生来说还是不容易的,我们在之后的学习中还是要把自己的实践能力放在第一位,在这个设计中,我明显感到自己的动手能力还是不够,以前自己在图书馆借书的时候就思考过这个系统是如何记录借书和还书的,感觉好神奇的样子,但是在自己学了数据库之后感觉还是能够实现的,我们在图书馆借书时各种学生的信息和借书的信息必须保存在图书管理系统中, 而在保存时必须要对对输入数据进行校验,防止一些非法数据保存到数据库中,导致以后的统计,查询出现错误。

我们设计的系统还是不够稳定和强大,所以我们还有很多的知识要学习,我们在学校的图书馆借了几本书,然后在课后的课余时间好好的参考了一下,看了书上面的实例然后在我们的努力下,遇到困难时就请教老师和上网查询最终经历了诸多失败,坚持和毅力最终还是打败了失败,我们努力的结果终于有了回报,当然我们也是设计出了这么个小系统,虽然简单但是还是能够满足我们的需求的。

在此我们感谢各位老师的指导,我在以后的学习中会更加的努力学习的。

参考文献
[1].王珊,萨师煊•《数据库系统概论》•北京高等教育出版社•2005
[2].郑秋生•《C/C++程序设计教程》•电子工业出版社•2010,2
[3].张基温•《C语言程序设计案例教程》•清华大学出版社•2010,8
[4].马炎.图书管理系统设计[J].科技资讯,2007,21(1):255-255
[5].齐治昌,谭庆平,宁洪编著.《软件工程》高等教育出版社,2002
[6].李艳华. 谈软件测试中的bug[J]. 电脑知识与技术, 2006,26(1). 欢迎下载,资料仅供参考!!!
资料仅供参考!!!。

相关文档
最新文档