基于Spark集群的电影分享社交平台的设计与实现_第1页
基于Spark集群的电影分享社交平台的设计与实现_第2页
基于Spark集群的电影分享社交平台的设计与实现_第3页
基于Spark集群的电影分享社交平台的设计与实现_第4页
基于Spark集群的电影分享社交平台的设计与实现_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要本论文主要针对互联网上海量信息对用户造成的选择困扰问题,设计并实现了一款基于Spark集群的电影分享社交平台,该平台使用SpringBoot框架搭建Web平台,用Spark集群以及协同过滤算法对数据进行计算,推荐用户可能喜欢的电影,过滤用户不需要的垃圾信息,向用户提供个性化服务,以及使用Socket技术实现在线实时聊天,让用户体验良好的在线互动,并且增加了电影评论的功能,让用户在挑选电影观看之前能够快速通过电影评分以及他人评价,得到电影是否适合自己观看的合理判断。解决了用户选择困扰的问题,在智能推荐方面与传统电影网站有明显的改进。关键词:推荐系统;协同过滤算法;Spark;SocketAbstractThisthesisfocusesontheInternetinShanghaiquantityinformationfortheuserthechoiceoftroubleproblem,designafilmbasedontheSparkclustersharesocialplatform,usingSpringBootframeworktobuildaWebplatform,withtheSparkclusterandcollaborativefilteringalgorithmforcalculation,datasuggestedusersmightlikemovies,filteringspam,usersdon'tneedtoprovidecustomerswithpersonalizedservice,andrealizereal-timechatonlineSockettechnology,makegooduserexperienceofonlineinteraction,designthefunctionofmoviereviews,Itenablesuserstoquicklyjudgewhetherthemovieissuitablefortheirownviewingthroughmovieratingandotherpeople'sevaluationbeforeselectingthemovietowatch.Theproblemofuser'schoiceissolved,andthereisanobviousimprovementbetweentheintelligentrecommendationandthetraditionalmoviewebsite.Keywords:RecommendationSystem;CollaborativeFiltering;Spark;Socket目录第一章绪论 第二章基础技术介绍2.1框架以及基础技术介绍2.1.1Spark和Hadoop介绍Spark作为专门为大数据量提供快速迭代式计算的通用内存并行计算框架,虽然发布的时间不长,但已成为目前主流集群计算平台之一,可以很好的应用于大规模的数据处理程序并且改善高延迟的问题。而另一个有着重要地位的集群计算平台,是开源分布式计算平台Hadoop,Hadoop中的MapReduce对于Spark的发展起到了关键性的作用,Spark计算模块去其糟粕取其精华,继承分布式计算的优点,在此基础之上,使用RDD灵活的改善了计算方式,直接的在内存当中计算数据,并且能够完成迭代功能。完善了MapReduce只能够将计算结果保存到磁盘中的方式,大大的提高了计算的效率,根据官方数据的统计,在磁盘读取数据的前提之下,Saprk相对于HadoopMapReduce的计算速度,能够提高到10倍以上,在内存读取数据的前提之下,甚至可以提高到100倍的速度。其次Spark的一大特色或者说优点,便是RDD弹性分布式数据集[6],Spark将其作为最基本的单位,它们是一些不能更改的只读集合,弹性数据的意思就是,这些数据即使丢失了,也仍然可以通过数据衍生的过程对这些集合进行重建恢复,所以说弹性,从而保证了Spark的容错性。而RDD的优点不止于此,RDD不储存真实的数据,而是利用抽象的数据集,储存索引,利用索引去定位数据的真实储存,再使用接口的方式去拿到数据进行计算处理,利用该特点,更多的将数据储存在能够直接进行运算的内存中,而不去浪费硬盘空间,极大的节省了IO的开销,内存空间耗尽时才将数据放入硬盘。利用RDD的优势,Spark在性能上面远远的超过Hadoop,本系统使用的是Spark融入Hadoop生态系统的平台进行数据的计算。2.1.2SpringBoot框架简介SpringBoot是目前主流使用的轻量级Java快速开发框架,有着非常方便的三大核心优势,一是自动配置的功能,封装好Spring框架中基础的属性功能,可以采取注解的方式快速的完成项目配置。二是起步依赖,在开发开始前帮助引入需要的依赖库,对于后续开发省去不少的麻烦。三是Actuator,探究底层封装代码的逻辑,让开发者能够更加深刻的理解原理。2.1.3WebSocket技术原理WebSocket[7]作为一个持久化的协议,有良好高效的通信能力,解决HTTP的高延迟不同步的问题,只需要一次的请求,获取持久的连接,节省资源的消耗,提高性能,是作为实现实时通信功能最优选择的技术。本课题的社交模块就是使用该技术实现了客户端进行实时的聊天,向用户提供较好的通信体验服务。2.2推荐系统算法介绍2.2.1协同过滤推荐算法协同过滤推荐算法[8](CF,CollaborativeFiltering)根据用户浏览过的页面信息,给予较高评价的物品以及常常关注的物品信息,去计算得到该用户的行为习惯、兴趣爱好等,从而向用户推荐用户可能会感兴趣的物品的算法。获取原始数据之后,对数据进行预处理,得到用户-物品评分矩阵,再使用算法进行计算,通过计算得到当前用户对其它物品喜好程度的预测推荐分数,依据这个分数,向用户推荐分数高的物品,大概率符合用户的喜好。这种算法能够很好的应用在商业性的电商软件平台等,提高用户的点击率、购买率,从而提高营业额。由不同的模型和计算方式,协同过滤算法基于这两种不同的模式流程,创建不同的模型,可以分为基于物品的协同过滤算法(ItemCF)和基于用户的协同过滤算法(UserCF)。基于物品的协同过滤算法,是通过获取、统计每一个用户对平台内选择过的物品进行评分评价操作,表达对物品的态度,通过统计用户对不同物品的喜恶判断,计算物品之间的相似程度,再向用户推荐用户喜爱物品相似程度分数较高的物品。举例如下表2-1所示:表2-1基于物品的协同过滤用户-物品评分矩阵User/ItemABCDU1喜欢喜欢U2喜欢喜欢U3喜欢喜欢喜欢通过用户对同一个物品的简单评分,发现得知喜欢A物品的用户大概率也喜欢C物品,于是将C物品判断为A物品的相似物品,向喜欢过A物品,并且对C物品没有接触和了解的用户,推荐C物品,这里利用的是用户对物品的某一项特别的优点喜好,判断该优点为特定用户人群的喜好点,以此作为依据去统计其它拥有此项爱好点的物品,将此类物品归类评分,推荐分数较高的物品,以上是基于物品的协同过滤算法简单介绍。基于用户的协同过滤算法是通过系统获取的数据进行初步处理得到简洁的用户对物品的评分表,分割数据换算成矩阵进行计算,统计得到每一个用户的空间向量模型,计算向量和向量的空间距离,判断用户是否为邻居用户,再通过计算得到用户可能会喜欢有着相同爱好的用户评分较高的物品推荐分数,向用户推荐分数较高的物品。举例如下表2-2所示:表2-2基于用户的协同过滤用户-物品评分矩阵User/ItemABCDU1喜欢喜欢喜欢U2喜欢U3喜欢喜欢喜欢由以上的用户对物品的简单喜爱评价分析,能够发现用户一号和用户三号对相同的物品有相同的判断结果,可以称为相邻邻居用户,从而可以把U1未评价过的但是U1的相邻用户U3喜欢的物品C推荐给U1,反之亦然。2.2.2内容推荐算法内容推荐算法[9](CB,Content-BasedRecommendations)是基于系统平台内的物品进行属性分析,特点统计,用户喜好点发掘,提炼为物品特征,然后通过用户的历史行为记录,统计用户对特定属性的估值评分,计算用户偏好,从而匹配有着与用户偏好相同的物品,进行推荐。对物品内容进行特征提取又分为两种方式,第一种是标签化特征,比如电影的类型,就是标签化特征的一种,利用类型可以简洁明了的提取特征。第二种是高频词特征,对于物品形容的内容进行高频词提取,权值越大的词向量表示在内容中的地位越是重要,从而统计权值较大的高频词作为该物品的特征,常见特征提取算法是最近邻方法(KNN,K-NearestNeighbor)、决策树算法(DT,DecisionTree)、朴素贝叶斯算法(NB,NaiveBayes)等等,由于本系统未选择内容推荐算法,在此不对详细计算算法做过多介绍。内容推荐算法的优势在于用户之间拥有独立性,不依靠其它用户的数据进行计算。但该算法的缺陷是对文本需求较高,需要详细的对物品的描述进行特征提取,有一定的局限性。举例如下表2-3所示:表2-3基于内容推荐的用户-物品评分矩阵User/ItemA(爱情、喜剧)B(惊悚、悬疑)C(搞笑、喜剧)D(爱情、喜剧)U1喜欢U2喜欢喜欢U3喜欢喜欢由以上表格可以看出,物品A与物品D是属性相似(相同)的物品,可以向喜欢了A物品的用户推荐D物品,同理也可以向喜欢了D物品的用户推荐A物品,在此表格中可以向A用户推荐D物品,这就是基于物品内容推荐的简单模型介绍。2.2.3相似推荐算法相似推荐算法主要是针对用户操作行为较少,推荐依据缺乏的问题,对用户有过关注的某个物品,找到相似集合,向用户进行推荐,依据物品的详细属性,作为属性向量,进行物品之间对比,统计向量相似权值之和,获得物品的相似权值,将权值较高的集合向用户进行推荐。但缺点在于推荐结果的准确性不高,推荐结果是基于用户历史行为记录的,积累了一定的用户行为记录数据,推荐结果的准确度才能够提高。2.2.4关联规则推荐算法关联规则推荐算法[10],简单的来说就是推测事件之间的关联性,若A事件发生的情况下,大概率B事件也会发生,那么A事件与B事件就有着一定的关联规则,统计这样的规则,需要一定规模的用户历史行为数据,最名的例子就是“尿布与啤酒”,看似无关联的尿布和啤酒,却是一起成交率最高的商品,通过分析用户历史行为数据得到这样的关联之后,只要把啤酒商品与尿布商品放在一起推荐给客户,可以同时的促进两样商品的售卖,给顾客更好的服务同时也促进了销售额。关联规则推荐算法就是利用这样的原理,对用户进行推荐,该算法需要使用到概率论的许多算法,需要进行数据的挖掘,统计发现出事件中的较为经常出现的事件集合,根据权值的比重进一步的推出与之相关联的操作,在计算关联规则中常常会用到的算法是Apriori算法。2.2.5推荐系统评估指标推荐系统离线评测的重要指标就是评分预测,一般通过两种计算方法,一是均方根误差(RootMeanSquareError),二是平均绝对误差(MeanAbsoluteError)。均方根误差(RMSE)是指的具体事实发生统计的数据值与系统计算得出的结果值之间的差异的样本标准差,具体的公式如下2-1:RMSEX,h=1mi=1m平均绝对误差(MAE)指的是系统计算得出的结果值与具体事实发生统计的数据值之间的绝对误差的平均值,具体公式如下2-2:MAEX,h=1mi=1mhXi-y2.3相似度计算公式2.3.1欧几里得距离欧几里得距离也称欧式距离(EuclideanDistance),这里可以引出另外一个概念,就是欧几里得空间,能够观测到的任何物品,若是想要对它们进行计算,对抽象概念束手无策时,可以将它们放入一个n维的欧几里得空间,使用向量的方式对这样的物体进行观测统计,甚至是计算,那么当计算两个向量之间的距离时,此时用到的便是欧几里得距离,在推荐领域中,可以认为这两个抽象概念上的物体它们在同一个向量空间的空间距离越是相近,就代表这两样物体很是相似,由此可以统计相似项集,不同的维度不同的空间,使用的计算公式也随之变化,距离公式具体如下面的公式2-3:dx,y=x12.3.2曼哈顿距离曼哈顿距离(ManhattanDistance),这里可以简单的认为是高中知识中路程与位移二者之间的路程计算公式,位移为起始点至终点两点一线的直线距离,但在实际生活当中需要用到的往往是实际的路程距离,曼哈段距离便是这个实际的路程距离,推荐算法中使用的也是此实际路程距离,计算该距离的具体公式如下2-4:dx,y=i=1nxi-y2.3.3余弦相似度余弦相似度,在初始数据用户-评分矩阵中,通过不同数据的统计分析,去构建一个在数学领域中可以计算的向量,来代表此用户,进行数学计算,通过提供的不同数据,去创造不同的维度空间,用来容纳每一个用户向量,而这里的余弦相似度就是计算这个抽象特定的空间内向量之间的空间距离,具体计算使用向量之间的余弦值表示,依此评判两个用户之间的相似程度,余弦值的取值范围在0~1之间,距离和余弦值的大小成反比关系,相似程度与余弦值大小成正比关系。具体的公式如下2-5:simu,v=cosu,v=2.4本章小结本章介绍了课题有关的相关技术,在较为出色的一些算法之中做了比较,选择最适合本课题研究的基于物品的协同过滤算法作为本课题的核心计算算法,此外还介绍了在数据处理过程中会使用到的一些算法,做数据的预处理,方便模型的搭建,讨论了本课题基础框架技术,合理的利用框架的便利去实现课题研究。第三章离线推荐系统设计3.1集群搭建设计本课题研究选择搭建完全分布式集群,由于资源有限,本系统使用了Vmware虚拟机实现完全分布式的集群搭建,本系统的集群设计如图3-1所示:图3-1Spark集群搭建系统设计Hadoop集群搭建完毕如图3-2和3-3所示:图3-2Hadoop集群搭建成功效果图1图3-3Hadoop集群搭建成功效果图2Spark集群搭建完毕如图3-4所示:图3-4Spark集群搭建成功效果图3.2推荐算法计算步骤3.2.1样本处理离线系统需要对数据进行计算,这里输入的数据是用户-物品的评分数据,样本处理的这个步骤就是我们从数据库的数据当中去提取用户-物品的评分数据,编写Java程序连接数据库,读取数据库表中用户id、电影id、评分属性,放入Map中储存,创建输出流,将数据按照固定格式写入csv文件当中,输出文件,本地连接Spark集群,再复制上传到hdfs的input文件夹中,初步的数据处理就完毕了。流程图如下图3-5所示:图3-5数据预处理流程图3.2.2模型搭建首先在集群的hdfs读取文件数据,使用用户作为索引进行统计分组,统计被用户选择、偏好过的物品,建立物品的同现矩阵,物品之间两个两个进行匹配统计,同时被选择的次数,这就是物品同现矩阵,用简单的例子表示如下表3-1所示:表3-1用户-电影评分表UserMovieScore1A5.01B5.01C3.01D4.02A3.02D5.03A4.03C5.03D5.0物品同现矩阵如下图3-2所示:表3-2物品同现矩阵

ABCDA3123B1111C2122D3123评分矩阵表示说明如下表3-3所示:表3-3物品同现矩阵2A3.0B0.0C0.0D5.0最后使用用户-物品评分矩阵与物品同现矩阵相乘,便能够得到最终的推荐分数如下图3-6所示:图3-6推荐分数计算3.3基于物品的协同过滤算法原理基于物品的协同过滤算法底层的逻辑,其实是去判断两样物品在用户心中的喜好分数比值高低,实际上物品是抽象的不可计算的,但是数学使之变为向量,虽然这个过程中无法保证建立的物品模型与现实中完全一致,但在可完成范围内,尽可能地通过合理性去判断统计物品的各种属性,在理论上得到模型相似的结果,并且在实践中统计计算方式的准确性与合理性,可以用两种方式去理解,下面采取直观的图表法解释如何使用用户-物品的评分表,计算物品之间的相似度,首先随意例举了一个用户-物品评分表如下表3-4所示:表3-4原理举例评分User1User2A5.04.0B4.55.0C3.55.0D2.03.0E1.52.5接下来利用散点图表示物品的相似度如下图3-7所示:图3-7物品相似度散点图可以很好的从散点图看出,物品D和物品E的距离相近,物品A与物品B的距离相近,这里的距离便是这两个物品之间在某一个维度下的距离,在此称为相似度,即可判断为物品D和物品E为相似物品,可以向喜爱D物品的用户推荐E物品,物品A与物品B也是同理,使用欧几里得距离算法可以计算得出每项物品之间的相似度,从而得到推荐分数。第二种方式,可以理解每一项物品都为一个n维空间的向量,这里的n维表示物品带有的属性,属性越多的物品,评判的维度越多,那么物品的形象也会更加的丰富,计算推荐的结果准确度也随之上升,采取计算余弦相似度的计算公式,得到推荐分数。3.4本章小结本章主要介绍了系统搭建的集群设计,以及搭建的过程,详细的讲解了推荐系统计算的步骤,使用图文的方式简洁明了的展示了数据的变化,以及算法原理的解析,相似度的本质原理。第四章Web社交平台设计4.1系统总框架本系统主要分为两个核心模块,离线计算推荐系统和Web网页社交系统,以及四个不同的层次,数据层、计算层、结果层和表示层,不同的模块提供不同的服务,每个层次都有对应的工作职责,有条理的传输数据,具体的系统架构如下图4-1所示:图4-1系统架构图4.2系统程序设计4.2.1功能设计本系统的WEB设计的功能如下:(1)用户模块:用户进入网站可以注册拥有自己的账户,登录账号,可以编辑自己的个人信息,换头像、写个人简介,与其它用户成为好友,也可以登出账号。(2)首页模块:没有注册账号的用户仍然可以在首页查看热门的电影、使用查询模块、博客模块,正常注册登录了的用户可以使用更多的用户模块、评分模块和专属的推荐模块。(3)查询模块:用户可以在搜索框输入关键词,进行全局搜索自己想要找到的电影信息,还有高级筛选搜索,选择年份、地区、类型等等,进行高级筛选出匹配条件的电影。(4)评分模块:用户选择看过的电影,可以对电影进行评分与发表感想,对电影进行一个主观的评价,同时也可以选择没有看过的电影,查看其他人的主观评价,从而对电影进行一定的判断。(5)推荐模块:用户通过使用本系统,在对电影进行评分过后,系统收集用户行为记录,对不同的用户进行个性化的推荐电影,每个用户都有专属的推荐模块。(6)详情模块:用户可以点击电影图片、名字等等,查看该电影的详细信息介绍,包括了演员表、导演、地区、上映年月份、总体评分、剧情梗概等等,也包括博客模块,有发布日期、大图展示、全文展示等等。(7)博客模块:用户可以在本平台上发布博客,插入图片,查看他人的博客,发表评论等操作。(8)聊天模块:用户在本平台上遇见感兴趣的影评,想与有着相同见解的用户进行探讨时,除了可以在评论下发布回复,还可以与用户进行聊天对话。具体的详情介绍如下图4-2所示:图4-2系统功能架构图4.2.1数据库设计本课题选择使用MySql数据库技术作为数据支撑,按照系统的数据逻辑,分别设计了如下的数据库表,具体结构如下图4-3所示:图4-3数据库总体架构图(1)User表,主要存储用户的个人信息,性别、名字、邮箱、密码、手机号等等的基本属性。如下表4-1所示:表4-1用户表名类型注释idbigint用户唯一id(主键)usernamevarchar用户昵称passwordvarchar账号密码emailvarchar邮箱(账号)mobilevarchar手机号sexvarchar性别imageurlvarchar头像图片地址aboutvarchar个人介绍(2)Movies表,主要储存电影的基本信息,电影名称、图片地址、剧情简介、导演、演员、时长、类型等等。热门电影与最新电影主要字段与电影表属性基本一致,在此只例举电影表结构,具体如下表4-2所示:表4-2电影表名类型注释idint电影的唯一id(主键)namevarchar电影名称directorvarchar导演信息actortext演员信息scoredecimal电影总体评分datelinevarchar上映年份cityvarchar电影制作国家themetext电影剧情梗概countbigint影评数量imageurltext电影海报地址numberbigint电影评价数量typevarchar电影类型writertext电影编剧languagevarchar语言timevarchar电影上线时间imburltext线上播放地址(3)Comment表,主要储存的是用户对电影的影评以及打分分数,博客的评论表与此表类似,属性大致相同,在此只例举影评表,具体如下表4-3所示:表4-3影评表名类型注释idbigint影评的唯一标识(主键)movies_idint电影iduser_idint用户iduser_namevarchar用户昵称scoredecimal用户打分(一位小数点)dayvarchar评论日期时间reply_countint回复数量contentvarchar影评内容(4)Blog表,主要是储存用户博客内容,具体结构如下表4-4所示:表4-4博客表名类型注释idbigint博客的唯一标识(主键)user_idbigint发表用户iduser_namevarchar发表用户昵称titlevarchar博客标题contenttext博客内容dayvarchar发表日期时间imageurlvarchar博文图片reply_countint评论数量(5)Friend表,此表主要储存与用户建立会话的关系列表,具体结构如下表4-5所示:表4-5好友列表名类型注释idbigint好友关系唯一标识(主键)user_idbigint用户iduser_namevarchar用户昵称f_idbigint好友idf_namevarchar好友昵称f_imagevarchar好友头像(6)Record表,主要储存的是好友之间的聊天记录,具体结构如下表4-6所示:表4-6聊天记录列表名类型注释idbigint聊天记录唯一标识(主键)user_idbigint用户iduser_namevarchar用户昵称f_idbigint好友idf_namevarchar好友昵称messagetext聊天内容timevarchar发送时间meint是否自己发出4.3本章小结本章主要介绍了系统的总体架构设计,详细的描述了系统功能设计,每个模块的职责,展示了整体系统架构图、功能框架图,阐述了使用的数据库技术,讲解了数据库的总体架构,以及数据库总体的结构图,接下来分别展示了不同表的不同结构,展示了详细的表字段和类型,和不同表之间的关联。第五章具体功能实现与测试5.1环境搭建(1)Windows(本地主机)操作系统:Windows10;处理器:Intel(R)Core™i7-8750HCPU:2.21GHz内存:16.0GBJAVA:jdk-1.8.0_91Maven:ApacheMaven3.6.1Web服务器:ApacheTomcat7.0.82开发平台:IntelliJIDEA2018.2.4数据库:MySQL5.6.5开发框架:SpringBoot(2)Linux(三台虚拟机)操作系统:CentOS7内存:2.0GBJAVA:jdk-1.7Hadoop版本:Hadoop-2.7.3Spark版本:Spark-系统功能实现5.2.1用户模块功能登录与注册是交互平台中最基础的功能,做基本信息提示输入,用户只需要按照提示填入相关关键数据,前端会对每一个属性格式进行规范检查,设置账号和密码,使用MD5进行密码加密,存入数据库,将标识的关键字段,也可称为主键,设置为自增格式,以此作为用户账号的DNA,在登录的时候,校验账号与密码的正确性,校验成功后,取出用户对象,存入session会话中,由此完成了用户账号的存入,即是注册,以及对象持久化的登录功能。界面设计如图5-1所示:图5-1登录界面5.2.2首页模块功能首页主要是展示了不同的电影列表,有热门电影列表、最新电影列表、精选电影列表、推荐电影列表,只有登录了账号的用户才能够显示推荐电影列表,这个模块需要针对用户生成用户专属的推荐模块,未登录的情况下不予展示。实现的原理是利用Spring框架进行页面的跳转、数据的传输、数据库操作等等,主要的流程图如下图5-2所示:图5-2页面跳转业务流程首页还包含了其它的小模块链接,所有电影的列表的展示链接、博客展示链接、高级筛选功能、查询功能、个人中心等。首页展示如下图5-3所示:图5-3首页部分展示5.2.3详情模块功能该模块包括了电影的详情界面、博客详情界面、评论区实现翻页展示的功能,发表评论的功能。具体页面如下图5-4、5-5所示:图5-4电影详情页面部分展示图5-5博客详情页面部分展示5.2.4搜索模块功能用户需要提供一个相关的“引子”作为关键字,在数据库中对这个关键字进行模糊的比较查询,显示符合条件的电影列表,包括高级筛选,也是搜索模块中的功能,根据类型、年份、地区进行模糊搜索,搜索无结果时,给用户无结果的提示。具体的流程逻辑图如下图5-6所示:图5-6搜索功能逻辑流程图具体页面设计如下图5-7、5-8、5-9所示:图5-7搜索关键字无结果返回显示页面图5-8高级筛选选项卡图5-9搜索结果返回页面5.2.5聊天模块功能本模块使用的核心技术主要是WebSocket技术,代替以往使用轮询的老旧方式进行实时的通信,在这里先来看一下简单Socket模型如下图5-10所示:图5-10Socket简单模型在这里只需要使用HTTP协议进行客户端与服务端之间的一次交互握手,建立一条全双工的通信通道,单独被WebSocket使用传输信息,简单快捷,并且节省资源,性能较高,是作为实时通信聊天功能的最佳选择。下面来看具体的两个用户,使用两个客户端实现实时通信的过程,如5-11所示:图5-11实时聊天实现过程具体的程序功能根据以上的逻辑设计流程进行实施,在开发过程中使用了Web的API接口WebSocket进行实现,在前端传输信息时,使用了封装,网页的具体设计如下图5-12所示:图5-12聊天界面5.2.6推荐结果计算功能这一模块是后台的核心代码,首先在本机Windows系统下连接虚拟机中的Spark集群,接着对数据进行预处理,上传至Hdfs,利用Spark集群读取文件进行计算。由主节点Master发送执行任务的命令给集群的Worker,集群分别执行命令,通过Executor去创建线程池,利用线程池对任务进行分配,分配到每一个实例化的线程中去进行任务的数据计算,利用线程池的并发执行和线程复用,极大的提高了执行效率,降低资源的消耗,内部调度结构图如下图5-13所示:图5-13Spark任务调度图后台输入数据构建模型,编辑输入输出路径逻辑,分配好作业调度,进行数据的具体计算推荐分数矩阵,输出结果下载到本地,数据传输的逻辑图如下5-14所示:图5-14数据计算逻辑图通过构建矩阵,进行矩阵的计算,本质是计算用户向量在n维空间中的余弦距离,得出相似度推荐分数,在计算出分数之后,将推荐矩阵写入数据库表中,再通过web界面实现可视化,向用户提供推荐服务,在首页滚动展示数据集。推荐界面如下图5-15所示:图5-15推荐结果展示页面5.3系统测试软件测试是一个开发项目的最后一步,也是检验整个开发项目实现与否的重要手段,使用最简洁明了的方法,测试功能的完整、流畅,检测程序运行中的每个步骤。模块测试,详情如下表5-1所示:表5-1系统测试测试模块测试描述前置条件输入数据期望结果实际结果登录模块用户正常的进行填写数据,提交表单进行注册,验证账号进行登录。网站能够正常跳转,进入首页,打开注册登录界面,点击注册/登录。已注册普通用户正确邮箱以及对应密码。用户正常登录,并且可以流畅使用平台其它功能,跳转页面不需要重新登录。与预期结果一致。电影模块通过点击首页展示电影的链接信息,如图片、名称等,进行详情页面查看。Web页面正常跳转,后台与数据库连接正常。点击电影详情连接或者点击图片,点击标题。页面正常跳转进入电影的详细描述页面,电影基本信息正常显示。与预期结果一致。推荐模块用户在首页能够查看个人电影推荐条目。用户是拥有账号的普通用户,在平台上登录,有过评分操作,后台与数据库连接正常,Spark集群正常连接。登录进入首页之后,查看推荐列表。用户正常查看个人推荐列表。与预期结果一致。搜索模块用户在搜索框输入关键字,使用键盘进行回车操作,跳转页面查看结果集。Web页面正常跳转,后台与数据库连接正常。输入关键字,进行键盘回车操作。用户能够正常进行电影搜索,查找到想要的电影集。与预期结果一致。聊天模块用户点击其它用户昵称,选择聊天操作,跳转进入聊天界面,输入主观信息,键盘操作回车之后发送,对方用户接受到信息数据,并且可以使用同样的方式回复信息。Web界面正常跳转,用户使用正确邮箱与密码进行登录,后台连接数据库正常。点击对方用户昵称选择聊天操作,向聊天输入框输入正常数据,键盘回车操作。成功发送聊天内容,并且也能够成功接受对方发送的信息。与预期结果一致。5.4本章小结本章主要介绍了课题研究的实验环境配置,以及阐述了系统具体功能的实现过程,展示了系统的部分画面设计,以及实现功能的画面,对每个核心功能进行了详细描述,最后对功能模块进行了测试与分析。第六章总结与展望6.1论文总结本课题的选题是基于Spark的电影分享社交平台,设计为融合推荐系统开发的社交平台,在Web网页设计的基础之上加入了比较有特色的推荐服务,作为如今比较热门的大数据功能,所以选择它成为本课题设计的核心功能比较亮眼的存在。本系统是针对那些平常喜欢看电影,喜欢对电影进行分析,发表感想的人设计的,开发这个平台能够让喜欢电影的用户互相交流,在平台上获得更舒适的服务,让用户有点开的电影刚好是喜欢的电影这种惊喜。要完成本课题的设计,不能够仅仅将算法中的公式实现,得到满意的结果,就做完了,更重要的是理解算法的本质,看穿公式背后的抽象意义,每一个矩阵模型都有意义,数字、公式是解释抽象意义的工具,协同过滤算法中,矩阵的乘法本质是余弦定理的计算,不只是数字表象的变化,实际上将矩阵相乘的做法,是计算向量之间的距离,余弦相似度就是向量与向量之间的距离,可以简单的认为,距离越近的两个物体,在维度够大时,无线趋近于相等,当它们重合时,便可认为是一个物品,所以将距离相近的两个物品,看作为相似物品,从而得到推荐结果,如此便理解了推荐算法真正的魅力所在,也是本课题研究的意义所在。在此次课题研究中,每一个步骤的设计实现,都需要梳理清楚条理,才能够逐步的去实现,能够很好的锻炼思维能力,在动手实现的过程中也会遇到许多的麻烦与困难,但只要花费耐心,保持毅力,就能够逐一解决,从而对本课题的研究更加深入理解。本次课题研究带给我的不仅仅是知识的理解,更多的是能力的提升,对以后的学习或工作都有着极大的帮助,能够顺利的完成此次课题研究,让我受益良多。6.2论文展望本课题中的系统平台还有可以拓展的地方,在web方面以后致力开发出更加具有价值的服务,提高用户的使用舒适度,在界面优化方面仍然可以进行提升,最后是推荐算法方面,以后会钻研混合推荐算法,结合各个算法的优势,提高推荐的准确率,为新用户和使用记录较少的用户也提供较为准确的推荐数据,解决推荐系统冷启动的问题,在未来的日子一定会尽可能地完善的系统。参考文献[1]冯兴杰,王文超.Hadoop与Spark应用场景研究[J].计算机应用研究,2018,35(09):2561-2566.[2]李建江,崔健,王聃,严林,黄义双.MapReduce并行编程模型研究综述[J].电子学报,2011,39(11):2635-2642.[3]王永和,张劲松,邓安明,周智勋.SpringBoot研究和应用[J].信息通信,2016(10):91-94.[4]JosephA.Konstan,BradleyN.Miller,DavidMaltz,JonathanL.Herlocker,LeeR.Gordon,JohnRiedl.GroupLens[J],1997,40(3),77-87[5]刘鲁,任晓丽.推荐系统研究进展及展望[J].信息系统学报,2008(01):82-90.[6]陈天宇,张龙信,李肯立,周立前.Spark框架中RDD缓存替换策略优化[J].小型微型计算机系统,2019,40(06):1248-1253.[7]包文祥,胡广朋.基于WebSocket的实时通信机制的设计与实现[J].计算机与数字工程,2019,47(07):1836-1840.[8]周万珍,曹迪,许云峰,刘滨.推荐系统研究综述[J].河北科技大学学报,2020,41(01):76-87.[9]柴茜.基于内容聚类的网上书城推荐算法研究[D].渤海大学,2019.[10]高晟.基于关联规则与贝叶斯网络的高校图书馆个性化图书推荐服务[J].情报探索,2019(08):87-94.致谢到此毕业设计与论文都已经告一段落了,感觉第一次站在大学校园门口青涩的小女孩还在昨天,仔细一想已经在大学风风雨雨的度过了四年,有许多的欢笑,也有许多的烦恼,真是这些欢喜忧愁充实了我的大学生活,但更重要的是在这四年之间我学习到的许多知识,开阔了眼界,打开了新世界的大门,探索的路程仍然还有很长要走。在此我要郑重地对东软学校的各位老师们表达感谢,正是他们在编程这条道路摸索前行时给我点明指路灯,感谢在我遇到困难时施以援手的同学们,让我在这条学习的路上不孤单,还有要感谢的是无时无刻给予我关爱的家人们,在每时每刻给我最好的支持。这次的毕业设计从选题到查找资料,到着手实现,有一个人无时无刻的给我提供帮助,这个人就是黄晴晴老师,我要尤其的感谢她的耐心,她的关怀,给予我恰到好处的提点,在学习的道路上会遇到许多必然的阻碍,也会有许许多多看不起前路的迷茫,还有出于自身的怠惰、烦躁的糟糕状态,老师总是能够看出我的沮丧,给我鼓励,让我有了直面困难的勇气,老师也能够发现我偶尔糟糕的状态,给我温暖的关怀和开导,并且严厉的监督我,让我改善自己的状态,才能够学到更多的知识,也在一次次挫折之中成长,正是有着黄晴晴老师的一路相伴,此次的毕业设计课题较为完满的完成了。衷心地感谢每一位老师与同学的鼎立相助。还有最重要的是,感谢东软学院为我们提供了充满学习氛围的教学和学习的环境,大学四年丰富的生活都基于学校的大力支持,让学校的每位师生都能够专心的钻研知识,不用担心其它的干扰。最后,还要感谢耐心阅读本文的老师们,感谢你们用心的指导,让我能够在学习的道路上奋勇向前,向每一位为我付出的人表示最深的敬意,谢谢你们!

ExcelXP的八则快速输入技巧如果我们在用ExcelXP处理庞大的数据信息时,不注意讲究技巧和方法的话,很可能会花费很大的精力。因此如何巧用ExcelXP,来快速输入信息就成为各个ExcelXP用户非常关心的话题,笔者向大家介绍几则这方面的小技巧。1、快速输入大量含小数点的数字如果我们需要在ExcelXP工作表中输入大量的带有小数位的数字时,按照普通的输入方法,我们可能按照数字原样大小直接输入,例如现在要在单元格中输入0.05这个数字时,我们会把“0.05”原样输入到表格中。不过如果需要输入若干个带有小数点的数字时,我们再按照上面的方法输入的话,每次输入数字时都需要重复输入小数点,这样工作量会变大,输入效率会降低。其实,我们可以使用ExcelXP中的小数点自动定位功能,让所有数字的小数点自动定位,从而快速提高输入速度。在使用小数点自动定位功能时,我们可以先在ExcelXP的编辑界面中,用鼠标依次单击“工具”/“选项”/“编辑”标签,在弹出的对话框中选中“自动设置小数点”复选框,然后在“位数”微调编辑框中键入需要显示在小数点右面的位数就可以了。以后我们再输入带有小数点的数字时,直接输入数字,而小数点将在回车键后自动进行定位。例如,我们要在某单元格中键入0.06的话,可以在上面的设置中,让“位数”选项为2,然后直接在指定单元格中输入6,回车以后,该单元格的数字自动变为“0.06”,怎么样简单吧?2、快速录入文本文件中的内容现在您手边假如有一些以纯文本格式储存的文件,如果此时您需要将这些数据制作成ExcelXP的工作表,那该怎么办呢?重新输入一遍,大概只有头脑有毛病的人才会这样做;将菜单上的数据一个个复制/粘贴到工作表中,也需花很多时间。没关系!您只要在ExcelXP中巧妙使用其中的文本文件导入功能,就可以大大减轻需要重新输入或者需要不断复制、粘贴的巨大工作量了。使用该功能时,您只要在ExcelXP编辑区中,依次用鼠标单击菜单栏中的“数据/获取外部数据/导入文本文件”命令,然后在导入文本会话窗口选择要导入的文本文件,再按下“导入”钮以后,程序会弹出一个文本导入向导对话框,您只要按照向导的提示进行操作,就可以把以文本格式的数据转换成工作表的格式了。3、快速输入大量相同数据如果你希望在不同的单元格中输入大量相同的数据信息,那么你不必逐个单元格一个一个地输入,那样需要花费好长时间,而且还比较容易出错。你可以通过下面的操作方法在多个相邻或不相邻的单元格中快速填充同一个数据,具体方法为:首先同时选中需要填充数据的单元格。若某些单元格不相邻,可在按住Ctrl键的同时,点击鼠标左键,逐个选中;其次输入要填充的某个数据。按住Ctrl键的同时,按回车键,则刚才选中的所有单元格同时填入该数据。4、快速进行中英文输入法切换一张工作表常常会既包含有数字信息,又包含有文字信息,要录入这样一种工作表就需要我们不断地在中英文之间反复切换输入法,非常麻烦,为了方便操作,我们可以用以下方法实现自动切换:首先用鼠标选中需要输入中文的单元格区域,然后在输入法菜单中选择一个合适的中文输入法;接着打开“有效数据”对话框,选中“IME模式”标签,在“模式”框中选择打开,单击“确定”按钮;然后再选中输入数字的单元格区域,在“有效数据”对话框中,单击“IME模式”选项卡,在“模式”框中选择关闭(英文模式);最后单击“确定”按钮,这样用鼠标分别在刚才设定的两列中选中单元格,五笔和英文输入方式就可以相互切换了。5、快速删除工作表中空行删除ExcelXP工作表中的空行,一般的方法是需要将空行都找出来,然后逐行删除,但这样做操作量非常大,很不方便。那么如何才能减轻删除工作表中空行的工作量呢?您可以使用下面的操作方法来进行删除:首先打开要删除空行的工作表,在打开的工作表中用鼠标单击菜单栏中的“插入”菜单项,并从下拉菜单中选择“列”,从而插入一新的列X,在X列中顺序填入整数;然后根据其他任何一列将表中的行排序,使所有空行都集中到表的底部。删去所有空行中X列的数据,以X列重新排序,然后删去X列。按照这样的删除方法,无论工作表中包含多少空行,您就可以很快地删除了。6、快速对不同单元格中字号进行调整在使用ExcelXP编辑文件时,常常需要将某一列的宽度固定,但由于该列各单元格中的字符数目不等,致使有的单元格中的内容不能完全显示在屏幕上,为了让这些单元格中的数据都显示在屏幕上,就不得不对这些单元格重新定义较小的字号。如果依次对这些单元格中的字号调整的话,工作量将会变得很大。其实,您可以采用下面的方法来减轻字号调整的工作量:首先新建或打开一个工作簿,并选中需要ExcelXP根据单元格的宽度调整字号的单元格区域;其次单击用鼠标依次单击菜单栏中的“格式”/“单元格”/“对齐”标签,在“文本控制”下选中“缩小字体填充”复选框,并单击“确定”按钮;此后,当你在这些单元格中输入数据时,如果输入的数据长度超过了单元格的宽度,ExcelXP能够自动缩小字符的大小把数据调整到与列宽一致,以使数据全部显示在单元格中。如果你对这些单元格的列宽进行了更改,则字符可自动增大或缩小字号,以适应新的单元格列宽,但是对这些单元格原设置的字体字号大小则保持不变。7、快速输入多个重复数据在使用ExcelXP工作表的过程中,我们经常要输入大量重复的数据,如果依次输入,无疑工作量是巨大的。现在我们可以借助ExcelXP的“宏”功能,来记录首次输入需要重复输入的数据的命令和过程,然后将这些命令和过程赋值到一个组合键或工具栏的按钮上,当按下组合键时,计算机就会重复所记录的操作。使用宏功能时,我们可以按照以下步骤进行操作:首先打开工作表,在工作表中选中要进行操作的单元格;接着再用鼠标单击菜单栏中的“工具”菜单项,并从弹出的下拉菜单中选择“宏”子菜单项,并从随后弹出的下级菜单中选择“录制新宏”命令;设定好宏后,我们就可以对指定的单元格,进行各种操作,程序将自动对所进行的各方面操作记录复制。8、快速处理多个工作表有时我们需要在ExcelXP中打开多个工作表来进行编辑,但无论打开多少工作表,在某一时刻我们只能对一个工作表进行编辑,编辑好了以后再依次编辑下一个工作表,如果真是这样操作的话,我们倒没有这个必要同时打开多个工作表了,因为我们同时打开多个工作表的目的就是要减轻处理多个工作表的工作量的,那么我们该如何实现这样的操作呢?您可采用以下方法:首先按住“Shift"键或“Ctrl"键并配以鼠标操作,在工作簿底部选择多个彼此相邻或不相邻的工作表标签,然后就可以对其实行多方面的批量处理;接着在选中的工作表标签上按右键弹出快捷菜单,进行插入和删除多个工作表的操作;然后在“文件”菜单中选择“页面设置……”,将选中的多个工作表设成相同的页面模式;再通过“编辑”菜单中的有关选项,在多个工作表范围内进行查找、替换、定位操作;通过“格式”菜单中的有关选项,将选中的多个工作表的行、列、单元格设成相同的样式以及进行一次性全部隐藏操作;接着在“工具”菜单中选择“选项……”,在弹出的菜单中选择“视窗”和“编辑”按钮,将选中的工作表设成相同的视窗样式和单元格编辑属性;最后选中上述工作表集合中任何一个工作表,并在其上完成我们所需要的表格,则其它工作表在相同的位置也同时生成了格式完全相同的表格。高效办公Excel排序方法"集中营"排序是数据处理中的经常性工作,Excel排序有序数计算(类似成绩统计中的名次)和数据重排两类。本文以几个车间的产值和名称为例,介绍Excel2000/XP的数据排序方法。一、数值排序1.RANK函数RANK函数是Excel计算序数的主要工具,它的语法为:RANK(number,ref,order),其中number为参与计算的数字或含有数字的单元格,ref是对参与计算的数字单元格区域的绝对引用,order是用来说明排序方式的数字(如果order为零或省略,则以降序方式给出结果,反之按升序方式)。例如图1中E2、E3、E4单元格存放一季度的总产值,计算各车间产值排名的方法是:在F2单元格内输入公式“=RANK(E2,$E$2:$E$4)”,敲回车即可计算出铸造车间的产值排名是2。再将F2中的公式复制到剪贴板,选中F3、F4单元格按Ctrl+V,就能计算出其余两个车间的产值排名为3和1。如果B1单元格中输入的公式为“=RANK(E2,$E$2:$E$4,1)”,则计算出的序数按升序方式排列,即2、1和3。需要注意的是:相同数值用RANK函数计算得到的序数(名次)相同,但会导致后续数字的序数空缺。假如上例中F2单元格存放的数值与F3相同,则按本法计算出的排名分别是3、3和1(降序时)。2.COUNTIF函数COUNTIF函数可以统计某一区域中符合条件的单元格数目,它的语法为COUNTIF(range,criteria)。其中range为参与统计的单元格区域,criteria是以数字、表达式或文本形式定义的条件。其中数字可以直接写入,表达式和文本必须加引号。仍以图1为例,F2单元格内输入的公式为“=COUNTIF($E$2:$E$4,">"&E2)+1”。计算各车间产值排名的方法同上,结果也完全相同,2、1和3。此公式的计算过程是这样的:首先根据E2单元格内的数值,在连接符&的作用下产生一个逻辑表达式,即“>176.7”、“>167.3”等。COUNTIF函数计算出引用区域内符合条件的单元格数量,该结果加一即可得到该数值的名次。很显然,利用上述方法得到的是降序排列的名次,对重复数据计算得到的结果与RANK3.IF函数Excel自身带有排序功能,可使数据以降序或升序方式重新排列。如果将它与IF函数结合,可以计算出没有空缺的排名。以图1中E2、E3、E4单元格的产值排序为例,具体做法是:选中E2单元格,根据排序需要,单击Excel工具栏中的“降序排序”或“升序排序”按钮,即可使工作表中的所有数据按要求重新排列。假如数据是按产值由大到小(降序)排列的,而您又想赋予每个车间从1到n(n为自然数)的排名。可以在G2单元格中输入1,然后在G3单元格中输入公式“=IF(E3=E2,G3,G3+1)”,只要将公式复制到G4等单元格,就可以计算出其他车间的产值排名。二、文本排序选举等场合需要按姓氏笔划为文本排序,Excel提供了比较好的解决办法。如果您要将图1数据表按车间名称的笔划排序,可以使用以下方法:选中排序关键字所在列(或行)的首个单元格(如图1中的A1),单击Excel“数据”菜单下的“排序”命令,再单击其中的“选项”按钮。选中“排序选项”对话框“方法”下的“笔画排序”,再根据数据排列方向选择“按行排序”或“按列排序”,“确定”后回到“排序”对话框(图2)。如果您的数据带有标题行(如图1中的“单位”之类),则应选中“有标题行”(反之不选),然后打开“主要关键字”下拉列表,选择其中的“单位”,选中排序方式(“升序”或“降序”)后“确定”,表中的所有数据就会据此重新排列。此法稍加变通即可用于“第一名”、“第二名”等文本排序,请读者自行摸索。三、自定义排序如果您要求Excel按照“金工车间”、“铸造车间”和“维修车间”的特定顺序重排工作表数据,前面介绍的几种方法就无能为力了。这类问题可以用定义排序规则的方法解决:首先单击Excel“工具”菜单下的“选项”命令,打开“选项”对话框中的“自定义序列”选项卡(图3)。选中左边“自定义序列”下的“新序列”,光标就会在右边的“输入序列”框内闪动,您就可以输入“金工车间”、“铸造车间”等自定义序列了,输入的每个序列之间要用英文逗号分隔,或者每输入一个序列就敲回车。如果序列已经存在于工作表中,可以选中序列所在的单元格区域单击“导入”,这些序列就会被自动加入“输入序列”框。无论采用以上哪种方法,单击“添加”按钮即可将序列放入“自定义序列”中备用(图3)。使用排序规则排序的具体方法与笔划排序很相似,只是您要打开“排序选项”对话框中的“自定义排序次序”下拉列表,选中前面定义的排序规则,其他选项保持不动。回到“排序”对话框后根据需要选择“升序”或“降序”,“确定”后即可完成数据的自定义排序。需要说明的是:显示在“自定义序列”选项卡中的序列(如一、二、三等),均可按以上方法参与排序,请读者注意Excel提供的自定义序列类型。谈谈Excel输入的技巧在Excel工作表的单元格中,可以使用两种最基本的数据格式:常数和公式。常数是指文字、数字、日期和时间等数据,还可以包括逻辑值和错误值,每种数据都有它特定的格式和输入方法,为了使用户对输入数据有一个明确的认识,有必要来介绍一下在Excel中输入各种类型数据的方法和技巧。一、输入文本Excel单元格中的文本包括任何中西文文字或字母以及数字、空格和非数字字符的组合,每个单元格中最多可容纳32000个字符数。虽然在Excel中输入文本和在其它应用程序中没有什么本质区别,但是还是有一些差异,比如我们在Word、PowerPoint的表格中,当在单元格中输入文本后,按回车键表示一个段落的结束,光标会自动移到本单元格中下一段落的开头,在Excel的单元格中输入文本时,按一下回车键却表示结束当前单元格的输入,光标会自动移到当前单元格的下一个单元格,出现这种情况时,如果你是想在单元格中分行,则必须在单元格中输入硬回车,即按住Alt键的同时按回车键。二、输入分数几乎在所有的文档中,分数格式通常用一道斜杠来分界分子与分母,其格式为“分子/分母”,在Excel中日期的输入方法也是用斜杠来区分年月日的,比如在单元格中输入“1/2”,按回车键则显示“1月2日”,为了避免将输入的分数与日期混淆,我们在单元格中输入分数时,要在分数前输入“0”(零)以示区别,并且在“0”和分子之间要有一个空格隔开,比如我们在输入1/2时,则应该输入“01/2”。如果在单元格中输入“81/2”,则在单元格中显示“81/2”,而在编辑栏中显示“三、输入负数在单元格中输入负数时,可在负数前输入“-”作标识,也可将数字置在()括号内来标识,比如在单元格中输入“(88)”,按一下回车键,则会自动显示为“-88”。四、输入小数在输入小数时,用户可以向平常一样使用小数点,还可以利用逗号分隔千位、百万位等,当输入带有逗号的数字时,在编辑栏并不显示出来,而只在单元格中显示。当你需要输入大量带有固定小数位的数字或带有固定位数的以“0”字符串结尾的数字时,可以采用下面的方法:选择“工具”、“选项”命令,打开“选项”对话框,单击“编辑”标签,选中“自动设置小数点”复选框,并在“位数”微调框中输入或选择要显示在小数点右面的位数,如果要在输入比较大的数字后自动添零,可指定一个负数值作为要添加的零的个数,比如要在单元格中输入“88”后自动添加3个零,变成“88000”,就在“位数”微调框中输入“-3”,相反,如果要在输入“88”后自动添加3位小数,变成“0.088”,则要在“位数”微调框中输入“3”。另外,在完成输入带有小数位或结尾零字符串的数字后,应清除对“自动设置小数点”符选框的选定,以免影响后边的输入;如果只是要暂时取消在“自动设置小数点”中设置的选项,可以在输入数据时自带小数点。五、输入货币值Excel几乎支持所有的货币值,如人民币(¥)、英镑(£)等。欧元出台以后,Excel2000完全支持显示、输入和打印欧元货币符号。用户可以很方便地在单元格中输入各种货币值,Excel会自动套用货币格式,在单元格中显示出来,如果用要输入人民币符号,可以按住Alt键,然后再数字小键盘上按“0165”即可。六、输入日期Excel是将日期和时间视为数字处理的,它能够识别出大部分用普通表示方法输入的日期和时间格式。用户可以用多种格式来输入一个日期,可以用斜杠“/”或者“-”来分隔日期中的年、月、日部分。比如要输入“2001年12月1日”,可以在单元各种输入“2001/12/1”或者“2001-12-1七、输入时间在Excel中输入时间时,用户可以按24小时制输入,也可以按12小时制输入,这两种输入的表示方法是不同的,比如要输入下午2时30分38秒,用24小时制输入格式为:2:30:38,而用12小时制输入时间格式为:2:30:38p,注意字母“p”和时间之间有一个空格。如果要在单元格中插入当前时间,则按Ctrl+Shift+;键。了解Excel公式的错误值经常用Excel的朋友可能都会遇到一些莫名奇妙的错误值信息:#N/A!、#VALUE!、#DIV/O!等等,出现这些错误的原因有很多种,如果公式不能计算正确结果,Excel将显示一个错误值,例如,在需要数字的公式中使用文本、删除了被公式引用的单元格,或者使用了宽度不足以显示结果的单元格。以下是几种常见的错误及其解决方法。1.#####!原因:如果单元格所含的数字、日期或时间比单元格宽,或者单元格的日期时间公式产生了一个负值,就会产生#####!错误。解决方法:如果单元格所含的数字、日期或时间比单元格宽,可以通过拖动列表之间的宽度来修改列宽。如果使用的是1900年的日期系统,那么Excel中的日期和时间必须为正值,用较早的日期或者时间值减去较晚的日期或者时间值就会导致#####!错误。如果公式正确,也可以将单元格的格式改为非日期和时间型来显示该值。2.#VALUE!当使用错误的参数或运算对象类型时,或者当公式自动更正功能不能更正公式时,将产生错误值#VALUE!。原因一:在需要数字或逻辑值时输入了文本,Excel不能将文本转换为正确的数据类型。解决方法:确认公式或函数所需的运算符或参数正确,并且公式引用的单元格中包含有效的数值。例如:如果单元格A1包含一个数字,单元格A2包含文本"学籍",则公式"=A1+A2"将返回错误值#VALUE!。可以用SUM工作表函数将这两个值相加(SUM函数忽略文本):=SUM(A1:A2)。原因二:将单元格引用、公式或函数作为数组常量输入。解决方法:确认数组常量不是单元格引用、公式或函数。原因三:赋予需要单一数值的运算符或函数一个数值区域。解决方法:将数值区域改为单一数值。修改数值区域,使其包含公式所在的数据行或列。3.#DIV/O!当公式被零除时,将会产生错误值#DIV/O!。原因一:在公式中,除数使用了指向空单元格或包含零值单元格的单元格引用(在Excel中如果运算对象是空白单元格,Excel将此空值当作零值)。解决方法:修改单元格引用,或者在用作除数的单元格中输入不为零的值。原因二:输入的公式中包含明显的除数零,例如:=5/0。解决方法:将零改为非零值。4.#NAME?在公式中使用了Excel不能识别的文本时将产生错误值#NAME?。原因一:删除了公式中使用的名称,或者使用了不存在的名称。解决方法:确认使用的名称确实存在。选择菜单"插入"|"名称"|"定义"命令,如果所需名称没有被列出,请使用"定义"命令添加相应的名称。原因二:名称的拼写错误。解决方法:修改拼写错误的名称。原因三:在公式中使用标志。解决方法:选择菜单中"工具"|"选项"命令,打开"选项"对话框,然后单击"重新计算"标签,在"工作薄选项"下,选中"接受公式标志"复选框。原因四:在公式中输入文本时没有使用双引号。解决方法:Excel将其解释为名称,而不理会用户准备将其用作文本的想法,将公式中的文本括在双引号中。例如:下面的公式将一段文本"总计:"和单元格B50中的数值合并在一起:="总计:"&B50原因五:在区域的引用中缺少冒号。解决方法:确认公式中,使用的所有区域引用都使用冒号。例如:SUM(A2:B34)。5.#N/A原因:当在函数或公式中没有可用数值时,将产生错误值#N/A。解决方法:如果工作表中某些单元格暂时没有数值,请在这些单元格中输入"#N/A",公式在引用这些单元格时,将不进行数值计算,而是返回#N/A。6.#REF!当单元格引用无效时将产生错误值#REF!。原因:删除了由其他公式引用的单元格,或将移动单元格粘贴到由其他公式引用的单元格中。解决方法:更改公式或者在删除或粘贴单元格之后,立即单击"撤消"按钮,以恢复工作表中的单元格。7.#NUM!当公式或函数中某个数字有问题时将产生错误值#NUM!。原因一:在需要数字参数的函数中使用了不能接受的参数。解决方法:确认函数中使用的参数类型正确无误。原因二:使用了迭代计算的工作表函数,例如:IRR或RATE,并且函数不能产生有效的结果。解决方法:为工作表函数使用不同的初始值。原因三:由公式产生的数字太大或太小,Excel不能表示。解决方法:修改公式,使其结果在有效数字范围之间。8.#NULL!当试图为两个并不相交的区域指定交叉点时将产生错误值#NULL!。原因:使用了不正确的区域运算符或不正确的单元格引用。解决方法:如果要引用两个不相交的区域,请使用联合运算符逗号(,)。公式要对两个区域求和,请确认在引用这两个区域时,使用逗号。如:SUM(A1:A13,D12:D23)。如果没有使用逗号,Excel将试图对同时属于两个区域的单元格求和,但是由于A1:A13和D12:D23并不相交,所以他们没有共同的单元格。在Excel中快速查看所有工作表公式只需一次简单的键盘点击,即可可以显示出工作表中的所有公式,包括Excel用来存放日期的序列值。要想在显示单元格值或单元格公式之间来回切换,只需按下CTRL+`(位于TAB键上方)。EXCEL2000使用技巧十招1、Excel文件的加密与隐藏如果你不愿意自己的Excel文件被别人查看,那么你可以给它设置密码保护,采用在保存文件时用加密的方法就可以实现保护目的,在这里要特别注意的是,自己设定的密码一定要记住,否则自己也将被视为非法入侵者而遭拒绝进入。给文件加密的具体方法为:A、单击“文件”菜单栏中的“保存或者(另存为)”命令后,在弹出的“保存或者(另存为)”的对话框中输入文件名;B、再单击这个对话框中“工具”栏下的“常规选项”按钮,在弹出的“保存选项”的对话框中输入自己的密码;这里要注意,它提供了两层保护,如果你也设置了修改权限密码的话,那么即使文件被打开也还需要输入修改权限的密码才能修改。C、单击“确定”按钮,在弹出的密码确认窗口中重新输入一遍密码,再点击“确认”,最后点“保存”完成文件的加密工作。当重新打开文件时就要求输入密码,如果密码不正确,文件将不能打开。2、对单元格进行读写保护单元格是Excel执行其强大的计算功能最基本的元素,对单元格的读写保护是Excel对数据进行安全管理的基础。对单元格的保护分为写保护和读保护两类,所谓写保护就是对单元格中输入信息加以限制,读保护是对单元格中已经存有信息的浏览和查看加以限制。对单元格的写保护有两种方法:A、对单元格的输入信息进行有效性检测。首先选定要进行有效性检测的单元格或单元格集合,然后从数据菜单中选择“有效数据”选项,通过设定有效条件、显示信息和错误警告,控制输入单元格的信息要符合给定的条件。B、设定单元格的锁定属性,以保护存入单元格的内容不能被改写。可分为以下步骤:(1)选定需要锁定的单元格或单元格集合;(2)从格式菜单中选择“单元格”选项;(3)在设置单元格格式的弹出菜单中选择“保护”标签,在弹出的窗口中,选中“锁定”;(4)从工具菜单中选择“保护”选项,设置保护密码,即完成了对单元格的锁定设置。对单元格的读保护有三种方法:A、通过对单元格颜色的设置进行读保护。例如:将选定单元格或单元格集合的背景颜色与字体颜色同时设为白色,这样,从表面看起来单元格中好像是没有输入任何内容,用户无法直接读出单元格中所存储的信息。B、用其他画面覆盖在需要保护的单元格之上,遮住单元格的本来面目,以达到读保护目的。例如:使用绘图工具,画一不透明矩形覆盖在单元格之上,从格式菜单中选定矩形的“锁定”选项,然后保护工作表,以保证矩形不能被随意移动。这样,用户所看到的只是矩形,而看不到单元格中所存储的内容。C、通过设置单元格的行高和列宽,隐藏选定的单元格,然后保护工作表,使用户不能直接访问被隐藏的单元格,从而起到读保护的作用。3、快速填充相同数据如果你希望在不同的单元格中输入大量相同的数据信息,那么你不必逐个单元格一个一个地输入,那样需要花费好长时间,而且还比较容易出错。我们可以通过下面的操作方法在多个相邻或不相邻的单元格中快速填充同一个数据,具体方法为:A、同时选中需要填充数据的单元格。若某些单元格不相邻,可在按住Ctrl键的同时,点击鼠标左键,逐个选中;B、输入要填充的某个数据。按住Ctrl键的同时,按回车键,则刚才选中的所有单元格同时填入该数据。4、使用Excel中的“宏”功能宏的概念,相信使用过WORD的人都会知道,她可以记录命令和过程,然后将这些命令和过程赋值到一个组合键或工具栏的按钮上,当按下组合键时,计算机就会重复所记录的操作。在实践工作中,它可以代替经常输入大量重复而又琐碎的数据,具体宏的定义方法如下::A、打开工作表,在工作表中选中要进行操作的单元格;B、用鼠标单击菜单栏中的“工具”菜单项,并从弹出的下拉菜单中选择“宏”子菜单项,并从随后弹出的下级菜单中选择“录制新宏”命令;C、设定好宏后,我们就可以对指定的单元格,进行各种操作,程序将自动对所进行的各方面操作记录复制。5、连续两次选定单元格我们有时需要在某个单元格内连续输入多个数值,以查看引用此单元格的其他单元格的效果。但每次输入一个值后按回车键,活动单元格均默认下移一个单元格,非常不便。解决此问题的一般做法是通过选择“工具”\“选项”\“编辑”,取消“按回车键后移动”选项的选定来实现在同一单元格内输入许多数值,但以后你还得将此选项选定,显得比较麻烦。其实,采用连续两次选定单元格方法就显得灵活、方便:单击鼠标选定单元格,然后按住Ctrl键再次单击鼠标选定此单元格。此时,单元格周围将出现实线框。6、在工作表之间使用超级连接首先须要在被引用的其他工作表中相应的部分插入书签,然后在引用工作表中插入超级链接,注意在插入超级链接时,可以先在“插入超级链接”对话框的“链接到文件或URL”设置栏中输入目标工作表的路径和名称,再在“文件中有名称的位置”设置栏中输入相应的书签名,也可以通过“浏览”方式选择。完成上述操作之后,一旦使用鼠标左键单击工作表中带有下划线的文本的任意位置,即可实现中文Excel2000在自动打开目标工作表并转到相应的位置处,这一点与WORD的使用很相似。7、快速清除单元格的内容首先用鼠标选定该单元格,然后按住键盘上的Delete键,此时你会发现你只是删除了单元格内容,它的格式和批注还保留着。那么如何才能彻底清除单元格呢,请看下面的两种操作步骤:A、选定想要清除的单元格或单元格范围;B、选择“编辑”菜单中的“清除”命令,这时显示“清除”菜单;C、选择要清除的命令,可以选择“全部”、“格式”、“内容”或“批注”中的任一个。8、快速修改单元格次序在实际操作的过程中,我们有时需要快速修改单元格内容的次序。在拖放选定的一个或多个单元格至新的位置的同时,按住Shift键可以快速修改单元格内容的次序。具体方法如下:A、首先用鼠标选定单元格,同时按下键盘上的Shift键;B、接着移动鼠标指针到单元格边缘,直至出现拖放指针箭头,然后进行拖放操作。上下拖拉时鼠标在单元格间边界处会变成一个水平“工”状标志,左右拖拉时会变成垂直“工”状标志,释放鼠标按钮完成操作后,单元格间的次序即发生了变化。、在Excel中利用公式来设置加权平均加权平均在财务核算和统计工作中经常用到,并不是一项很复杂的计算,关键是要理解加权平均值其实就是总量值(如金额)除以总数量得出的单位平均值,而不是简单的将各个单位值(如单价)平均后得到的那个单位值。在Excel中可设置公式解决(其实就是一个除法算式),分母是各个量值之和,分子是相应的各个数量之和,它的结果就是这些量值的加权平均值。10、用Excel绘制函数图像函数图像能直观地反映函数的性质,用手工方法来绘制函数图像效果不太好,而用Excel绘制函数图像非常简便,所作图像非常标准、漂亮,具体方法如下:A、首先打开电子表格的操作窗口,然后用鼠标选择菜单栏中的“新建”命令,这时屏幕上会出现一个空白的电子表格;B、然后在A列的A1格输入“X=”,表明这是自变量,再在A列的A2及以后的格内逐次从小到大输入自变量的各个值;实际输入的时候,通常应用等差数列输入法,先输入前三个值,定出自变量中数与数的距离,然后点击A2格,按住鼠标拖到A4格选中这三项,使这三项变成一个黑色矩形,再用鼠标指向这黑色矩形的右下角的小方块,当光标变成“+”后,按住鼠标拖动光标到适当的位置,就完成自变量的输入;C、接着在B列的B1格输入函数式y=f(x)的一般函数表达式,如y=1/x;也可在点击工具栏上的函数图标“fx”后,在出现的不同函数列表的选项中选择需要的一种;输入结束后,点击函数输入对话框旁的勾号,B2格内马上得出了计算的结果。这时,再选中B2格,让光标指向B2矩形右下角的方框,当光标

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论