第一次作业

此系统是本小组在做c++课程设计时所编写图书管理系统的代码,我通过这次的阅读分析主要增加了两个功能,分别是将图书信息显示以及对每个使用者借阅图书的数量进行了一个限制。

首先,此系统原本功能是对图书的增删改查借阅还书基本功能,通过文件将图书数据进行存储,系统修改前主要代码截图如下:

增加界面:

void Library::addBook()
{
Book b;
int temp;
string name, num, auther;
cout<<" ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n";
cout<<" ┃*****************************增加界面*****************************┃\n";
cout<<" ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n";
do{
cout << "输入书籍名称,编号,作者:";
cin >> name >> num >> auther;
b.setInfo(name, num, auther);
if (indexOfNum(num) == -1){
books.push_back(b);
currentNum++;
cout << "\n添加成功。" << endl;
cout << "输入1继续增加:";
cin >> temp;
}
else{
cout << "已存在该编号的书籍,添加失败。" << endl;
cout << "输入1继续重新增加:";
cin >> temp;
}
} while (temp==1);
system("pause");
system("cls");
}

 

删除图书界面:

void Library::deleteBook()
{
int index,temp;
string num;
cout << " ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n";
cout << " ┃*****************************删除界面*****************************┃\n";
cout << " ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n";
do{
cout << "输入要删除的书籍的编号:";
cin >> num;
index = indexOfNum(num);
if (index != -1){
if (!books[index].getBorrow_flag()){
cout << "删除的书籍的信息:\n";
books[index].showInfo();
books.erase(books.begin() + index);
currentNum--;
cout << "删除成功。" << endl;
cout << "输入1继续继续删除:";
cin >> temp;
}
else{
cout << "删除失败!书籍已经被借出。" << endl;
cout << "输入1继续继续删除:";
cin >> temp;
}
}
else
{
cout << "删除失败。未找到编号为" << num << "的书籍。\n";
cout << "输入1继续继续删除:";
cin >> temp;
}

 

借阅图书界面:

void Library::brrowBook()
{
string num;
int index;
cout << " ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n";
cout << " ┃*****************************借阅界面*****************************┃\n";
cout << " ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n";
cout << "输入要借阅的书籍的编号:";
cin >> num;
index = indexOfNum(num);
if (index != -1){
if (books[index].isBorrow()){
cout << "借阅失败,书籍以及被借出。\n";
system("pause");
system("cls");
}
else
{
cout << "要借的书籍的信息:\n";
books[index].showInfo();
string reader, data;
int lcn;
cout << "输入读者姓名,借书证号,借书日期:";
cin >> reader >> lcn >> data;
if (readers[reader] != 2){
books[index].setReader(reader, lcn, data);
cout << "借书完成。\n";

 

归还图书界面:

void Library::returnBook()
{
string num;
cout << " ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n";
cout << " ┃*****************************还书界面*****************************┃\n";
cout << " ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n";
cout << "输入要还的书籍的编号:";
cin >> num;
int index;
index = indexOfNum(num);
if (index != -1)
{
cout << "要还的书籍的信息为:\n";
books[index].showInfo();
books[index].setBorrow_flag(false);
readers[books[index].getReader()]--;
cout << "还书成功。\n";
system("pause");
system("cls");
}
else
{
cout << "还书失败,请检查书籍编号是否输入错误!\n";
system("pause");
system("cls");
}

 

 

 

  显示功能代码增添如下:

void Library::showInfo()

{

    cout << "  ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n";

    cout << "  ┃***************************所有图书信息***************************┃\n";

    cout << "  ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n\n";

    for (int i = 0; i<books.size(); i++)

    {

        cout << ""<<i+1<<"本书籍的信息。" << endl;

        books[i].showInfo();

    }

    system("pause");

    system("cls");

}

此功能添加能够让使用者在使用图书管理系统时先浏览一下文件中所有图书的种类以及借阅状态,使得程序更加的合理化,功能实现截图如下所示:

    

 

 

 

限制用户借书的代码如下:

      if (readers[reader] != 2){

                books[index].setReader(reader, lcn, data);

                cout << "借书完成。\n";

                currentNum--;

                brrowNum++;

                readers[reader]++;

                system("pause");

                system("cls");

            }

            else

            {

                cout << "借书失败,该读者以借超过两本书籍。\n";

                system("pause");

                system("cls");

此功能实现主要是通过在原有的借书系统中添加一个if判断语句,通过brrowNum++;语句使得用户在每次借书中都记录目前借书总量,当借书总量达到2时,将不能继续进行借书。功能实现截图如下:

 

 

 

 

作业总结:

对程序进行修改或改进,首先应先对原程序有一个全面的了解,根据原程序功能实现的意图进行改善,使得原程序能够更加的合理。在写作业前认为作业很多很难,完成后再来看本次作业其实并不多,所以不管老师布置的作业如何,我们应首先调整自己的心态,然后开始着手有计划去做,将一次大作业分割成小的任务这样就能有条不紊的完成作业。

 

posted @ 2021-03-09 15:57  Ashuaiyaa  阅读(56)  评论(0)    收藏  举报