[计算机软件及应用]图书馆管理系统含源代码.doc

上传人:rrsccc 文档编号:9253504 上传时间:2021-02-12 格式:DOC 页数:99 大小:1.27MB
返回 下载 相关 举报
[计算机软件及应用]图书馆管理系统含源代码.doc_第1页
第1页 / 共99页
[计算机软件及应用]图书馆管理系统含源代码.doc_第2页
第2页 / 共99页
[计算机软件及应用]图书馆管理系统含源代码.doc_第3页
第3页 / 共99页
[计算机软件及应用]图书馆管理系统含源代码.doc_第4页
第4页 / 共99页
[计算机软件及应用]图书馆管理系统含源代码.doc_第5页
第5页 / 共99页
点击查看更多>>
资源描述

《[计算机软件及应用]图书馆管理系统含源代码.doc》由会员分享,可在线阅读,更多相关《[计算机软件及应用]图书馆管理系统含源代码.doc(99页珍藏版)》请在三一文库上搜索。

1、数据结构大作业设计报告作业名称: 图书信息管理系统 学 院 计算机科学与工程学院 专 业 计算机科学与技术2班 学生姓名 学 号 201130580466 任课教师 张芩 提交日期 2013/2/24 一、 需求分析l 图书信息管理系统内容简述:图书信息管理系统记录了图书馆中图书的图书号、书名、作者姓名、出版社名、图书的现存量和总库存量等书籍数据,同时有以管理员登陆系统的方式进行对书籍数据以及借阅者的信息进行管理,可以实现对书籍和借阅者进行添加,修改,删除。基本业务活动要求(实现的功能):1. 管理员:(1)新书采编入库:新购入一种书,经分类和确定书号之后登记到图书帐目中去。如果这种书在帐中已

2、有,则只将总库存量增加。(2)修改已在图书库中的图书信息。(3)清除库存:某种书已无保留价值,将它从图书帐目中注销。(4)查询已在图书库中的图书信息。(5)对借阅者的信息进行管理:新增,查询,修改,删除等等。(6)查看借阅记录。2. 借阅者:(1)查询图书信息:a)按书名查询: 如查找所有书名为“数据结构”的图书。b)按作者姓名查询:如查找所有“张三”编写的图书。c)按出版社名查询:如查找所有“机械工业出版社”出版的图书。 d)组合查询:如查找所有“张三”编写的、由“机械工业出版社”出版的图书。(2)借阅:如果一种书的现存量大于零,则借出一本,登记借阅者的图书证号和归还期限,改变该书的现存量。

3、(3)归还:注销对借阅者的登记,改变该书的现存量。二、 项目设计1、 类体系设计有两个类:class bookdata,class managebookclass managebook公有继承class bookdata 2、 类的数据成员和各函数的功能描述class bookdata数据成员:char booknum110, /书类bookname50, /书名writer50, /作者publishing50; /出版社int booknum, /书的序号nowstore, /书的现存量allstore; /书的总库存量class managebook数据成员:char manager50

4、, /管理员用户名reader50, /借阅者姓名cardnum50, /借阅者图书证号password50; /管理员登陆密码int num; /借还图书本数各个功能函数:void setfile(); /初始化数据文件void mainmenu(); /主菜单函数void findbook(int w); /查询图书,w标志用来区分借阅者查询和管理员查询void find(char*file,int w);void landbook(); /借阅图书void land(char*file,managebook p);void returnbook(); /归还图书void returnf(

5、char*file,managebook p);void managermenu(); /管理员板块void landingpass(); /管理员登陆密码函数void managerlanding(); /管理员登陆void addbook(); /新书采编入库void add(char*file,bookdata p);void altbook(); /修改图书信息void alt(char*file,bookdata p);void delbook(); /清除库存,删除图书信息void del(char*file,bookdata p);void managereader(); /借阅

6、者信息管理板块void addreader(); /新增读者信息void checkreader(); /查询读者信息void altreader(); /修改读者信息void delreader(); /删除读者信息void managerenroll(); /管理员注册void checklend(); /查看借阅记录 void altmanager(); /修改管理员信息void delmanager(); /删除管理员信息void del_library(); /注销图书馆开始3、程序流程图 头文件:包含class bookdata,class managebook; void set

7、file();/初始化数据文件y据Y文?件t void mainmenu();/主菜单函数 管理员板块退出!void returnbook(); /归还图书void landbook();/借阅图书void findbook(int w);/查询图书,w标志用来区分借阅者查询和管理员查询 void land(char*file,managebook p);void returnf(char*file,managebook p); Void find(char*file,int w);/查询后可直接借阅 管理员板块 void managermenu(); 管理员登陆 void altmanage

8、r();/修改管理员信息void managerenroll();/管理员注册void delmanager();/删除管理员信息 void del_library();/注销图书馆 管理员登陆 void landingpass();/管理员登陆密码函数 void managerlanding(); /管理员登陆密码函数 借阅者信息管理 void checkland();/查看借阅记录void delbook();/清除库存,删除图书信息void altbook(); /修改图书信息void addbook(); /新书采编入库void findbook(int w);/查询图书,w标志用来区

9、分借阅者查询和管理员查询 void del(char*file,bookdata p);void alt(char*file,bookdata p);void add(char*file,bookdata p);void find(char*file,int w); 借阅者信息管理 void managereader();/借阅者信息管理板块 void checkreader();/查询读者信息void addreader(); /新增读者信息void delreader(); /删除读者信息void altreader(); /修改读者信息 3. 算法分析:在本程序中,头文件定义了两个类:c

10、lass bookdata和class managebook,以及各个功能函数。运行程序,首先执行void setfile();函数,该函数初始化数据文件,将在exe程序所在文件夹生成所有数据文件,若该文件夹没有数据文件,则生成空的数据文件,数据文件记录图书馆管理系统的所有数据。然后由void mainmenu();生成主菜单,主菜单运用switch语句区分指令进行执行功能,其他菜单亦雷同形成。主菜单前3项选择为借阅者(读者)所选择的查询,借阅,归还图书,分别调用void findbook(int w); void landbook(); void returnbook(); 此3个函数还分别

11、有一个子函数:void find(char*file,int w); void land(char*file,managebook p); void returnf(char*file,managebook p);直接在数据文件上对图书执行相应功能。其中void findbook(int w);和void find(char*file,int w);中的w为区分管理员和借阅者查询图书的标志,若是借阅者查询,在查询完毕后可以根据查询结果直接调用void landbook();进行借阅图书。当然,借阅者也可以直接借阅而不用经过查询。在让借阅者执行查询,借阅,归还图书等操作之前,首先要在初始化的数据

12、文件中添加图书信息,所有主菜单的第4项选择为调用void managermenu();函数转到管理员板块。管理员板块有5项选择:登陆,注册,修改,删除,注销图书馆。管理员登陆需要输入其用户名和登陆密码,用户名和登陆密码要在管理员注册中才可获得,而管理员注册也需进行权限确认,即要正确输入权限密码才能完成管理员注册,本程序权限密码为”201130580466”。管理员信息的修改、删除也要输入权限密码进行确认,确保图书馆管理的严密性。每个管理员都拥有自己独特的用户名和登陆密码,凭此调用void managerlanding();跳转到图书馆管理菜单,调用该函数之前要先调用void landingpa

13、ss()进行用户名和登陆密码的确认。图书馆管理菜单有6项选择:新书入库,修改图书信息,注销图书,管理员查询图书,借阅者信息管理,查看借阅记录;分别由void addbook(); void altbook(); void delbook(); void findbook(int w); void managereader(); void checkland(); 完成功能执行。void addbook(); void altbook(); void delbook();此3个函数同样拥有子函数void add(); void alt(); void del();直接对存储于数据文件中的图书信息

14、进行相应编辑,完成功能执行。void checkland();则是对借阅记录的查看。void managereader();则是管理员对借阅者自身信息的管理,众所周知,从图书馆借书最起码需要借阅者的姓名和图书证号,以便对图书的借阅进行记录。所以void managereader();是对借阅者(读者)信息的管理,类似图书管理,它拥有新增,查询,修改,删除等功能,由函数void addreader(); void checkreader(); void altreader(); void delreader(); 完成相应功能。 整个图书馆管理系统大体结构就如上所述,大概可分为管理员信息管理,图

15、书信息管理和借阅者信息管理3个模块,外加一个借阅记录则构成图书馆管理系统。本程序对数据文件中数据的编辑是通过将数据文件中的数据编辑后转移至中转文件中,再将中转文件的数据复制回清空了的数据文件当中,即可完成编辑。 三、 测试报告1、 程序测试截屏主菜单:管理员板块:管理员注册:修改,删除,注销图书馆界面类似管理员登陆:修改,注销图书类似借阅者信息管理:查询,修改,删除类似借阅者查询图书:归还图书:2、 程序测试结果结果分析:调试无问题,基本上能符合题目要求。3、 设计过程中遇到的问题及解决方法刚开始的时候我想用二进制文件作为数据文件,后来因对二进制文件的不熟悉而频频出错,所以该用文本文件作为数据

16、文件;4、 尚未解决的问题在作非法数据输入时,例如:要求输入A,但输入AA,程序并未出现错误提示,并如同时输入A一般继续运行程序还有,例如:定义一个整形变量 int I; 但当输入一个char 型数据时,无法从错误中恢复 只有输入错误的int 型数据时,才有错误提示五、收获与心得老实说,这次大作业在刚开始做的时候并不是觉得很难,主要障碍问题不多,但在程序调试修改的时候却频频出现问题,调试修改所花的时间甚至写出最初的程序要更多。并且我原打算看能不能用MFC来做,但因对这个实在是太陌生,完全不了解,看书也只看得半懂,根本运用不了,只能放弃虽然在调试程序遇到了较多的困难,但是都一一去把它解决了。从中

17、也让我知道了要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。因为我们学习知识就是为了实践。而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。Readme:管理员权限密码:201130580466对管理员信息的处理(注册、修改、删除)需要输入最高权限的管理员权限密码! 已注册的管理员:(姓名 密码)李观文1234吴凯彬2345源代码:/head.h#include#include #include #include#include using namespace std;class bookdata /图书类public:bookdata(char*bn=bookna

18、me0,char*w=writer0,char*p=publishing0,int bm=0,int n=0,int a=0)strcpy_s(bookname,bn);/构造函数 strcpy_s(writer,w); strcpy_s(publishing,p); booknum=bm; nowstore=n; allstore=a;bookdata *next; /数据成员char booknum110,bookname50,writer50,publishing50;/书类、书名、作者、出版社int booknum,nowstore,allstore; /书的序号、书的现存量、书的总库

19、存量;class managebook:public bookdata /图书管理类,公有继承图书类public:managebook(char*ma=manager0,char*r=reader0,char*c=cardnum0,char*p=password0,int n=0)strcpy_s(manager,ma);/构造函数 strcpy_s(reader,r); strcpy_s(cardnum,c); strcpy_s(password,p); num=n;char manager50,reader50,cardnum50,password50;/管理员用户名、借阅者姓名、借阅者图

20、书证号、管理员登陆密码int num,month,day; /借还图书本数;void setfile(); /初始化数据文件void mainmenu(); /主菜单函数void findbook(int w); /查询图书,w标志用来区分借阅者查询和管理员查询void find(char*file,int w);void landbook(); /借阅图书void land(char*file,managebook p);void returnbook(); /归还图书void returnf(char*file,managebook p);void managermenu(); /管理员板

21、块void landingpass(); /管理员登陆密码函数void managerlanding(); /管理员登陆void addbook(); /新书采编入库void add(char*file,bookdata p);void altbook(); /修改图书信息void alt(char*file,bookdata p);void delbook(); /清除库存,删除图书信息void del(char*file,bookdata p);void managereader(); /借阅者信息管理板块void addreader(); /新增读者信息void checkreader(

22、); /查询读者信息void altreader(); /修改读者信息void delreader(); /删除读者信息void checkland(); /查看借阅记录 void managerenroll(); /管理员注册void altmanager(); /修改管理员信息void delmanager(); /删除管理员信息void del_library(); /注销图书馆/add.cpp#includehead.hvoid add(char*file,bookdata p)int c=0;bookdata t;int j=0,w=0,s100000;for(int i=0;it.

23、booknum1t.booknumt.booknamet.writert.publishingt.nowstoret.allstore) if (!strcmp(t.bookname,p.bookname)&(!strcmp(t.writer,p.writer)&(!strcmp(t.publishing,p.publishing) coutc; t.nowstore=t.nowstore+c; t.allstore=t.allstore+c;j=1; /新添加的书籍已存在,则直接改动现存量和总库存量 ft.booknum1 t.booknumtt.booknamett.writertt.pu

24、blishingtt.nowstorett.allstoret.booknum1t.booknumt.booknamet.writert.publishingt.nowstoret.allstore) ft.booknum1 t.booknumtt.booknamett.writertt.publishingtt.nowstorett.allstoreendl; fa.close(); f.close(); else fa.close();f.close(); f.open(file,ios:app); /新添加的书籍尚未存在,则直接在数据文件中追加 if(!w)p.booknum=0; el

25、se for(int i=0;i=w+1;i+)s0=1;if(si=0)p.booknum=i;break; coutp.nowstore; p.allstore=p.nowstore; fp.booknum1 p.booknumtp.booknametp.writertp.publishingtp.nowstoretp.allstoreendl; f.close(); /addbook.cpp#includehead.hvoid addbook()system(cls);while(1)char i;bookdata p;cout新书属于哪一类目:n;couttt =endl; coutt

26、t tA 马克思主义、列宁主义、 t endl;couttt t 毛泽东思想、邓小平理论 t endl;couttt tB 哲学、宗教 t endl;couttt tC 社会科学总论 t endl;couttt tD 政治、法律 t endl;couttt tE 军事 t endl;couttt tF 经济 t endl;couttt tG 文化科学、教育、体 t endl;couttt tH 语言、文字 t endl;couttt tI 文学 t endl;couttt tJ 艺术 t endl;couttt tK 历史、地理 t endl;couttt tN 自然科学总论 t endl;couttt tO 数理科学和化学 t endl;couttt tP 天文学、地球科学 t endl;couttt tQ 生物科学 t endl;couttt tR 医药、卫生 t endl;cout

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1