C++期末大作业————小小图书馆

该代码实现了一个简单的图书管理程序,包括Book类、Reader类以及BDatabase和RDatabase类,用于存储和操作图书和读者信息。系统支持添加、删除、查询和修改图书及读者信息,同时具备借书和还书功能,以及用户友好的菜单界面。数据持久化通过文本文件实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

运行效果:

1、book.h的代码: 

2、Book.cpp代码

3、reader.h

4、reader.cpp

5、BDatabase.h 的代码

6、BDatabase.cpp的代码:

 7、rdatabase.h的代码:

8、rdatabase.cpp的代码:

9、Main.cpp中的代码:

运行效果:

 

1、book.h的代码: 

#ifndef __book_h__
#define __book_h__
#include<iostream>
using namespace std;
class Book
{
	private:
		int note;
		int number;
		char name[20];
		int onshelf;
	public:
		Book(){}
		char* getname();
		int getnumber();
		int getnote();
		void setname(char na[]);
		void delbook();
		void addbook(int n, char *na);
		int borrowbook();
		void retbook();
		void list();
};

2、Book.cpp代码

#include"book.h"
#include <iomanip>
#include <cstring>
// 获取书名 
char* Book::getname(){
	return name;
}
// 返回书本的状态 
int Book::getnote(){
	return note;
}
 // 返回书本的编码 
int Book::getnumber(){
	return number;
}
// 设置书名 
void Book::setname(char na[]){
	strcpy(name,na);
}
void Book::delbook(){
	note = 1;
	onshelf = 0;
}
void Book::addbook(int n,char *na){
	note = 0;
	onshelf = 1; 
	number = n;
	strcpy(name,na);
}
int Book::borrowbook(){
   if(onshelf == 0){
   	 return 0;
   }
   else
   onshelf = 0;
   return 1;}
void Book::retbook(){
	onshelf = 1;
}
void Book::list(){
	cout<<"        "<<"书本编号:"<<number<<"        "<<"书名:"<<name<<"        "<<"在架:"<<onshelf<<"(0:不在,1:在)"<<endl;
	cout<<"----------------------------------------------------------------------------------------"<<endl;}

3、reader.h

#ifndef __reader_h__
#define __reader_h__
#include <iostream>
using namespace std;
const int Maxbor = 5; // 最大借阅数量 
class Reader{
	private:
		int note;   // 删除标志   1删    0未删 
		int number;   // 读者编号 
		char name[20]; // 读者姓名 
		int borbook[Maxbor];    // 借阅的图书
		int password; 
	public:
		Reader(){} 
		char *getname();
		int getpassword();
		int getnote();  // 获取删除标志 
		int getnumber(); // 获取读者编号 
		void setname(char na[]); //设置读者名字 
		void delbook(); // 设置删除标志 
		void addreader(int n,char *na,int pa); // 添加读者 
		void borrowbook(int bookid); // 借书操作 
		int retbook(int bookid); // 还书操作 
		void setpassword(int pa);
		void list();  // 输出读者信息 
}; 
#endif

4、reader.cpp

#include <iomanip>
#include <cstring>
#include"reader.h"
char* Reader::getname(){
	return name;}
int Reader::getpassword(){
	return password;}
void Reader::setpassword(int pa){
	password = pa;}
int Reader::getnote(){
	return note;
}
int Reader::getnumber(){
	return number;
}
void Reader::setname(char na[]){
	strcpy(name,na);
}
void Reader::delbook(){
	note = 1;}
void Reader::addreader(int n,char *na,int okpassword){
	note = 0;
	number = n;
	password = okpassword;
	strcpy(name,na);
	for(int i =0;i<Maxbor;i++){ 
		borbook[i]=0;	}}|
void Reader::borrowbook(int bookid){
	for(int i =0;i<Maxbor;i++){
		if(borbook[i]==0){
			borbook[i] = bookid;
			return;
		}
	}
}
int Reader::retbook(int bookid){
	for (int i=0;i<Maxbor;i++){
		if(borbook[i]==bookid){
			borbook[i] = 0;
			return 1;
		}
	}
	return 0;
}
void Reader::list(){
	cout<<"          "<<"读者编号:"<<number<<"          "<<"姓名:"<<name<<"          "<<"借书本的编号:[";
	for(int i = 0;i<Maxbor;i++){
		if(borbook[i]!=0)
		cout<<borbook[i]<<" |";
	}
	cout<<"]"<<endl;
cout<<"----------------------------------------------------------------------------------------"<<endl;}

5、BDatabase.h 的代码

#ifndef __bdatabase_h__
#define __bdatabase_h__
#include<iostream>
#include"book.h"
using namespace std;
const int Maxb=100;
class BDatabase
{
	private:
		int top;
		Book book[Maxb];
	public:
		BDatabase();	
		void clear();
		int addbook(int n, char * na);
		Book*query(int bookid);
		void bookdata();
		void list();
		~BDatabase();	
		void Bmenu();
};
#endif

6、BDatabase.cpp的代码:

#include <fstream>
#include "bdatabase.h"
using namespace std;
BDatabase::BDatabase()
{
	Book b;
	top = -1;
	fstream file("book.txt",ios::in);
	while(1)
	{
		file.read((char *)&b,sizeof(b));
		if(!file) break;
		top++;
		book[top] = b;
	}
	file.close();
	}
void BDatabase::clear()
{
	top =-1;
}
int BDatabase::addbook(int n,char *na)
{
   Book * s = query(n);
   if(s==NULL)
   {
   	top++;
   	book[top].addbook(n,na);
   	return 1;
	}	
	   return 0;
}
Book * BDatabase::query(int bookid)
{
	for(int i = 0;i<=top;i++)
			if(book[i].getnumber()==bookid && book[i].getnote()==0){
					return &book[i];
			}
	return NULL;
}
void BDatabase::list(){
	for(int i = 0;i<=top;i++)
	book[i].list();
}
BDatabase::~BDatabase()
{
	fstream file("book.txt",ios::out);
	for(int i=0;i<=top;i++)
	if(book[i].getnote()==0)
	file.write((char *)&book[i],sizeof(book[i]));
	file.close();
	}
void BDatabase::Bmenu(){
	system("cls");
	cout<<"###############################################################################################"<<endl;
    cout<<"▓                                 * 欢迎进入图书管理界面 *                                   ▓"<<endl;
    cout<<"###############################################################################################"<<endl;
    cout<<"        ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆"<<endl;  
    cout<<"        |◆|******|◆|                                                  |◆|******|◆|"<<endl;
    cout<<"        |◆|******|◆|           ☆    退出界面      请按 0             |◆|******|◆|"<<endl;
    cout<<"        |◆|******|◆|           ☆    新增书本      请按 1             |◆|******|◆|"<<endl;
    cout<<"        |◆|******|◆|           ☆    更改信息      请按 2             |◆|******|◆|"<<endl;
    cout<<"        |◆|******|◆|           ☆    删除书本      请按 3             |◆|******|◆|"<<endl;
    cout<<"        |◆|******|◆|           ☆    查找信息      请按 4             |◆|******|◆|"<<endl;
    cout<<"        |◆|******|◆|           ☆    显示信息      请按 5             |◆|******|◆|"<<endl;
    cout<<"        |◆|******|◆|           ☆    删除所有      请按 6             |◆|******|◆|"<<endl;
    cout<<"        |◆|******|◆|                                                  |◆|******|◆|"<<endl;
    cout<<"        ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆"<<endl; 
    cout<<"##############################################################################################"<<endl;
}
void BDatabase::bookdata(){
	int choice=1,checknum = 0;
	char bookname[20];
	int bookid;
	Book* b;
	while(choice!=0){
	    Bmenu();
		cin>>choice;
		switch(choice)
		{
			case 1:
			system("cls");
	cout<<"############################################################################################"<<endl;
    cout<<"▓                            * 进入图书管理的添加书本界面 *                               ▓"<<endl;
    cout<<"############################################################################################"<<endl;
	cout<<"                              ☆ 输入书本编号:";
			cin>>bookid;
	cout<<"                              ☆ 输入书名:";
			cin>>bookname;
			addbook(bookid,bookname);
	cout<<"                                 添加成功!"<<endl; 
			system("pause");
			break;
			
			case 2: 
				system("cls");
	cout<<"############################################################################################"<<endl;
    cout<<"▓                            * 进入图书管理的修改信息界面 *                               ▓"<<endl;
    cout<<"############################################################################################"<<endl;
		
	cout<<"                              ☆输入书本编号:";
			cin>>bookid;
			b=query(bookid);
			if(b==NULL){
	cout<<"                              该书本不存在!"<<endl;
					system("pause");
				break;
			}
	cout<<"                              输入新的书名:"; 
			cin>>bookname;
			b->setname(bookname);
	cout<<"                              修改成功!"; 
				system("pause");
			break;
			case 3:
				system("cls");
	cout<<"############################################################################################"<<endl;
    cout<<"▓                            * 进入图书管理的删除信息界面 *                               ▓"<<endl;
    cout<<"############################################################################################"<<endl;				 
    cout<<"                              ☆输入书本编号:";
			cin>>bookid;
			b=query(bookid);
			if(b==NULL){
				cout<<"                              该书本不存在!"<<endl;
				system("pause");
				break;
			}
			b->delbook();
			cout<<"                              删除成功!"<<endl;
			 system("pause");
			break;
			case 4:
				system("cls");
	cout<<"############################################################################################"<<endl;
    cout<<"▓                            * 进入图书管理的查找信息界面 *                               ▓"<<endl;
    cout<<"############################################################################################"<<endl;		
			cout<<"                              输入书本编号:"; 
			cin>>bookid;
			b=query(bookid);
			if(b==NULL){
				cout<<"                              该书本不存在!"<<endl;
				system("pause");
				break;
			}
			b->list();
			system("pause");
			break;
			case 5: 
				system("cls");
	cout<<"############################################################################################"<<endl;
    cout<<"▓                            * 进入图书管理的显示信息界面 *                               ▓"<<endl;
    cout<<"############################################################################################"<<endl;	
			cout<<"                              书本信息表如下:"<<endl; 
 	cout<<"----------------------------------------------------------------------------------------"<<endl;
			list();
			system("pause");
			break;
			case 6: 
				system("cls");
	cout<<"############################################################################################"<<endl;
    cout<<"▓                            * 进入图书管理的删除所有界面 *                               ▓"<<endl;
    cout<<"############################################################################################"<<endl;	
			cout<<"                              您确定要删除所有书本信息吗?(1是,0否)";
			cout<<"        						 ";
			cin>>checknum;
			if(checknum == 1){
			system("cls"); 
			clear();
			cout<<"                              书本信息已经全部删除!"<<endl; 
			}else
			cout<<"                              书本信息删除失败!"<<endl;
			system("pause"); 
			break;	}}}

 7、rdatabase.h的代码:

#ifndef __rdatabase_h__
#define __rdatabase_h__
#include <iostream>
#include "reader.h"
using namespace std;
const int Maxr = 100; // 100个读者 
class RDatabase
{
	private:
	Reader read[Maxr]; // 读者数组 
	int top; 	// 读者记录指针 
	public:
	RDatabase(); 
	void clear(); // 删除所有的读者信息 
	int addreader(int n,char *na,int password); // 添加读者 
	Reader *query(int Readerid);  // 查询读者编号 
	void list(); // 输出所有读者信息 
	void readerdata(); // 读者库的维护 
	void Rmenu();
	~RDatabase();		// 析构函数  写数据文件 
 };
 #endif

8、rdatabase.cpp的代码:

#include <fstream>
#include "rdatabase.h"
#include <string.h>
using namespace std;
// 构造器  读入数据文件 
RDatabase::RDatabase()
{
	Reader s;
	top = -1;
	fstream file("reader.txt",ios::in);
	while(1)
	{
		file.read((char *)&s,sizeof(s));
		if(!file) break;
		top++;
		read[top] = s;
	}
	file.close();
	}
    // 删除所有读者信息 
void RDatabase::clear()
{
	top =-1;
}
// 添加新读者 
int RDatabase::addreader(int n,char *na,int password)
{
   Reader * p = query(n);
   if(p==NULL)
   {
   	top++;
   	read[top].addreader(n,na,password);
   	return 1;
	}	
	   return 0;
}
// 查询是否有该读者 
Reader * RDatabase::query(int readerid)
{
	for(int i = 0;i<=top;i++)
			if(read[i].getnumber()==readerid && read[i].getnote()==0){
					return &read[i];
			}
	return NULL;
}
// 显示所有读者信息 
void RDatabase::list(){
	for(int i = 0;i<=top;i++)
	read[i].list();
}
void RDatabase::Rmenu(){
	cout<<"##############################################################################################"<<endl;
    cout<<"▓                                 * 欢迎进入读者维护界面 *                                  ▓"<<endl;
    cout<<"##############################################################################################"<<endl;
    cout<<"        ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆"<<endl; 
    cout<<"        |◆|******|◆|                                                  |◆|******|◆|"<<endl;
    cout<<"        |◆|******|◆|           ☆    退出界面      请按 0             |◆|******|◆|"<<endl;
    cout<<"        |◆|******|◆|           ☆    新增读者      请按 1             |◆|******|◆|"<<endl;
    cout<<"        |◆|******|◆|           ☆    更改信息      请按 2             |◆|******|◆|"<<endl;
    cout<<"        |◆|******|◆|           ☆    账号注销      请按 3             |◆|******|◆|"<<endl;
    cout<<"        |◆|******|◆|           ☆    查找信息      请按 4             |◆|******|◆|"<<endl;
    cout<<"        |◆|******|◆|           ☆    显示信息      请按 5             |◆|******|◆|"<<endl;
    cout<<"        |◆|******|◆|           ☆    删除所有      请按 6             |◆|******|◆|"<<endl;
    cout<<"        |◆|******|◆|           ☆    忘记密码      请按 7             |◆|******|◆|"<<endl;
    cout<<"        |◆|******|◆|                                                  |◆|******|◆|"<<endl;
    cout<<"        ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆"<<endl; 
    cout<<"##############################################################################################"<<endl;
     cout<<"请输入您的选择:";
}
// 写文件 12456
RDatabase::~RDatabase()
{
	fstream file("reader.txt",ios::out);
	for(int i=0;i<=top;i++)
	if(read[i].getnote()==0)
	file.write((char *)&read[i],sizeof(read[i]));
	file.close();
	}
	// 读者数据库的维护 
void RDatabase::readerdata(){
	int checknum = 0,password; 
	int choice=1;
	char readername[20];
	int readerid;
	int ch=9;
	Reader* r;
	while(choice!=0){
		system("cls");
		Rmenu(); 
		cin>>choice;
		switch(choice)
		{
			case 1:
			system("cls");
	cout<<"############################################################################################"<<endl;
    cout<<"▓                            * 进入读者维护的新增读者界面 *                               ▓"<<endl;
    cout<<"############################################################################################"<<endl;
			cout<<"                              ☆ 输入读者编号:";
			cin>>readerid;
			cout<<"                              ☆ 输入读者姓名:";
			cin>>readername;
			cout<<"                              ☆ 输入密码:";
			cin>>password; 
			addreader(readerid,readername,password);
			cout<<"                              添加成功!"<<endl;
			system("pause"); 
			break;
			case 2: 
			system("cls");
	cout<<"############################################################################################"<<endl;
    cout<<"▓                            * 进入读者维护的更改信息界面 *                               ▓"<<endl;
    cout<<"############################################################################################"<<endl;
			cout<<"                              ☆ 输入读者编号:";
			cin>>readerid;
			r=query(readerid);
			if(r==NULL){
			cout<<"                              该读者不存在!"<<endl;
				system("pause"); 
				break;
			}
			cout<<"                             ☆ 返回上个界面 请按0"<<endl; 
			cout<<"                             ☆ 修改密码     请按1"<<endl;
			cout<<"                             ☆ 修改名称     请按2"<<endl;
			cout<<"                             ☆  都修改      请按3"<<endl;
			cout<<"                             ☆ 请输入您的选择:";
			cin>>ch;
			if(ch==0) break;
			else if(ch == 1){
			cout<<"                              输入新的密码:"; 
			cin>>password;
			r->setpassword(password);
			}  
			else if(ch==2){
				cout<<"                              输入新的名称:";
				cin>>readername; 
			r->setname(readername);
			}else{
			cout<<"                              输入新的名称:";
				cin>>readername; 
			r->setname(readername);
			
				cout<<"                              输入新的密码:"; 
			cin>>password;
			r->setpassword(password);
			}
			cout<<"                              修改成功!"; 
			system("pause"); 
			break;
			case 3:
				system("cls");
	cout<<"############################################################################################"<<endl;
    cout<<"▓                            * 进入读者维护的注销账号界面 *                               ▓"<<endl;
    cout<<"############################################################################################"<<endl;
			cout<<"                              ☆ 输入读者编号:"; 
			cin>>readerid;
			r=query(readerid);
			if(r==NULL){
			cout<<"                              该读者不存在!"<<endl;
				system("pause"); 
				break;
			}
			r->delbook();
			cout<<"                              注销成功!" <<endl; 
			system("pause"); 
			break;
			case 4:
			system("cls");
				cout<<"############################################################################################"<<endl;
   				cout<<"▓                            * 进入读者维护的查找信息界面 *                               ▓"<<endl;
   				cout<<"############################################################################################"<<endl;
			cout<<"                              ☆ 输入读者编号:"; 
			cin>>readerid;
			r=query(readerid);
			if(r==NULL){
				cout<<"                              该读者不存在!"<<endl;
				system("pause");
				break;
			}
			r->list();
			system("pause"); 
			break;
			case 5: 
			system("cls");
	cout<<"############################################################################################"<<endl;
    cout<<"▓                            * 进入读者维护的信息显示界面 *                               ▓"<<endl;
    cout<<"############################################################################################"<<endl;
			cout<<"                              读者信息表如下:"<<endl; 
	        cout<<"----------------------------------------------------------------------------------------"<<endl;
			list();
			system("pause"); 
			break;
			case 6: 
			system("cls");
	cout<<"################################################################################################"<<endl;
    cout<<"▓                            * 进入读者维护的删除所有信息界面 *                               ▓"<<endl;
    cout<<"################################################################################################"<<endl;
			cout<<"                              ☆ 您确定要删除所有读者信息吗?(1是,0否)";
			cin>>checknum;
			if(checknum == 1){
			clear();
			cout<<"                              读者信息已经全部删除!"<<endl; 
			}else
			cout<<"                              读者信息删除失败!"<<endl;
			system("pause"); 
			break;
			case 7:
				system("cls"); 
	cout<<"############################################################################################"<<endl;
    cout<<"▓                            * 进入读者维护的忘记密码界面 *                               ▓"<<endl;
    cout<<"############################################################################################"<<endl;
			cout<<"                              ☆ 输入读者编号:";
			cin>>readerid;
			r=query(readerid);
			if(r==NULL){
			cout<<"                              该读者不存在!"<<endl;
		    system("pause");
				break;
		}
		    cout<<"                              ☆ 请输入账号名称:";
		    cin>>readername;
		   if(!strcmp(readername,r->getname())){
		    	cout<<"                              ☆ 请输入新的密码:";
		    	cin>>password;
		    	r->setpassword(password);
		    	cout<<"                              密码修改成功!";
			}	else cout<<"                              输入的名称与编号不匹配!"; 
			system("pause");
				break;
	}
}}
  

9、Main.cpp中的代码:

#include<iostream>
#include"reader.h"
#include"rdatabase.h"
#include"book.h"
#include"bdatabase.h"
#include <ctime>
using namespace std;
int choice=1, bookid, readerid,password;
Reader *r;
RDatabase ReaderDB;
BDatabase BookDB;
Book *b;
time_t now = time(0); 
char* dt = ctime(&now);
void menu(){
	cout << "当前时间:" << dt << endl;
cout<<"##########################################################################################"<<endl;
    cout<<"▓                                  * 欢迎进入小小图书馆 *                               ▓"<<endl;
    cout<<"##########################################################################################"<<endl;
    cout<<"        ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆"<<endl;  
    cout<<"        |◆|******|◆|                                              |◆|******|◆|"<<endl;
    cout<<"        |◆|******|◆|           ☆    退出      请按 0             |◆|******|◆|"<<endl;
    cout<<"        |◆|******|◆|           ☆    借书      请按 1             |◆|******|◆|"<<endl;
    cout<<"        |◆|******|◆|           ☆    还书      请按 2             |◆|******|◆|"<<endl;
    cout<<"        |◆|******|◆|           ☆  图书管理    请按 3             |◆|******|◆|"<<endl;
    cout<<"        |◆|******|◆|           ☆  读者维护    请按 4             |◆|******|◆|"<<endl;
    cout<<"        |◆|******|◆|                                              |◆|******|◆|"<<endl;
    cout<<"        ◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆"<<endl; 
    cout<<"##########################################################################################"<<endl;
    cout<<"请输入您的选择:";
} 
void returnbook(){
		system("cls"); 
		cout << "当前时间:" << dt << endl;
	cout<<"##########################################################################################"<<endl;
    cout<<"▓                            * 进入小小图书馆的借书界面 *                               ▓"<<endl;
    cout<<"##########################################################################################"<<endl;	
				cout<<"                              ☆ 输入读者编号:";
				cin>>readerid;
				cout<<"                              ☆ 输入密码:";
		        cin>>password; 
		        r=ReaderDB.query(readerid);
		        
		        if(r==NULL){
				cout<<"                              不存在该读者,不能还书!"<<endl;
				system("pause"); 
					return;
				}
		        if(password == r->getpassword()){
				cout<<"                              ☆ 输入还书编号:";
				cin>>bookid;
				b=BookDB.query(bookid);
				if(b==NULL){
					cout<<"                              不存在该图书,不能还书!"<<endl;
					system("pause"); 
					return;
				}
				b->retbook();
				r->retbook(b->getnumber());
				cout<<"                              还书完成!"<<endl;}
				else{
					cout<<"                              密码错误!"; 
				system("pause"); 
					return;	
				}
				system("pause"); 
} 
void BorrowBook(){
	system("cls"); 
	cout << "当前时间:" << dt << endl;
	cout<<"##########################################################################################"<<endl;
    cout<<"▓                            * 进入小小图书馆的还书界面 *                               ▓"<<endl;
    cout<<"##########################################################################################"<<endl;
				cout<<"                              ☆ 输入借书读者编号:";
				cin>>readerid;
				cout<<"                              ☆ 输入图书编号:";
				cin>>bookid;
				r=ReaderDB.query(readerid);
				if(r==NULL){
				cout<<"                              不存在该读者,不能借书!"<<endl;
					system("pause");
					return;}
				cout<<"                              ☆ 输入密码:";
		        cin>>password; 
				if(password == r->getpassword()){
				b=BookDB.query(bookid);
				if(b==NULL){
				cout<<"                              不存在该图书,不能借书!"<<endl;
					system("pause");
					return;	}
				if(b->borrowbook()==0){
				cout<<"                              该图书已借出,不能借书!"<<endl;
					system("pause");
					return;}
				r->borrowbook(b->getnumber());
				cout<<"                              借书完成!"<<endl;
				system("pause"); 	}
			else {
					cout<<"                              密码错误!"; 
				system("pause"); 
					return;			}
}
int main(){
	system("COLOR 0A");
	while(choice!=0){
		system("cls"); 
		menu();
		cin>>choice;
		switch(choice)
		{
			case 1:	
				BorrowBook();
				break;
			case 2:
				returnbook();
				break;
			case 3:
				system("cls"); 
				BookDB.bookdata();
				break;
			case 4:
				system("cls");
				ReaderDB.readerdata();
				break;		
		
}
}
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值