版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘 要 三级课题桌面精灵系统,就是为满足需要而开发的,主要包括用户的日历、时钟、生 活的琐事、星座奇缘、奇事、精品图书、天气的查询、备忘、日志、计划。从而做事 的效率和了解社会时事发展。本系统总共分为 6 章,第 1 章讲述了前言概括,第 2 章 系统需求分析,第 3 章数据库表的概要设计,第 4 章主要讲述了数据库及程序系统的 详细设计,第 5 章讲述了系统运行及其调示,第 6 章作为总结,主要写自己的心得体 会及做课题当中所遇到的问题,及解决办法,还有附录, 本组开发的桌面精灵系统结合实际,合理设置用户的需求并掌握的相应信息。综 合地对他们进行数据库的设计、数据库的连接和程序代码的编写,有
2、效的最终在系统 运行中得以实现。通过各个信息模块的设计,可以详细地进行各个小的方面的内容实 现,做到各个信息环节的内容最终都能够在程序中得到实现,使操作成员能明了的了 解桌面精灵这个系统。 关键词:java ;桌面精灵系统;数据库的设计; 目录目录 摘摘 要要.3 第第 1 章前言章前言.5 第第 2 章章 需求分析需求分析.6 2.1 功能需求 .6 2.2 编译环境需求.7 2.3 界面需求.7 2.4 系统主要模块分析.7 第第 3 章章 表概要设计表概要设计.9 3.1 数据库概要设计.9 3.1.1 实体及其属性.9 3.1.2 e-r 图.9 3.2 系统管理模块设计.11 第第
3、4 章章 详细设计详细设计.11 .主页面实现如图-.12 4.数据库表内容及实现.14 4.页面的设计.17 第第 5 章章 调试调试.30 第第 6 章章 结束语结束语.36 致谢:.38 指导教师评语.39 附录附录 a:桌面精灵程序设计:桌面精灵程序设计.40 1.主页面程序.40 2.日历程序.41 .时钟程序.44 .计划程序.46 页程序.48 第第 1 章章前言前言 三级课题桌面精灵系统能够提供用户操作平台,,方便用户对日常生活的管理和增 加一些对哲、历、文学等多方面的提高,认识本程序的内部的数据库的结构和调用方 法,以为程序设计人员和软件维护人员更好的编制、测试程序和维护软件
4、的正确运行 提供依据。数据库设计的第一步是明确数据库的目的,用来记录信息和管理信息,通 过各种表的设计,实现对表的整体调用。 详细设计主要关于经常使用的一些功能,还有一些经常性动作。 本系统属于团队开发系统,每个人负责不同的模块,实现相应的功能,以求得系 统的完整,通过多次的调试和组合并进行相应的修改,并进行相应的交流达成共识在 老师指导下使得系统逐步完善,并进行了近一步的调整使系统更趋向于人性化和合理 化。 最后通过写结束语来完成最后的系统文件,还可以另外附上表和程序来完成整个 系统。 第第 2 章章 需求分析需求分析 2.1 功能需求功能需求 通过对桌面精灵系统的了解,我们可以更清楚的知道
5、更多的详细信息,知道一些 备忘、计划、日志、天气等信息,从而对自己进行相应的调整,系统应有的功能模块 如下: 主页面模块;(独立完成) 计划、日历、时钟;(独立完成) 备忘; 日志; 其它一些功能;(共同参与) 1主页面 打开页面以后,可以浏览所有可以实现的功能,而且一目了然,对全局有全面的 了解。 2添加日历 可以在点击按钮后,在工作台出现一个可爱的小日历,并且可以找到自己喜欢的 日子,而且一目了然知道每月的天数。使自己的页面更加完美。 3备忘 可以对自己近期所要做的事进行一切相应的记录,并且还可以设置是否对相应的 事情提醒否,并且还可以进行相应的修改,还可以对过时的进行相应的删除,完成一
6、切相应的操作。增、删、改、查都可以增加操作的随意性。 4天气查询 天有不测风云,所以出门之时了解天气对自己是福,不是祸,还可以对其它自己 喜爱的地方进行相应的天气查询,从而了解世界。收获更多。 5时钟 添加一个时尚而个性的时钟,可以增加桌面的完美性,并且对时间更具体的了解, 从而增加自己的做事效率。 6计划 对自己将要做的某些事做一些预先的打算,并且再需要的时候还可以进行相应的 修改,从而对自己更有利,并且更势时性。增、删、改、查都可以增加操作的随意性。 7日志 记录自己的点点滴滴,并且非常实用,而且对自己的美好的回忆,温存又加深印 像。增、删、改、查都可以增加操作的随意性。 8菜单其它项 可
7、以进行相应的选择,连接相应的网页,从而找到自己的需求,了解更多 从而丰富自己的一些常识。 2.2 编译环境需求编译环境需求 本系统使用的开发语言是 java,数据库采用的是 my sql,以 windows xp 系统为操 作平台。 2.3 界面需求界面需求 对于一个好的软件系统有一个友好的界面是很重要的,在设计界面时在给人以美 感的同时,界面还应尽量做的简单、功能清晰明了,最大限度地为用户提供操作方便。 2.4 系统主要模块分析系统主要模块分析 三级课题桌面精灵系统包括多方面内容,进行相应的操作,并得到相应的信息来 满足需要,对一些信息进行查询、添加、修改、删除,能够更好的了解一些信息。 系
8、统主要模块分析关系图如图 2.1 所示 桌桌面面精精灵灵 添 加 日 历 查 询 天 气 时 钟 精 品 图 书 星 座 奇 缘 奇 事 计 划 备 忘 专 业 哲 学 经 济 军 事 古 典 小 说 日 志 历 史 今 天 生 活 窍 门 故 事 音 乐 查 看 写 日 志 i f e 世 间 百 态 奇 异 现 象 添 加 检 索 爱 情 武 侠 玄 幻 第第 3 章章 表概要设计表概要设计 3.1 数据库概要设计数据库概要设计 作为系统的重要重要组成部分,数据库设计需要进行各种实体及他们的属性描述, 这样,在下面的描述详细设计时,在本章可以看到系统设计的大致设计框架。 3.1.1 实体及
9、其属性实体及其属性 整个系统各实体可以用以下关系来表示: plan(id,data,time,subjects,details); memos(id,data,time,warns,them,contant); logdata(riqi,shijian,zhuti,neirong); 注:斜字体为表的主键 3.1.2 e-r 图图 e-r 图分析的目的是确定系统中所有实体、实体的属性及实体之间的联系,为设 计数据库表结构打下基础。画 e-r 图通常使用自底向上的设计方法,首先对局部视图 进行分析设计,然后再将局部视图合并,消除冲突和冗余,得到系统的总体 e-r 图。 这里两表不存在联系,所以对
10、每一表进行单一的描述。 计划表如图: plan idtim e sub ject s dat a det ails 备忘表如图: memos id data time warn sthem cont ant 日志表如图: logdata riqi shij ian zhu ti nei ron g 3.2 系统管理模块设计系统管理模块设计 1. 主页面设计: 通过本组讨论, 认为主页面应具有以下功能: 显示提供的一些功能,日历添加、时钟、备忘、计划、日志、奇事、精品图书等 等。并且通过相应的操作。 2. 备忘、计划、日志没计: 数据库完成相应的增、删、改、查,并且设置相应的方法实现一些共用或者
11、 通用的方法,去解决这些复杂而繁琐的问题。并且具体可以完成某些特定功能。从而 使程序完美而且更加实用。 天气、星座奇缘、精品图书、奇事、ife 设计: 对于一些时事变化比较快的,我们可以采用网页的方式,打开相应的网页,从而 查找相应的结果。 时钟、日历设计: 通过相应的精确判断得到机器的相应时间,从而使页面更加灵活多变,并且可以 进行的时间运算,从而知道不久的日期。 第第 4 章章 详细设计详细设计 我们采取模块化设计思想,通过各模块的不同组合以实现不同的查询功能。最终, 使系统 具有内容规范、信息完整、查询便捷等特点。 .主页面实现如图- - 关键代码:关键代码: 1.托盘的实现:托盘的实现
12、: publicpublic voidvoid init() ifif (systemtray.issupported() / 如果操作系统支持托盘 thisthis.tray(); thisthis.setsize(300, 320); thisthis.setresizable(falsefalse); / 窗口关闭时触发事件 addwindowlistener(newnew windowadapter() publicpublic voidvoid windowclosing(windowevent e) system.exit(0); publicpublic voidvoid win
13、dowiconified(windowevent e) trytry tray.add(trayicon); / 将托盘图标添加到系统的托盘实例中 /setvisible(false); / 使窗口不可视 dispose();/释放由此 window、其子组件及其拥有的所有子组件所使用的所有本机屏幕资源 catchcatch (awtexception ex) ex.printstacktrace(); ); privateprivate voidvoid tray() tray = systemtray.getsystemtray(); / 获得本操作系统托盘的实例 imageicon ic
14、on = newnew imageicon(getclass().getresource(image/4.jpg); / 将要显示到 托盘中的图标 popupmenu pop = newnew popupmenu(); / 构造一个右键弹出式菜单 menuitem show = newnew menuitem(打开程序(s); menuitem exit = newnew menuitem(退出程序(x); pop.add(show); pop.add(exit); trayicon = newnew trayicon(icon.getimage(), 桌面精灵, pop); /* * 添加鼠
15、标监听器,当鼠标在托盘图标上双击时,默认显示窗口 */ trayicon.addmouselistener(newnew mouseadapter() publicpublic voidvoid mouseclicked(mouseevent e) ifif (e.getclickcount() = 2) / 鼠标双击 tray.remove(trayicon); / 从系统的托盘实例中移除托盘图标 setextendedstate(jframe.normal); setvisible(truetrue); / 显示窗口 tofront(); ); show.addactionlistener
16、(newnew actionlistener() / 点击“显示窗口”菜单后将窗口显示出来 publicpublic voidvoid actionperformed(actionevent e) tray.remove(trayicon); / 从系统的托盘实例中移除托盘图标 setextendedstate(jframe.normal); setvisible(truetrue); / 显示窗口 tofront(); ); exit.addactionlistener(newnew actionlistener() / 点击“退出演示”菜单后退出程序 publicpublic voidvo
17、id actionperformed(actionevent e) system.exit(0); / 退出程序 ); .菜单:菜单: planlogmenubar1 = newnew jmenubar(); setjmenubar(planlogmenubar1); planmenu1 = newnew jmenu(); planlogmenubar1.add(planmenu1); planmenu1.addseparator(); planmenu1.settext(计划); planmenuitemadd = newnew jmenuitem(); planmenu1.add(plan
18、menuitemadd); planmenuitemadd.settext(u6dfbu3000u52a0); planmenuitemadd.addactionlistener(newnew actionlistener() publicpublic voidvoid actionperformed(actionevent e) append.main(); ); 其它菜单里的内容如上一样的加入。 .按钮:按钮: calendarbutton = newnew jbutton(); calendarbutton.setbackground(color); getcontentpane().a
19、dd(calendarbutton); calendarbutton.settext(u6dfbu52a0u65e5u5386(c); calendarbutton.setmnemonic(c); calendarbutton.setbounds(17, 46, 110, 40); calendarbutton.addactionlistener(newnew actionlistener() publicpublic voidvoid actionperformed(actionevent e) calendar.main(); ); 其它按钮与此一样。 4.数据库表数据库表内容及实现内容及
20、实现 根据上面所说实体与属性,基于功能的分析,可为考虑系统创建库表以便 于应用和维护系统,将其中的数据库表设计如下: 1.计划表设计如: 4-2-1 2.备忘表设计如: 4-2-2 3.日志表设计如: 4- 数据库核心代码: staticstatic trytry class.forname(com.mysql.jdbc.driver); system.out.println(forname); catchcatch (classnotfoundexception e) / todotodo 自动生成 catch 块 e.printstacktrace(); publicpublic stat
21、icstatic connection getconnection() trytry connection conn = nullnull; returnreturn conn=drivermanager.getconnection(url,user,password); catchcatch (sqlexception e) / todotodo 自动生成 catch 块 system.out.println(返回connection错误); e.printstacktrace(); system.out.println(hello); returnreturn nullnull; publ
22、icpublic staticstatic voidvoid free(connection conn,statement st,resultset re) trytry re.close(); catchcatch (sqlexception e) / todotodo 自动生成 catch 块 e.printstacktrace(); finallyfinally trytry st.close(); catchcatch (sqlexception e) e.printstacktrace(); finallyfinally trytry conn.close(); catchcatch
23、 (sqlexception e) e.printstacktrace(); publicpublic staticstatic voidvoid free(connection conn,statement st) trytry st.close(); catchcatch (sqlexception e) e.printstacktrace(); finallyfinally trytry conn.close(); catchcatch (sqlexception e) e.printstacktrace(); publicpublic staticstatic voidvoid fre
24、e(connection conn,preparedstatement pr) trytry pr.close(); catchcatch (sqlexception e) e.printstacktrace(); finallyfinally trytry conn.close(); catchcatch (sqlexception e) e.printstacktrace(); publicpublic staticstatic voidvoid free(connection conn,preparedstatement pr,resultset re) trytry re.close(
25、); catchcatch (sqlexception e) e.printstacktrace(); finallyfinally trytry pr.close(); catchcatch (sqlexception e) e.printstacktrace(); finallyfinally trytry conn.close(); catchcatch (sqlexception e) / todotodo 自动生成 catch 块 e.printstacktrace(); 4.页面的设计页面的设计 .主页面:主页面: 日历:日历: 核心代码: static calendar toda
26、y = calendar.getinstance(); year = year = today.get(calendar.year); month = month = today.get(calendar.month) + 1; day = today.get(calendar.day_of_month); todiecedleapyear(); static void todiecedleapyear() if (year % 100 = 0) daysofmonth2 = (year % 400 = 0 ? 29 : 28); else daysofmonth2 = (year % 4 =
27、 0 ? 29 : 28); dateformat dateformat = dateformat.getdateinstance();/日期/时间格式 try dateformat.parse(year + - + month + -1); catch (parseexception e) e.printstacktrace(); calendar firstdayofmonth = dateformat.getcalendar();/得到第一天 int dayofweek = firstdayofmonth.get(calendar.day_of_week) - 1; system.out
28、.println(dayofweek); if (dayofweek = 0) dayofweek = 7; int lastmonthdays = 31; if (month 2) lastmonthdays = daysofmonthmonth - 1; system.out.println(lastmonthdays - dayofweek+2); for (int day = lastmonthdays - dayofweek + 2; day = lastmonthdays; day+) button = new calendarbutton(day); button.setenab
29、led(false);/设置按钮不能被调用 tablemodel.setvalueat(button,row,col); if (col = 6) row+; col = 0; else col+; / 当月 for (int day = 1; day 4) if (col = 5) button.setforeground(color.green); else button.setforeground(color.orange); if (day = day) if (year = year tablemodel.setvalueat(button, row, col); if (col =
30、 6) row+; col = 0; else col+; / 下一月 int nextmonthdays = 42 - (row * 7 + col); for (int day = 1; day = nextmonthdays; day+) button = new calendarbutton(day); button.setenabled(false); tablemodel.setvalueat(button, row, col); if (col = 6) row+; col = 0; else col+; 时钟:时钟: 核心代码: trytry thread.sleep(1000
31、); seconds+; ifif(seconds 10) ifif(minuter 10 ) ifif(hour 10) clocklabel.settext(0+hour+:+0+minuter+:+0+seconds); clocklabel.setbackground(color.red); elseelse clocklabel.settext(hour+:+0+minuter+:+0+seconds); clocklabel.setbackground(color.red); elseelse ifif(hour =60) seconds =0; minuter+; ifif(mi
32、nuter10) ifif(hour =60) minuter = 0; hour+; ifif(hour =24) hour=0; clocklabel.settext(0+hour+:+0+minuter+:+0+seconds); clocklabel.setbackground(color.red); elseelse clocklabel.settext(hour+:+0+minuter+:+0+seconds); clocklabel.setbackground(color.red); elseelse ifif(hour 10) clocklabel.settext(0+hour
33、+:+minuter+:+0+seconds); clocklabel.setbackground(color.red); elseelse clocklabel.settext(hour+:+minuter+:+0+seconds); clocklabel.setbackground(color.red); elseelse ifif(minuter 10) ifif(hour 10) clocklabel.settext(0+hour+:+0+minuter+:+seconds); clocklabel.setbackground(color.red); elseelse clocklab
34、el.settext(hour+:+0+minuter+:+seconds); clocklabel.setbackground(color.red); elseelse ifif(hour 10) clocklabel.settext(0+hour+:+minuter+:+seconds); clocklabel.setbackground(color.red); elseelse clocklabel.settext(hour+:+minuter+:+seconds); clocklabel.setbackground(color.red); catchcatch (interrupted
35、exception e) / todotodo 自动生成 catch 块 e.printstacktrace(); joptionpane.showmessagedialog(nullnull,时钟错误); 查询天气:查询天气: 通过调用网络资源 核心代码: trytry runtime.getruntime().exec( cmd.exe /c start iexplore +shareweb); catchcatch (ioexception ex) joptionpane.showmessagedialog(nullnull,网页出错); .计划:计划: .添加: 调用数据库并把相应的数
36、据进行处理; 核心代码: string arg0 = insert into plan(date,time,subjects,details) values(?,?,?,?) ; connection conn = plandata.getconnection(); preparedstatement pr = nullnull; trytry pr = conn.preparestatement(arg0); pr.setstring(1,dx.getdate(); pr.setstring(2,dx.gettime(); pr.setstring(3,dx.gettextname(); p
37、r.setstring(4,dx.gettextarea(); pr.executeupdate(); returnreturn truetrue; catchcatch (sqlexception e) / todotodo 自动生成 catch 块 e.printstacktrace(); finallyfinally plandata.free(conn,pr); returnreturn falsefalse; .检索: 对检索到的数据进行相应的操作: 核心代码: public planobject find(string textname) string arg0 = select
38、* from plan where subjects = ?; connection conn = plandata.getconnection(); preparedstatement pr = nullnull; resultset re = nullnull; planobject dx = newnew planobject(); trytry pr = conn.preparestatement(arg0); pr.setstring(1,textname); re = pr.executequery(); ifif(re.next() system.out.println(next
39、); number = re.getint(id); dx.setdate(re.getstring(2); dx.settime(re.getstring(3); dx.settextname(re.getstring(4); dx.settextarea(re.getstring(5); returnreturn dx; catchcatch (sqlexception e) / todotodo 自动生成 catch 块 e.printstacktrace(); finallyfinally plandata.free(conn,pr,re); returnreturn nullnull; publicpublic voidvoid deleteddata(string textname) string arg0 = delete from plan where subjects = ? ; connection conn = plandata.getconnection(); preparedstatement pr = nullnull; planobject dx = newnew planobject(); trytry pr = conn.preparestatement
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年小学非在编顶岗教师公开招聘考试题库(含答案)
- 非负数讲解课件
- 被动运输课件动画
- 2024年拉萨客运资格证实践操作考什么
- 2024年广东客运从业资格证救护考试题
- 2024年宁德客车上岗证模拟考试
- 2024年甘肃客运从业资格证价格
- 2024年潍坊考客运资格证试题题库软件
- 2024年海口客运从业资格考试题库答案
- 广东省梅州市蕉岭中学2025届数学高二上期末调研试题含解析
- 水平定向钻施工机械
- 室内设计行业优势与劣势分析
- 2024年滁州市中级人民法院招考聘用司法辅助人员高频考题难、易错点模拟试题(共500题)附带答案详解
- 城市管理知识竞赛考试题库200题(含答案)
- 北京市东城区六年级(上)期末语文试卷
- 乡村振兴农村设计案例分析报告
- 【体能大循环】聚焦体能循环-探索运动奥秘-幼儿园探究体能大循环有效开展策略课件
- 《化工设备检维修实训》课程标准(煤炭清洁利用技术)
- AI在航空航天领域中的应用
- 餐饮员工心态培训课件
- 2024年注册消防工程师题库及参考答案【完整版】
评论
0/150
提交评论