版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.计算机科学与工程学院第二届专业实践技能(学科)竞赛实用软件设计类参赛作品学生任务管理系统 指导老师:孙永新小组成员:余伟康,郑桂深,蒋俊豪*;目 录学生任务管理系统11. 需求分析11.1. 总述11.2. 使用技术简介:12. 概要设计22.1. 开发环境22.2. 总体设计22.3. 模块设计32.3.1. 模块说明32.3.2. 功能设计33. 详细设计33.1. 数据库设计:33.2. 用户使用流程:43.3. URL设计和HTTPServer:43.4. 客户端时间提示功能:73.5. 最小化到任务栏功能:94. 测试与运行:104.1. 登录功能:104.2. 程序可以最小化到任
2、务栏:114.3. 删除功能:114.4. 添加任务栏功能:124.5. 时间提示功能:134.6. 用户注册功能:135. 项目总结141. 需求分析1.1. 总述在忙碌的生活中,人们往往会忘记做一些事情。设计一款功能简单实用,可扩展性强的备忘录软件可以帮助大家更好地管理时间和事务。本软件简单实用,可在桌面和开始菜单创建快捷方式,适合对时间管理方面有需求的人群。1.2. 使用技术简介:这款软件我们采用简单实用,扩平台,网络化的设计理念。采用C/S(客户端/服务器)模式。客户端采用flex技术,它容易设计出良好的富客户端应用的同时具备良好的网络交互功能。采用HTTPServer作为与与服务器交
3、互的方式。服务器采用Python作为开发的语言。Tornado正好具备设计优秀的URL的性质,支持restful,而且在Linux上可以提供很好的负载能力。(1)Python是一种面向对象、直译式计算机程序设计语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法非常简捷和清晰,与其它计算机程序设计语言不一样,它采用缩进来定义语句块。Python支持命令式编程、面向对象程序设计、函数式编程、面向切面编程、泛型编程多种编程范式。与Scheme、Ruby、Perl、Tcl等动态语言一样,Python具备
4、垃圾回收功能,能够自动管理内存使用。它经常被当作脚本语言用于处理系统管理任务和Web编程,然而它也非常适合完成各种高阶任务。Python虚拟机本身几乎可以在所有的操作系统中运行。使用一些诸如py2exe、PyPy、PyInstaller之类的工具可以将Python源代码转换成可以脱离Python解释器执行的程序。Python的主要参考实现是CPython,它是一个由社区驱动的自由软件。目前由Python软件基金会管理。基于这种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。(2)Tornado web server 是使用Python编写出來的一个极轻量级、高可伸缩性和非阻塞
5、IO的Web服务器软件,著名的 Friendfeed 网站就是使用它搭建的。Tornado 跟其他主流的Web服务器框架(主要是Python框架)不同是采用epoll非阻塞IO,响应快速,可处理数千并发连接,特别适用用于实时的Web服务。(3)ActionScript是 Macromedia(现已被Adobe收购)为其Flash产品开发的 ,最初是一种简单的脚本语言,现在最新版本3.0,是一种完全的面向对象的编程语言,功能强大,类库丰富,语法类似JavaScript,多用于Flash互动性、娱乐性、实用性开发,网页制作和RIA应用程序开发。ActionScript 是一种基于ECMAScrip
6、t的脚本语言,可用于编写Adobe Flash动画和应用程序。 由于ActionScript和JavaScript都是基于ECMAScript语法的,理论上它们互相可以很流畅地从一种语言翻译到另一种。不过JavaScript的文档对象模型(DOM)是以浏览器窗口,文档和表单为主的,ActionScript的文档对象模型(DOM)则以SWF格式动画为主,可包括动画,音频,文字和事件处理。(4)Adobe Flex是最初由Macromedia公司在2004年3月发布的,基于其专有的Macromedia Flash平台,它是涵盖了支持RIA(Rich Internet Applications)的开
7、发和部署的一系列技术组合。2. 概要设计2.1. 开发环境开发平台:Windows XP + eclipse + flashbuilder开发语言:ActionScript + python服务器端框架:Tornado Web Server 客户端平台:Adobe Flex2.2. 总体设计程序是C/S架构,服务器端使用python基于Tornado开发,客户端使用ActionScript基于Flex开发。本程序是学生任务管理系统,提供任务设定,到执行任务时间就给出提示,可以缩小到任务栏,数据保存在服务器。2.3. 模块设计2.3.1. 模块说明程序分为三个模块:用户注册,用户登录,任务管理2
8、.3.2. 功能设计用户登录:用户可以通过自定义的用户名和密码来登录到服务器,一旦登陆成功就获取服务器中的用户任务信息。用户注册:用户注册必须提供用户自定义的用户名和密码,电子邮箱地址。收到注册成功提示后即可登录。任务管理:任务管理提供任务的添加和删除功能,包括任务内容和任务提示时间,程序通过任务提示时间提醒用户该执行的任务。另外,程序提供缩小到任务栏的功能,以方便程序在不阻碍用户使用计算机的同时可以提供任务提醒功能。3. 详细设计3.1. 数据库设计:数据库名:t_record字段类型not null自增编码外键加密rid(主键)INTEGERYesYesutf8NONOusernameVA
9、RCHAR(45)YesNOutf8YesNOrecordVARCHAR(45)YesNOutf8NONOsettimeVARCHAR(45)YesNOutf8NONOdotimeVARCHAR(45)YesNOutf8NONO数据库名:t_record字段类型not null自增编码外键加密username(主键)VARCHAR(45)YesYesutf8NONOemailVARCHAR(45)YesYesutf8NONOpasswordVARCHAR(45)YesYesutf8NOMD53.2. 用户使用流程:3.3. URL设计和HTTPServer:本程序是C/S架构,使用HTTPSe
10、rver作为客户端与服务器端交互的方式。一下是服务器端URL设计,所有URL的交互方法都是GET。功能URL接收参数返回值添加数据/addRememberRecorddate: 年月日,例如:2011-5-19;minute 分钟;hour 小时;record 任务;成功:ok,失败:error删除删除/delData要删除的任务的编号成功:ok,失败:can not delete查询所有数据/getData用户名返回数据格式,每条记录: <data><rid>任务编号</rid><key>任务内容</key><date>
11、任务提醒时间</date></data>登录/login用户名,密码成功:ok,密码错误:pwderror,登录失败:error注册/register用户名,密码,电子邮箱地址成功:regisok,用户名已被使用:nameishave,注册失败:error(包括网络问题等各种原因)Flex中HTTPServer使用例子:客户端:通过配置HTTPServer,使用GET的方式向指定的URL发送数据,发送的数据写在<mx:request xmlns="" ></mx:request>中,而<mx:rowIndex>&l
12、t;/mx:rowIndex>告诉服务器通过rowIndex标记可以找到数据的值,相当于Dictionary中的key,value关系。resultHandler与HTTPServer绑定,返回后执行方法中的event.result取得返回的数据。获取数据的方式因返回数据的类型而异。当获取如:<data><key></key><data>这种XML形式的数据时,可以使用event.result.data获得每组<data></data>中的数据。而当返回数据是字符串,就用本示例中的方式取得。<mx:HTTPSe
13、rvice resultFormat="array" method="GET" url="http:/localhost:80/delData" id="http1" result="resultHandler(event)" > <mx:request xmlns="" ><mx:rowIndex> dg.selectedItem"rid"</mx:rowIndex></mx:request><
14、/mx:HTTPService>private function resultHandler(event:ResultEvent):void var login_result:String=""login_result =event.result.toString() ;if(login_result="ok") Alert.show("删除成功"); textarea.text +="您删除了一项纪录!"+"n"textarea.validateNow(); textarea.verti
15、calScrollPosition = textarea.maxVerticalScrollPosition; if(login_result="can not delete") Alert.show("删除失败"); http.send(); 服务器端:与一般的WEB服务器一样,接受HTTP请求,然后返回数据。在Tornado中使用get方法响应请求,对应服务器端的HTTPServer的GET方式。通过self.request.arguments可以获得客户端发来的数据。class deleteRecordHandler(BaseHandler): d
16、ef get(self): print "this is del! get" if not self.current_user: return print "post" self.rid = self.request.arguments.get("rowIndex")0.encode('utf8') self.deleteRidQuery = "delete from t_record where rid ="+self.rid print self.deleteRidQuery try: self
17、.deleteSucess = dbCon.execute(self.deleteRidQuery) print self.deleteSucess self.write("ok") except: self.write("can not delete")3.4. 客户端时间提示功能:时间提示功能,就是在到达用户定义的时间时在桌面的右下角出现提示窗口,窗口中显示任务的内容。对于程序而言,要不断地检测任务列表中的时间,发现任务时间与当前系统时间相同就打开一个窗口,定义窗口的位置在桌面右下角的恰当位置。时间的对比时限定时间的格式是YYYY-MM-DD JJ:
18、NN,也就是对比时只对比年月日时分。当时间到达,把对比列表中的相应时间删除,以防止重复提示。相关代码如下:(1)对比时间:function compareTime(str:String):int var myPattern1:RegExp=/-|:| /g; var dateFormatter:DateFormatter = new DateFormatter();dateFormatter.formatString = "YYYY-MM-DD JJ:NN"var now:String= dateFormatter.format(new Date(); str=dateFo
19、rmatter.format(str);str=str.replace(myPattern1,''); now=now.replace(myPattern1,''); trace(str);trace(now)if(int(str)>int(now) return 1; else if(int(str)<int(now)return -1; elsereturn 0;(2)对任务列表中的时间从大到小排序:private function onResult(evt:ResultEvent):void var i:int;arrs.removeAll()
20、;for(i=0;i<http.lastResult.data.length;i+)arrs.addItemAt(rid:http.lastResult.datai.rid.toString(),record:http.lastResult.datai.key.toString(),date:http.lastResult.datai.date.toString(),i);var sort:Sort = new Sort();sort.fields = new SortField("date");arrs.sort = sort;arrs.sort.reverse()
21、;arrs.refresh();(3)通过Timer和时间事件不断让任务列表中的时间与系统时间进行对比,当到达时间时显示提示窗口:timer = new Timer(1000);timer.addEventListener(TimerEvent.TIMER, onTick);timer.start();private function onTick(e:TimerEvent):void var j:int;var compareResult:int;for(j=0;j<arrs.length;j+)compareResult = compareTime(arrs.getItemAt(j)
22、.date.toString();if(compareResult = 0)var mw:AlarmView = new AlarmView("你设定的时间已经到了。n"+arrs.getItemAt(j).record.toString();mw.advOpen(this); mw.move(Capabilities.screenResolutionX-200,Capabilities.screenResolutionY-230);arrs.removeItemAt(j);break;else if(compareResult<0)break; 3.5. 最小化到任
23、务栏功能:主要函数如下:public function prepareForSystray(event:Event):void dockImage=event.target.content.bitmapData; stage.nativeWindow.addEventListener(NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGING, displayStageChangeHandler); stage.nativeWindow.addEventListener(NativeWindowDisplayStateEvent.DISPLAY_STATE_CHANGE, function(e:Event):void trace(1); ); NativeApplication.nativeApplication.icon.bitmaps = dockImage;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冀少版八年级生物上册第四单元复习提升课件
- 人教版五年级下册分数的计算练习题
- 电路初探单元复习教案
- 安全教案 三年级
- 《陋室铭》教学反思
- 太阳能电站改造简易施工合同
- 苏教版一年级语文下册全册教案
- 咨询公司噪声污染治理实施方案
- 烟草产品库存调配方案
- 游戏开发项目协议
- 全国第四轮学科评估PPT幻灯片课件(PPT 24页)
- 子宫内膜息肉-PPT课件
- 桥梁施工各工序质量控制措施
- 保安队排班表
- 包头医学院新开课程申请表
- (精心整理)初中物理串联分压和并联分流精练
- 道路开口工程施工设计方案
- 蛋鸡养殖场管理制度管理办法
- eps三维测图系统倾斜摄影快速入门手册
- 民法典关于监护的规定解读
- 可爱卡通立春节气知识科普PPT模板
评论
0/150
提交评论