数据结构课程设计图书馆管理系统_第1页
数据结构课程设计图书馆管理系统_第2页
数据结构课程设计图书馆管理系统_第3页
数据结构课程设计图书馆管理系统_第4页
数据结构课程设计图书馆管理系统_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据结构课程设计报告课 题: 图书管管理系统 专业班级: 计科 07101 学 号: 姓 名: 指导教师: 评阅意见:评定成绩: 指导老师签名: 年 月 日目 录目 录 摘要.11 课程设计的目的和意义21.1设计目的21.2设计意义22 需求分析.32.1所需系统:.32.2所要达到的程度:33 总体方案设计43.1 详细设计.43.2关键代码段源码及分析.45. 系统实现.96 系统调试.107 小结.12参考文献.27附录 源程序14摘 要(字为黑体三号)数据结构是计算机科学及相关专业的重要核心课程。学计算机专业的这是一门必修课,我当初就不太明白为什么要学数据结构算法与分析 ,导致我迟迟

2、没认识到算法与分析的重要性。直到老师说要写课程设计,经过一周的学习了解,让我渐渐意识到在生活与学习中有很多系统需要数据结构的算法设计来实现,比如要完成计算机管理系统完成图书管理基本业务,如果采用数据结构的算法,它能使我们的能够更好的对图书馆进行管理在图书馆管理基本任务程序中,我们所要研究的主要是如何实现图书馆的管理,在程序设计中,包括了下面几个内容:1)采编入库,他能实现的是新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;2)借阅:他能实现的是如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;3)归还:他能实现的是注销对借阅者的登记,改

3、变该书的现存量。 关键词:数据结构,算法,图书管管理1 课程设计的目的和意义(字数至少为1页内容)(全文行间距为1.5倍,字为宋体小四)1.1设计目的(1)使我们更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。(2)培养我们综合运用所学知识独立完成课题的能力。(3)提高我们对同学团结友爱,协作攻关的基本素质。(4)培养我们从资料文献、科学实验中获得知识的能力,提高我们从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。(5)对我们掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。(6)通过这次课程设计使我懂得了理论与实际

4、相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才是真正的知识,才能提高自己的实际动手能力和独立思考的能力。1.2设计意义(1)极大的提高了我们对编程的兴趣,同时也在一定的程度上增强了我们编程的能力。(2)培养了我们对于科学勇于探索,严谨务实的精神。(3)增强了我们们相互合作,相互团结的精神,培养了我们相互协作克服困难的素质。(4)加强了我们从文献、科学经验中获得知识的能力,在一定程度上培养了我们对于创新的兴趣。(5)让我们体验实践的创作,提高了我们将理论运用与实践的能力,避免了盲目相信书本这种习惯的养成。2 需求分析(字数至少为1页内容)(

5、全文行间距为1.5倍,字为宋体小四)2.1所需系统在.vc+6.0的环境中运行程序。2.2所要达到的程度(1)拥有扎实数据结构基础知识,以及较强的编程兴趣与习惯,有着顽强的毅力,还要有与人合作精神,要能够善于总结。同时还要求我们自学数据结构作图部分知识。在必要时还要上网查相关资料。(2)图书管理系统要求使用数据结构编程进行模拟课程设计。要声明一个图书、管理员和读者结构,在图书结构中,包括对图书的录入、借出、归还、显示和查询。在管理员结构中,包括新增,删除和查询选项,修改管理员,读者和删除管理员、读者。在图书馆管理系统的下拉菜单中有不同的项目可供选择,都用阿拉伯数字标明,不同的数字有它不同的作用

6、。让图书管理基本任务能够有准确运行的功能,比如:在采编入库过程中,如果出现在编译和联接过程中都找不到的错误,而运行过程中又有,它会用exit(0)关闭整个文件,直到你把错误修改后为止。要退出图书管理系统,在主菜单中只需按0即可。3 总体方案设计程序使用了数据结构编程进行模拟课程设计图书管管理系统,用它来实现对图书的录入、借出、归还、显示和查询管理,同时还可以对图书馆管理员、读者进行新增和删除管理,若要退出管理系统,按0键结束跳出选课系统界面3.1 详细设计主要声明了图书、管理员和读者三个结构,通过新增,删除来实现管理员和读者的函数成员,在课程设计图书的结构中,还能实现录入、借出、归还、显示和查

7、询,全面完善图书管管理系统系统,还设计了运行时文字和背景颜色,使界面更美观,按0键退出管理系统3.2关键代码段源码及分析system(color 1d);用来制定运行时字体与背景颜色, (color 1d)中的1d 可以从1到9,A到F,变出这些不同的颜色,使界面变得更漂亮.system(cls);用于清频,以免占用空间太多.system(pause);系统暂停以免执行程序时过快输入账号和密码登陆图书馆管理管理员系统管理员管理图书管理新书录入借书还书新增管理员删除管理员客户管理新增读者删除读者查询读者退出显示全部信息书本信息查询退出4 系统实现图1 登陆管理系统页面图2 进入客户管理页面图3

8、录入新书图4 书本信息查询5 系统调试(字数至少为2页内容)(全文行间距为1.5倍,字为宋体小四)我在程序调试过程中主要经过了以下几个步骤:一、先进行人工检查,即静态检查。在写好程序以后,没有匆匆忙忙上机,而应对程序进行人工检查。这一步十分重要,它能发现程序设计人员由于疏忽而造成的多数错误。为了更有效地进行人工检查,我主要从以下几点入手:采用结构化程序方法编程,以增加可读性;尽可能多加注释,以帮助理解每段程序的作用;在编写复杂的程序时不将全部语句都写在main函数中,而多利用函数,用一个函数来实现一个单独的功能。各函数之间除用参数传递数据外,尽量少出现耦合关系,这样便于分别检查和处理。二、在人

9、工检查无误后,就开始上机调试。通过上机来发现错误。在编译时机器就给出了不少的语法错误的信息,如:error C2146: syntax error : missing ; before identifier cout通过机器的检查进一步减少了错误。小结 当听说要做课程设计时,那时候简直就像晴天霹雳,不知道该怎么做什么也不理解,那是我对数据结构算法与分析不是很了解,现在课程设计也做完了。选题时,是出于对图书馆管理系统感兴趣,可是要我自己来编译这个程序,脑袋里可是一片空白。只好和同学去找有关选题的资料,而在这之中看到很多数据结构的知识都是以前不懂的,也只好又去查资料,一点一点的摸索。经过这次训练,

10、对它们都有了很多体会,也学到了很多在书本上学不到的东西,心里相当高兴,现在课程设计顺利结束了。通过两周的课程设计使我对图书馆管理系统有了更深的认识和理解,也使我更加明白管理系统的重要性和地位。在这次的课程设计中,首先要感谢我们课程设计的辅导老师刘波涛老师,谢谢他每天不辞辛苦来给我们安排实验教室,还教我们做课程设计的思路,然后要感谢的就是一起做课程设计的同学罗小平,他给了我很大的帮助。通过这次的课程设计,使我认识到原来数据结构有如此博大精深的一门算法,还使我认识到团队合作的力量是强大的,同时也增进了我和同学之间的感情。l 参考文献1 严蔚敏等.数据结构(C语言版)M.北京:清华大学出版社,200

11、8.32 谭浩强.C语言程序设计M.北京:清华大学出版社,20003 谭浩强.C+面向对象程序设计教程(第2版)M.北京:清华大学出版社,20044 网站:附录 源程序#include#include #include#include#include#include#define ffff 50 /为每种编号分配ffff个空间#define dddd 50 /分配dddd个学生空间using namespace std;typedef struct Achar a;int x;string sname,zname;int xc,kc; A;typedef struct Bint kahao,i

12、; /i记录借书的数量 string bangji;char name10; int a5; /最多只能借5本char b5; /记录书的编号类型B;typedef struct CA* book;int sh,zs;C;typedef struct DC syffff;D;void a(D *number,B *jsr)system(cls);int k,j,x;ifstream inzs; /打开读者总数文件inzs.open(读者总数.txt);inzsx;inzs.close();coutttt读者信息endl;for(int s=0;sx;s+)couttt卡号jsrs.kahaoe

13、ndltt姓名:endltt班级jsrs.bangjiendltt借书数量:jsrs.iendl;j=0;while(jjsrs.i) couttt第j本书:jsrs.bj jsrs.ajendl;j+;coutendlendlendl;coutendlendlendlendlendlendl;couttt书本信息endl;for(int i=0;i26;i+) k=numberi.sy0.zs;for(j=0;jk;j+)coutt种类:aendlt编号:xendl;coutt书名:snameendlt作者:znameendl;coutt现存:xcendlt库存:kcend

14、l;coutendlendl;system(pause);void a1(D *number)/新书录入system(cls); char a,Y; int x,y;int m;/ 记录进书数量a: coutendltt请输入新书书号如(T 213 ):;cinax;if(x=0)if(a=A)return;coutendltt书号不能为0=A)&(a=Z)coutt你输入的格式不对!如(T 213 )endl;goto a;coutendltt你输入的书号为:a xendl;couttt确认请按Y:0)if(numbery.syi-1.sh)=x)couttt此书号在书库中已存在!endl;

15、couttt书名为:snameendltt作者为:znameendl;couttt确认请按Y:endl;Y=getch();if(Y=Y)|(Y=y)coutendlm;numbery.syi-1.book-kc=numbery.syi-1.book-kc+m;numbery.syi-1.book-xc=numbery.syi-1.book-xc+m;return;elsegoto a;i-;for(i=(numbery.sy0.zs);i=0;i-)if(numbery.syi-1.sh)x)numbery.syi+1.sh=numbery.syi.sh;numbery.syi+1.book

16、=numbery.syi.book;elsenumbery.syi.sh=x;numbery.syi.book=new A;numbery.syi.book-x=x;string sname,zname;coutsname;coutendlzname;coutendlm;couta=a;numbery.syi.book-sname=sname;numbery.syi.book-zname=zname;numbery.syi.book-kc=numbery.syi.book-xc=m;break;for(i=(numbery.sy0.zs)+1;i0;i-)numbery.syi-1.zs+;e

17、lsesystem(pause);system(cls); goto a;system(pause);A* a2(D *number)/信息查寻char a,Y; int x,y;A *p;b: coutendlax;cout=A)&(a=Z)coutt你输入的格式不对!如(T 213 )endl;goto b;coutendltt你输入的书号为:;couta xendl;couttt确认请按Y:=0)&(numbery.syi.sh)!=x)i-;if(i!=-1)couttt已经找到endl;couttt书名为:snameendltt作者为:znameendl; p=numbery.syj

18、.book;return p;elsecouttt书库中没有此书!endl;system(pause); p=NULL;return p;elsesystem(cls); goto b;A* a21(D *number)/某本书的信息查寻char a,Y; int x,y;A *p;b: coutendlax;cout=A)&(a=Z)coutt你输入的格式不对!如(T 213 )endl;goto b;coutendltt你输入的书号为:;couta xendl;couttt确认请按Y:=0)&(numbery.syi.sh)!=x)i-;if(i!=-1)couttt已经找到endl;co

19、uttt书名为:snameendltt作者为:znameendl; couttt现存:xcendl;p=numbery.syj.book;return p;elsecouttt书库中没有此书!xc0)coutx; ifstream fin; fin.open(读者总数.txt); fini;fin.close();while(i=0)if(x=jsri.kahao)j=1;break;i-;if(j=1)if(jsri.i)x;jsri.bz=p-a;/cout第i本书!xxc)-;(jsri.i)+;couttt借书成功!endl;system(pause);elsecouttt此卡号不存在

20、!endl;system(pause);elsecouttt此书已经全部借出!i;fin.close();coutr;cout0)if(r=jsri-1.kahao)for(x=0;xx=jsri-1.ax)&(p-a=jsri-1.bx)k=1;break; if(k=1) break;i-;if(k=1)for(int g=0;gx)&(j!=1)/防止借两本一样的书,还一本就全还了jsri-1.ag=0;(p-xc)+;couttt还书成功!endl;j=1;if(j=1)&(i!=(jsri-1.i)jsri-1.ag=jsri-1.ag+1;jsri-1.ajsri-1.i=0; j

21、sri-1.i=(jsri-1.i)-1;elsecouttt此书不是你借!endl;system(pause);return;system(pause);void a5(D *number,B *jsr)/读盘char a; /临时记录书本编号int x,n; /临时记录书本编号string sname,zname; /临时记录书名和作者string kahao; /临时记录卡号对应的文件名char kahao15;int xc,kc; /临时记录书本库存及现存int j=0; string p,name; /文件名ifstream f; /读取文件夹名ifstream fip; /读取文件

22、夹中文件信息f.open(文件名.txt);for(int i=0;i26;i+) coutendltttt初使化中endl;cout_endl;couttttpbook.txtp;name=p+book.txt;ifstream fip; /读取文件夹中文件信息定义在FOR外无法读取B中的文件?fip.open(name.c_str();j=0;while(fipaxsnameznamexckc)numberi.syj.book=new A; (numberi.syj.book)-a=a;(numberi.syj.book)-x=x;numberi.syj.sh=x;(numberi.syj

23、.book)-sname=sname;(numberi.syj.book)-zname=zname;(numberi.syj.book)-xc=xc;(numberi.syj.book)-kc=kc;j+;for(n=j;j0;j-) numberi.syj-1.zs=n;fip.close();system(cls);f.close();ifstream inzs; /打开读者总数文件inzs.open(读者总数.txt);inzsx;inzs.close();ifstream in; /打开读者文件 in.open(读者信息.txt);for(int k=0;kjsrk.kahaojsrk

24、.namejsrk.bangjijsrk.i;ifstream js; / 打开借书文件夹中与卡号对应的文件借书记录itoa(jsrk.kahao, kahao1, 10); /将整型转换成字符串型kahao=kahao1; kahao=借书文件夹+kahao+.txt;js.open(kahao.c_str();j=0;while(jsjsrk.bjjsrk.aj)j+;if(jjsrk.i)cout文件初使化失败!endl;system(pause);return;if(j=jsrk.aj-1)break;js.close();in.close();void a6(D *number,B

25、*jsr)/存盘int j,k,x;string p,name; /文件名string kahao; /临时记录卡号对应的文件名char kahao15;ifstream f; /读取文件夹名ofstream fop;f.open(文件名.txt);for(int i=0;ip;name=p+book.txt;fop.open(name.c_str();k=numberi.sy0.zs;/cout来这了! kendl;for(j=0;jk;j+)/cout来这了! kendl;fopa x sname zname xc kcx;inzs.close();ofstream in; /打开读者文件

26、 in.open(读者信息.txt);for(int s=0;sx;s+)injsrs.kahao jsrs.bangji jsrs.iendl;ofstream js; / 打开借书文件夹中与卡号对应的文件借书记录itoa(jsrs.kahao, kahao1, 10); /将整型转换成字符串型kahao=kahao1; kahao=借书文件夹+kahao+.txt;js.open(kahao.c_str();j=0;while(jjsrs.i) jsjsrs.bj jsrs.ajjsrs.i)cout文件保存失败!endl;system(pause);return;j+

27、;js.close();in.close();void xj(string mima)/新增管理员system(cls); string zhanghao1,zhanghao2,mima1,mima2,mima3,mima4; /临时记录管理账号和密码d:coutzhanghao1;c:coutendlmima1; coutendlmima2;if(mima1!=mima2)coutendltt你两次输入不一致,请重新输入!;goto c; coutendlmima3;if(mima!=mima3)coutendl你输入的密码不正确!zhanghao2mima4)if(zhanghao1=zh

28、anghao2)coutendltt账号已经存在,请重新输入!endl;goto d;fon.close();ofstream fin;fin.open(管理员.txt,ios:app);finendlzhanghao1 mima1;fin.close();coutendl申请成功!endl;void sc(string mima)/删除管理员system(cls); int i=0;string zhanghao1,zhanghao2,mima1,mima3,mima4; /临时记录管理账号和密码d:coutzhanghao1;coutendlmima1; coutendlmima3;if(

29、mima!=mima3)coutendl你输入的密码不正确!zhanghao2mima4)if(zhanghao1!=zhanghao2)finzhanghao2 mima4;elsecoutendltt已经找到!endl;i=1;fon.close();fin.close();if(!i) coutendltt账号不存在,请重新输入!endl;goto d;ofstream on(管理员.txt);ifstream in(临时.txt);onin.rdbuf();coutendl删除成功!endl;void b1(B *dz)/新增读者system(cls);int i;string ban

30、gji;char name10;int kahao;coutname;coutendlbangji; ifstream fin;fin.open(读者总数.txt); fini;fin.close();kahao=i+1000;if(i=dddd)coutendltt读者库已经达到最大值,无法新增!endl;return; dzkahao-1000.kahao=kahao;dzkahao-1000.bangji=bangji;ofstream fon;fon.open(读者总数.txt);i+;foni;fon.close();for(int j=0;j10;j+)dzkahao-1000.n

31、amej=namej;dzkahao-1000.i=0;coutendltt卡号:kahao;coutendltt班级:bangji;coutendltt姓名:name;coutendl注册成功!endl;system(pause);void b2(B *dz)/删除读者int zs,kahao,j=0;B *p;e:coutendlkahao; ifstream fin;fin.open(读者总数.txt); finzs;fin.close();for(int i=0;izs;i+)if(kahao=dzi.kahao)p=&dzi; /此处指针修改后就指向了修改的地方coutendltt卡号:kahao; coutendltt班级:bangji; coutendltt姓名

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论