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

222200212杨予凡 2024-09-30 22:22:35
这个作业属于哪个课程2024软件工程实践
这个作业要求在哪里软结对第二次作业——编程实现
结对学号<222200212、222200216>
这个作业的目标实现上一次结对原型设计所构想的功能
其他参考文献《构建之法》、CSDN

目录

  • 1.CodeArt项目地址
  • 2.访问链接
  • 3.PSP表格
  • 4.成品展示
  • 1.主页
  • 2.奖牌榜
  • 3.每日赛程
  • 4.详细赛况
  • 5.对阵表
  • 5.结对讨论过程
  • 6.设计实现过程
  • 7.代码说明
  • 主页代码展示
  • 应用router实现页面的跳转
  • 每日赛程的数据读取,使用了getJSON方法
  • 每日赛程代码展示 采用来下拉列表,和列表的斑马纹
  • 8.数据来源
  • 9.分工、心路历程、互相评价

1.CodeArt项目地址

仓库地址

2.访问链接

网页地址

3.PSP表格

PSPPersonal Software Process Stages预估耗时(分钟)实际耗时(分钟)
Planning计划2535
• Estimate• 估计这个任务需要多少时间2535
Development开发15251620
• Analysis• 需求分析 (包括学习新技术)600700
• Design Spec• 生成设计文档3540
• Design Review• 设计复审4035
• Coding Standard• 代码规范 (为目前的开发制定合适的规范)3045
• Design• 具体设计200200
• Coding• 具体编码11501250
• Code Review• 代码复审4050
• Test• 测试(自我测试,修改代码,提交修改)60100
Reporting报告110145
• Test Repor• 测试报告5080
• Size Measurement• 计算工作量3030
• Postmortem & Process Improvement Plan• 事后总结, 并提出过程改进计划3035
合计22602400

4.成品展示

1.主页

设置跑马灯展示奥运相关信息,定时滑动展示图片,也可以手动点击改变。同时设有三个按钮分别跳转主页、每日赛程和奖牌榜。

2.奖牌榜

鼠标移到对应国家高亮显示。

img

3.每日赛程

可选择查看不同日期的赛程表,点击查看详情可跳转至相应赛况。

img

img

4.详细赛况

本次作业以几内亚和新西兰的对战为例:

img

出赛名单和详细赛况可以分别点开,详细赛况中还有上下半场可以点开查看具体情况。

img

img

5.对阵表

对阵表可以点击详细赛况中的“对阵表”按钮进入。

img

5.结对讨论过程

我们的讨论以线下为主,线上主要是互传文件和链接。

img

img

img

img

6.设计实现过程

刚拿到题目我们一头雾水,根本不知道该怎么入手。随后学习了一些前端的相关知识,我们决定一边研究vue框架一边通过前端三件套实现作业。
我们以上次作业为模板,尽可能类似地实现对应功能。

7.代码说明

主页代码展示

使用了vue3,引入elment plus 和router组件来实现一些功能,比如圆角按钮,跑马灯等。

<template>
  <div>
    <div class="olyM">
      <img width="10%" src="../data/u37.png" alt="" height:0>
    </div>
     <div class="caRou" m="t-4" height:0>
      <el-carousel trigger="click" height="900px">
        <el-carousel-item v-for="item in carouseData" :key="item">
          <img :src="item.url" alt="" />
        </el-carousel-item>
      </el-carousel>
    </div>
  </div>
   <div class="mb-4">
      <el-button round onclick="window.location.href = '/'"> 主页 </el-button>
      <el-button round onclick="location.href='/Total/Total.html'">奖牌榜 </el-button>
      <el-button round onclick="location.href='/Schedule/Schedule.html'" >每日赛程 </el-button>
    </div>
    <div  id="picLeft">
      <img src="../data/04.png" alt="">
    </div>
    <div  id="picRight">
      <img src="../data/05.png" alt="">
    </div>
  </template>
  <style>
  .olyM{
    position:absolute;
    left: 48%;
    z-index: 10;
  }
  .caRou{
    width: 100%;
  }
  .mb-4{
    position:absolute;
    left: 20px;
    top: 20px;
    z-index: 9;
  }
  #picLeft{
    position: relative;
    top:100px;
    left: 150px;
    display: inline-block;
  }
  #picRight{
    position: relative;
    right: -400px;
    display: inline-block;
  }
  </style>
<script>
export default {
  name: 'caRou',
  data () {
    return {
      carouseData: [
        { url: require('../data/01.png') },
        { url: require('../data/02.png') },
        { url: require('../data/03.png') }
      ]
    }
  }
}
</script>


应用router实现页面的跳转

import { createRouter, createWebHistory } from 'vue-router'

const routes = [
  {
    path: '/',
    component: () => import('../views/index.vue')
  },
  {
    path: '/page2',
    component: () => import('../views/page2.vue')
  }
]
const router = createRouter({
  history: createWebHistory(process.env.BASE_URL),
  routes
})

export default router

每日赛程的数据读取,使用了getJSON方法

$(document).ready(function() {
    // 当用户选择不同的日期时,加载相应的JSON文件
    $('#scheduleSelect').on('change', function() {
        const selectedFile = $(this).val(); // 获取下拉框中选择的文件名
        loadSchedule(selectedFile); // 调用加载赛程的函数
    });

    // 初始化时加载默认的赛程
    loadSchedule('../data/schedule/0724.json');

    // 加载赛程的函数
    function loadSchedule(file) {
        $.getJSON(file, function(data) {
            const matchList = data.data.matchList;
            const tableBody = $('#scheduleTable');
            tableBody.empty(); // 清空表格内容

            // 如果没有比赛数据,显示提示信息
            if (matchList.length === 0) {
                tableBody.append('<tr><td colspan="6">当天没有比赛</td></tr>');
                return;
            }

            // 遍历比赛数据,生成表格行
            $.each(matchList, function(index, match) {
                const row = `
                    <tr>
                        <td>${match.title} <el-button round onclick="window.location.href = '/page2'">奖牌榜 </el-button> </td>
                        <td>${match.startdatecn}</td>
                        <td>${match.homename}</td>
                        <td>${match.awayname}</td>
                        <td>${match.homescore} - ${match.awayscore}</td>
                        <td>${match.itemcodename}</td>
                    </tr>
                `;
                tableBody.append(row);
            });
        }).fail(function() {
            // 如果文件加载失败,显示错误信息
            $('#scheduleTable').html('<tr><td colspan="6">无法加载赛程数据,请检查文件路径。</td></tr>');
        });
    }
});

每日赛程代码展示 采用来下拉列表,和列表的斑马纹

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>每日赛程</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <!-- 引入 jQuery -->
    <link rel="stylesheet" href="CSSofSchedule.css">
</head>
<body>
    <a href="/"  class="button1">主页</a>
    <a href="../Schedule/Schedule.html"  class="button2">每日赛程</a>
    <a href="../Total/Total.html"  class="button3">奖牌榜</a>
    <img src="./image/center.jpg" alt="background" width="100%" height="300px" style="position: absolute;">
    <img src="./image/u37.png" alt="" style="position: absolute;left: 1215px;" height="120px">
    <div class="container">
    <h1 style="position: absolute;color: aliceblue;left: 1210px;top: 150px;">每日赛程</h1>
    <select id="scheduleSelect">
        <option value="../data/schedule/0724.json">2024年7月24日</option>
        <option value="../data/schedule/0725.json">2024年7月25日</option>
        <option value="../data/schedule/0726.json">2024年7月26日</option>
        <option value="../data/schedule/0727.json">2024年7月27日</option>
        <option value="../data/schedule/0728.json">2024年7月28日</option>
        <option value="../data/schedule/0729.json">2024年7月29日</option>
        <option value="../data/schedule/0730.json">2024年7月30日</option>
        <option value="../data/schedule/0731.json">2024年7月31日</option>
        <option value="../data/schedule/0801.json">2024年8月01日</option>
        <option value="../data/schedule/0802.json">2024年8月02日</option>
        <option value="../data/schedule/0803.json">2024年8月03日</option>
        <option value="../data/schedule/0804.json">2024年8月04日</option>
        <option value="../data/schedule/0805.json">2024年8月05日</option>
        <option value="../data/schedule/0806.json">2024年8月06日</option>
        <option value="../data/schedule/0807.json">2024年8月07日</option>
        <option value="../data/schedule/0808.json">2024年8月08日</option>
        <option value="../data/schedule/0809.json">2024年8月09日</option>
        <option value="../data/schedule/0810.json">2024年8月10日</option>
        <option value="../data/schedule/0811.json">2024年8月11日</option>
        <!-- 可以继续添加更多的日期和文件 -->
    </select>

    <!-- 表格展示每日赛程 -->
    <table>
        <thead>
            <tr>
                <th>比赛标题</th>
                <th>开始时间</th>
                <th>主队</th>
                <th>客队</th>
                <th>比分</th>
                <th>比赛类型</th>
            </tr>
        </thead>
        <tbody id="scheduleTable">
            <tr><td colspan="6">请选择日期以查看赛程</td></tr>
        </tbody>
    </table>
</div>
<script src="JSofSchedule.js"></script>


</body>
</html>

8.数据来源

本次作业数据来源与前次一致,均来自官网爬取。

9.分工、心路历程、互相评价

222200212杨予凡:完成主页和详细赛况
222200216张上毅:完成每日赛程,奖牌榜和对阵表

222200212杨予凡:这次作业花了很多时间学习vue相关知识,因没有基础,所以在学习时处处碰壁,经常遇到一个bug需要花费很长时间解决的问题。好在最后还是完成了作业,看着自己做出的网页还是很有成就感,对于作业中学习到的知识也很满足。
222200216张上毅: 一开始感到这次作业无从下手,在学习了前端知识后逐渐对本次作业有了初步的认识,通过几天的学习和询问同学最后成功完成。在学习的过程中感受到自己自学的能力更进一步。

222200212杨予凡:张上毅同学在结对作业中非常认真负责,能够很好地完成自己分工的任务,并且在沟通地过程中非常耐心,为我们的作业做出了很多的贡献。
222200216张上毅:杨予凡同学非常注重细节,力求完美,在完成作业的过程中非常尽职尽责,积极学习相关知识,面对不了解的问题也十分乐于学习。

...全文
104 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
AJAX——新手快车道 前言 AJAX是什么? 首先、AJAX是一种很酷的技术,一旦采用了AJAX,就能让你的Web页面, 你的网站,甚至连同你们公司,都变得很酷。在Web2.0的时代里,不使用一点 AJAX技术的网站,就会显得很老土,很落伍。 但是,这样的理解,其实是很肤浅的。仅仅是从一个外行,从一个使用者的 角度出发,来理解AJAX,就像我在本书的第一章AJAX我也行中那样,开发 出很愚蠢,甚至都没有资格被称之为AJAX应用的纯IE、XMLHTTP应用。 AJAX更酷的一点在于,对于传统的Web开发人员来说,AJAX所运用的, 是更加先进的,更加标准化的,更加和谐高效的,完整的Web开发技术体系。 遵循这样的体系开发Web应用,能让你的开发过程变得更加轻松,也能使你们 的开发团队,显得很酷。在Web2.0 的时代里,还在采用过时的技术来开发 Web,会显得很老土,很落伍。 AJAX的相关组成技术,每一个都已经出现了N年以上了,对这些技术的 组合运用,也远远早于AJAX这个名词出现之前。所以,我真正敬佩的,并非提 出 AJAX这个缩写的Jesse James Garrett。而是那些早在N年以前,就已经在探索、 实践的先行者,他们始终在追求的:是更好的用户体验,以及更好的开发体验。 这样的精神,才是最可宝贵的,也是最值得我们学习的。许多年过去以后,当我 们再回头来看当年的这些热门技术,也许早已经变得老土,变得落伍了。在这样 的历程中,哪些人会成长为高手?会成长为大师呢?就是那些永不满足,永远 在追求更好的用户体验,永远在追求更好的开发体验的人! 新手如何上路 软件开发这个领域,永远都在飞速发展,大家都必须不断的学习新的知识、 技能、框架、IDE、甚至新的语言。传说中的骨灰级高手们,就像传说中的大侠, 任何武器、哪怕是一块木头到了他们手里,也能发挥惊人的威力,人家练了几十 年的看家本领,他们随手使来,也竟然像是打娘胎里就开始练了一样。为什么? 就算不吹那么玄的,平常我们能够碰到的那些老手,在学新东西的时候, 也比那些新手学得更快,理解得更深,运用得更熟练。而新手们呢?往往就会漫 无头绪,焦头烂额,以一副张着茫然的大眼睛的经典表情,出现在各大论坛的 新手求助区里。他们欠缺的,究竟是什么呢?为什么老手学新东西,就没遇到那 么多困难呢? 泛泛地说,自然是经验上的欠缺。仔细地说来,又可以分为三个方面: 一、本质,一种技术与另一种技术之间,往往会有本质上的相通之处,当你 对一种技术的理解与思考越来越深入时,学习一种新技术也会更加容易。触类旁 通,举一反三的能力,就是来自于对于技术本质的追寻。 二、地图,本质上或多或少的相通,也提示着我们技术之间的相互关联,当 你了解的技术越多,了解得越是深入,在你的内心,就能建立起越发清晰的技 术地图。各种知识都有一个自然、合理的位置。那么当一个老手要学习一门新技术 的时候,他其实并非在探索一个全新的、未知的领域,而是有很多脉络可寻,也 很多已知可以帮助他们快速了解未知。 三、技巧,面对同样的未知,面对同样的难题,新手们一筹莫展,而老手们 却掌握着更多的技巧和手段,帮助他们试探可能性、缩小问题的范围、迅速定位 问题、不犯明显愚蠢的错误、甚至能够列举出更具命中力的搜索关键词,而这些 技巧,都帮助老手在前进的道路上,更少跌倒,即使跌倒,也能更快的爬起来。 作为一本写给新手的入门书籍,我们希望展现给读者的,是一个老手如何 学习新技术的过程。我们相信,这样的一个学习过程,对于新手来说,是更具有 价值的。 何谓快车道 必须老老实实的承认,我吹牛了!老手虽然会比新手学习得更快一些,但 是也同样会碰到麻烦,遇到障碍,感觉头痛。如果没有真正的专家的指导,我不 可能如此迅速地将AJAX掌握到目前这样的程度,要真是让我自学三个月,然 后就写出书来的话,那真是在骗钱了。 老手能够快速学习的另一个重要的诀窍是:认识很多牛人朋友 如果没有李锟与赵泽欣的专家级指导与帮助,如果没有与李锟AJAX结对 编程的体验,如果没有三个人在MSN上无数次的长聊,我想要在短期内建立起: 对于AJAX本质的理解; 对于整个AJAX以及相关技术地图的理解; 对于AJAX编程开发所需要的很多技巧、手段的掌握; 几乎是不可能的。 如果没有(N多需要感谢的人)的(N多方面的帮助),我们这本书,也 不可能以现在这样的深度,以(N个月)内完成的速度,送到读者的面前。 希望这本书,能够对大家快速学习AJAX,有所帮助。

111

社区成员

发帖
与我相关
我的任务
社区描述
202401_CS_SE_FZU
软件工程 高校
社区管理员
  • FZU_SE_TeacherL
  • 言1837
  • 防震水泥
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧