图书管理系统课程设计
说明一下这是最近博主做的一篇C++课程设计报告形式的,代码的话我是测试过的应该没有bug,如果有问题的话可以在评论@我。
第一章 问题描述
要求以图书馆管理业务为背景,设计并实现一个“图书馆管理信息系统”软件,使用该系统可以方便查询图书的信息、借阅者的个人等信息,实现借书与还书等功能。
要求:(1)实现图书信息的录入、修改、删除和查看(2)实现借阅者分类及借阅者个人信息的录入、修改和删除(3)实现借书和还书功能(4)可图书信息查询和读者信息查询(5)对用户信息管理及权限分配
第二章 需求分析
根据题目的任务要求,对将要实现的系统做功能分析及数据分析如下:
(1)功能分析(操作需求)
根据问题描述与设计要求,本系统应具备如下功能:
图书系统的创建:系统启动时,从图书馆功能文件加载图书信息,如果图书馆功能文件不存在,应初始化图书馆功能文件;
添加图书信息:增加新的图书信息到图书信息系统中;
修改图书信息:修改现有的图书的基本信息;
删除图书信息:从图书信息系统中删除一个已经存在的图书信息;
查找图书信息:查找图书是否存在。
显示图书信息:显示图书信息。
全删图书信息:把图书信息全部清空。
读者信息系统的创建:系统启动时,从图书馆功能文件加载读者信息;
添加读者信息:增加新的读者信息到读者信息系统中;
修改读者信息:修改现有的读者的基本信息;
删除读者信息:从读者信息系统中删除一个已经存在的读者信息;
查找读者信息:查找读者是否存在。
显示读者信息:显示读者信息。
全删读者信息:把读者信息全部清空。
借书管理系统的创建:系统启动时,从图书馆功能文件加载借书管理系统;
借书功能:输入借书图书信息,查找该图书并取走该书,并进行记录借阅者信息。
还书功能:输入借书图书信息,查找该图书并插入。
退出系统管理的创建:关闭正运行的系统回到到图书管理系统 。
(2)数据分析
根据问题描述确定图书信息包括:书名,编号;借阅者的信息有:姓名,编号;借书信息包括:读者信息,书籍信息。
第三章 编程实现
#include <iostream>
#include <iomanip>
#include <cstring>
#include <fstream>
#include <stdlib.h>
using namespace std;
const int Reader=100; //给读者分配储存空间
const int Maxb=100; //给图书分配储存空间
const int Bor=5;
class Student
{
private:
int tag;
int number;
char name[10]; //读者名称
int borbook[Bor];
public:
Student() {
}
char *getname()
{
return name;
}
int gettag()
{
return tag;
}
int getnumber()
{
return number;
}
void setname(char *na)
{
strcpy(name,na);
}
void delbook()
{
tag=1;
}
void addStudent(int n,char *na)
{
tag=0;
number=n;
strcpy(name,na);
for(int i=0; i<Bor; i++)
borbook[i]=0;
}
void borrowbook(int bookid) //借书操作
{
for(int i=0; i<Bor; i++)
{
if (borbook[i]==0)
{
borbook[i]=bookid;
return;
}
}
}
int retbook(int bookid) //还书操作
{
for(int i=0; i<Bor; i++)
{
if(borbook[i]==bookid)
{
borbook[i]=0;
return 1;
}
}
return 0;
}
void output() //读出读者信息
{
cout << setw(5) << number <<setw(10) << name<<"借书编号:[";
for(int i=0; i<Bor; i++)
if(borbook[i]!=0)
cout << borbook[i] << "|";
cout << "]"<<endl;
}
};
class RData
{
private:
int top; //读者记录指针
Student read[Reader];
public:
RData() //构造函数,将Student.txt读到read[]中
{
Student s;
top=-1;
fstream file("Student.txt",ios::in); //打开一个输入文件
while (1)
{
file.read((char *)&s,sizeof(s));
if (!file)break;
top++;
read[top]=s;
}
file.close();
}
void clear()
{
top=-1;
}
int addStudent(int n,char *na) //查找是否存在
{
Student *p