zoukankan      html  css  js  c++  java
  • 结对作业二——顶会热词统计的实现

    这个作业属于哪个课程 2021春软件工程实践S班 (福州大学)
    这个作业要求在哪里 结对作业二——顶会热词统计的实现
    结对学号 221801105,221801110
    这个作业的目标 实现顶会热词统计网页版功能
    其他参考文献 html5+css3网页设计基础教程

    作业基本信息...

    一、PSP表格和效能分析

    PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
    Planning 计划
    • Estimate • 估计这个任务需要多少时间 20 30
    Development 开发
    • Analysis • 需求分析 (包括学习新技术) 160 140
    • Design Spec • 生成设计文档 120 90
    • Design Review • 设计复审 90 70
    • Coding Standard • 代码规范 (为目前的开发制定合适的规范) 70 50
    • Design • 具体设计 210 160
    • Coding • 具体编码 1400 2750
    • Code Review • 代码复审 200 250
    • Test • 测试(自我测试,修改代码,提交修改) 300 240
    Reporting 报告
    • Test Report • 测试报告 30 30
    • Size Measurement • 计算工作量 10 10
    • Postmortem & Process Improvement Plan • 事后总结, 并提出过程改进计划 10 20
    合计 2620 3840

    效能分析:

          分析设计过程比预计花的时间少,可能是因为上一次原型设计作业做的差不多了;编码过程花的时间比预计的多得多。

          作业完成效率整体较低,主要原因是结对双方Web基础都不扎实,学完即忘,导致编程时到处找资料花了很多时间。

    二、git仓库、代码规范和部署到云服务器后的访问链接

          git仓库:https://github.com/AgCl9/PairProject
          代码规范:https://github.com/AgCl9/PairProject/blob/main/221801105%26221801110/codestyle.md
          部署到云服务器:http://82.157.53.91:8080/221801105_221801110/index.html

    三、成品展示

    • 首页:

    • 论文爬取页面:(暂时没有实现)

    • 论文查询页面:

    • 列表管理页面:

      • 点击删除按钮后:
    • 热词分析首页:

      • 下拉列表框可以选择顶会名称:
      • CVPR:

      • ECCV:

      • ICCV:

    四、设计实现过程

    • 功能结构图:
    • 过程描述:
             1. 首页:
             根据原型设计,考虑在图片下面加入四个按钮,分别跳转到论文爬取、论文查询、列表管理、热词统计页面。
             2. 论文查询:
             利用Web开发的表单功能,实现查询数据的提交,提交到后台处理。使用php编程语言在服务器上开发,传入数据库文件和sql语句实现。(似乎没有实现)
             3. 列表管理:
             以表格形式展示,展示出标题、关键词、摘要、原文链接信息,并设置删除按钮供用户删除论文。
             4. 热词统计:
             考虑用一个下拉列表框选择顶会名称,然后对每个顶会统计出来的热词进行动图的设计。动图考虑用echarts组件,利用JavaScript进行传值。
             一张动图呈现一个顶会的热词变化趋势。

    五、代码说明

    1. 首页,利用button的onclick属性,实现页面跳转。
    <div id="header">
    	<h1>顶会热词统计</h1>
    </div>
    	
    <div id="content">
    	<div id="pic">
    		<img src="img/v2_qpoiu2.jpg" alt="" />
    	</div>
    		
    	<div id="btn">
    		<button type="button" id="crawl" onclick="window.open('html/crawl.html','_self')">论文爬取</button>
    		<button type="button" id="search" onclick="window.open('html/search.html','_self')">论文查询</button>
    		<button type="button" id="list"  onclick="window.open('html/list.html','_self')">列表管理</button>
    		<button type="button" id="analysis" onclick="window.open('html/hot_word.html','_self')">热词分析</button>
    	</div> 
    </div>
    
    1. 论文查询:
      首页放置一个输入框和一个查询按钮。利用表单实现。
    <div id="content">
    	<form action="search_result.html" method="get">
    		<input type="text" id="passage" name="search" />
    		<input type="submit" id="submit" value="查询" onclick="search()"/>
    	</form>
    			
    	<div id="btn">
    		<button type="button" id="exit" onclick="window.open('../index.html','_self')">返回首页</button>
    	</div>
    </div>
    
    1. 列表页面:放置一个表格显示列表
    <table border="1" width="75%" align="center">
            <caption id="biaoti">论文总览</caption>
    	<tr>
    		<th>标题</th>
    		<th>关键词</th>
    		<th>摘要</th>
    		<th>原文链接</th>
    	</tr>
    	<tr>
    		<td class = "zhengwen">Learning 3D Keypoint Descriptors for Non-rigid Shape Matching</td>
    		<td class = "zhengwen">Local feature descriptor,Triplet CNNs,Non-rigid shapes</td>
    		<td class = "zhengwen">In this paper, ……………….</td>
    		<td class = "zhengwen">https://doi.org/10.1007/978-3-030-01237-3_1</td>
    		<td><button onclick ="remove(this)">删除</button></td>
    	</tr>
    

    设置css布局:

    #biaoti {
    	font-size: 26px;
    }
    
    table {
    	table-layout:fixed;
    	
    }
    
    .zhengwen{
    	background-color: #f3f3f3;
    	word-wrap:break-word;
    }
    
    button {
    	background-color: #4CAF50;
    	border: none;
    	color: white;
    	padding: 15px 32px;
    	text-align: center;
    	font-size: 16px;
    	cursor: pointer;
    }
    
    .btn1 {
    	float: right;
    	background-color: #5BC0DE;
    	font-size: 1.8em;
    	height:100px;
    	180px;
    }
    
    1. 热词分析:引入echarts.min.js文件实现图表功能:
    <head>
    	<meta charset="utf-8">
    	<title>热词分析</title>
    	<link rel="stylesheet" type="text/css" href="../css/hot_word.css">
    	<script src="../echart/echarts.min.js"></script>
    </head>
    

    首页利用一个下拉列表框,用于选择顶会名称:

    <div id = "content">
    	<select name="dgLink2" id = "selection" style="WIDTH: 150px" onchange="MM_jumpMenu('parent',this,0)">
    		<option value="#">请选择顶会名称:</option>
    		<option value="cvpr.html">CVPR</option>
    		<option value="eccv.html">ECCV</option>
    		<option value="iccv.html">ICCV</option>
    	</select>
    </div>
    			
    <div id="btn">
    	<button class = "btn1" onclick="window.open('../index.html','_self')">返回首页<button>
    </div>
    

    引入script文件实现下拉列表框的动作:

    <script type="text/JavaScript">
    	function MM_jumpMenu(targ,selObj,restore){ //v3.0
    		eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
    		if (restore) selObj.selectedIndex=0;
    	}
    </script>
    

    引入script实现动图的设计(此处以ICCV为例),使用的数据为上次WordCount程序运行得到的结果(由于顶会热词在一段时间内是不会有变化的,故直接写入echart页面,似乎太过简单粗暴):

    <script type="text/javascript">
    	// 基于准备好的dom,初始化echarts实例
    	var chartDom = document.getElementById('content');
    	var myChart = echarts.init(chartDom);
    	var option1;
    		  		
    	var data = [];
    	for (let i = 0; i < 10; ++i) {
    	    data.push(111);
    	}
    	  		
    	option1 = {
    	    xAxis: {
    	        max: 'dataMax',
    	    },
    	    yAxis: {
    	        type: 'category',
    	        data: [ 'Training', 'Cameras',  'Computer vision', 'Feature extraction', 'Shape', 'Robustness',  'Visualization', '3D displays', 'Image segmentation', 'Image reconstruction'],
    	        inverse: true,
    	        animationDuration: 300,
    	        animationDurationUpdate: 300,			
    	    },
    	    series: [{
    		 realtimeSort: true,
    		 name: 'X',
    		 type: 'bar',
    		 data: data,
    		 label: {
    		     show: true,
    		     position: 'right',
    		     valueAnimation: true
    		 }
    	    }],
    	    legend: {
    		show: true
    	    },
    	    animationDuration: 0,
    	    animationDurationUpdate: 1000,
    	    animationEasing: 'linear',
    	    animationEasingUpdate: 'linear'
    	};
    
            setTimeout(function () {
    	    run();
    	}, 1);
    
            if (option1 && typeof option1 === 'object') {
    	    myChart.setOption(option1);
    	}
    </script>
    

    六、心路历程和收获

    • 221801105:
            在作业发布之后,我们在当天就进行了讨论,决定先撰写前端的页面;刚开始撰写html时,由于不够熟练,布局显得非常混乱,整体外观丑陋;在所有页面撰写完成之后,于是我们两人进行分工,我负责热词分析和论文管理页面的改进,在原有的基础上,改变布局并增加了CSS样式。

          后来设计历年热词趋势图时,陷入了困境,于是在和队友讨论以及向同学求助后,得知了可以利用echarts实现图表,在网上资料和队友的帮助下,成功实现了从静态图向动态图的转变。

    • 221801110:

          感觉本次作业实现难度很大,可以说“设计得多美观,实现起来就多痛苦”,并且要求不能使用原型工具生成代码。写了一周无用代码,没什么进展的情况下,看到旁边的同学不是用JavaEE的知识就是用vue框架,而这些知识是我从来没有接触过的,也都是头一次听说,在时间趋紧的前提下自学vue框架,估计基本无法实现,无奈只能用纯前端开发。还是使用html、css、javascript进行开发。

          纯前端开发中也遇到了诸多问题,从这次作业中发现了web知识学的不扎实的问题(从页面写的时间过长可以看出),之后最为明确的目标是学会vue框架,这样可能更加轻松实现Web编程。因为更大的网页程序是不可能去用纯前端进行开发的。

    七、讨论过程与评价结对队友

    • 讨论过程:
            通过讨论,考虑到双方的Web基础水平(都很差)、学习新的vue框架现学现用需要的时间(花时间还可能会在限定时间里面做不出来),和deadline等因素,两人确定用传统的html、css、js等语言,纯前端编写代码。
            两人一起讨论了程序设计的方式和布局。发现设计出好多不美观的页面,都一起讨论并修改了。

    • 讨论照片:

    • 221801105对221801110的评价: 这次原型设计的实现,我们一起相互帮助,使得实现的功能更加完善;在我们结对编程的过程中,我经常会出现一些设计上的细节错误,得益于他的及时纠正,我们的合作才能更加有条不紊,能高效地完成任务。

    • 221801110对221801105的评价:队友虽然不太会,但愿意去做,可以的。结对过程中遇到的困难,愿意一起解决,也是可以的。可以一起完成,无论做的怎样都是可以的。

  • 相关阅读:
    HTML 折行 <br/>标签
    HTML 图像<img>
    HTML 段落<p>标签
    vuecli实现最简单的全选、全不选、反选功能。不容错过呦!!!!!话不多说直接上代码。。。。
    CListCtrl使用方法
    求素数
    hdr lighting step 4 最终结果
    ASCII效果
    镜子中的物体为什么是左右颠倒而非上下颠倒的?
    hdr lighting step 1 tone map
  • 原文地址:https://www.cnblogs.com/hkr-blog/p/14557688.html
Copyright © 2011-2022 走看看