开题报告
一、选题动机
可以把所学知识统筹起来,比如windows窗体及控件 ,数据库的增删改查,文本编程,爬虫(多线程并行编程),有效地复习检测所学知识。
相比于通讯录,小游戏而言,日程管理系统有非常强的实用性,也是我们在课程之后可以用到的很棒的小工具。
可以实现丰富的功能,动态地增减工作量,另外可以做的很炫,比如成就榜、点灯、多样的奖励等可以动态地改变技术难度。
相比于备忘录,该系统可以实现更加丰富的功能。一般人们只把小部分日程记录在日程管理工具上,多数需要完成的事情都装在大脑。如果这些事件没有及时完成,会在大脑不断循环,耗费人们心智,也会带来内心的冲突和压力。同时,人们无法重新记起与自己曾达成的协议。我们的日程管理系统的目的就是为人们规划时间、做出计划。
日程管理系统有庞大的使用群体和市场。当代大学生、办公人士基本人手一部电脑,并且基本上每天都会用到电脑,同时,电脑和手机相比,手机在效率上远远不及PC;PC虽然不便于随身携带,但工作处理效率高。在PC端开发日程管理项目,有足够的潜在用户群。从各个应用市场以及预装情况来看,电脑端的日程软件使用较少,开发日程管理项目也有着很大的潜在市场。
日程管理系统有着很大的开发前景。基于日期、时间节点、事件安排的管理,目前的日程管理软件基本按照上述概念提供提示性的功能,缺少个性化的设计,难以提高客户的兴趣和使用热情。日程管理软件可以根据客户兴趣,设置个性化提醒方式、增加趣味提醒内容,记录完成目标情况、增设绚丽成就榜等方式,实现个性化设计,具有巨大的开发前景。
二、功能设计
(1)待办事项模块:
设置提醒待办事项的各种属性,进入番茄钟完成任务。
(2)近期预览:
输出:用户爱好相关的网页等内容
功能概述:根据用户设定的偏好自动爬取相关内容
(3)日程
展示当天的待办事项,进入番茄钟完成任务
(4)统计
输出:展示任务完成情况,展示获得的番茄数
功能概述:用户选择所要展示的时间段,系统展示出任务完成情况以及各月的番茄数
(5)设置
设置提醒的铃声
(6)番茄钟
通过番茄钟来完成任务,并获得相应数量的番茄数
三、技术难点
技术难点1:怎么设计智能化的提醒
比如说6.15号考操作系统,怎么每隔多少天什么时间提醒一下
技术难点2:爬虫
一.注意有些网站会反爬虫,目前采用设置代理服务器等方式来在一定程度上规避,对于不能规避的只能换同类的其他网站
二.爬取到的数据处理困难,如大多数链接在<a……href=’’>里面,需要用正则表达式提取出来,另外有些节点内的内容格式很乱,需要自己整理、转换、提取
三.有些动态加载的内容难以爬取,如腾讯游戏上一些赛事是flex技术呈现的,容易爬不到合适的信息
四.利用爬取到的url拼接形成完整链接,通过函数调用使默认浏览器呈现正确的内容
五.一键添加爬取到的某事项时,需要与数据库中的定义进行对接整合,需要认真地处理、拼接、转换格式以及判断技术(根据时间判断初始状态)
六.记忆化地呈现第一次打开展现的内容,为以后提供更快捷的查询
七.由于复杂多变的网页结构,同一个网页在显示不同的内容时会有不同的结构。对于用户设定的偏好怎么去选取合适的内容,把文本、图片、音乐等多种形式的信息如何有效地摘取并展现是一个困难的事
八.网站的选取。由于我们的软件是长期使用的,所以要定期更新爬取的网站以实现内容的更新,如何自动更新所选取的网站是一个难点。如何避免一段时间内对同一网站爬取内容的重复也是值得考虑的一点。
技术难点3:日程的筛选
数据库中的待办事项的时间是Datatime格式的,要准确地筛选出当天的,并要采用合适的方式呈现出来,呈现的内容和排序也是值得考虑的问题。
技术难点4:数据库操作
数据库实现复杂数据结构的增删改查
技术难点5:番茄钟
实现番茄钟的计时以及番茄数的累加
技术难点6:UI架构与控件使用
一. 对C#窗体控件的使用还不算熟练,对其属性了解不够细致,从而导致当要做出自己想要的改变时,无从下手,需要到处寻找资料进行学习改造
二. 缺乏项目开发经验,没有美工功底,所以对于整体的UI布局与设计并不精通,最后力争以简洁、可视性强作为主基调
三. 控件本体的美观性不强,对控件进行改变整体构型的改变又比较困难,很难做出自己想要的效果
四. 有些控件的功能有限,部分功能需要自己进行构造方法与函数,从而对功能进行实现
四、小组分工
1、组长,协调分工、掌控进度
2、完成近期推荐界面:
功能设计:爬虫、浏览器、添加
UI设计
3、完成日程界面:
功能设计:筛选、完成、双击进入
UI设计
1、SQLite数据库的搭建
2、实现待办事项界面:
功能:待办事项的添加、 查看、删除、修改
UI设计
1、番茄钟
2、部分数据库的操作
3、完成统计界面:
功能:统计、可视化呈现
UI设计
1、整体UI架构
2、事项提醒功能实现