图书管理系统功能增加

摘要:通过对软件的二次开发或功能拓展,便于提高我们的逆向设计与开发的能力。本文选择C++期末大作业中的“图书管理系统”,通过对代码阅读与分析,实现密码修改与图书查询功能的增加。

一.代码总结

1.1代码总

通过对代码的阅读与分析,该图书管理系统软件大部分功能都已经成功实现,其主要功能关系如下图所示:

       

 

该系统使用CPP语言,对用户进行登录、信息添加、信息管理、购买图书、支付等功能逐步实现,基本满足了用户对该系统的初步需求。但是在登陆密码修改与图书查询方面缺少比较完善的代码。

1).在原“登陆密码修改”界面。只要对用户名验证即可重新设置密码,虽然实现了修改功能,但用户登录信息的安全性却大打折扣,很容易在用户登陆后被他人随意篡改。

2).在原“查询库存”界面中只有“显示库存”一个功能,缺少了一个需求非常大的查询功能

 

二.代码修改

2.1代码修改

基于系统的安全性与实用性,我对其代码做了以下的简单修改:

void loginpassword::editkey(){
       system("cls");
       string name, loginkey1, loginkey2;
       cout << "\n*********************************************************" << endl; 
       cout << "请输入您的用户名:";
       fflush(stdin);
       cin >> name;
       if(this -> name == name){
              cout << "\n请输入您的登录旧密码:"; 
              fflush(stdin);
              cin >> loginkey1;
 
              if(this -> loginkey == loginkey1){
                     cout << "\n请输入您的登录新密码:";
                     fflush(stdin);
                     cin >> loginkey2;
                     this -> loginkey = loginkey2;
                     cout << "修改密码成功!" << endl;
              }
              else{
                     cout << "您的登录旧密码输入有误!" << endl;
              } 
       } 
       else{ 
              cout << "您的用户名输入有误!" << endl; 
       }
       cout << "2秒后将自动跳转!" << endl; 
       Sleep(2000); 
}
  
 
case 2:search_book();break;
void search_book() 
 { 
       system("cls"); 
       cout << "查找图书" << endl; 
       cout << "输入书名:"; 
       string str; 
       fflush(stdin); 
       cin >> str; 
       Book b[3];
       ifstream in("Book.dat", ios::binary); 
       if(!in) 
       {
              cout << "不能打开文件" << endl;
              abort(); 
       } 
       int i; 
       for(i = 0; i < 3; i ++)
       {
              bkread(in, b[i]);
       }
       for(i = 0;i < 3; i ++)
       {
              if(str == b[i].getbook_name())
              {
                     cout << endl;
                     b[i].display();
                     cout << endl << "找到名为" <<  b[i].getbook_name() << "的图书!" << endl;
                     cout << endl << "按任意键继续!";
                     fflush(stdin);
                     getchar();
                     break;
              }
       }
       in.close();
       Sleep(2000);
}

1).在登录修改密码功能中加了原密码的验证,如果验证成功,则可以修改账户原密码;否则无法进行修改。

2).增加了图书查询功能,用户可以通过输入书名进行查找。根据不同的查找结果,显示不同的界面。

 

三.实验总结

对软件的二次开发或者其他功能的扩展,首先要对他人的代码进行阅读与整体框架的划分,然后找出软件中存在的问题与不足,最后根据实际的需求与情况,合理地对代码进行修改与补充。信息安全目前漏洞较大,也是最为关注的问题之一,对信息进行加密是非常重要。

在这次的功能扩展中,发现无论是二次开发,还是功能扩展,都需要先读懂他人的代码与系统结构,当梳理好其系统结构才能对其更好地修改。同时也意识到代码的可读性是非常重要的,便于自己与他人的阅读。也要多学习其他知识,用数据库代替文件实现增、删、改、查,信息的安全加密等。

posted @ 2021-03-11 22:39  小周某某  阅读(233)  评论(0)    收藏  举报