《数据结构课程设计模板.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计模板.doc(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、河南城建学院课程设计报告书专 业:计算机科学与技术 课程设计名称:数据结构课程设计题 目:图书管理系统班 级:设 计 者 学 号:18 、50设 计 者:胡明坤 张占雷同 组 人 员:胡明坤 张占雷指 导 老 师:王妍玲、杜小杰、张延红完 成 时 间:2013-3-4摘要随着计算机技术的飞快发张,电子信息化慢慢替代了企业管理的传统管理手法。这是一种现代流行的经营模式,采用管理系统是能够有效提高管理效率的。 图书馆管理系统是学校管理机制中重要的一环。图书馆代表着一间学校或者地区的文化标志。因为图书馆丰富的图书资源能够带给我们重要并且优越的学习资源。通过对图书管理系统的运行管理机制进行调查研究,开
2、发了此图书系统。本系统中解决了学校图书管理事务中的常用基本问题以及相关统计工作。本系统中包含6个功能模块:系统设置,读者管理,图书管理,图书借还,系统查询和更改口令。 本系统采用了JSP页面的设计,使用了MVC模式,它采用了当今软件设计的最新技术,具有开发效率高、设计灵活、生成的软件界面友好美观等特点。本系统中通过JDBC驱动和数据库进行无缝连接,后端的数据库是mysql,也是一个开源的数据库系统,该数据库具有较高的完整性,一致性和安全性。 关键词 计算机技术,图书管理,MVC模式,数据库目录目录3第一章开发环境和开发工具11.1C+简介11.2 开发背景11.3 开发环境1第二章 算法思想3
3、2.1 系统需求分析32.2 系统总体设计32.2.1 系统设计目标32.2.2 开发设计思想42.2.3 系统功能模块设计42.3 算法思想描述5第三章算法实现53.1 数据结构5 3.2 程序模块63.3 各模块之间的调用关系63.4 源程序代码8第四章测试与分析174.1 测试数据选择174.2 测试结果分析17总 结20心得体会20参考文献21第一章 开发环境和开发工具1.1 C+简介一种面向对象的开发语言,1.2 开发背景 图书馆是高等院校的重要组成部门,是教师和学生获取知识的重要场所。由于图书馆主要从事大量的图书资料的储存和流通,因此图书馆的图书管理是至关重要的。 随着社会的进步,
4、信息技术的广泛应用,数字化管理的优势日趋显著。图书管理系统也以方便、快捷的优点正慢慢地进入人们的生活,将传统的图书管理方式彻底的解脱出来,提高效率,减轻工作人员以往繁忙的工作,减小出错的概率,使读者可以花更多的时间在选择书和看书上。从而使人们有更多时间来获取信息、了解信息、掌握信息。 该图书管理的开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。采用SQL Server2005数据库作为后台数据库、Visual C#编程语言作为前台开发工具,通过对数据库技术进行了较深入的学习和应用,主要完成书目检索、读者管理、借阅管理、图书管理、用户维护等系统功能。系统运行结果证明,本文所设计
5、的图书管理系统可以满足用户、图书管理员两方面的需要,达到了设计要求。1.3 开发环境本文所采用的开发环境C+、C语言以及编程开发软件vc6.0:系统开发环境:Microsoft Visual Studio 2008 系统开发语言: C# 运行平台:Windows XP/7/Vista 数据库:SQL Server 2005 ASP技术:主要特性是能够把HTML文件、脚本、基本COM标准的组件有机地组合一起,形成一个能够在服务器上运行的动态WEB应用程序,并能将按用户要求制作的标准HTML页面送给客户端浏览器。本书除了讲述ASP的使用知识、编程技巧外,还专门介绍了几个实用的制作实例等内容 Sql
6、语句:定义sql 语句就是对数据库进行操作的一种语言。 几个简单的基本的sql语句: 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like %value1% (所有包含value1这个模式的字符串) 排序:select * from t
7、able1 order by field1,field2 desc 总数:select count(*) as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1separator . n et语言:是单纯以概念来说,你可以把.net当做
8、一个工作平台一般,它是一个开发环境的基底,提供你开发Windows、Web、Mobile、XML.等应用程式一个共通的平台,若是要了解深一点,则再去了解其运作的相关机制那是有助于你利用它来开发.C#和.NET主要是应用在网际网路第二章 算法思想 随着计算机技术的飞速发展,2.1 系统需求分析2.1.1主要功能(1)能够输入图书的综合情况和进行新书入库、现有图书的修改和删除;(2)能够实现对读者档案的查询、密码的修改以及编辑管理;(3)能够进行借阅、查询功能;2.1.2系统性能要求(1)系统安全可靠;(2)功能齐全;(3)操作方便、界面友好;(4)易于维护和扩充。2.1.3查询(1)书籍信息查询
9、:管理员可以根据书籍名,书籍分类,书籍作者、编号、出版社等信息来检索查询图书馆的书籍,便于管理。(2)读者信息查询:根据相应的读者资料进行所需查询。读者编号、读者姓名、读者种类2.2 系统总体设计2.2.1 系统设计目标 本文研究开发的图书管理系统用于支持政府、教育机构或企事业单位的图书管理的基本工作,有如下三个方面的目标: 支持政府、教育机构或企事业单位实现图书馆的规范化管理。支持政府、教育机构或企事业单位高效率完成图书馆的日常业务,包括新书加入时信息的建立、图书的查询、借阅和归还的登记等。 支持政府、教育机构或企事业单位进行图书管理及其相关方面的科学决策,如管理员根据现有的信息决定新购书的
10、类型和数量等。2.2.2 开发设计思想 基于以上系统设计目标,本文在开发图书管理系统时遵循了以下开发设计思想: 采用现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。尽量达到操作过程中的直观、方便、实用、安全等要求。系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。2.2.3 系统功能模块设计 本系统分为三个模块:系统维护、日常工作、查询。得到如图3-1所示的系统功能模块图。图书管理系统系统维护日常工作 查询用
11、户登录退出借书管理还书管理图书信息的查询整理排序图3-1系统功能模块图2.3 算法思想描述聚类分析cluster analysis是数据挖掘技术中的一种典型方法该类算法可在要划分的类未知的情况下将数据对象分组成不同的类。聚类的基本方法在建立基于分析对象的数据矩阵或相异度矩阵中通过计算对象之间的距离来衡量对象之间的相似性或相异性从而对数据对象进行分类。由于该技术仿真了一个无监督的学习过程因此被广泛应用于各类大型数据库中。现有的聚类技术种类很多主要有层次方法、划分方法、基于密度的方法、基于网格的方法、基于模型的方法等2。目前在针对图书管理系统的研发中研究人员尝试将多种基于聚类分析技术的算法使用在图
12、书管理系统中并在仿真实验中取得了一些成果智能算法是指在各类复杂问题中能够从大量复杂、模糊、随机的应用数据中找出数据产生规律并对其进行自我启发式优化的计算机算法。通过智能算法从各类大型管理系统的数据库中挖掘出来的规律和知识可以用在查询响应、决策支持、信息管理等许多方面。通过研究人员多年的研究该类算法在图书馆系统中的应用研究已取得一定成果索引算法分析 索引的工作其实是查重工作的预处理工作,而且这项工作在本单位已有资源和拟采购资源中分别进行。查重时,利用索引进行而不是直接利用源书目数据库。待索引查重完毕后,再利用记录号,分别将其还原为源书目信息,便于人工浏览和确认第三章 算法实现3.1 数据结构图书
13、资料的线性表示:struct tushuint id; /编号char shuming20;/书名char writer10;/作者int num;/库存量int num1;/现存量tMax_Space;检索图书的索引表结构:struct indexint index_code;char index_shuming20;char index_zuozhe10;int tur;/块中的首址indexMax_Space;登 陆 界 面 3.2 程序模块菜 单 界 面查 询 板 块 操作板块(如借阅、采编、删除等)3.3 各模块之间的调用关系 登 陆 界 面 菜 单 界 面操作板块(如借阅、采编、删
14、除等)查 询 板 块图书查询 图书采编 图书删除 图书修改 图书借阅 图书归还 索 引 查 询3.4 源程序代码#include#include #include #include#include#include #define TURE 1#define FALSE 0#define Max_Space 100#define Extend_Sp 100int count=8;/记录图书编号数量void display();void search();void insert();void del();void updata();void sort();void borrow();void re
15、pay();struct tushuint id; /编号char shuming20;/书名char writer10;/作者int num;/库存量int num1;/现存量tMax_Space=1001,解析几何 ,吕林根,5,5,1002,概率论 ,魏宗舒,2,2,1003,计算机基础,吴宏斌,4,4,1004,西方经济学,高鸿业,10,10,1005,数据库 ,清华IT,1,1,1006,西方经济学,刘天祥,1,1,1007,计量经济学,李子奈,3,3,1008,实变函数论,周民强,7,7;char ch=y;struct indexint index_code;int tur;/块
16、中的首址indexMax_Space,temp;/索引表void Index() /索引表int i,max=t0.id;int j=1;int k=0;/所分块的数目for(i=1;iti.id?max:ti.id);if(i+1)%5=0|i=count-1)if(jMax_Space)realloc(index,Max_Space+Extend_Sp);indexj.index_code=max;max=ti+1.id;indexj.tur=k*5;k+;j+;index0.index_code=k;for(j=2;j1 & indexi.index_code);fflush(stdin
17、);getch();doint i;system(cls);system(color f3);printf(nnnttt);printf(n);printf(tt n); printf(tt欢迎使用本系统! n);printf(nntt 请输入您的登陆帐号: );fflush(stdin);gets(name);printf(nntt 请输入您的密码: );for(i=0;in);if(strcmp(name,hu)!=0|strcmp(,password)!=0)printf(nntt您输入的登陆帐号或密码不正确,请重新输入:nn);printf(tt按任意键进入重新输入界面。-);fflu
18、sh(stdin);getch();while(strcmp(name,hu)!=0|strcmp(,password)!=0);Index();/建立索引表doint choice;/选项!system(cls);printf(ttn); printf(tt n);printf(tt 1、 显示 n);printf(tt 2、 查询书目 n);printf(tt 3、 录入书目 n);printf(tt 4、 根据编号删除图书 n);printf(tt 5、 修改图书 n);printf(tt 6、 根据编号排序 n);printf(tt 7、 借书 n);printf(tt 8、 还书 n
19、);printf(tt 0、 退出程序 n);printf(tt n);printf(ttn);printf(请选择功能(0-8)n);fflush(stdin);scanf(%d,&choice);/选项!switch(choice)case 1: display();break;case 2: search();break;case 3: insert();break;case 4: del();break;case 5: updata();break;case 6: sort();break;case 7: borrow();break;case 8: repay();break;cas
20、e 0: system(cls);system(color f1);printf(nnnt=n);printf(t n);printf(t 谢 谢 使 用 n);printf(t n);printf(t 河南城建计算机系 班 n);printf(t n);printf(t 组长: n);printf(t 胡明坤 n);printf(t n);printf(t 组员: n);printf(t 胡明坤、张占雷 n);printf(t n);printf(t 2013年 3月 制作 n);printf(t n);printf(t=);printf(您真的要退出吗(y/n)? );fflush(std
21、in);scanf(%c,&ch);system(cls);break;default: system(cls);printf(nnt您的输入有误,请正确选择功能!);break;printf(请继续按y键确定退出!或按其余任意键继续操作!n);fflush(stdin);scanf(%c,&ch);fflush(stdin);while(ch!=y); /显示数据void display()int i;system(cls);printf(t编号t书名tt作者tt现存量tt库存量n);for(i=0;i 索引查询 int Ind_search(int& code,int& i)int m,n
22、;scanf(%d,&code);for(m=1;m=index0.index_code;m+)if(code=indexm.index_code)i=indexm.tur;for(n=0;n查询图书功能采编入库);Sleep(3000);system(cls);display();elsefflush(stdin);if(count+1Max_Space)realloc(t,Max_Space+Extend_Sp);tcount.id=code;printf(请输入录入图书的名称:);gets(tcount.shuming);printf(请输入录入图书的作者:);fflush(stdin)
23、;gets(tcount.writer);printf(请输入录入图书的数量:);fflush(stdin);scanf(%d,&tcount.num);tcount.num1=tcount.num;count+;fflush(stdin);printf(录入成功!正在更新);Index();/更新检索表Sleep(3000);system(cls);display();/删除图书信息void del()int code;int i,j;system(cls);printf(请输入你要删除图书的编号:);if(Ind_search(code,i)for(j=i;j);count-;Index(
24、);/更新检索表Sleep(3000);system(cls);display();else printf(没有你要删除的信息。);/修改图书信息排序void sort()/排序int i,j;struct tushu temp;system(cls);for(i=0;icount-1;i+)for(j=0;jtj+1.id)temp=tj;tj=tj+1;tj+1=temp;printf(排序后的图书是:n);printf(t编号t书名tt作者tt现存量tt库存量n);for(i=0;i借书管理=0)printf(借书成功!n);ti.num1=ti.num1-c;printf(t编号t书名
25、tt作者tt现存量tt库存量n);printf(t%dt%st%stt%dtt%dn,ti.id,ti.shuming,ti.writer,ti.num1,ti.num);elseprintf(提示:该图书的数量不够!n);elseprintf(没有你要借图书。n);/还书管理void repay()int i,c,d;int code;system(cls);printf(请输入要还图书的编号:);if(Ind_search(code,i)if(ti.num1=ti.num)printf(此编号书籍没有借出记录,请确认!n);elseprintf(请输入要还图书的数量:);scanf(%d,
26、&c);if(ti.num1+c=ti.num)ti.num1=ti.num1+c;printf(还书成功!);else printf(有%d本书多出库存量请确认!n,ti.num1+c-ti.num);elseprintf(提示:该书不属于本图书馆!);第四章 测试与分析4.1 测试数据选择1.规则数据输入测试;2.非规则数据输入测试 4.2 测试结果分析进入菜单界面如下图:输入1进行资料显示测试:如下图,结果正常。输入2进行图书查询并输入编号1006测试:如下图,结果正确。选择3进行图书录入测试:输入如下图,结果正确。继续选择3输入如下图,结果正确。选择4进行图书信息删除,输入如下图,结果正确。总 结 经验与体会 在这段相对集中的时间内做数据库课程设计确实有很多收获。且不说最后做出系统的好坏从数据库的设计到编码实现这个过程中还是学到了不少东西。在数据库设计方面更正了以前先建表然后根据表化E-R图的习惯进行完需求分析后根据E-R图建表建出的表更合理也基本能满足需求。在编程方便虽然还是使用c语言(或c+)但对swing等包中的组件函数ResultSetCalendar Date等