完整版图书管理系统毕业课程设计内容.docx

上传人:b****8 文档编号:28604341 上传时间:2023-07-19 格式:DOCX 页数:43 大小:211.46KB
下载 相关 举报
完整版图书管理系统毕业课程设计内容.docx_第1页
第1页 / 共43页
完整版图书管理系统毕业课程设计内容.docx_第2页
第2页 / 共43页
完整版图书管理系统毕业课程设计内容.docx_第3页
第3页 / 共43页
完整版图书管理系统毕业课程设计内容.docx_第4页
第4页 / 共43页
完整版图书管理系统毕业课程设计内容.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

完整版图书管理系统毕业课程设计内容.docx

《完整版图书管理系统毕业课程设计内容.docx》由会员分享,可在线阅读,更多相关《完整版图书管理系统毕业课程设计内容.docx(43页珍藏版)》请在冰豆网上搜索。

完整版图书管理系统毕业课程设计内容.docx

完整版图书管理系统毕业课程设计内容

 

面向对象技术与C++

课程设计报告

 

题目:

图书馆管理系统

院(系):

计算机科学与工程学院

专业:

信息对抗专业

班级:

130609

学生:

许明龙

学号:

指导教师:

姜虹

 

2014年7月

摘要

随着计算机技术的飞速发展,电子信息化慢慢替代了企业管理的传统管理手法,采用管理系统是能够有效提高管理效率的。

图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。

图书馆若采取手工方式对图书资料和图书借阅情况进行人工管理,由于资料繁多,手工处理的工作量大,整体管理效率低下,也不方便读者对图书资料的查阅。

为了提高日常的图书管理效率,本文针对通常的图书管理流程,设计了一个面向对象图书管理系统。

本系统中包含六个功能模块:

图书馆基本信息,借书,还书,读者维护,图书维护,管理员维护。

summary

Withtherapiddevelopmentofcomputertechnology,electronicinformationtechnologygraduallyreplacedthetraditionalmanagementofenterprisemanagementmethods,managementsystem,caneffectivelyimprovetheefficiencyofmanagement.Libraryasakindofinformationresourcecollectionanddistributioncenter,libraryanduserlendingdataisvarious,containsalotofinformationdatamanagement,today,therearealotoflibrariesarepreliminarystartedusing,useacomputerforinformationmanagement.Iflibrariesadoptmanualapproachtoartificialmanagementbooksandmaterialsandlibrary,becausethematerialisvarious,manualprocessingworkloadisbig,theoverallmanagementefficiencyislow,alsonotconvenienttoreadersofbooksandmaterialsinspection.Inordertoimprovetheefficiencyofbooksmanagement,thispaperusuallybooksmanagementprocesses,anobject-orientedbooksmanagementsystemmanagementsystemisdesigned.Thissystemcontainssixmodules:

basicinformation,librarybooks,andbooks,thereadermaintenance,maintenance,administratorstomaintain.

 

1引言1

1.1问题的提出1

1.2国内外研究的现状1

1.3任务与分析1

2程序的主要功能2

2.1添加功能2

2.2删除功能2

2.3删除全部职员信息2

2.4显示功能2

2.5查找功能2

2.6修改功能2

2.7借书、还书2

3程序运行平台3

4总体设计4

5程序类的说明5

6模块分析8

6.1添加模块8

6.2显示模块8

6.3修改模块8

6.4查找模块8

6.5删除模块8

6.6清空模块8

7系统测试9

8结论10

参考文献11

1.1课题背景意义

在学校现代化的管理中,图书馆管理系统也是其中非常重要的一部分,然而,用大型软件系统来于小型的图书管理,不啻于“杀鸡用牛刀”,因此小型的的软件对于这种管理自然有十分重要作用。

某图书馆需要管理其各种人员信息和图书信息,希望实现办公的信息化,通过建立一个图书管理系统来管理图书馆。

1.2国内外研究的现状

国内在信息化这一方面做的没有国外好,因此现在需要大量这样的程序人员,图书馆管理系统这一块也需要做大量改进。

1.5任务与分析

本课题主要的目的是………

建立一个图书馆管理系统,可以处理以下对象:

.图书馆基本信息

.图书馆的书籍

.图书馆管理员

.读者信息

2.程序的主要功能

1.查询图书馆的总信息

2.查询图书馆管理员的信息

3.查询图书馆藏书信息

4.存入新书

5.存入新的管理员的信息

6.修改管理员的信息(增加工龄,加薪)

7.根据书名检索书刊信息

8.查询读者的借阅信息

9.查询读者信息

10.图书和管理员等信息应存放在不同的文件中,便于查询。

流程图

借书失败

输入读者姓名

书不存在

2.1添加功能

添加一个读者的基本信息,包括姓名、编号;添加一本书的基本信息,书名、编号;添加一个图书管理员的基本信息,姓名、员工号、工资、工龄。

2.2删除功能

能够对一个读者、图书管理员、一本书的信息进行删除按姓名进行删除。

2.3删除全部成员信息

能够对于全部读者和员工的信息进行删除!

2.4显示功能

显示所有读者、图书、员工的主要信息包括姓名或书名,编号等。

2.5查找功能

根据你键入的编号,显示其详细信息!

2.6修改功能

对读者、图书、员工的信息进行修改。

2.7借书、还书

输入读者编号和要借或要还的书处理并把信息存在读者信息内。

3程序运行平台

VC++6.0。

具体操作如下:

新建……文件,创建C++sourcefile……,写入程序再编译,链接,执行等。

4总体设计

图4.1系统总体框架图

5程序类的说明

管理员信息输出类的声明

classLibrarian

{

private:

inttag;

intno;编号

charname[10];

intworkage;工龄

intsalary;

public:

Librarian(){}

char*getname(){returnname;}

intgettag(){returntag;}

intgetno(){returnno;}

voidsetname(charna[])

{

strcpy(name,na);

}

voiddelworker(){tag=1;}

voidaddlibrarian(intn,char*na)增加管理员

{

tag=0;

no=n;

strcpy(name,na);

workage=0;

salary=2000;

}

voiddisp()读出管理员信息

{

cout<

"<

"<

}

};

∙读者信息输出类的声明

classReader

{

private:

inttag;删除标记1:

已删0:

未删

intno;读者编号

charname[10];读者姓名

intborbook[Maxbor];所借图书

public:

Reader(){}

char*getname(){returnname;}获取姓名

intgettag(){returntag;}获取删除标记

intgetno(){returnno;}获取读者编号

voidsetname(charna[])设置姓名

{

strcpy(name,na);

}

voiddelbook(){tag=1;}设置删除标记1:

已删0:

未删

voidaddreader(intn,char*na)增加读者

{

tag=0;

no=n;

strcpy(name,na);

for(inti=0;i

borbook[i]=0;

}

voidborrowbook(intbookid)借书操作

{

for(inti=0;i

{

if(borbook[i]==0)

{

borbook[i]=bookid;

return;

}

}

}

intretbook(intbookid)还书操作

{

for(inti=0;i

{

if(borbook[i]==bookid)

{

borbook[i]=0;

return1;

}

}

return0;

}

voiddisp()读出读者信息

{

cout<

[";

for(inti=0;i

if(borbook[i]!

=0)

cout<

cout<<"]"<

}

};

6模块分析

6.1添加模块

在各个成员维护中都有添加操作

如新增管理员:

switch(choice)

{

case'1':

cout<<"输入管理员编号:

";

cin>>workerid;

cout<<"输入管理员姓名:

";

cin>>wname;

addlibrarian(workerid,wname);

break;}

intaddlibrarian(intn,char*na)添加管理员时先查找是否存在

{

Librarian*p=query(n);

if(p==NULL)

{

top++;

work[top].addlibrarian(n,na);

return1;

}

return0;

}

6.2显示模块

显示模块将输出所有成员的信息。

如现实管理员的信息:

Switch(choice)

{case'5':

disp();

break;

break;}

voiddisp()输出所有管理员信息

{

for(inti=0;i<=top;i++)

work[i].disp();

}

6.3修改模块

首先由用户输入要修改的成员的姓名,然后系统用修改函数查找,显示该名成员的资料,然后系统提示用户输入需要修改的项目和新的资料。

如修改管理员的信息:

Switch(chioce)

{case'2':

cout<<"输入管理员编号:

";

cin>>workerid;

w=query(workerid);

if(w==NULL)

{

cout<<"该管理员不存在"<

break;

}

cout<<"输入新的姓名:

";

cin>>wname;

w->setname(wname);

break;}

6.4查找模块

首先由用户输入要查找的成员姓名,然后系统用查找函数查找,然后系统就调用输出函数,输出所查找的成员资料。

如管理员:

case'4':

cout<<"读入管理员编号:

";

cin>>workerid;

w=query(workerid);

if(w==NULL)

{

cout<<"该管理员不存在"<

break;

}

w->disp();

break;

6.5删除模块

首先由用户输入要删除的单个成员员姓名,然后调用删除函数,删除该名职员的资料。

如管理员的删除:

case'3':

cout<<"输入管理员编号:

";

cin>>workerid;

w=query(workerid);

if(w==NULL)

{

cout<<"该管理员不存在"<

break;

}

w->delworker();

break;

……

6.6清空模块

系统将会把所有成员的资料全部删除,将链表清空。

如管理员:

Switch(choice)

{case'6':

clear();

break;}

voidclear()删除所有管理员信息

{

top=-1;

}……

7系统测试

首先进入VC++6.0,打开文件:

图书馆管理系统.cpp,然后进入源程序,接着构建运行。

1.第一步出现如图7.1主界面供选择操作

图1

2选择界面上的1查看图书馆基本信息

图2

2.接着可以选择主界面上的3进行图书维护如图7.2,下一步可以选择新增图书等;

图3

3.选择0返回到主界面如图1可选择4进行读者维护然后进行新增、删除、修改等操作如图3最后返回主界面进行下一步操作

图4

4.选择5进行管理员维护同上面相同如图5

图5

5.选1借书操作如图6然后可以查看读者的借书情况如图7

图6

图7

8总结

本程序使用了3个类:

图书类,读者类,管理员类。

使用链表进行储存,查找时按照节点顺序依次查照。

根据输入的结果调用相应函数,图书馆的基本功能大都能够实现。

9结论

我的这个图书馆管理系统做的不是很好,有些基本功能能够实现,虽然有借书、还书以及对读者、管理员、图书的维护,但是有很多细节操作没有体现出来,所以需要进一步改正,如可以对读者增加派生类实现对学生、研究所、老师等的区别,还有文件的保存也需要改进。

通过本次课程设计,让我对C++有了进一步的了解和使用,能把学了的东西用于实践还是让我非常有成就感,但是不足的是对类、派生类还有指针以及文件的运用掌握的不是很好,所以我会在假期内通过多看书反复操作提高自己的编程能力。

在这里还要感谢诸位老师的支持和信赖。

附录

附录1源代码清单

#include

{

private:

inttag;

intno;编号

charname[10];

intworkage;工龄

intsalary;

public:

Librarian(){}

char*getname(){returnname;}

intgettag(){returntag;}

intgetno(){returnno;}

voidsetname(charna[])

{

strcpy(name,na);

}

voiddelworker(){tag=1;}

voidaddlibrarian(intn,char*na)增加管理员

{

tag=0;

no=n;

strcpy(name,na);

workage=0;

salary=2000;

}

voiddisp()读出管理员信息

{

cout<

"<

"<

}

};

管理员类库,实现建立管理员的个人资料

classLDatabase

{

private:

inttop;管理员记录指针

Librarianwork[20];管理员记录

public:

LDatabase()构造函数,将worker.txt读到work[]中

{

Librarianx;

top=-1;

fstreamfile("worker.txt",ios:

:

in);打开一个输入文件

while

(1)

{

file.read((char*)&x,sizeof(x));

if(!

file)break;

top++;

work[top]=x;

}

file.close();关闭worker.txt

}

voidclear()删除所有管理员信息

{

top=-1;

}

intaddlibrarian(intn,char*na)添加管理员时先查找是否存在

{

Librarian*p=query(n);

if(p==NULL)

{

top++;

work[top].addlibrarian(n,na);

return1;

}

return0;

}

Librarian*query(intworkerid)按编号查找

{

for(inti=0;i<=top;i++)

if(work[i].getno()==workerid&&work[i].gettag()==0)

{

return&work[i];

}

returnNULL;

}

voiddisp()输出所有管理员信息

{

for(inti=0;i<=top;i++)

work[i].disp();

}

voidworkerdata();管理员库维护

~LDatabase()析构函数,将work[]写到worker.txt文件中

{

fstreamfile("worker.txt",ios:

:

out);

for(inti=0;i<=top;i++)

if(work[i].gettag()==0)

file.write((char*)&work[i],sizeof(work[i]));

file.close();

}

};

voidLDatabase:

:

workerdata()

{

charchoice;

charwname[20];

intworkerid;

Librarian*w;

while(choice!

='0')

{

cout<<"\n\n\t\t\t管理员维护\n\n\n\t\t1新增\n\n\t\t2更改\n\n\t\t3删除\n\n\t\t4查找\n\n\t\t5显示\n\n\t\t6全删\n\n\t\t0退出"<

cin>>choice;

switch(choice)

{

case'1':

cout<<"输入管理员编号:

";

cin>>workerid;

cout<<"输入管理员姓名:

";

cin>>wname;

addlibrarian(workerid,wname);

break;

case'2':

cout<<"输入管理员编号:

";

cin>>workerid;

w=query(workerid);

if(w==NULL)

{

cout<<"该管理员不存在"<

break;

}

cout<<"输入新的姓名:

";

cin>>wname;

w->setname(wname);

break;

case'3':

cout<<"输入管理员编号:

";

cin>>workerid;

w=query(workerid);

if(w==NULL)

{

cout<<"该管理员不存在"<

break;

}

w->delworker();

break;

case'4':

cout<<"读入管理员编号:

";

cin>>workerid;

w=query(workerid);

if(w==NULL)

{

cout<<"该管理员不存在"<

break;

}

w->disp();

break;

case'5':

disp();

break;

case'6':

clear();

break;

default:

cout<<"输入错误,请从新输入:

";break;

}

}

};

读者类,实现对读者的信息的描述

classReader

{

private:

inttag;删除标记1:

已删0:

未删

intno;读者编号

charname[10];读者姓名

intborbook[Maxbor];所借图书

public:

Reader(){}

char*getname(){returnname;}获取姓名

intgettag(){returntag;}获取删除标记

intgetno(){returnno;}获取读者编号

voidsetname(charna[])设置姓名

{

strcpy(name,na);

}

voiddelbook(){tag=1;}设置删除标记1:

已删0:

未删

voidaddreader(intn,char*na)增加读者

{

tag=0;

no=n;

strcpy(name,na);

for(inti=0;i

borbook[i]=0;

}

voidborrowbook(intbookid)借书操作

{

for(inti=0;i

{

if(borbook[i]==0)

{

borbook[i]=bookid;

return;

}

}

}

intretbook(intbookid)还书操作

{

for(inti=0;i

{

if(borbook[i]==bookid)

{

borbook[i]=0;

return1;

}

}

return0;

}

voiddisp()读出读者信息

{

cout<

[";

for(inti=0;i

if(borbook[i]!

=0)

cout<

cout<<"]"<

}

};

读者类库,实现建立读者的个人资料

classRData

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

当前位置:首页 > 党团工作 > 思想汇报心得体会

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1