软件工程课程作业——物品“复活”软件

news/2024/10/19 14:39:12

项目概述:

  大学生经常有些物品觉得扔掉可惜,不处理又觉得浪费自己的地方。该软件可以实现物品“复活”。该软件允许通过命令行窗口添加物品的信息(物品名称,物品描述,联系人信息),删除物品的信息,显示物品列表,也允许查找物品的信息。

项目名称: 旧物品重新利用软件

开发者: 周万垚

开发日期: 2024年10月19日

代码:https://github.com/zhiwuyua/ReuseItemsApp/

1. 计划阶段

估计

项目需求: 开发一个基于命令行的旧物品重新利用软件
估计总时间: 4小时
主要功能:

添加物品
删除物品
查找物品
显示所有物品
数据持久化存储

2. 开发阶段

需求分析

用户需要一个简单的界面来管理旧物品信息
数据需要持久化存储
基本的CRUD (创建、读取、更新、删除) 功能

设计规范

使用Python语言开发
采用面向对象编程方法
使用JSON文件进行数据存储

设计复审

由于是个人项目,设计复审由自己完成
确认设计满足所有需求
检查是否有优化空间

代码规范

使用有意义的变量和函数名
添加适当的注释

具体设计

创建ReuseItemsApp类来封装所有功能
使用列表存储物品信息
每个物品包含ID、名称、描述和信息

编码

实现ReuseItemsApp类的所有方法
创建主运行循环来处理用户输入

代码复审

检查代码逻辑
确保错误处理得当
验证所有功能正常工作

测试

手动测试所有功能
修复发现的bug
优化用户交互

3. 记录用时

计划阶段: 30分钟
需求分析: 30分钟
设计: 45分钟
编码: 120分钟
测试和调试: 60分钟
总计: 4小时45分钟

4. 测试报告

所有基本功能(添加、删除、查找、显示)均正常工作
数据成功保存到JSON文件并可以正确读取
用户输入验证工作正常
未发现明显的bug或崩溃问题

5. 计算工作量

总代码行数: 约120行 (不包括空行和注释)
功能点: 5个 (添加、删除、查找、显示、数据持久化)

6. 事后总结

做得好的地方:
成功实现了所有要求的功能
代码结构清晰,易于理解和维护
使用了面向对象编程,提高了代码的可重用性
有待改进的地方:
可以添加更多的错误处理和用户输入验证
界面可以进一步优化,提供更友好的用户体验
可以考虑添加更高级的功能,如编辑物品信息、按多个条件搜索等

7. 过程改进计划

在下一个项目中,将更注重前期的需求分析和设计阶段,以减少后期修改的需求
引入单元测试,提高代码质量和可维护性
学习并应用更多的设计模式,使代码更加健壮和灵活
尝试使用版本控制系统(如Git)来更好地管理代码
探索使用数据库而不是JSON文件来存储数据,以便处理更大量的数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/73447.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

航飞参数计算

作者:太一吾鱼水 宣言:在此记录自己学习过程中的心得体会,同时积累经验,不断提高自己! 声明:博客写的比较乱,主要是自己看的。如果能对别人有帮助当然更好,不喜勿喷! 文章未经说明均属原创,学习笔记可能有大段的引用,一般会注明参考文献。 欢迎大家…

第4课 SVN

1、svn的定义: svn是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式管理。 2.snv的作用: 在项目中对需求规格说明书,测试用例,代码,以及项目项目的文件进项管理和分享。 3、svn…

npm run的时候报错: this[kHandle] = new _Hash(algorithm, xofLen);

在前面加入以下配置信息 set NODE_OPTIONS=--openssl-legacy-provider && 后面跟原来的启动配置信息 凡哥,别他妈吹牛逼了

MiGPT让你的小爱音响更聪明hA

合集 - 经验分享(29)1.记一次由于操作失误致使数据库瘫痪的故障分析与解决方案2023-09-082.网络之谜:记一次失败排查的故事2023-11-153.你是否想知道如何应对高并发?Go语言为你提供了答案!2023-12-294.2023年终总结:拉帮结伙,拼搏探索新机遇2023-12-305.谁说后端不能画出美…

Nuxt.js 应用中的 app:templatesGenerated 事件钩子详解

title: Nuxt.js 应用中的 app:templatesGenerated 事件钩子详解 date: 2024/10/19 updated: 2024/10/19 author: cmdragon excerpt: app:templatesGenerated 是 Nuxt.js 的一个生命周期钩子,在模板编译到虚拟文件系统(Virtual File System, VFS)之后被调用。这个钩子允许…

链路与应用负载

为什么需要负载 如今越来越多的服务选择上云 加入到互联网 方便人们的使用 人们对服务的访问质量要求更高 对于高可靠性:电源: 往往采取双电源模式 当电源出现故障 网络不会陷入瘫痪线路: 有静态聚合 将多条线路逻辑变成一条线路 数据包会负载均衡的形式从多条逻辑成一条的链路…

HTTP客户端框架之UniHttp讲解

目录1 UniHttp1.1 简介1.1.1 前言1.1.2 简介1.2 简单使用1.2.1 引入依赖1.2.2 对接接口1.2.3 声明定义 HttpAPI 包扫描路径1.2.4 依赖注入使用即可1.3 说明介绍1.3.1 @HttpApi注解1.3.2 @HttpInterface注解1.3.3 @Par注解1.3.3.1 @QueryPar注解1.3.3.2 @PathPar注解1.3.3.3 @He…