![[计算机]学生任务管理系统开发文档.doc_第1页](http://file.renrendoc.com/FileRoot1/2019-1/5/01d0d1dc-a54b-4ede-b3b5-f443d68ce76d/01d0d1dc-a54b-4ede-b3b5-f443d68ce76d1.gif)
![[计算机]学生任务管理系统开发文档.doc_第2页](http://file.renrendoc.com/FileRoot1/2019-1/5/01d0d1dc-a54b-4ede-b3b5-f443d68ce76d/01d0d1dc-a54b-4ede-b3b5-f443d68ce76d2.gif)
![[计算机]学生任务管理系统开发文档.doc_第3页](http://file.renrendoc.com/FileRoot1/2019-1/5/01d0d1dc-a54b-4ede-b3b5-f443d68ce76d/01d0d1dc-a54b-4ede-b3b5-f443d68ce76d3.gif)
![[计算机]学生任务管理系统开发文档.doc_第4页](http://file.renrendoc.com/FileRoot1/2019-1/5/01d0d1dc-a54b-4ede-b3b5-f443d68ce76d/01d0d1dc-a54b-4ede-b3b5-f443d68ce76d4.gif)
![[计算机]学生任务管理系统开发文档.doc_第5页](http://file.renrendoc.com/FileRoot1/2019-1/5/01d0d1dc-a54b-4ede-b3b5-f443d68ce76d/01d0d1dc-a54b-4ede-b3b5-f443d68ce76d5.gif)
已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机科学与工程学院第二届专业实践技能(学科)竞赛实用软件设计类参赛作品学生任务管理系统 指导老师:孙永新小组成员:余伟康,郑桂深,蒋俊豪目 录学生任务管理系统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. 程序可以最小化到任务栏:114.3. 删除功能:114.4. 添加任务栏功能:124.5. 时间提示功能:134.6. 用户注册功能:135. 项目总结141. 需求分析1.1. 总述在忙碌的生活中,人们往往会忘记做一些事情。设计一款功能简单实用,可扩展性强的备忘录软件可以帮助大家更好地管理时间和事务。本软件简单实用,可在桌面和开始菜单创建快捷方式,适合对时间管理方面有需求的人群。1.2. 使用技术简介:这款软件我们采用简单实用,扩平台,网络化的设计理念。采用C/S(客户端/服务器)模式。客户端采用flex技术,它容易设计出良好的富客户端应用的同时具备良好的网络交互功能。采用HTTPServer作为与与服务器交互的方式。服务器采用Python作为开发的语言。Tornado正好具备设计优秀的URL的性质,支持restful,而且在Linux上可以提供很好的负载能力。(1)Python是一种面向对象、直译式计算机程序设计语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法非常简捷和清晰,与其它计算机程序设计语言不一样,它采用缩进来定义语句块。Python支持命令式编程、面向对象程序设计、函数式编程、面向切面编程、泛型编程多种编程范式。与Scheme、Ruby、Perl、Tcl等动态语言一样,Python具备垃圾回收功能,能够自动管理内存使用。它经常被当作脚本语言用于处理系统管理任务和Web编程,然而它也非常适合完成各种高阶任务。Python虚拟机本身几乎可以在所有的操作系统中运行。使用一些诸如py2exe、PyPy、PyInstaller之类的工具可以将Python源代码转换成可以脱离Python解释器执行的程序。Python的主要参考实现是CPython,它是一个由社区驱动的自由软件。目前由Python软件基金会管理。基于这种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。(2)Tornado web server 是使用Python编写出來的一个极轻量级、高可伸缩性和非阻塞IO的Web服务器软件,著名的 Friendfeed 网站就是使用它搭建的。Tornado 跟其他主流的Web服务器框架(主要是Python框架)不同是采用epoll非阻塞IO,响应快速,可处理数千并发连接,特别适用用于实时的Web服务。(3)ActionScript是 Macromedia(现已被Adobe收购)为其Flash产品开发的 ,最初是一种简单的脚本语言,现在最新版本3.0,是一种完全的面向对象的编程语言,功能强大,类库丰富,语法类似JavaScript,多用于Flash互动性、娱乐性、实用性开发,网页制作和RIA应用程序开发。ActionScript 是一种基于ECMAScript的脚本语言,可用于编写Adobe Flash动画和应用程序。 由于ActionScript和JavaScript都是基于ECMAScript语法的,理论上它们互相可以很流畅地从一种语言翻译到另一种。不过JavaScript的文档对象模型(DOM)是以浏览器窗口,文档和表单为主的,ActionScript的文档对象模型(DOM)则以SWF格式动画为主,可包括动画,音频,文字和事件处理。(4)Adobe Flex是最初由Macromedia公司在2004年3月发布的,基于其专有的Macromedia Flash平台,它是涵盖了支持RIA(Rich Internet Applications)的开发和部署的一系列技术组合。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.3.2. 功能设计用户登录:用户可以通过自定义的用户名和密码来登录到服务器,一旦登陆成功就获取服务器中的用户任务信息。用户注册:用户注册必须提供用户自定义的用户名和密码,电子邮箱地址。收到注册成功提示后即可登录。任务管理:任务管理提供任务的添加和删除功能,包括任务内容和任务提示时间,程序通过任务提示时间提醒用户该执行的任务。另外,程序提供缩小到任务栏的功能,以方便程序在不阻碍用户使用计算机的同时可以提供任务提醒功能。3. 详细设计3.1. 数据库设计:数据库名:t_record字段类型not null自增编码外键加密rid(主键)INTEGERYesYesutf8NONOusernameVARCHAR(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架构,使用HTTPServer作为客户端与服务器端交互的方式。一下是服务器端URL设计,所有URL的交互方法都是GET。功能URL接收参数返回值添加数据/addRememberRecorddate: 年月日,例如:2011-5-19;minute 分钟;hour 小时;record 任务;成功:ok,失败:error删除删除/delData要删除的任务的编号成功:ok,失败:can not delete查询所有数据/getData用户名返回数据格式,每条记录: 任务编号任务内容任务提醒时间登录/login用户名,密码成功:ok,密码错误:pwderror,登录失败:error注册/register用户名,密码,电子邮箱地址成功:regisok,用户名已被使用:nameishave,注册失败:error(包括网络问题等各种原因)Flex中HTTPServer使用例子:客户端:通过配置HTTPServer,使用GET的方式向指定的URL发送数据,发送的数据写在中,而告诉服务器通过rowIndex标记可以找到数据的值,相当于Dictionary中的key,value关系。resultHandler与HTTPServer绑定,返回后执行方法中的event.result取得返回的数据。获取数据的方式因返回数据的类型而异。当获取如:这种XML形式的数据时,可以使用event.result.data获得每组中的数据。而当返回数据是字符串,就用本示例中的方式取得。 dg.selectedItemridprivate 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.verticalScrollPosition = textarea.maxVerticalScrollPosition; if(login_result=can not delete) Alert.show(删除失败); http.send(); 服务器端:与一般的WEB服务器一样,接受HTTP请求,然后返回数据。在Tornado中使用get方法响应请求,对应服务器端的HTTPServer的GET方式。通过self.request.arguments可以获得客户端发来的数据。class deleteRecordHandler(BaseHandler): def 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.deleteSucess = dbCon.execute(self.deleteRidQuery) print self.deleteSucess self.write(ok) except: self.write(can not delete)3.4. 客户端时间提示功能:时间提示功能,就是在到达用户定义的时间时在桌面的右下角出现提示窗口,窗口中显示任务的内容。对于程序而言,要不断地检测任务列表中的时间,发现任务时间与当前系统时间相同就打开一个窗口,定义窗口的位置在桌面右下角的恰当位置。时间的对比时限定时间的格式是YYYY-MM-DD JJ: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=dateFormatter.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();for(i=0;ihttp.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();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;jarrs.length;j+)compareResult = compareTime(arrs.getItemAt(j).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(compareResult0)break; 3.5. 最小化到任务栏功能:主要函数如下: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;if(NativeApplication.supportsSystemTrayIcon) Var icon:SystemTrayIcon = N
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年合肥市蜀山区区直机关、事业单位招募青年就业见习人员32个备考考试题库附答案解析
- 贵州磷化集团有限公司社会招聘职位表考试参考试题及答案解析
- 2026届四川省泸州市化学九上期中达标检测试题含解析
- 2025年福建福清市属国有企业第二批招聘3人备考练习试题及答案解析
- 2026届辽宁省本溪市名校化学九年级第一学期期中学业水平测试模拟试题含解析
- 2025-2030肉牛养殖标准化体系建设与绿色可持续发展前景研究报告
- 2025-2030肉牛养殖市场国际化比较研究及贸易壁垒突破与跨境投资机会报告
- 2025南昌市某国企招聘外包行政人员1人考试模拟试题及答案解析
- 2025年广西钦州市灵山县中小学(幼儿园)、职校教职工调配652人考试模拟试题及答案解析
- 2025浙江省商务究院实习人员招聘备考考试题库附答案解析
- 律师事务所客户数据安全管理制度
- 孕妇学校健康教育课件
- 中国大麻酚油(CBD油)行业发展监测及投资战略研究报告
- 医务人员艾滋病知识培训
- 图书馆培训管理制度
- 2025船舶光租合同范本
- 2025年新高考1卷(新课标Ⅰ卷)语文试卷(含答案)
- 高中教科研课题:《新课程背景下高中语文情境教学改革研究》课题工作汇报
- 知到智慧树网课:病理生理学(南华大学)章节测试满分答案
- 农村建设工匠考试试题及答案
- 《系统性红斑狼疮疾病解析》课件
评论
0/150
提交评论