bool UserServiceImpl::Compare1(Book b1,Book b2)//按照借阅次数比较
{
if(b1.GetCnt() > b2.GetCnt())
{
return true;
}
else
{
return false;
}
}
bool UserServiceImpl::Compare2(Book b1,Book b2)//按照评分比较
{
if(b1.GetScore() > b2.GetScore())
{
return true;
}
else
{
return false;
}
}

//按照借阅次数来向读者推荐
void UserServiceImpl::Cnt()
{
books.clear();//清空书籍容器
b_dao->load(books);//读取书籍库文件存入到容器中
sort(books.begin(),books.end(),UserServiceImpl::Compare1);//比较函数
map<string,int>m;
cout << "\e[32m借阅次数前三图书\e[0m" << endl;
unsigned int i = 0;
int count = 0;
//信息显示
for(i = 0;i < books.size();i++)
{
if(3 <= count)
{
break;
}
if(0 != m[books[i].m_name])
{
continue;
}
++m[books[i].m_name];

cout << "\e[35m书名:\e[0m" << books[i].m_name << "\e[35m 编号:\e[0m" << books[i].m_id << "\e[35m 借阅次数:\e[0m" << books[i].GetCnt() << endl;

++count;
}
anykey_continue();//缓冲,清理缓存区
}

//按评分来向读者推荐
void UserServiceImpl::Soc()
{
books.clear();
b_dao->load(books);
sort(books.begin(),books.end(),UserServiceImpl::Compare2);
map<string,int>m;
cout << "\e[32m评分前三图书\e[0m" << endl;
unsigned int i = 0;
int count = 0;
for(i = 0;i < books.size();i++)
{
if(3 <= count)
{
break;
}
if(0 != m[books[i].m_name])
{
continue;
}
++m[books[i].m_name];

cout << "\e[35m书名:\e[0m" << books[i].m_name << "\e[35m 编号:\e[0m" << books[i].m_id << "\e[35m 评分:\e[0m" << books[i].GetScore() << endl;

++count;
}
anykey_continue();
}

C++图书馆管理系统项目中部分功能代码实现(书籍推荐)的更多相关文章

  1. eclipse和myeclipse怎么在项目中查找指定代码?https://www.jb51.net/softjc/554889.html

    有的童鞋,想eclipse和myeclipse整个项目中查找指定代码,由于补经常使用,可能会补熟悉.如果要去掉项目中所有的某个代码的话,找不到是灰常麻烦的,下面就简单说下怎么查找,希望对需要的人有用. ...

  2. Python计算一个项目中含有的代码行数

    最近想要知道以前做过的project有多少行代码,因为文件太多,直接手工数效率太低,于是编写一个python程序用来计算一个project有多少代码行. 首先,在一个项目中,有很多子文件夹,子文件夹中 ...

  3. CAS Client集群环境的Session问题及解决方案介绍,下篇介绍作者本人项目中的解决方案代码

    CAS Client集群环境的Session问题及解决方案  程序猿讲故事  2016-05-20  原文 [原创申明:文章为原创,欢迎非盈利性转载,但转载必须注明来源] 之前写过一篇文章,介绍单点登 ...

  4. 解决在Vue项目中时常因为代码缩进导致页面报错的问题

    前言 如果我们初次使用vue-cli来构建单页SPA应用,在撸代码的过程中有可能会遇到这种因为代码缩进导致 页面报错的问题,导致我们烦不胜烦.接下来我们就来看一看如何解决这个小问题... erro原因 ...

  5. 【原创】Vue项目中各种功能的实现

    已完成: 后台的管理功能: 这里用的组件是 element-UI  ====> NavMenu ◆首先是排版 : <div class="manage-page fillcont ...

  6. Scala:Java 项目中混入scala代码

    Spark 是用Scala代码写的.为了调试Spark,做了如下尝试. 1.Eclipse下:Java 项目 ,Using Maven,编写了一个java 版Spark应用. Spark的代码(sca ...

  7. Java Web项目中的经典代码抽取

    前言: 众所周知的,项目开发中做得最多的无非就是增删查改(CRUD)操作.自从国内Web项目开发渐渐盛行SSH框架之后,其开发开发流程也变得更加灵活:本文就项目开发中的业务层代码作个简单的抽取,供业内 ...

  8. 项目中常用功能,如:流媒体、健康数据(步数等)等-b

    整理iOS开发中使用的各种流媒体和常用的高级功能.由于时间关系,目前只写了一部分功能,全部都采用的是系统方法,没用第三方,截图如下: screen1.png screen2.png 个人比较懒,不爱多 ...

  9. 不要在 _ASSERT() 宏中执行功能代码 AND RELEASE版调试办法

            程序在DEBUG版正常运行,在RELEASE版就崩溃了,想调试找问题,却发现RELEASE版根本走不到断点... 需要在工程配置中将 Configuration Properties- ...

随机推荐

  1. Java 环境问题汇总

    准备java环境时,需要设置JAVA_HOME 和 Path , CLASSPATH 环境变量,它们可以是用户变量,也可以是系统变量. 注意: 系统变量的路径排在用户变量之前. 其中,Windows操 ...

  2. javascript中的style只能取到在HTML中定义的css属性

    如果在css中定义的 li{ width:100px; left:100px; top:; position:absolute; font-style:normal; } 这样执行: oli[0].s ...

  3. NET Core中使用Dapper操作Oracle存储过程

    .NET Core中使用Dapper操作Oracle存储过程最佳实践   为什么说是最佳实践呢?因为在实际开发中踩坑了,而且发现网上大多数文章给出的解决方法都不能很好地解决问题.尤其是在获取类型为Or ...

  4. HDU 1029 一道微软面试题

    http://acm.hdu.edu.cn/showproblem.php?pid=1029 给定一个数组,其中有一个相同的数字是出现了大于等于(n + 1) / 2次的.要求找出来. 1.明显排序后 ...

  5. python学习《一》

    从词篇博客开始,记录python3.0学习笔记 python3里    字符串用双引号,或者单引号,包起来 3双引号和3单引号   代表换行

  6. 洛谷 P1807 最长路_NOI导刊2010提高(07)

    最长路 #include <iostream> #include <cstdio> #include <cstring> #include <queue> ...

  7. 带你零基础入门redis【一】

    本篇文章介绍在CentOS7系统安装redis,以及redis的简单操作   我们把redis安装在/usr/local目录下.分别执行以下命令 [root@VM_6_102_centos ~]# c ...

  8. Yii2.0数据库缓存依赖发布的使用理解

    对于产品中经常需要生成一些缓存类的东西,比如系统基础配置,商品分类等,每次修改调整后都要手动进行缓存发布,是不是非常麻烦!这时候Yii2.0的缓存依赖发布就起到至关重要的作用了!现将主要的使用流程介绍 ...

  9. Got error 28 from storage engine的错误处理

    早上例行检查数据库,发现Got error 28 from storage engine这个错误,天那,我的数据.心里哇凉....备份的时间还是很久以前.最近更新了不少,麻烦大了. 好在找到了解决方法 ...

  10. Locust安装教程与使用

    Locust安装教程与使用官网地址:https://github.com/locustio/locust 如果是python3+以上的环境,需要下载locust项目源码进行安装 因Centos7.2环 ...