版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 1 摘 要 三级课题桌面精灵系统,就是为满足需要而开发的,主要包括用户的日历、时钟、生 活的琐事、星座奇缘、奇事、精品图书、天气的查询、备忘、日志、计划。从而做事 的效率和了解社会时事发展。本系统总共分为 6 章,第 1 章讲述了前言概括,第 2 章 系统需求分析,第 3 章数据库表的概要设计,第 4 章主要讲述了数据库及程序系统的 详细设计,第 5 章讲述了系统运行及其调示,第 6 章作为总结,主要写自己的心得体 会及做课题当中所遇到的问题,及解决办法,还有附录, 本组开发的桌面精灵系统结合实际,合理设置用户的需求并掌握的相应信息。综 合地对他们进行数据库的设计、数据库的连接和程序代码的编
2、写,有效的最终在系统 运行中得以实现。通过各个信息模块的设计,可以详细地进行各个小的方面的内容实 现,做到各个信息环节的内容最终都能够在程序中得到实现,使操作成员能明了的了 解桌面精灵这个系统。 关键词:java ;桌面精灵系统;数据库的设计; 2 目录目录 摘摘 要要.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 系统管理模块设计.1
3、1 第第 4 章章 详细设计详细设计.11 .主页面实现如图-.12 4.数据库表内容及实现.14 4.页面的设计.17 第第 5 章章 调试调试.30 第第 6 章章 结束语结束语.36 致谢:.38 指导教师评语.39 附录附录 a:桌面精灵程序设计:桌面精灵程序设计.40 1.主页面程序.40 2.日历程序.41 .时钟程序.44 .计划程序.46 页程序.48 3 第第 1 章章前言前言 三级课题桌面精灵系统能够提供用户操作平台,,方便用户对日常生活的管理和增 加一些对哲、历、文学等多方面的提高,认识本程序的内部的数据库的结构和调用方 法,以为程序设计人员和软件维护人员更好的编制、测试
4、程序和维护软件的正确运行 提供依据。数据库设计的第一步是明确数据库的目的,用来记录信息和管理信息,通 过各种表的设计,实现对表的整体调用。 详细设计主要关于经常使用的一些功能,还有一些经常性动作。 本系统属于团队开发系统,每个人负责不同的模块,实现相应的功能,以求得系 统的完整,通过多次的调试和组合并进行相应的修改,并进行相应的交流达成共识在 老师指导下使得系统逐步完善,并进行了近一步的调整使系统更趋向于人性化和合理 化。 最后通过写结束语来完成最后的系统文件,还可以另外附上表和程序来完成整个 系统。 4 第第 2 章章 需求分析需求分析 2.1 功能需求功能需求 通过对桌面精灵系统的了解,我
5、们可以更清楚的知道更多的详细信息,知道一些 备忘、计划、日志、天气等信息,从而对自己进行相应的调整,系统应有的功能模块 如下: 主页面模块;(独立完成) 计划、日历、时钟;(独立完成) 备忘; 日志; 其它一些功能;(共同参与) 1主页面 打开页面以后,可以浏览所有可以实现的功能,而且一目了然,对全局有全面的 了解。 2添加日历 可以在点击按钮后,在工作台出现一个可爱的小日历,并且可以找到自己喜欢的 日子,而且一目了然知道每月的天数。使自己的页面更加完美。 3备忘 可以对自己近期所要做的事进行一切相应的记录,并且还可以设置是否对相应的 事情提醒否,并且还可以进行相应的修改,还可以对过时的进行相
6、应的删除,完成一 切相应的操作。增、删、改、查都可以增加操作的随意性。 4天气查询 天有不测风云,所以出门之时了解天气对自己是福,不是祸,还可以对其它自己 喜爱的地方进行相应的天气查询,从而了解世界。收获更多。 5时钟 添加一个时尚而个性的时钟,可以增加桌面的完美性,并且对时间更具体的了解, 5 从而增加自己的做事效率。 6计划 对自己将要做的某些事做一些预先的打算,并且再需要的时候还可以进行相应的 修改,从而对自己更有利,并且更势时性。增、删、改、查都可以增加操作的随意性。 7日志 记录自己的点点滴滴,并且非常实用,而且对自己的美好的回忆,温存又加深印 像。增、删、改、查都可以增加操作的随意
7、性。 8菜单其它项 可以进行相应的选择,连接相应的网页,从而找到自己的需求,了解更多 从而丰富自己的一些常识。 2.2 编译环境需求编译环境需求 本系统使用的开发语言是 java,数据库采用的是 my sql,以 windows xp 系统为操 作平台。 2.3 界面需求界面需求 对于一个好的软件系统有一个友好的界面是很重要的,在设计界面时在给人以美 感的同时,界面还应尽量做的简单、功能清晰明了,最大限度地为用户提供操作方便。 2.4 系统主要模块分析系统主要模块分析 三级课题桌面精灵系统包括多方面内容,进行相应的操作,并得到相应的信息来 满足需要,对一些信息进行查询、添加、修改、删除,能够更
8、好的了解一些信息。 系统主要模块分析关系图如图 2.1 所示 6 桌桌面面精精灵灵 添 加 日 历 查 询 天 气 时 钟 精 品 图 书 星 座 奇 缘 奇 事 计 划 备 忘 专 业 哲 学 经 济 军 事 古 典 小 说 日 志 历 史 今 天 生 活 窍 门 故 事 音 乐 查 看 写 日 志 i f e 世 间 百 态 奇 异 现 象 添 加 检 索 爱 情 武 侠 玄 幻 7 第第 3 章章 表概要设计表概要设计 3.1 数据库概要设计数据库概要设计 作为系统的重要重要组成部分,数据库设计需要进行各种实体及他们的属性描述, 这样,在下面的描述详细设计时,在本章可以看到系统设计的大致
9、设计框架。 3.1.1 实体及其属性实体及其属性 整个系统各实体可以用以下关系来表示: 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、。 这里两表不存在联系,所以对每一表进行单一的描述。 计划表如图: 8 plan idtim e sub ject s dat a det ails 备忘表如图: memos id data time warn sthem cont ant 日志表如图: 9 logdata riqi shij ian zhu ti nei ron g 3.2 系统管理模块设计系统管理模块设计 1. 主页面设计: 通过本组讨论, 认为主页面应具有以下功能: 显示提供的一些功能,日历添加、时钟、备忘、计划、日志、奇事、精品图书等 等。并且通过相应的操作。 2. 备忘、计划、日志没计: 数据库完成相应的增、删、改、
11、查,并且设置相应的方法实现一些共用或者 通用的方法,去解决这些复杂而繁琐的问题。并且具体可以完成某些特定功能。从而 使程序完美而且更加实用。 天气、星座奇缘、精品图书、奇事、ife 设计: 对于一些时事变化比较快的,我们可以采用网页的方式,打开相应的网页,从而 查找相应的结果。 时钟、日历设计: 通过相应的精确判断得到机器的相应时间,从而使页面更加灵活多变,并且可以 进行的时间运算,从而知道不久的日期。 第第 4 章章 详细设计详细设计 我们采取模块化设计思想,通过各模块的不同组合以实现不同的查询功能。最终, 使系统 10 具有内容规范、信息完整、查询便捷等特点。 .主页面实现如图- - 关键
12、代码:关键代码: 1.托盘的实现:托盘的实现: 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); pub
13、licpublic voidvoid windowiconified(windowevent e) trytry tray.add(trayicon); / 将托盘图标添加到系统的托盘实例中 /setvisible(false); / 使窗口不可视 dispose();/释放由此 window、其子组件及其拥有的所有子组件所使用的所有本机屏幕资源 catchcatch (awtexception ex) ex.printstacktrace(); 11 ); privateprivate voidvoid tray() tray = systemtray.getsystemtray(); /
14、获得本操作系统托盘的实例 imageicon icon = 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.getimag
15、e(), 桌面精灵, pop); /* * 添加鼠标监听器,当鼠标在托盘图标上双击时,默认显示窗口 */ trayicon.addmouselistener(newnew mouseadapter() publicpublic voidvoid mouseclicked(mouseevent e) ifif (e.getclickcount() = 2) / 鼠标双击 tray.remove(trayicon); / 从系统的托盘实例中移除托盘图标 setextendedstate(jframe.normal); setvisible(truetrue); / 显示窗口 tofront();
16、); show.addactionlistener(newnew actionlistener() / 点击“显示窗口”菜单后将窗口显示出来 publicpublic voidvoid actionperformed(actionevent e) tray.remove(trayicon); / 从系统的托盘实例中移除托盘图标 setextendedstate(jframe.normal); setvisible(truetrue); / 显示窗口 tofront(); ); exit.addactionlistener(newnew actionlistener() / 点击“退出演示”菜单
17、后退出程序 publicpublic voidvoid actionperformed(actionevent e) system.exit(0); / 退出程序 ); .菜单:菜单: planlogmenubar1 = newnew jmenubar(); 12 setjmenubar(planlogmenubar1); planmenu1 = newnew jmenu(); planlogmenubar1.add(planmenu1); planmenu1.addseparator(); planmenu1.settext(计划); planmenuitemadd = newnew jme
18、nuitem(); planmenu1.add(planmenuitemadd); planmenuitemadd.settext(u6dfbu3000u52a0); planmenuitemadd.addactionlistener(newnew actionlistener() publicpublic voidvoid actionperformed(actionevent e) append.main(); ); 其它菜单里的内容如上一样的加入。 .按钮:按钮: calendarbutton = newnew jbutton(); calendarbutton.setbackgroun
19、d(color); getcontentpane().add(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(); );
20、其它按钮与此一样。 4.数据库表数据库表内容及实现内容及实现 根据上面所说实体与属性,基于功能的分析,可为考虑系统创建库表以便 于应用和维护系统,将其中的数据库表设计如下: 1.计划表设计如: 13 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.print
21、stacktrace(); publicpublic staticstatic 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(hell
22、o); returnreturn nullnull; 14 publicpublic 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(); finallyfinal
23、ly trytry conn.close(); catchcatch (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(); publ
24、icpublic staticstatic voidvoid free(connection conn,preparedstatement pr) trytry pr.close(); catchcatch (sqlexception e) e.printstacktrace(); 15 finallyfinally trytry conn.close(); catchcatch (sqlexception e) e.printstacktrace(); publicpublic staticstatic voidvoid free(connection conn,preparedstatem
25、ent pr,resultset re) trytry re.close(); 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.页面的设计页面的设计 .主页面:主
26、页面: 16 日历:日历: 核心代码: static calendar today = 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) 17 daysofmonth2 = (year % 400 = 0
27、? 29 : 28); else daysofmonth2 = (year % 4 = 0 ? 29 : 28); dateformat dateformat = dateformat.getdateinstance();/日期/时间格式 try dateformat.parse(year + - + month + -1); catch (parseexception e) e.printstacktrace(); calendar firstdayofmonth = dateformat.getcalendar();/得到第一天 int dayofweek = firstdayofmont
28、h.get(calendar.day_of_week) - 1; system.out.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+) butto
29、n = new calendarbutton(day); button.setenabled(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); 18 if (day = day) if (year = year tabl
30、emodel.setvalueat(button, row, col); if (col = 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; el
31、se col+; 时钟:时钟: 核心代码: trytry thread.sleep(1000); seconds+; ifif(seconds 10) ifif(minuter 10 ) ifif(hour 10) clocklabel.settext(0+hour+:+0+minuter+:+0+seconds); clocklabel.setbackground(color.red); 19 elseelse clocklabel.settext(hour+:+0+minuter+:+0+seconds); clocklabel.setbackground(color.red); else
32、else ifif(hour =60) seconds =0; minuter+; ifif(minuter10) 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); 20 clocklabel.setbackground(color.re
33、d); elseelse ifif(hour 10) clocklabel.settext(0+hour+:+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); cl
34、ocklabel.setbackground(color.red); elseelse clocklabel.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); clocklab
35、el.setbackground(color.red); catchcatch (interruptedexception e) / todotodo 自动生成 catch 块 e.printstacktrace(); joptionpane.showmessagedialog(nullnull,时钟错误); 查询天气:查询天气: 21 通过调用网络资源 核心代码: trytry runtime.getruntime().exec( cmd.exe /c start iexplore +shareweb); catchcatch (ioexception ex) joptionpane.sho
36、wmessagedialog(nullnull,网页出错); .计划:计划: .添加: 22 调用数据库并把相应的数据进行处理; 核心代码: 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.se
37、tstring(2,dx.gettime(); pr.setstring(3,dx.gettextname(); pr.setstring(4,dx.gettextarea(); pr.executeupdate(); returnreturn truetrue; catchcatch (sqlexception e) / todotodo 自动生成 catch 块 e.printstacktrace(); finallyfinally plandata.free(conn,pr); returnreturn falsefalse; 23 .检索: 对检索到的数据进行相应的操作: 核心代码:
38、public planobject find(string textname) string arg0 = select * 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); r
39、e = pr.executequery(); ifif(re.next() system.out.println(next); number = re.getint(id); dx.setdate(re.getstring(2); dx.settime(re.getstring(3); dx.settextname(re.getstring(4); dx.settextarea(re.getstring(5); 24 returnreturn dx; catchcatch (sqlexception e) / todotodo 自动生成 catch 块 e.printstacktrace();
40、 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.
41、preparestatement(arg0); pr.setstring(1,textname); pr.executeupdate(); catchcatch (sqlexception e) e.printstacktrace(); finallyfinally plandata.free(conn,pr); publicpublic voidvoid deleteddata() string arg0 = delete from plan where id = ? ; connection conn = plandata.getconnection(); preparedstatemen
42、t pr = nullnull; trytry pr = conn.preparestatement(arg0); pr.setint(1,number); pr.executeupdate(); catchcatch (sqlexception e) e.printstacktrace(); finallyfinally plandata.free(conn,pr); publicpublic voidvoid update(planobject dx) 25 string arg0 = update plan set date = ? , time = ?, subjects = ?,de
43、tails = ? where id = ? ; 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(); pr.setstring(4,dx.gettextarea(); pr.setint(5,number); pr.executeupdate(); catchcatch (sqlexception e) / todotodo 自动生成 catch 块 e.printstacktrace();
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 溶质的质量分数 题型专练教学设计(2025-2026学年九年级化学人教版2024下册)
- 2025年洱源县人力资源有限责任公司公开招聘白剧艺术团演员5人的备考题库及答案详解(易错题)
- 云南财经大学公开招聘人员20人备考题库含答案详解
- 2025年天津市河北区卫生健康系统公开招聘事业单位工作人员85人备考题库及完整答案详解1套
- 2026年贵州应用技术职业学院单招职业技能考试题库带答案详解
- 2025年南宁市武鸣区府城中心卫生院公开招聘编外工作人员备考题库及答案详解参考
- 2026年漳州科技学院单招综合素质考试题库附答案详解
- 云南大学附属医院开展2026年校园招聘的备考题库及参考答案详解
- 2025年剑阁县行政争议化解中心调解专家库成员选聘备考题库及答案详解一套
- 2026年南昌工学院单招职业技能考试题库附答案详解
- 小学预防艾滋病知识
- 沥青拌和站岗位职责制度
- 《东西方建筑》课件
- iso28000-2022供应链安全管理手册程序文件表单一整套
- 《连续性肾替代治疗容量评估与管理专家共识》解读课件
- 教练技术第一阶段感恩课催眠话术
- 《实变函数》电子教案
- 城市轨道交通大客流应急处理
- 重大活动保电方案
- 2024届河南省五市高三第一次联考英语试题及答案
- (新版)天翼云认证解决方案架构师考试题库(浓缩500题)
评论
0/150
提交评论