201871030116-李小龙 实验二 个人项目—《D{0-1} KP》项目报告
| 项目 | 内容 |
|---|---|
| 课程班级博客链接 | https://edu.cnblogs.com/campus/xbsf/2018CST |
| 这个作业要求链接 | https://www.cnblogs.com/nwnu-daizh/p/14552393.html |
| 我的课程学习目标 | (1)掌握软件项目个人开发流程。(2)掌握Github发布软件项目的操作方法。 |
| 这个作业在哪些方面帮助我实现学习目标 | 进一步掌握软件项目个人开发流程;更好地掌握Github发布软件项目的操作方法;温习原先学习的知识,进一步对所学知识巩固利用。 |
| 项目Github的仓库链接地址 | https://github.com/lixiaolot/BruseResponse |
任务1
阅读教师博客“常用源代码管理工具与开发工具”内容要求,点评班级博客中已提交相关至少3份作业。
教师博客“常用源代码管理工具与开发工具”内容要求

作业点评
作业1链接:
https://www.cnblogs.com/krypton052/p/14551169.html
作业2链接:
https://www.cnblogs.com/labmem/p/14550336.html
作业1链接:
https://www.cnblogs.com/chenhuiru/p/14549775.html
任务2
详细阅读《构建之法》第1章、第2章,掌握PSP流程
内容总结
《构建之法》第一章,把航空业的发展历程当作模型用来类比软件工程的发展。软件程序从最简单的“Hello World”到写大程序到构建一个更大的软件系统的从简到繁,从易到难的发展历程。软件=程序+软件工程。
软件工程是什么?书上是这么说的:
软件工程是把系统的、有序的、可量化的方法应用在软件的开发、运营和维护上的工程。
《构建之法》第二章,作者对比了中科大大四学生和工作三年的工程师的PSP表格,综合各类表格,作者总结了个人软件开发流程的任务清单,下面会给出阐述。
PSP(Personal Software Process),个人软件开发流程的任务清单如下所示

PSP是一种可用于控制、管理和改进个人工作方式的自我持续改进过程,是一个包括软件开发表格、指南和规程的结构化框架。PSP与具体的技术(程序设计语言、工具或者设计方法)相对独立,其原则能够应用到几乎任何的软件工程任务之中。PSP能够说明个体软件过程的原则; 帮助软件工程师作出准确的计划;确定软件工程师为改善产品质量要采取的步骤;建立度量个体软件过程改善的基准;确定过程的改变对软件工程师能力的影响。
任务3
项目开发背景:背包问题(Knapsack Problem,KP)是NP Complete问题,也是一个经典的组合优化问题,有着广泛而重要的应用背景。{0-1}背包问题({0-1 }Knapsack Problem,{0-1}KP)是最基本的KP问题形式,它的一般描述为:从若干具有价值系数与重量系数的物品(或项)中,选择若干个装入一个具有载重限制的背包,如何选择才能使装入物品的重量系数之和在不超过背包载重前提下价值系数之和达到最大?
需求分析
在日常生活中我们经常会遇到0-1背包问题,像旅行时要带哪些东西,怎样安排车辆的装载可以达到最大载重等等,为此,我们通过编写程序来完成对问题的解决。0-1背包问题简要描述如下:现有n个物品,质量分别是w1,w2,···,wn,价值分别是p1,p2,···,pn,并有一个容量为c的背包,如何选择放入背包中的物品方案,使其满足背包容量限制,并使装入背包中的物品的总价值为最大。功能设计
- 读入文件
- 将txt中的数据存入列表
- 动态规划法求解背包问题
- 画出关于重量与价值的散点图
设计实现
- 读入数据:
运行截图:
- 存入列表截图:

- 散点图:

- 动态规划法求的最优解:

- 读入数据:
测试运行
运行结果:


粘贴代码片段
- 读入与分割文件:
temp=""
f = open("C:\\Users\LeeBruce\Desktop\\idkp1-102.txt", "r", encoding='utf-8')
temp=f.readline() #print(temp)
lines = f.readlines()
data_1 = open("C:\\Users\LeeBruce\Desktop\\奇数行.txt", 'w', encoding='utf-8')
data_2 = open("C:\\Users\LeeBruce\Desktop\\偶数行.txt", 'w', encoding='utf-8') num = 0 # 行数-1
for line in lines:
if (num % 2) == 0: # num为偶数说明是奇数行
print(line.strip(), file=data_1) # .strip用来删除空行
else: # # num为奇数说明是偶数行
print(line.strip(), file=data_2)
num += 1
data_1.close()
data_2.close()
f.close()总结
通过这次实验,我学到了很多知识,丰富了对python语言的认识以及了解到算法在软件工程中的重要性,在以后的学习中,我会更进一步来学习认识越来越多的知识,并且不断进步,取得好的成果。展示PSP
| PSP2.1 | 任务内容 | 计划共完成需要的时间(min) | 实际完成需要的时间(min) |
|---|---|---|---|
| Planning | 计划 | 8 | 6 |
| Estimate | 估计这个任务需要多少时间,并规划大致工作步骤 | 8 | 6 |
| Development | 开发 | 600 | 520 |
| Analysis | 需求分析 (包括学习新技术) | 15 | 10 |
| Design Spec | 生成设计文档 | 30 | 50 |
| Design | 具体设计 | 52 | 50 |
| Code Review | 代码复审 | 15 | 10 |
| Postmortem & Process Improvement Plan | 事后总结 ,并提出过程改进计划 | 30 | 30 |
任务4
完成任务3的程序开发,将项目源码的完整工程文件提交到你注册Github账号的项目仓库中。
- Github账号项目仓库的创建
首先打开GitHub账号主页,在账号首页右上角找到一个加号,点击里面有一个New repository选项即创建新的仓库,如下图所示:

之后,进入下图这个界面:

接下来,填写相关信息,仓库创建成功。

仓库地址:https://github.com/lixiaolot/BruseResponse
201871030116-李小龙 实验二 个人项目—《D{0-1} KP》项目报告的更多相关文章
- 201871010110-李华 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
项目 内容 课程班级博客链接 班级博客 这个作业要求链接 作业要求 我的课程学习目标 (1)理解并掌握代码风格及设计规范:(2)通过任务3进行协作开发,尝试进行代码复审,在进行同伴复审的过程中体会结对 ...
- 201871030114-蒋鑫 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
项目 内容 课程班级博客链接☛ 班级博客 这个作业要求链接☛ 作业要求 我的课程学习目标☛ 1. 体验软件项目开发中的两人合作,练习结对编程(Pair programming).2. 掌握Github ...
- 201871030115-康旭 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
项目 内容 课程班级博客链接 18卓越班 这个作业要求链接 实验三结对编程要求 我的课程学习目标 (1)体验软件项目开发中的两人合作,练习结对编程(Pair programming):(2)掌握Git ...
- 201871030140-朱婷婷 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
项目 内容 课程班级博客链接 2018级卓越班 这个作业要求链接 实验三 结对项目 我的课程学习目标 1.体验软件项目开发中的两人合作,练习结对编程:2.掌握GitHub协作开发程序的操作方法. 这个 ...
- 201871030136-颜静 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST/ 这个作业要求链接 https://www.cnblogs.com/nwnu- ...
- 201871030137-杨钦颖 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
201871030137-杨钦颖 实验三 结对项目-<D{0-1}KP 实例数据集算法实验平台>项目报告 项目 内容 课程班级博客链接 班级连接 这个作业要求链接 作业连接 我的课程学习目 ...
- 20155219&20155224 《信息安全系统设计基础》实验二 固件程序设计
实验二 固件程序设计-1-MDK 0. 注意不经老师允许不准烧写自己修改的代码 1. 两人(个别三人)一组 2. 参考云班课资源中"信息安全系统实验箱指导书.pdf "第一章,1. ...
- 201871030108-冯永萍 实验二 个人项目— D{0-1}背包问题项目报告
项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST 这个作业要求链接 https://www.cnblogs.com/nwnu-dai ...
- 201871030125-王芬 实验二 个人项目-《D{0-1}问题》软件项目报告
实验二 个人项目-<D{0-1}问题>软件项目报告 项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST 这个作业要求链接 ...
- 201871030131-谢林江 实验二 个人项目—《D{0-1} KP》项目报告
项目 内容 课程班级博客链接 班级博客 这个作业要求链接 作业要求 我的课程学习目标 1.学习编写PSP2.完成个人项目实验要求3.在Github建仓 这个作业在哪些方面帮助我实现学习目标 1.首次编 ...
随机推荐
- js replace all
js replace all https://stackoverflow.com/questions/1144783/how-can-i-replace-all-occurrences-of-a-st ...
- GMV (Gross Merchandise Volume)
GMV (Gross Merchandise Volume) 商品总销量 https://www.zhihu.com/question/20146641 GMV=1销售额+2取消订单金额+3拒收订单金 ...
- js滚轮事件兼容写法
/** * 简易的事件添加方法 */ define(function(require, exports, module) { exports.addEvent = (function(window, ...
- 「NGK每日快讯」2021.2.3日NGK公链第92期官方快讯!
- 多种转弯角度的PBN旁切转弯图例分析
无论世界怎样变化,我们依然是有点阳光就灿烂.面对世界的未知,最好的状态是勇敢的去面对,努力的去生活. 今天我们继续来聊一下PBN旁切转弯. PBN转弯保护区的结构通常都与它们的转弯角度大小有关,转弯角 ...
- HoloWAN在连接路由器时应该选择WAN口还是LAN口,有什么区别?
HoloWAN在连接路由器时应该选择WAN口还是LAN口,有什么区别? 在解决问题前,需要连接到,路由器的WAN口和LAN口的作用不同. WAN口是对外的接口,连接广域网.当联网设备和路由器都开启了D ...
- 通过golang小案例,了解golang程序常见机制
目录 代码理解及纠错 1.defer和panic执行先后顺序 2.for循环元素副本问题 3.slice追加元素问题 4.返回值命名问题 5.用new初始化内置类型问题 6.切片append另外一个切 ...
- Redis 高并发带来的一些问题
前言 本文讲述Redis在遇到高并发时的一些问题.即遇到大量请求时需要思考的点,如缓存穿透 缓存击穿 缓存雪崩 热key处理.一般中小型传统软件企业,很难碰到这个问题.如果有大并发的项目,流量有几百万 ...
- [Redis知识体系] 一文全面总结Redis知识体系
本系列主要对Redis知识体系进行详解.@pdai Redis教程 - Redis知识体系详解 知识体系 学习资料 知识体系 知识体系 相关文章 首先,我们通过学习Redis的概念基础,了解它适用的场 ...
- 追洞小组 | fastjson1.2.24复现+分析
出品|MS08067实验室(www.ms08067.com) 本文作者:爱吃芝士的小葵(Ms08067实验室追洞小组成员) 1.靶场搭建 2.漏洞复现 3.漏洞分析 4.漏洞修复 5.心得 靶场搭建 ...