C++图书管理系统课程设计
使用面对对象的方法来写的
一共有两个大类 1.Book类(书籍类) 2.Library类(图书馆类)
源码连接:图书管理系统
- Book
class Book
{
public:
Book(){ borrow_flag = false; } //无参构造函数
Book(string name, string num, string auther)
:name(name), num(num), auther(auther){
borrow_flag = false;
} //有参构造函数
void setReader(string reader, int lcn, string data); //设置读者
void setInfo(string name, string num, string auther); //设置书籍信息
string getName(){
return name;
}
string getNum(){ return num; }
string getAuther(){
return auther;
}
bool getBorrow_flag(){
return borrow_flag;
}
string getReader(){
return reader;
}
int getLcn(){
return lcn;
}
string getData(){
return data;
}
bool isBorrow(){ return borrow_flag; } //判断书籍是否借出
void setBorrow_flag(bool b){ borrow_flag = b; }
void showInfo(); //显示数据信息
private:
string name; //书名
string num; //编号(唯一标示)
string auther; //作者
bool borrow_flag;//借阅标志
string reader; //读者
int lcn; //借书证号
string data; //借书日期
};
- Library
class Library
{
public:
Library(){ currentNum = 0; brrowNum = 0; }
void addBook(); //向图书馆里加书籍
void addBook(string name, string num, string auther);//增加的信息
void deleteBook(); //删除无用书籍
void brrowBook(); //借书,之前先判断书籍是否存在
void returnBook(); //还书
void getReader(); //查询某编号的书是谁借了
int indexOfNum(string num); //根据编号得到书在数组中的下标
vector<Book> getBooks(){
return books;
}
friend void read();
void showInfo();//菜单
int getTotalBooks(){ return currentNum + brrowNum; }
private:
vector<Book> books;//所有书籍
map<string, int> readers; //存储读者及其所借的书籍数目
int currentNum; //库存书籍数目(不包括借出的)
int brrowNum; //借出书籍数目
};
main
int main()
{
read();//从文件中读取书籍信息和借阅情况
system("color f5");//设置界面颜色
menu();
return 0;
}
read
void read()
{
int i, temp;
ifstream my1("num.txt");
my1 >> temp;
ifstream my("book.txt");
for (i = 0; i<temp; i++)
{
string name, num, auther, reader, data;
int lcn;
bool borrow_flag;
my >> name >> num >> auther >> borrow_flag;
l.addBook(name, num, auther);
if (borrow_flag)
{
my >> reader >> lcn >> data;
l.books[i].setReader(reader, lcn, data);
}
}
}
menu(菜单)
void menu()
{
int temp;
system("cls");
system("date/t");
system("time/t");
while (1)
{
cout太多了,已图片显示好了
cout << "输入要进行的操作:" ;
cin >> temp;
switch (temp){
case 1:
system("cls");
l.addBook(); save();
break;
case 2:system("cls");
l.deleteBook(); save();
break;
case 3:system("cls");
l.brrowBook(); save();
break;
case 4:system("cls");
l.returnBook(); save();
break;
case 5:system("cls");
l.showInfo();
break;
case 6:system("cls");
l.getReader();
break;
case 0:
save();
exit(1);
break;
default:
cout << "输入错误!" << endl;
system("pause");
system("cls");
}
}
}
运行效果演示:
-
界面
-
增加图书
-
删除图书
-
查询并且借阅图书
-
还书
-
显示图书信息
- 查看是否被借走