项目 内容
课程班级博客 https://edu.cnblogs.com/campus/xbsf/2018CST
这个作业要求链接 https://www.cnblogs.com/nwnu-daizh/p/14604444.html
我的课程学习目标 1.双人合作完成项目 2.通过github作对同伴个人项目仓库的源码 3.学习遗传算法
这个作业在哪些方面帮助我实现学习目标 通过这个作业,我知道了合作的重要性,对自己代码和同伴代码的查看与操作
结对方学号-姓名 王诗怡-201871030130
结对方本次博客作业链接 https://www.cnblogs.com/lomzn/p/14653852.html
项目GitHub仓库地址 https://github.com/chenpiawu/boki

任务一:阅读《现代软件工程—构建之法》第3-4章内容,理解并掌握代码风格规范、代码设计规范、代码复审、结对编程概念;



代码风格规范原则:简明,易读,无二义性

代码设计规范:



代码复审:





结对编程:



任务二:两两自由结对,对结对方《实验二 软件工程个人项目》的项目成果进行评价,具体要求如下:

结对同学:王诗怡 201871030130

她的博客:https://www.cnblogs.com/lomzn/

她的github仓库:https://github.com/lomzn/ve

(1) 对项目博文作业进行阅读并进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系、PSP中“计划共完成需要的时间”与“实际完成需要的时间”两列数据的差异化分析与原因探究,将以上评论内容发布到博客评论区。

评论区链接: https://www.cnblogs.com/lomzn/p/14580960.html#4851673

(2)克隆结对方项目源码到本地机器,阅读并测试运行代码,参照《现代软件工程—构建之法》4.4.3节核查表复审同伴项目代码并记录。

核查表

注意事项 说明
概要 代码部分功能未完善,设计的比较合理,可读性很高,对每一行都进行了检查
设计规范 设计符合已知的设计模式,在win32和win64都能正常运行,没有无用代码
代码规范 代码符合代码规范
具体代码 对错误的处理不好,,没有出现死循环
效能 代码没有可优化部分
可读性 注释不足,可读性较好
可测试性 可测试性较好

(3)依据复审结果尝试利用github的Fork、Clone、Push、Pull request、Merge pull request等操作对同伴个人项目仓库的源码进行合作修改。

操作:通过clone等方式进行了尝试

任务三:采用两人结对编程方式,设计开发一款D{0-1}KP 实例数据集算法实验平台

一.D{0-1}KP 实例数据集需存储在数据库;

import sqlite3
conn = sqlite3.connect('test.db')
conn = sqlite3.connect(':memory:')
cur = conn.cursor()
sql_text_1 = '''CREATE TABLE scores
(
价值 NUMBER,
重量 NUMBER);'''
cur.execute(sql_text_1)
data = [(408, 508),(921, 1021),(1329, 1321),(11, 111),(998, 1098),(1009, 1196),(104, 204),(839, 939),(943, 1107),(299, 399),
(374, 474),(673, 719),(703, 803),(954, 1054),(1657, 1781),(425, 525),(950, 1050),(1375, 1062),(403, 530),(541, 641),
(971, 903),(332, 432),(483, 583),(815, 894),(654, 754),(706, 806),(1360, 1241),(953, 1056),(992, 1092),(1948, 1545),
]
cur.executemany('INSERT INTO scores VALUES (?,?)', data)
cur.fetchall()
cur.close()
conn.close()

二.人机交互界面



三.遗传算法

任务四:

PSP流程

PSP 任务内容 计划完成时间(min) 实际完成时间(min)
Planning 计划 10 8
Estimate 任务规划 10 15
Development 开发 600 1200
Analysist 需求分析 60 70
Design Spec 生成设计文档 60 50
Test 测试 30 20
Reporting 报告 120 180

1.需求分析

可正确读入实验数据文件的有效D{0-1}KP数据;
能够绘制任意一组D{0-1}KP数据以重量为横轴、价值为纵轴的数据散点图;
能够对一组D{0-1}KP数据按项集第三项的价值:重量比进行非递增排序;
用户能够自主选择动态规划算法、回溯算法求解指定D{0-1} KP数据的最优解和求解时间(以秒为单位);
任意一组D{0-1} KP数据的最优解、求解时间和解向量可保存为txt文件或导出EXCEL文件
对错误有处理能力、

2.功能设计

基本功能:为上述的那些功能
扩展功能:无

3.设计实现

任务三的部分

4.核心代码展示

def chose(p, X, m, n):
X1 = X
r = np.random.rand(m)
for i in range(m):
k = 0
for j in range(n):
k = k + p[j]
if r[i] <= k:
X1[i] = X[j]
break
return X1
def match(X, m, n, p):
r = np.random.rand(m)
k = [0] * m
for i in range(m):
if r[i] < p:
k[i] = 1
u = v = 0
k[0] = k[0] = 0
for i in range(m):
if k[i]:
if k[u] == 0:
u = i
elif k[v] == 0:
v = i
if k[u] and k[v]:
q = np.random.randint(n - 1)
for i in range(q + 1, n):
X[u][i], X[v][i] = X[v][i], X[u][i]
k[u] = 0
k[v] = 0
return X
def vari(X, m, n, p):
for i in range(m):
for j in range(n):
q = np.random.rand()
if q < p:
X[i][j] = np.random.randint(0,2)
return X`

5.测试运行



6.合作过程

1.把软件的功能整体划分,划分为独立的块,通过实现不同块,最后组合完成整体的程序。

2.







由于我结对对象为女生,我们宿舍不在附近,所以大多数时候采用线上交流的方式,偶尔线下交流。

7.展示PSP

PSP在上述段落中。

8.小结感受:两人合作真的能够带来1+1>2的效果吗?通过这次结对合作,请谈谈你的感受和体会。

对于本次的合作,虽然很多地方都没有完善好,但是通过与同学的合作完成,双方各司其职,大大的降低的工作量,两个人的讨论也使得项目的进展更加的迅速,两人合作还可以互相激励,体会别人的思路和想法,从而提高自己,提出很多的创意,两人合作时也是对代码不间断的复审,可以有效地减少错误。

201871030105-陈啟程 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告的更多相关文章

  1. 201871030125-王芬 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    实验三 软件工程结对项目 项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST 这个作业要求链接 https://www.cnblogs ...

  2. 201871030110-何飞 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    201871030110-何飞 实验三 结对项目-<D{0-1}KP 实例数据集算法实验平台>项目报告 项目 内容 课程班级博客链接 班级博客 这个作业要求链接 作业要求 我的课程学习目标 ...

  3. 201871030137-杨钦颖 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    201871030137-杨钦颖 实验三 结对项目-<D{0-1}KP 实例数据集算法实验平台>项目报告 项目 内容 课程班级博客链接 班级连接 这个作业要求链接 作业连接 我的课程学习目 ...

  4. 201871030139-于泽浩 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    201871030139-于泽浩 实验三 结对项目-<D{0-1}KP 实例数据集算法实验平台>项目报告 项目 内容 课程班级博客链接 2018级卓越班 这个作业要求链接 软件工程结对项目 ...

  5. 201871010110-李华 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    项目 内容 课程班级博客链接 班级博客 这个作业要求链接 作业要求 我的课程学习目标 (1)理解并掌握代码风格及设计规范:(2)通过任务3进行协作开发,尝试进行代码复审,在进行同伴复审的过程中体会结对 ...

  6. 201871030108-冯永萍 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    实验三 软件工程结对项目 项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST 这个作业要求链接 https://www.cnblogs ...

  7. 201871030116-李小龙 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST 这个作业要求链接 https://www.cnblogs.com/nwnu-dai ...

  8. 201871010113-贾荣娟 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    项目 内容 课程班级博客链接 18级卓越班 这个作业要求链接 实验三-软件工程结对项目 这个课程学习目标 掌握软件开发流程,提高自身能力 这个作业在哪些方面帮助我实现了学习目标 本次实验让我对软件工程 ...

  9. 201871030127-王明强 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告

    项目 内容 课程班级博客链接 18级卓越班 这个作业要求链接 实验三 软件工程结对项目 我的课程学习目标 1.熟悉PSP流程2. 熟悉github操作3.加深对D{0-1}问题的解法的理解4.熟悉ja ...

随机推荐

  1. MongoDB的下载、安装与部署

    1.什么是MongoDB? 它是介于关系型数据库和非关系型数据库之间的一种NoSQL数据库,用C++编写,是一款集敏捷性.可伸缩性.扩展性于一身的高性能的面向文档的通用数据库. 2.为什么要用Mong ...

  2. 新年狂欢高倍币,1万枚VAST拿到手软

    新一年NGK推出了新币VAST,成为了当前最瞩目的一颗星.有人认为VAST有价无市,有人认为VAST价值巨大,潜力无限.总之,众说风云! 选择数字货币,当然是挑选有价值的货币,从内外价值入手. 一.币 ...

  3. NGK内存将为全球投资者创造新的财富增长机会

    2020年,随着BTC的持续上涨带动了整个区块链市场的持续加温,同时金融市场也对金融体制做出了改变,关于金融和区块链的结合越来越被人们所认可,在此基础上,DeFi行业借此迎来了快速发展,据不完全统计, ...

  4. NGK DeFi项目即将上线,打造去中心化闭环金融生态!

    据最新官方消息称:NGK已于近日宣布将进军DeFi领域,NGK此次的DeFi的项目将会是一个去中心的交易平台,其最大的功能是进行数字货币的交换.在用户选择了需要支付的数字货币和想购买的数字货币后,系统 ...

  5. 1094 The Largest Generation ——PAT甲级真题

    1094 The Largest Generation A family hierarchy is usually presented by a pedigree tree where all the ...

  6. 手把手教你Spring Boot整合Mybatis Plus和Swagger2

    前言:如果你是初学者,请完全按照我的教程以及代码来搭建(文末会附上完整的项目代码包,你可以直接下载我提供的完整项目代码包然后自行体验!),为了照顾初学者所以贴图比较多,请耐心跟着教程来,希望这个项目D ...

  7. js中函数调用时,对参数个数和类型没有要求

    因为js是一种弱类型的编程语言,对数据类型的要求没有其他编程语言的要求严格,所以在定义函数的时候不需要像java一样对其传入参数的类型进行定,也对传入参数的个数没有要求. js函数的参数与大多数其他语 ...

  8. Tango with Django 1.9 中文——1.概述

    译者注:英文书地址https://leanpub.com/tangowithdjango19/,作者为Leif Azzopardi 和 David Maxwell.本文仅为尝试.学习和交流,著作权利归 ...

  9. MySQL注入 前端int型参数插入SQL语句

    类似PHP语言的 mysql_real_escape_string() 的函数,在用来防范SQL注入的时候,可能会遇到int型注入成功的情况. mysql_real_escape_string()用法 ...

  10. Slenium详解

    Slenium介绍 Selenium 是一个 Web 应用的自动化框架. 通过它,我们可以写出自动化程序,像人一样在浏览器里操作web界面. 比如点击界面按钮,在文本框中输入文字 等操作. 而且还能从 ...