[关闭]
@galaxy-0 2016-08-27T18:05:34.000000Z 字数 1337 阅读 578

实训报告

文档 报告


基本资料

班级:2015级软件工程1班

姓名:陈星宇

学号:201530611289

作品名称:时间管理系统doit.now

作品简介

开发环境

运行演示

总界面.png-27.9kB

总界面如图,左侧是功能栏,右侧是日程显示,下方是按钮工具栏
功能栏简介:
- 收集箱:存放临时的事项,需要进一步安排时间
- 今日待办:今天的任务
- 明日待办:明天的任务
- 任务列表:一个大项目中的细分步骤,比如项目为大作业时,步骤可以分为“配置开发环境”“完成主界面”“完成文件交互部分”等等。步骤可以安排一个具体的时间转化为今日待办或者其他
- 日程:未来某一天做的事情
- 每日任务:每天都要做的事情
- 分类列表:待看的书单和电影列表等(资料列表)

可以添加一个新的日程,界面如下:
添加.png-10kB

如果添加的时候信息填写错误会出现错误提示:
警告.png-13.2kB

测试的时候系统时间是8月27号,我们添加一个29号的日程
日程设定.png-2.6kB
添加的所有日程如下

每日任务.png-24.2kB
明日待办.png-24.6kB
日程.png-26.8kB

把系统时间调至第二天,重新打开软件

今日待办2.png-24.1kB

可以看到,今日待办多了一条“跑步”的每日任务(每日任务每天都会添加到今日待办的列表中)
同时之前在明日待办中添加的事项自动转移到了今日待办中
而之前未完成的跑步事项变成了橙色显示

明日待办2.png-21.4kB
而明日待办中出现了之前添加的29号的日程

测试演示表明,这个软件可以适应各种类别的日程管理,能够很好地与时间进行适应
其它功能比如翻页,点击日程右侧的省略号查看详细信息并编辑日程就不再进行演示,具体可以参照视频

代码架构

代码主要分为三层,viewcontrollermodel

view:处理界面,负责与用户交互
controller:处理view发过来的请求,处理好业务逻辑之后发给model
model:接受controller的请求,直接对文件进行读写
Created with Raphaël 2.1.2架构简图viewviewcontrollercontrollermodelmodel事件请求处理事件,文件读写请求操作结果返回结果返回,显示界面

使用这样的代码架构一个是方便组织系统,在调试的时候会比较方便地定位到出错地点,同时这样的结果具有很强的扩展性。当model层写好之后所有的文件读写变成了简单地调用某些操作函数,提高了代码的重用率。美中不足是在代码编写的过程中还没有实现解耦,model层的文件操作还不能很好地分离出来成为一个独立的复用模块,这一点还有待加强。

总结

在编写这个系统中,很深刻的体会是“先想好再动手”。一开始打代码是想到什么功能做什么,导致编码十分混乱,接口也不够统一。发现了问题之后我重新思考了一下软甲的操作逻辑,并设计好了函数调用的逻辑和层次,于是剩下的工作就变成了单纯的代码编写,省去了很多修改的时间。在调试的时候由于qt不能直接看到哪里崩溃了,所以采用的是输出错误日志的方法进行调试,在调试的过程中也积累了很多调试的经验,到后期出错的时候调试找bug已经十分熟练。这次实训任务中,我经历了短时间现学现用,也经历了熬夜改bug,耐着性子钻研英文文档,这对我来说是一个挑战,也是一次磨炼。以后我会继续开发这个软件,从界面和功能上做到更好。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注