-
C++
课程设计
课程设计
系部:
计算机应用技术系
专业:
计算机应用技术
班级学号:
姓名:
一、系统功能分析
:
图书管理系统
设计说明报告:
< br>图书馆作为学生学习知识的重要场所,作为信息资源的集散地,图书馆和用户借阅资料繁
< br>多,包含很多的信息数据的管理。介于这一现象,我们对于图书馆的借阅管理系统进行了全面
的分析处理,在信息高速发展的今天,促进图书馆管理运用网络技术,通过信息系统的开发,
在图书馆之间互通有无,有利于提高图书的利用率。
我的系统针对的是图书管理,面对大量纷繁复杂的图书管理工作,和不同图书的借出和归
还,需要设计一个合理的系统,它应包括图书库,读者库,和图书的借还书信息建立网上电子
图书管理系统的目的是实现无纸化图书管理,减轻管理员的工作量,
p>
对过时、损失的图书进行删除,达到降低成本提高工作效率的目标。
我的系统设计还有很多的缺点和不足,在以后的时间里要不断的完善,修改。希望老师能
够指出我的不
足,使其能够真正的,更好的应用在人们的生活中。
二、系统设计:
设计了四个类,
Reader
(读者类),
Rdata
base
(读者库类),
Book
(图
书类)和
Bdatabase
(图
书库
类),读者类主要用于存储信息,其中包括读者的基本属性
int
tag
删除标记
1
< br>:已删,
0
:
未删
int no;
读者编号
char
name[10];
读者姓名
int
borbook[Maxbor];
所借图书
;
char
*getname()
获取姓名
int gettag()
获取删除标记
int
getno()
获取读者编号
void
setname(char
na[])
设置姓名
void
delbook()
设置删除标记
void
addreader(int n,char *na)
增加读者
void borrowbook(int
bookid)
借书操作
int retbook(int
bookid)
还书操作
void
disp()
输出读者信息;读者库类包括:
int
top;
读者记录指针
Reader
read[Maxr];
读者记录
RDatabase()
构
造函数,将
读到
read[]
中
void clear()
删除所有读者信息
int
addreader (int n,char *na)
添加读者时先查找是否存在
Reader
*query(int readerid)
按编
号查找
void disp()
输出所有读者信息
void readerdata();
读者库维护
~RDatabase()
析构函
数,将
read[]
写入
p>
文件中
图书类包括:
int
tag;
删除标记
1
:已删
0
:未删
int
no;
图书编号
char
name[20];
书
名
int
onshelf;
是否在架
1
:在架
0
:已借
char
*getname()
{return
name;}
获得书名
int
getno() {return no;}
获得书编号
int gettag() {return
tag;}
获得删除标记
void
setname(char na[])
设置书名
void
delbook()
删除图书
void
addbook(int n,char
*na)
增加
图书
int
borrowbook()
借书操作
void
retbook()
还书操作
void
disp()
输出图书图书库类包
括:
int
top;
图书记录指针
Book book[Maxb];
图书记录
BDatabase()
构
造函数,将
读到
book[]
中
void clear()
全删
int addbook(int n,char
*na)
增加图书
Book *query(int
bookid)
查找图书
void
bookdata();
图书库维护
~Bdatabase
析构函数,
将
b
ook[]
写入
文件中
Reader(
读者类
)
Int
tag
Int no
Char name[10]
Int borbook[maxbor]
Reader()
Char *getname()
Int gettag()
Int getno()
Void
setname(char na[])
Void delreader()
Void addreader(int n,char
*na)
Void borrowbook(int
bookid)
Int retbook(int bookid)
Void disp()
三、代
Book
(图书类)
Int tag
Int no
Char name[20]
Int oneself
Book()
Char *getname()
Int getno()
Int gettag()
Void
setname(char na[])
Void delbook()
Void
addbook(int
n,char
*na)
Void
borrowbook()
Int retbook()
码编写:
Void disp()
#include
#include
#include
#include
const int Maxr=100;
const
int Maxb=100;
const int Maxbor=5;
class Reader
{
int tag;
int no;
char
name[10];
int
borbook[Maxbor];
public:
Reader() {}
char *getname() {return name;}
int gettag() {return tag;}
int getno() {return no;}
void setname(char na[])
{
strcpy(name,na);
}
void delbook()
{
tag=1;
}
void addreader(int n,char
*na)
{
tag=0;
Rdatabase
(读者库类)
Int top
Reader read[maxr]
Bdatabase
(图书库类)
Rdatabase()
Int top
Void clear()
Book book[maxb]
Int addreader(int n,char
BDatabase()
*na)
Void clear()
Reader
*query(int readerid)
Int addbook(int
n,char *na)
Void disp()
book
*query(int bookid)
Void readerdata()
Void disp()
~Rdatabase()
Void bookdata()
~BDatabase()
no=n;
strcpy(name,na);
输入读者编号:
for (int i=0;i
borbook[i]=0;
}
void borrowbook(int bookid)
{
for (int
i=0;i
if (borbook[i]==0)
{
borbook[i]=bookid;
return;
}
}
int retbook(int bookid)
{
for (int i=0;i
if
(borbook[i]==bookid)
{
borbook[i]=0;
return 1;
}
return 0;
}
void disp()
{
cout<
借书编号
:[
for
(int i=0;i
if (borbook[i]!=0)
cout<
cout<<
}
};
class
RDatabase
{
int top;
Reader
read[Maxr];
public:
RDatabase()
{
Reader s;
top=-1;
fstream
file(
while (1)
{
((char
*)&s,sizeof(s));
if (!file) break;
top++;
read[top]=s;
}
();
}
void clear()
{
top=-1;
}
int
addreader (int n,char *na)
{
Reader *p=query(n);
if (p==NULL)
{
top++;
read[top].addreader(n,na);
return 1;
}
return 0;
}
Reader *query(int readerid)
{
for (int i=0;i<=top;i++)
if
(read[i].getno()==readerid && read[i].gettag()==0)
return &read[i];
return NULL;
}
void disp()
{
for (int
i=0;i<=top;i++)
{
if (read[i].gettag()==0)
read[i].disp();
}
}
void readerdata();
~RDatabase()
{
fstream file(
for (int i=0;i<=top;i++)
if
(read[i].gettag()==0)
((char
*)&read[i],sizeof(read[i]));
();
}
};
void
RDatabase::readerdata()
{
int choice=1;
char rname[20];
int readerid;
Reader *r;
while(choice!=0)
{
if
(choice!=0)
{
cout<<
读者维护
:新增
2
:更改
3
:删除
4
:查找
5
:显示
6
:全删
0
:
退出
=>
cin>>choice;
if(choice==0)continue;
if(choice==1)
{
cou
t<<
输入读者编号:
cin>>readerid;
cou
t<<
输入读者姓名:
cin>>rname;
addreader(readerid,rname);
}
else
if(choice==2)
{
cout<<
cin>>readerid;
r=query(readerid);
if (r==NULL)
{
p>
cout<<
该读者不存在
continue;
}
cout<<
输入新的姓名:
cin>>rname;
r->setname(rname);
}
else
if(choice==3)
{
cout<<
输入读者编号:
cin>>readerid;
r=query(readerid);
if
(r==NULL)
{
cout<<
该读者不存在
continue;
}
r->delbook();
-
-
-
-
-
-
-
-
-
上一篇:吉林省2020版中考地理试题(I)卷
下一篇:ERP专业名词