C++实现图书管理系统课程设计(面向对象)

本文实例为大家分享了C++实现图书管理系统课程设计,供大家参考,具体内容如下

1.题目:

【1】:工作人员登录后,可以进行的操作

添加学生的信息(学号,姓名,院系,最大借阅的图书数量等);
修改学生的信息(学号,姓名,院系,最大借阅的图书数量等);
删除学生的信息(学号,姓名,院系,最大借阅的图书数量等);
如果某个学生退学,就要清除他的信息;
查看学生的信息;
添加图书的信息(图书号,书名,作者,出版社,数量等);
修改图书的信息(图书号,书名,作者,出版社,数量等);
删除图书的信息(图书号,书名,作者,出版社,数量等);
查看图书的信息;

【2】:学生登录后,可以进行的操作

查看学生自己借阅的数目信息;
借阅图书;
归还图书;
备注:要求将学生和图书信息存放到外存上,每次从外存读取数据;

2.代码

/**
 *项目名称:图书管理系统
 *语言:C++
 **/

#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
#include <vector>
#include <stdlib.h>
#include <string.h>
using namespace std;

//构建学生类
class Student
{
public:
    Student()
    {
        memset(s_num, 0, sizeof(s_num));
        memset(s_name,0, sizeof(s_name));
        memset(s_name, 0, sizeof(college, 0, sizeof(college)));
        borrow_max = 0;
        borrow_quantity = 0;
        memset(borrow_books, 0, sizeof(borrow_books));
    }
    char s_num[15];                        //学号
    char s_name[10];                    //姓名
    char college[30];                    //院系
    int borrow_max;                        //最大借阅数量
    int borrow_quantity;                //借阅数量
    char borrow_books[10][30];            //借阅图书

    bool S_SetInto();                                            //设置学生信息
    friend istream& operator>>(istream& in, Student& cp);        //提取运算符重载
    friend ostream& operator<<(ostream& out, Student& cp);        //插入运算符重载
    bool S_If_match(char p[30]);                                //判断学号是否匹配
    void s_display();                                            //显示学生信息
};

//设置学生信息
bool Student::S_SetInto()
{
    char temp[15];
    cout << "请输入学号:(输入+退出)";
    cin >> temp;
    if (temp[0] == '+')
    {
        return false;
    }
    strcpy(s_num, temp);
    cout << "学生姓名:";
    cin >> s_name;
    cout << "院系:";
    cin >> college;
    do
    {
        cout << "最大借阅数量(1-10):";
        cin >> borrow_max;
    }
    while (borrow_max <= 0 || borrow_max > 10);
    return true;
}

//提取运算符重载
istream& operator>>(istream& in, Student& cp)
{
    in >> cp.s_num >> cp.s_name >> cp.college >> cp.borrow_max >> cp.borrow_quantity;
    for (int i = 0; i < cp.borrow_quantity; i++)
    {
        in >> cp.borrow_books[i];
    }
    return in;
}

//插入运算符重载
ostream& operator<<(ostream& out, Student& cp)
{
    out << cp.s_num << ' ' << cp.s_name << ' ' << cp.college << ' ' << cp.borrow_max << ' ' << cp.borrow_quantity << ' ';
    for (int i = 0; i < 10; i++)
    {
        out << cp.borrow_books[i] << ' ';
        if (i == 9)
        {
            out << '\n';
        }
    }
    return out;
}

//判断学号是否匹配
bool Student::S_If_match(char p[30])
{
    return (!strcmp(s_num, p)||!strcmp(s_name, p));
}

//显示学生信息
void Student::s_display()                                        //显示
{
    cout << setiosflags(ios::left) << "学号:" << setw(12) << s_num << "    " << setw(10) << s_name << "    " << setw(25) << college << endl
        << "最大借阅量" << borrow_max << endl;
}

//构建图书类
class Book
{
public:
    char b_num[15];                    //图书号
    char b_name[30];                //书名
    char author[20];                //作者
    char p_house[30];                //Publishing House 出版社
    int b_quantity;                    //图书数量

    bool B_SetInto();                                        //设置图书信息
    friend istream& operator>>(istream& in, Book& cp);        //提取运算符重载
    friend ostream& operator<<(ostream& out, Book& cp);        //插入运算符重载
    bool B_If_match(char p[30]);
    void b_display();                                        //图书信息显示
};

//设置图书信息
bool Book::B_SetInto()
{
    char temp[15];
    cout << "请输入图书号:(输入+退出)";
    cin >> temp;
    if (temp[0] == '+')
        return false;
    strcpy(b_num, temp);
    cout << "书名:";
    cin >> b_name;
    cout << "作者:";
    cin >> author;
    cout << "出版社";
    cin >> p_house;
    cout << "数量:";
    cin >> b_quantity;
    return true;
}

//提取运算符重载
istream& operator>>(istream& in, Book& cp)
{
    in >> cp.b_num >> cp.b_name >> cp.author >> cp.p_house >> cp.b_quantity;
    return in;
}

//插入运算符重载
ostream& operator<<(ostream& out, Book& cp)
{
    out << cp.b_num <<' '<< cp.b_name <<' '<< cp.author <<' '<< cp.p_house <<' '<< cp.b_quantity<<'\n';
    return out;
}

//判断图书号是否匹配
bool Book::B_If_match(char p[30])
{
        return (!strcmp(b_num, p)|| !strcmp(b_name, p));
}

//显示函数
void Book:: b_display()
{
    cout << setiosflags(ios::left) << setw(12) << b_num << "    " << setw(30) << b_name << "    " << setw(10) << author << endl
        << setw(20) << p_house << "    " <<"剩余数量:"<< setw(3) << b_quantity << endl;
}

//构建管理类
class management
{
public:
    int s_sum=0;                                                //学生数
    int b_sum=0;                                                //图书数
    string key;                                                    //管理员密码
    vector<Student> s_array;                                    //记录学生类
    vector<Book> b_array;                                        //记录图书类

    void S_clear();                                                //清理已有学生信息
    void B_clear();                                                //清理已有图书信息
    void S_Read_file();                                            //读取学生文件
    void S_Save_file();                                            //保存学生文件
    void B_Read_file();                                            //读取图书文件
    void B_Save_file();                                            //保存图书文件

    bool Student_add();                                            //添加学生信息
    bool Student_mod();                                            //修改学生信息
    bool Student_del();                                            //删除学生信息
    bool Student_scan();                                        //查看学生信息

    bool Book_add();                                            //添加图书信息
    bool Book_mod();                                            //修改图书信息
    bool Book_del();                                            //删除图书信息
    bool Book_scan();                                            //查看图书信息

    bool s_login(Student& cp);                                    //学生凭学号登录
    bool borrow_scan(Student &cp);                                //查看借阅数目
    bool borrow_book(Student &cp);                                //借书
    bool return_book(Student &cp);                                //还书

    bool Student_System();                                        //学生登录
    bool Personnel_System();                                    //工作人员登录
    void login_init();                                            //登录界面初始化
};

//清理已有学生信息
void management::S_clear()
{
    s_array.clear();
    s_sum = 0;
}

//清理已有图书信息
void management::B_clear()
{
    b_array.clear();
    b_sum = 0;
}

//读取学生文件
void management::S_Read_file()
{
    ifstream s_file;
    s_file.open("Student_Information.txt");
    if (!s_file.is_open())
    {
        cerr << "文件\"Student_Information.txt\"无法打开\n";
        exit(1);
    }
    while (!(s_file.eof()))
    {
        Student stu;
        s_file >> stu;
        s_array.push_back(stu);
        s_sum++;
    }
    s_sum--;
    s_file.close();
}

//保存学生文件
void management::S_Save_file()
{
    ofstream s_file("Student_Information.txt");
    if (!s_file)
    {
        cerr << "文件\"Student_Information.txt\"无法打开!\n";
        exit(1);
    }
    int i = -1;
    while (++i < s_sum)
    {
        s_file << s_array[i];
    }
    s_file.close();
}

//读取图书文件
void management::B_Read_file()
{
    ifstream b_file;
    b_file.open("Book_Information.txt");
    if (!b_file.is_open())
    {
        cerr << "文件\"Book_Information.txt\"无法打开\n";
        exit(1);
    }
    while (!b_file.eof())
    {
        Book _book;
        b_file >> _book;
        b_array.push_back(_book);
        b_sum++;
    };
    b_sum--;
    b_file.close();
}

//保存图书文件
void management::B_Save_file()
{
    ofstream b_file("Book_Information.txt");
    if (!b_file)
    {
        cerr << "文件\"Book_Information.txt\"无法打开!\n";
        exit(1);
    }
    int i = -1;
    while (++i < b_sum)
    {
        b_file << b_array[i];
    }
    b_file.close();
}

//添加学生信息
bool management::Student_add()
{
    S_Read_file();
    Student _stu;
    cout << "请进行信息录入。按“+”结束!\n";
    do
    {
        s_array.push_back(_stu);
    }
    while (s_array[s_sum++].S_SetInto());
    s_sum--;
    s_array.pop_back();
    return true;
}

//修改学生信息
bool management::Student_mod()
{
    char _s_num[15];
    S_Read_file();
    cout << "请输入您要修改的学生信息的学号或名字:";
    cin >> _s_num;
    int i = 0;
    for (; i < s_sum; i++)
    {
        if (s_array[i].S_If_match(_s_num))
        {
            cout << "该同学的原信息为:\n";
            s_array[i].s_display();
            cout << "请输入正确信息! \n";
            s_array[i].S_SetInto();
            s_sum++;                            //保持学生数
            return true;
        }
        if (i == s_sum)
        {
            cout << "抱歉!您要修改的信息不存在! " << endl;
            return false;
        }
        break;
    }
}

//删除学生信息
bool management::Student_del()
{
    char _s_num[15];
    S_Read_file();
    cout << "请输入您要删除的学生信息的学号:";
    cin >> _s_num;
    for (int i = 0; i < s_sum; i++)
    {
        if (s_array[i].S_If_match(_s_num))
        {
            cout << "该同学的原信息为:\n";
            s_array[i].s_display();
            s_array.erase(s_array.begin() + i);
            s_sum--;
            return true;
        }
        if (i == s_sum)
        {
            cout << "抱歉!您要删除的信息不存在! " << endl;
            return false;
        }
    }
}

//查看学生信息
bool management::Student_scan()
{
    S_Read_file();
    if (s_sum == 0)
    {
        cout << "暂无信息!请等待管理人员更新!";
        return false;
    }
    for (int i = 0; i < s_sum; i++)
    {
        s_array[i].s_display();
    }
    return true;
}

//添加图书信息
bool management::Book_add()
{
    B_Read_file();
    Book _book;
    cout << "请进行信息录入。按“+”结束!\n";
    do
    {
        b_array.push_back(_book);
    } while (b_array[b_sum++].B_SetInto());
    b_sum--;
    b_array.pop_back();
    return true;
}

//修改图书信息
bool management::Book_mod()
{
    char _b_num[30];
    B_Read_file();
    cout << "请输入您要修改的图书信息的图书号或书名:";
    cin >> _b_num;
    for (int i = 0; i < b_sum; i++)
    {
        if (b_array[i].B_If_match(_b_num))
        {
            cout << "该图书的原信息为:\n";
            b_array[i].b_display();
            cout << "请输入正确信息! \n";
            b_array[i].B_SetInto();
            b_sum++;                            //保持总航线数不变
            return true;
        }
        if (i == b_sum)
        {
            cout << "抱歉!您要修改的信息不存在! " << endl;
            return false;
        }
        break;
    }
}

//删除图书信息
bool management::Book_del()
{
    char _b_num[15];
    B_Read_file();
    cout << "请输入您要删除的图书信息的图书号:";
    cin >> _b_num;
    for (int i = 0; i < b_sum; i++)
    {
        if (b_array[i].B_If_match(_b_num))
        {
            cout << "该图书的原信息为:\n";
            b_array[i].b_display();
            b_array.erase(b_array.begin() + i);
            b_sum--;
            return true;
        }
        if (i == b_sum)
        {
            cout << "抱歉!您要删除的信息不存在! " << endl;
            return false;
        }
    }
}

//查看图书信息
bool management::Book_scan()
{
    B_Read_file();
    if (b_sum == 0)
    {
        cout << "暂无信息!请等待管理人员更新!";
        return false;
    }
    for (int i = 0; i < b_sum; i++)
    {
        b_array[i].b_display();
    }
    return true;
}

//学生凭学号登录
bool management::s_login(Student& cp)
{
    char _s_num[15];
    S_Read_file();
    cout << "请输入您的学号:";
    cin >> _s_num;
    for (int i = 0; i < s_sum; i++)
    {
        if (s_array[i].S_If_match(_s_num))
        {
            cp=s_array[i];
            cout << "欢迎您," << cp.s_name << "同学!" << endl;
            S_clear();
            return true;
        }
    }
    S_clear();
    return false;
}

//查看借阅数数目
bool management::borrow_scan(Student& cp)
{
    S_Read_file();
    B_Read_file();
    cout << "您已借阅图书" << setw(3) << cp.borrow_quantity << "本" << endl;
    for (int i = 0; i < cp.borrow_quantity; i++)
    {
        cout << cp.borrow_books[i] << endl;
    }
    S_clear();
    B_clear();
    return true;
}

//借书
bool management::borrow_book(Student& cp)
{
    S_Read_file();
    B_Read_file();
    char _b_num[30];
    cout << "请输入想借图书的图书号或书名:";
    cin >> _b_num;
    for (int i = 0; i < b_sum; i++)
    {
        if (b_array[i].B_If_match(_b_num))
        {
            cout << "该图书的信息为:\n";
            b_array[i].b_display();
            b_array[i].b_quantity--;
            if (cp.borrow_quantity > cp.borrow_max - 1)
            {
                cout << "抱歉,您已达借书最大上限!" << endl;
                return false;
            }
            strcpy(cp.borrow_books[cp.borrow_quantity++],b_array[i].b_name);
            for (int j = 0; j < s_sum; j++)
            {
                if (s_array[j].S_If_match(cp.s_num))
                {
                    s_array[j]=cp;
                    return true;
                }
            }
        }
        if (i == b_sum - 1)
        {
            cout << "抱歉!您想借的图书未收录! " << endl;
            return false;
        }
    }

}

//还书
bool management::return_book(Student& cp)
{
    S_Read_file();
    B_Read_file();
    char _b_num[30];
    cout << "请输入想还图书的图书号或书名:";
    cin >> _b_num;
    for (int i = 0; i < b_sum; i++)
    {
        if (b_array[i].B_If_match(_b_num))
        {
            cout << "该图书的信息为:\n";
            b_array[i].b_display();
            b_array[i].b_quantity++;
            for (int k = 0; k < cp.borrow_quantity; k++)
            {
                if (!strcmp(cp.borrow_books[k],b_array[i].b_name))
                {
                    for (int m = k; m < cp.borrow_quantity-1; m++)
                    {
                        strcpy(cp.borrow_books[m], cp.borrow_books[m+1]);
                    }
                    strcpy(cp.borrow_books[--cp.borrow_quantity], "");
//                    cp.borrow_quantity--;
                    break;
                }
            }
            for (int j = 0; j < s_sum; j++)
            {

                if (s_array[j].S_If_match(cp.s_num))
                {
                    s_array[j] = cp;
                    return true;
                }
            }
        }
        if (i == b_sum)
        {
            cout << "抱歉!您想还的图书未收录! " << endl;
            return false;
        }
    }
}

//工作人员登录
bool management::Personnel_System()
{
    while (1)
    {
        int menu_options;

        cout << "请输入登录密码:";
        cin >> key;
        if (key == "123456")                                            //登录密码
            while (1)
            {
                cout << endl
                    << "*****       主菜单:                                          **********" << endl
                    << "*****    工作人员                          " << endl
                    << "*****    1——添加学生信息                    "
                    << "2——修改学生信息" << endl
                    << "*****    3——删除学生信息                    "
                    << "4——查看学生信息" << endl
                    << endl                                                //区分学生和图书
                    << "*****    5——添加图书信息                    "
                    << "6——修改图书信息" << endl
                    << "*****     7——删除图书信息                    "
                    << "8——查看图书信息" << endl
                    << "*****    9——退出登录"<<endl
                    << "你需要做什么?(1-9)" << endl;
                cin >> menu_options;
                switch (menu_options)
                {
                case 1:Student_add(); break;
                case 2:Student_mod(); break;
                case 3:Student_del(); break;
                case 4:Student_scan(); break;
                case 5:Book_add(); break;
                case 6:Book_mod(); break;
                case 7:Book_del(); break;
                case 8:Book_scan(); break;
                case 9:return false;
                default:cout << "输入错误,请重新选择" << endl; break;
                }
                if (!(menu_options == 4 || menu_options == 8))
                {
                    cout << "是否确认?        《确认/(Y/y)》    《取消/(N/n)》" << endl;
                    char yn;
                    do
                    {
                        cin >> yn;
                    } while (!(yn == 'Y' || yn == 'y' || yn == 'N' || yn == 'n'));
                    if (yn == 'Y' || yn == 'y')
                    {
                        if (menu_options == 1 || menu_options == 2 || menu_options == 3)
                        {
                            S_Save_file();
                        }
                        else if (menu_options == 5 || menu_options == 6 || menu_options == 7)
                        {
                            B_Save_file();
                        }
                        cout << "操作成功";
                    }
                }
                S_clear();
                B_clear();
            }
        else
        {
            cout << "密码错误!" << endl;
            continue;
        }
    }
    return true;
}

//学生登录
bool management::Student_System()
{
    while (1)
    {
        Student cp;
        bool key = s_login(cp);
        while (key)
        {
            int menu_options;

            cout << "*****     主菜单:                                             **********" << endl
                << "*****     学生:                            " << endl
                << "*****     1——查看借阅数目" << endl
                << "*****     2——借阅图书" << endl
                << "*****     3——归还图书" << endl
                << "*****    4——退出登录" << endl
                << "你需要做什么?(选择1-4)" << endl;
            cin >> menu_options;
            switch (menu_options)
            {
            case 1:borrow_scan(cp); break;
            case 2:borrow_book(cp); break;
            case 3:return_book(cp); break;
            case 4:return false;
            }
            if (menu_options == 2 || menu_options == 3)
            {
                cout << "是否确认?        《确认/(Y/y)》    《取消/(N/n)》" << endl;
                char yn;
                do
                {
                    cin >> yn;
                } while (!(yn == 'Y' || yn == 'y' || yn == 'N' || yn == 'n'));
                if (yn == 'Y' || yn == 'y')
                {
                    cout << "操作成功!" << endl;
                    S_Save_file();
                    B_Save_file();
                }
            }
            S_clear();
            B_clear();
        }
        cout << "未找到您的信息!" << endl;
    }
    return true;
}

//界面初始化函数
void management::login_init()
{
    system("cls");
    cout << "\n>>>>>>>>>>欢迎进入图书管理系统<<<<<<<<<<" << endl
        << "请输入您的登录方式" << endl
        << "1——工作人员(需要认证)    2——学生 3——退出系统" << endl;
}

//主函数
int main()
{
    management xiangnan;

    //若文件不存在,则新建文件
    //存放学生信息
    ofstream Student_Information("Student_Information.txt", ios::app);
    if (!Student_Information)
    {
        cerr << "文件\"flight information.dat\"无法打开!\n";
        exit(1);
    }
    Student_Information.close();

    //存放图书信息
    ofstream Book_Information("Book_Information.txt", ios::app);
    if (!Book_Information)
    {
        cerr << "文件\"flight information.dat\"无法打开!\n";
        exit(1);
    }
    Book_Information.close();

    int dlry;                                        //登陆人员
    while (1)
    {
        xiangnan.login_init();                            //界面初始化
        cin >> dlry;
        if (dlry == 1)
        {
            xiangnan.Personnel_System();
        }
        else if (dlry == 2)
        {
            xiangnan.Student_System();
        }
        else if (dlry == 3)
        {
            return 0;
        }
        else
        {
            cout << "输入错误,请重新选择!" << endl;
        }
    }
    return 0;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C++图书管理系统程序源代码

    本文实例为大家分享了C++图书管理系统程序的具体代码,供大家参考,具体内容如下 大一期末c++综合实验,功能基本都实现了,但是代码写的有些繁琐,还有很大的优化空间,仅供参考. 实验要求 实验目的: 1.能够综合运用面向对象程序设计方法,设计实现一个相对完整信息管理应用程序.2.能够适当进行题目分析.实验设计.核心代码描述.实验结果分析等. 实验:设计并编写一个C++风格应用程序,模拟一个图书管理系统应用程序,支持系统用户的图书借阅.图书管理.用户管理等功能.图书借阅管理主要包括图书借阅.图书归还

  • C++利用链表实现图书信息管理系统

    C++利用链表实现一个简单的图书信息管理系统,供大家参考,具体内容如下 (1)图书信息包括ISBN号.书名.作者名.价格和数量等: (2)系统的主要功能包括:图书信息的创建.输出图书信息.查询图书信息.增加图书信息.删除图书信息. #include <stdio.h> #include <stdlib.h> #include <string.h> //创建结构体及其成员 typedef struct Node { int num;//编号 char name[20];/

  • C++实现图书管理系统

    闲来无事,用C++做了一个图书管理系统,主要有借书.还书.图书管理.用户管理等功能,主要用到的技术有容器和文件,以及类的封装 #include <iostream> #include <list> #include <algorithm> #include <string.h> #include <fstream> #include <stdlib.h> using namespace std; class Mybook; class

  • C/C++实现图书信息管理系统

    本文实例为大家分享了c/c++实现图书信息管理系统的具体代码,供大家参考,具体内容如下 程序流程图 源代码 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> #include <windows.h> #define N 100 struct type{ char ISBN[N];//ISBN编号(一般为13位) char bookName[N

  • C++实现简单的图书管理系统

    今天再为大家介绍另一个常用的管理系统--图书管理系统,希望大家可以亲自动手实践一下,下面就与大家一起分享我的劳动成果. 图书信息包括:登录号.书名.作者名.分类号.出版单位.出版时间.价格等.试设计一图书信息管理系统,使之能提供以下功能: (1)图书信息录入功能(图书信息用文件保存) (2)图书信息浏览功能 (3)查询和排序功能:(至少一种查询方式)         .按书名查询         .按作者名查询 (4)图书信息的删除与修改 分享代码如下 #include<iostream.h>

  • C++实现图书管理系统最新版

    图书管理系统设计,供大家参考,具体内容如下 一.问题描述及功能要求 (1)图书信息录入功能(图书信息用文件保存) (2)图书信息浏览功能 (3)查询和排序功能:(至少一种查询方式) .按书名查询 .按作者名查询 (4)图书信息的删除与修改 二.代码实现 带有注释 废话不说,直接代码,欢迎指正. 大家CV可能有不兼容的情况,可以滴滴,尽可能解决问题地回复. #include<iostream> #include<stdio.h> #include <stdlib.h> #

  • C++实现图书管理系统(文件操作与类)

    本文实例为大家分享了C++实现图书管理系统的具体代码,供大家参考,具体内容如下 (1)定义图书类: (2)图书信息包括:书名name,价格price,库存num: (3)可以查询.增加.删除.修改功能: (4)使用文件保存及读取图书数据: #include<iostream> using namespace std; #include<fstream> #define filename "booklist.txt" #include<list> #i

  • C++使用链表实现图书管理系统

    本文实例为大家分享了vue + element ui实现锚点定位的具体代码,供大家参考,具体内容如下 一.程序实现功能 1.录入书籍:将书籍录入图书管理系统 2.浏览书籍:查看图书管理系统里的所有书籍 3.借阅书籍:书籍存在可以借阅,库存-1,书的库存不足则无法借阅 4.归还书籍:库存+1,如果该书不是图书馆里的书籍,则无法录入 5.删除书籍:以书名为基础从图书管理系统中删除该书籍 6.查找书籍:按书名查找书籍,显示书籍的基本信息 7.排序书籍:按价格将书籍排序(降序) 二.要求 使用函数.指针

  • C++顺序表实现图书管理系统

    本文为大家分享了C++顺序表实现图书管理系统的具体代码,供大家参考,具体内容如下 图书信息表包括以下10项常用的基本操作:图书信息表的创建和输出.排序.修改.逆序存储.最贵图书的查找.最爱图书的查找.最佳位置图书的查找.新图书的入库.旧图书的出库.图书去重. 代码: #include<iostream> #include<iomanip> #include<string> using namespace std; //函数结果状态代码 #define OK 1 #def

  • C++实现图书管理系统课程设计

    本文实例为大家分享了C++实现图书管理系统的具体代码,供大家参考,具体内容如下 大一 C++课设,没有用分文件的形式,只是把菜单页面单独分开了.用的是链表,都是一些基础的东西.另外采用了二维数组来保存读者借书信息,并将二维数组读入文件中. 功能: 1.首先是注册,登录,找回密码和修改密码功能,登录和注册使用了多态,并且登录页面采用了*符号加密.2.管理员在删除图书时,若用户此时已将此书借走,则会将此书从用户的借书书单中删去,实现了动态管理.3.容错率极高,每个页面都有返回上一页面的功能.4.每个

随机推荐