zoukankan      html  css  js  c++  java
  • 201871020225-牟星源 实验二 个人项目—《D{0-1}背包问题》项目报告

    项目 内容
    课程班级博客 班级博客
    这个作业要求链接 作业要求
    我的课程学习目标 1.了解软件工程过程中个人项目的开发流程
    2. 再次仔细阅读了构建之法的第一二章内容,理解PSP的重要性
    3.提高个人编码能力
    这个作业在哪些方面帮助我实现学习目标 1.通过本次作业的具体流程,使得我了解到了软件工程中个人开发流程
    2.填写PSP表格
    3.进行相关算法学习
    项目Github的仓库链接地址 https://github.com/702457250/-/tree/D{0-1}背包问题

    博客正文

    • 任务1:阅读教师博客“常用源代码管理工具与开发工具”内容要求,点评班级博客中已提交相关至少3份作业。(已完成)
    • 任务2:详细阅读《构建之法》第1章、第2章,掌握PSP流程(已完成)
      • 完成情况
        通过阅读我了解到PSP流程(个人软件开发流程),知道了PSP的思想及重要性,下面表格为本次个人项目中的PSP项目规划表格。
    PSP 各个阶段 自己预估的时间(小时) 实际的记录(小时)
    计划: 明确需求和其他因素,估计以下的各个任务需要多少时间 2 2
    开发 (包括下面 8 项子任务) 30 ---
    · 需求分析 (包括学习新技术、新工具的时间) 2 3
    · 生成设计文档 (整体框架的设计,各模块的接口,用时序图,快速原型等方法) 2 3
    · 设计复审 (和同事审核设计文档,或者自己复审) 1 1
    · 代码规范 (为目前的开发制定或选择合适的规范) 1 0.5
    · 具体设计(用伪代码,流程图等方法来设计具体模块) 3 3
    · 具体编码 15 ---
    · 代码复审 4 ---
    · 测试(自我测试,修改代码,提交修改) 2 ---
    报告 6 3
    测试报告(发现了多少bug,修复了多少) 2 ---
    计算工作量 (多少行代码,多少次签入,多少测试用例,其他工作量) 1 ---
    事后总结, 并提出改进计划 (包括写文档、博客的时间) 3 3
    总共花费的时间 (小时) 38 ----
    • 任务3:作为任务3的项目实施过程文字资料,请完整包含下面7个部分:(部分完成)

      • 需求分析。

        1.数据集文件进行数据读取;
        2.对某一组数据进行可视化,以散点图的方式呈现给用户;
        3.将数据按照一定顺序进行排序;
        4.通过回溯算法和动态规划算法进行程序实现,将结果存入文件。

      • 功能设计。

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

      • 设计实现。

      • 代码片段。

         def menu():
             print("1.绘制散点图")
             print("2.数据排序")
             print("3.算法实现")
             print("4.结束")
             job = input("请选择操作:")
             if job == '1':
                 user_dict = creating_dictionary()
             elif job == '2':
                 updating_dictionary(user_dict)
             elif job == '3':
                 sorting_dictionary(user_dict)
             else job == '4':
                 break
        
         import numpy as np
         import matplotlib.pyplot as plt
         plt.rcParams['font.sans-serif'] = 'SimHei' ##设置中文显示
         plt.rcParams['axes.unicode_minus'] = False
         x = weight
         y = profit
         plt.figure(figsize=(8,7))
         plt.scatter(x,y,c = 'b', marker='D')##绘制散点图
         plt.xlabel('weight')
         plt.ylabel('profit')
         plt.xticks(range(0,70,4),values[range(0,70,4),1],rotation=45)
         print(range(0,70,4))                                                             
         print(values[range(0,70,4),1])                   
         plt.title('重量价值散点图')##添加图表标题
         plt.show()
        
    • 任务4:本次项目提交Github(部分完成)

    • 项目总结
      由于个人的编程水平有限,没有按计划完成项目,只是学习了PSP相关知识,进行了部分程序编写,理解了0-1背包问题和动态规划算法以及回溯算法,本次实验完成情况很差。

  • 相关阅读:
    Redis宣言
    软件工程
    分布式编程
    编程泛型
    tcp/ip高效编程总结
    IP协议详解
    gevent程序员指南
    网站架构
    这些话,是乔布斯给世间留下的真正伟大礼物
    Flink/Spark 如何实现动态更新作业配置
  • 原文地址:https://www.cnblogs.com/muxingyuan/p/14599443.html
Copyright © 2011-2022 走看看