结对第二次作业--编程实现

善恶如谜 善恶如谜 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

在这里插入图片描述


在这里插入图片描述

参与社区的问题回答

问题回答
这个作业属于哪个课程软件工程-23年春季学期
这个作业要求在哪里结对第二次作业--编程实现
结对学号222000126 222000127
这个作业的目标采用web技术实现原型中的功能
其他参考文献《构建之法》

目录💡

  • 参与社区的问题回答
  • Gitcode仓库地址
  • 云服务器的访问链接
  • PSP表格
  • 成品展示
  • 结对讨论过程
  • 设计实现
  • 代码说明
  • 心路历程和收获
  • 评价结对队友


Gitcode仓库地址

仓库地址

在这里插入图片描述


云服务器的访问链接

访问链接

  • 阿里云ECS云服务器(下载apache服务,控制台是宝塔)

    请添加图片描述


PSP表格

PSPPersonal Software Process Stages预估耗时(分钟)实际耗时(分钟)
Planning计划3035
• Requirements understanding• 需求理解1515
• Requirements analysis• 需求分析1520
Development开发10051305
• Pair discussion• 结对讨论(细化分工)4545
• Learn prototyping tools• 学习新技术300360
• Interface prototyping• 项目开发600660
• Summary of user needs• 测试60240
Reporting报告120150
• Write a blog• 撰写博客6090
• Size Measurement• 计算工作量3030
• Postmortem & Process Improvement Plan• 事后总结, 并提出过程改进计划3030
total合计11551490

成品展示


结对讨论过程

一开始项目,我们讨论分工,就分离页面设计,一人设计两个页面。因为页面分离,我们也就一人用vue,一人用bootstrap。但是最后到实现页面跳转的时候我们却遇到了困难,因此也浪费了很多时间。

在这里插入图片描述

在这里插入图片描述


设计实现

在这里插入图片描述


代码说明

每日赛况的json输出,切换日期,有前五天的数据,第五天之后的数据与第五天相同。

 <template>
  <div class=" cardss">
    <h1>{{ msg }}</h1>
    <div class="changeDay">
      <button v-for="day in 14" :key="day" @click="selectDay(day)" class="daychange">
        Day {{ day }}
      </button>

    </div>
    <div class="changeDay" v-if="day == '1'">
      <div class="list daliy">
        <div v-for="list,index in json0116" :key="index" class="item">
          <div class="cardbox  card">
            <div class="timeset h3">{{ list.time }}</div>
            <div class="winnerset h2">{{ list.winner }}</div>
            <div class="scoreset h3">{{ list.score }}</div>
          </div>
        </div>
      </div>
    </div>
    <div class="changeDay" v-if="day == '2'">
      <div class="list daliy">
        <div v-for="list,index in json0117" :key="index" class="item">
          <div class="cardbox card">
            <div class="timeset h3">{{ list.time }}</div>
            <div class="winnerset h2">{{ list.winner }}</div>
            <div class="scoreset h3">{{ list.score }}</div>
          </div>
        </div>
      </div>
    </div>
    <div class="changeDay" v-if="day == '3'">
      <div class="list daliy">
        <div v-for="list,index in json0118" :key="index" class="item">
          <div class="cardbox card">
            <div class="timeset h3">{{ list.time }}</div>
            <div class="winnerset h2">{{ list.winner }}</div>
            <div class="scoreset h3">{{ list.score }}</div>
          </div>
        </div>
      </div>
    </div>
    <div class="changeDay" v-if="day == '4'">
      <div class="list daliy">
        <div v-for="list,index in json0119" :key="index" class="item">
          <div class="cardbox card">
            <div class="timeset h3">{{ list.time }}</div>
            <div class="winnerset h2">{{ list.winner }}</div>
            <div class="scoreset h3">{{ list.score }}</div>
          </div>
        </div>
      </div>
    </div>
    <div class="changeDay" v-if="day != '1' && '2' && '3' && '4' ">
      <div class="list daliy">
        <div v-for="list,index in json0120" :key="index" class="item">
          <div class="cardbox card">
            <div class="timeset h3">{{ list.time }}</div>
            <div class="winnerset h2">{{ list.winner }}</div>
            <div class="scoreset h3">{{ list.score }}</div>
          </div>
        </div>
      </div>
    </div>

  </div>
</template>
<script>
import json0116 from "@/json/0116.json"
import json0117 from "@/json/0117.json"
import json0118 from "@/json/0118.json"
import json0119 from "@/json/0119.json"
import json0120 from "@/json/0120.json"
export default {
  data() {
    return {
      msg: "每日赛程",
      json0116: json0116,
      json0117: json0117,
      json0118: json0118,
      json0119: json0119,
      json0120: json0120,
      jsonData: null,
      day: null
    }
  },
  methods: {
  selectDay(day) {
    // 在这里实现选择某一天后的逻辑
    console.log(`你选择了第 ${day} 天`);
    this.day = day
  },
  loadJsonData(file) {
    console.log(file)
    fetch(file)
      .then(response => response.json())
      .then(data => {
        this.jsonData = data;
        console.log(data)
      })
      .catch(error => console.error(error));
}
},
}
console.log(json0116)
</script>

晋级图例的样式实现

.container-fluid {
    padding-right: 15px;
    padding-left: 15px;
    margin-right: auto;
    margin-left: auto;
    background: url(./img/u370.jfif);
  }
  .bg-primary {
    color: #fff;
    background-color: #337ab7;
  }
  .row {
    margin-right: -15px;
    margin-left: -15px;
  }
  .text-center {
    text-align: center;
  }
  .col-md-3,
  .col-md-6,
  .col-md-12{
    position: relative;
    min-height: 1px;

    float: left;
  }
  .panel {
    margin-bottom: 20px;
    background-color: #fff;
    border: 1px solid transparent;
    border-radius: 4px;
    -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
  }
  .panel-body {
    padding: 15px;
  }
  .panel-heading {
    padding: 10px 15px;
    border-bottom: 1px solid transparent;
    border-top-left-radius: 3px;
    border-top-right-radius: 3px;
  }
  .panel-primary {
    border-color: #337ab7;
  }
  .panel-primary > .panel-heading {
    color: #fff;
    background-color: #337ab7;
    border-color: #337ab7;
  }
  .panel-primary > .panel-heading + .panel-collapse > .panel-body {
    border-top-color: #337ab7;
  }
  .panel-primary > .panel-heading .badge {
    color: #337ab7;
    background-color: #fff;
  }
  .panel-primary > .panel-footer + .panel-collapse > .panel-body {
    border-bottom-color: #337ab7;
  }
  .center-block {
    display: block;
    margin-right: auto;
    margin-left: auto;
  }
  .panel-title {
    margin-top: 0;
    margin-bottom: 0;
    font-size: 16px;
    color: inherit;
  }
  .row:before,
  .row:after {
    display: table;
    content: " ";
  }
  .row:after {
    clear: both;
  }
  .col-md-6 {
    width: 50%;
  }
  .col-md-3 {
    width: 25%;
  }
  .col-md-12 {
    width: 100%;
  }

选手排名的翻页实现

<div class="player-list__pagination">
    <span>共 {{ pageCount }} 页</span>
    <span>第 {{ currentPage }} 页</span>
    <div @click="prevPage" :disabled="currentPage === 1" class="selected">上一页</div>
    <div @click="nextPage" :disabled="currentPage === pageCount" class="selected">下一页</div>
</div>




<script>
import headerView from '@/components/header/headerView'
import playersData from '../json/players.json'
export default {
  components: {
      headerView
  },
  name: 'PlayerList',
  data() {
    return {
      players: playersData,
      options: [5, 10, 20, 50],
      itemsPerPage: 10,
      currentPage: 1
    }
  },
  computed: {
    paginatedPlayers() {
      const startIndex = (this.currentPage - 1) * this.itemsPerPage
      const endIndex = startIndex + this.itemsPerPage
      return this.players.slice(startIndex, endIndex)
    },
    pageCount() {
      return Math.ceil(this.players.length / this.itemsPerPage)
    }
  },
  methods: {
    prevPage() {
      if (this.currentPage > 1) {
        this.currentPage -= 1
      }
    },
    nextPage() {
      if (this.currentPage < this.pageCount) {
        this.currentPage += 1
      }
    }
  }
}
</script>

心路历程和收获

22200126:

一开始拿到这个项目的时候,我兴致勃勃的想使用vue这门新技术来实现,和队友商讨并且询问大佬过后,决定我使用vue框架,队友使用bootstrap框架分别进行页面设计,队友很快就写好了自己的部分,我经过学习也磕磕绊绊完成了任务,但未曾想,这却是我们噩梦的开始。当我们打算进行项目合并时,却发现网上教的跳转与导入不适用我们,导致我们俩的页面始终无法跳转。经过不断尝试,我们失败了无数次,最终决定暴力插入,即在我的代码中插入bootstrap中用到的方法,以及队友的成果,完成了最后的项目。这件事让我深感折磨,在开始工作前,一定要与队友约定好使用相同的方法,避免出现不必要的麻烦。

222000127:

222000127周洪宇昂的感受:这次项目使用的技术对我来说都是之前没学习过的,但有html,css和js技术就能很快上手,我一开始选择了简单便捷的bootstrap框架,但在做完之后遇到了和同学的vue框架的合并问题,搞了半天才勉强搞好,最后还是顺带学习了一部分vue框架的知识,这次教训让我学会应该提前测试好框架合并问题,不然后期改都没法改。


评价结对队友

222000126:

队友完成分工很快,在最后我们遇到无法跳转的问题的时候,他也非常有耐心的与我一同不断地试错,尽管最终还是没有解决在vue中导入bootstrap框架和vue跳转html页面的问题,他的陪伴依旧让我暖心。

222000127:

他对任务工作很上心,而且懂得很多,能力也很强,对工作的推进起到了巨大的作用。


在这里插入图片描述


...全文

相关推荐

PairProject:W班软件工程实践结对第二次作业仓库

结对第二次作业-顶会热词统计的实现 为了不遗漏作业内容,这里有一个清单检查表方便同学们快速检阅。 fork仓库,和伙伴商讨如何通过github协作/代码规范等 编程实现 功能一,操作爬取的论文列表 功能二,爬取结果分析展示 功能三,爬取论文信息(附加功能,实现有附加分) 其他附加功能 部署 发布发布版本,发起拉取请求 撰写博客,在预先之前提交一份博客 包含作业描述和目录 核对评分标准 上一次结对作业中,大家都和小伙伴完成了原型的设计,那么现在再联合小伙伴动手实现原型中的部分功能吧。采用网络技术来实现原型中的功能。 一,作业内容 1.基础功能 功能1:对已爬取的论文列表进行操作 可对论文列表进行删除; 可对论文列表进行查询详细信息(支持模糊查询,查询结果的展示,排序等功能可自行设计); 功能2:分析已爬取到的论文信息,提取top10个热门领域或热门研究方向 形成如关键字图谱之类直观的查看方式

ywnwx

基于Python语言的P4程序结对作业设计源码

该项目是一款基于Python语言的P4程序结对作业设计源码,总文件量为114个,其中Python源文件57个,JSON配置文件24个,P4配置文件11个,Markdown文档8个,PNG图像文件3个,许可证文件1个,以及多个Makefile文件。该项目旨在通过结对作业的形式,提升编程能力和团队合作精神。

wjs2024

软件工程实践结对作业二.md

软件工程实践结对作业二.md

Joey0610

2020级计算机系软件工程第二次结对编程作业.zip

2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip 2020级计算机系软件工程第二次结对编程作业.zip

辣椒种子

结对编程技术与策略pdf

介绍结对编程方法、技术和策略。包括结对编程定义、好处。结对策略与组织方法,存在的问题与注意事项等

douwf
评论
收藏 已收藏
分享
返回顶部