《C++语言》课程设计报告图书信息管理系统Word文档格式.docx

上传人:b****7 文档编号:22960794 上传时间:2023-02-06 格式:DOCX 页数:69 大小:30.43KB
下载 相关 举报
《C++语言》课程设计报告图书信息管理系统Word文档格式.docx_第1页
第1页 / 共69页
《C++语言》课程设计报告图书信息管理系统Word文档格式.docx_第2页
第2页 / 共69页
《C++语言》课程设计报告图书信息管理系统Word文档格式.docx_第3页
第3页 / 共69页
《C++语言》课程设计报告图书信息管理系统Word文档格式.docx_第4页
第4页 / 共69页
《C++语言》课程设计报告图书信息管理系统Word文档格式.docx_第5页
第5页 / 共69页
点击查看更多>>
下载资源
资源描述

《C++语言》课程设计报告图书信息管理系统Word文档格式.docx

《《C++语言》课程设计报告图书信息管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《《C++语言》课程设计报告图书信息管理系统Word文档格式.docx(69页珍藏版)》请在冰豆网上搜索。

《C++语言》课程设计报告图书信息管理系统Word文档格式.docx

任课教师

意见

说明

1.4

2..5

3.8

4.18

5.21

6.21

7..22

1.需求分析

题目:

图书信息管理系统设计

1)信息包括:

登录号、书名、作者名、分类号、出版单位、出版时间、价格,试设

计一图书信息管理系统,使之能提供以下功能:

系统以菜单方式工作

图书信息录入功能(图书信息用文件保存)--输入

图书信息浏览功能--输出

查询和排序功能:

(至少一种查询方式)--算法

1.按编号查找

2.按书名查询

3.按作者名查询

4.按出版社查找

图书信息的删除与修改(可选项)

2)需求说明:

编号、书名、作者名、分类号、出版单位、出版时间、价格等,并且要求编号不重复;

录入的图书信息要求用文件形式保存,并可以对其进行浏览、查询、修改、删除等基本操作;

对图书信息查询应能够分别按书名及作者名两种方式进行,要求能返回所有符合条件的读者的信息;

对读者信息的修改应逐个地进行,一个读者信息的更改不应影响其他的读者记

录;

系统应以菜单方式工作,应为用户提供清晰的使用提示,依据用户的选择来进行各种处理。

2.概要设计

要进入图书信息管理系统,就要先登录,每个用户都有三次登录机会,若登录失

败三次,系统就自动退出,登录成功后方可进行操作。

登录后你可以有选择性的操作,

可以进行图书的维护、读者的维护、借书操作、还书操作或是退出系统。

进入图书信

息后,可以选择新增图书、更改图书、删除图书、查找图书、显示图书、全部删除或

者是返回。

进入读者信息后也是一样,可进行新增、更改、删除、查找、显示、全部

删除或者是返回。

进入借书操作后,要借书的话就输入读者编号加想要借的图书编号

就可完成借书。

还书操作也一样,输入还书读者编号加图书编号即可完成还书操作。

图书信息

管理系统

先登录才能进

行操作!

登录:

1

退出:

0

2

3

4

退

图1.系统功能图图书信息

6

图2.图书维护功能图

读者信息项目

读者信息

图3.读者维护功能图

借书项目

借阅图书

输入读者编号:

输入图书编号:

借书成功

图4.借阅图书功能图

还书项目

归还图书

输入图书编号:

还书成功

图5.归还图书功能图

3.详细设计

1.头文件:

#include<

iostream.h>

#include<

conio.h>

//控制台数据输入输出的函数

fstream.h>

//文件流

iomanip.h>

//控制数据输出格式

string.h>

2.控制图书、读者和每

constintMaxr=100;

//最多的读者数

位读者的借书数量。

constintMaxb=100;

//最多的图书数

constintMaxbor=5;

//每位读者最多

借的书

3.定义一个BDatabase(图书库)类,

classBDatabase

实现对图书的维护,查找,删除等功能。

定义一个构造函数BDatabase(),将写入到book.txt的数据读到book[]中。

{

Bookb;

BDatabase()top=-1;

fstreamfile("

book.txt"

ios:

:

in);

while

(1)

file.read((char*)&

b,sizeof(b));

if(!

file)

break;

top++;

book[top]=b;

}

file.close();

定义一个void类型的clear()函数,voidclear()

用于删除全部图书数据。

chari;

cout<

<

"

确定全部删除

吗?

Y/N?

endl;

cin>

>

i;

if(i=='

y'

||i=='

Y'

top=-1;

定义一个intaddbook(intn,char*na,char*aa,char*fe,char*ca,inttime,double

price,intoa)函数,来增加图书。

Book*p=query1(n);

if(NULL==p)

book[top].addbook(n,na,aa,fe,

ca,time,price,oa);

return1;

return0;

定义四个指针函数,

用于查找图书:

a.按编号查找

b.按书名查找

c.按作者名查找

d.按出版社查找

Book*query1(intbookid)

for(inti=0;

i<

=top;

i++)

if(book[i].getno()==bookid

&

book[i].gettag()==0)

return&

book[i];

returnNULL;

r++;

if(r==0)

找不到该

书!

按编号查找图书

按书名查找

按作者名查找

Book*query2(chara[])

Book*query3(chara[])

Book*e;

intr=0;

if(strcmp(book[i].getname(),a)==0

if(strcmp(book[i].getauthorname(),

a)==0&

setw(3)<

setw(10)<

setw(15)<

存量"

e=&

e->

disp();

Book*query4(chara[])

按{

for(inti=0;

if(strcmp(book[i].getcbsname(),a)==0&

if(r==0)cout<

编号"

书名"

作者"

分类号"

出版社"

出版时间"

图书价格"

定义一个析构函数~BDatabase(),

将book[]写到book.txt文件中。

out);

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

file.write((char

*)&

book[i],sizeof(book[i]));

定义一个函数bookdata(),用于图书数据的处理,

先定义一些数据成员。

设立了多个选择语句。

图书信息的选择。

charchoice3;

charbname[40];

//书名

charauname[40];

//作者名

charbfenlei[40];

//分类号

charcname[40];

//出版社

inttime;

//出版时间

doubleprice;

//价格

charch;

intchoice4;

intbookid;

intbookod;

Book*b;

\n\t\t\t**

书信息**\n"

\t\t\t**1.

增**"

\t\t\t**2.

改**"

\t\t\t**3.

除**"

\t\t\t**4.

找**"

\t\t\t**5.

示**"

\t\t\t**6.

删**"

\t\t\t**0.

回**"

\t\t\t请选择:

"

;

新增图书

charchoice2;

Y/N?

**\n"

输入:

\t\t\t**

1.

Y

**"

编号

0.N

书名

作者名

\t\t\t请

择:

分类号

choice2;

出版社

switch(choice2)

出版时间

7

价格

case'

1'

存量

是否保存?

添加图书成功!

0'

修改图书

\n\t\t\t**图书修改**\n"

改书名

改作者

改分类号

改出版社

\t\t\t**5.修

改出版时间**"

\t\t\t**6.修

改图书价格**"

\t\t\t**7.修

改图书数量**"

图书修改模块,主要功能如上。

查找选项

按图书编号查找**"

按图书书名查找**"

按图书作者查找**"

按图书出版社查找**"

\t\t\t请选择:

图书查找,可按编号查找,书名查找,作者名查找,出版社查找。

显示图书全删

1编号

2书名

删除

所有

图书

信息

7价格

8存量

4.定义一个读者库类Rdatabase,

实现建立读者的个人资料。

ClassRdatabase{

定义一个构造函数RDatabase(),

将reader.txt中数据读到read[]中。

Readers;

reader.txt"

//打开一

个输入文件

s,sizeof(s));

read[top]=s;

//关闭reader.txt文件

定义一个void型的clear()函数,

删除所有读者信息。

确定全部删

除吗?

intaddreader(intn,char*na)

添加读者

//添加读者时先查找是否存在

Reader*p=queryid(n);

if(p==NULL)

read[top].addreader(n,na);

else

该编号已经存在!

利用析构函数~RDatabase(),

将read[]写到reader.txt文件中。

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

file.write((char*)&

read[i],sizeof(read[i]));

读者信息的选择操作:

读者信息**\n"

\t\t\t

请选择:

读者的查找操作

按读者编号查找

按读者姓名查找

定义一个book类,实现对图书的描述,

图书的编号,书名,借出,还入等功能。

Classbook{

私有成员有:

inttag;

//删除标记1:

已删0:

未删

intno;

//图书编号

charname[20];

//书名

charauthor[20];

//作者

charfenlei[20];

charcbs[20];

//出版社

intcbtime;

doublebookprice;

//图书价格

intonshelf;

//是否再架1:

再架2:

已借

定义了一系列的公有成员函数来实现

一系列的功能。

char*getname()

//获取书名

char*getauthorname()

//获取作者名

char*getfenlei()

//获取分类号

char*getcbsname()

//获取出版社名

intgetcbtime()

//获取出版时间

doublegetbookprice()

//获取图书价格

intgetno()

//获取图书编号

intgettag()

//获取删除标记

5.定义一个读者类Reader,

实现读者的信息描述。

ClassReader{

//删除标记1表示已删0表示未删

//读者编号

//读者姓名

intborbook[Maxbor];

//所借图书

还设置了一些成员函数,来获取一些数据。

//获取姓名

//获取读者编号

6.定义一个maindesk类,

实现程序的主界面。

Classmaindesk{

私有数据成员有:

charchoice5;

doublexh,mm;

intbookid,readerid;

RDatabaseReaderDB;

Reader*r;

BDatabaseBookDB;

设置了一个登录函数denglu(),

以实现登录操作界面。

\n\t\t\t欢迎光临图书馆管理系统!

\t\t\t您共有3次登陆机会"

\t\t\t**1.登录**"

\t\t\t**0.退出**"

\t\t\t请选择:

设置了一个void型enterdesk()函数,

以实现图书管理系统的界面。

\n\t\t\t****图书管理系统****\n\n"

息**"

书**"

7.主函数mai

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

当前位置:首页 > 工程科技 > 兵器核科学

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

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