




免费预览已结束,剩余18页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
I 软软软软 件件件件 学学学学 院院院院 三级实践课题三级实践课题 课题名称 课题名称 日程管理小助手日程管理小助手 专专 业 业 软件工程 软件工程 JavaJava 方向 方向 班班 级 级 学学 号 号 学生姓名 学生姓名 指导教师 指导教师 年年 月月 日日 I 摘 要 随着经济全球化 管理现代化的到来 信息化建设已提到议事日程 计算机和 网络技术得到了迅速的发展和普及 互联网的应用和发展改变了全球的经济模式 企业管理模式也受到了极大的冲击 使信息资源的共享和超越时空的交换成为了可 能 在这个激烈竞争的社会 人们的杂乱事务越来越多 而且常常因为一些小事情 把重要的事情耽误 对个人家庭以及企业造成巨大的损失 事件提醒也来越成为人 们的一个救星 来化解各个事件间的矛盾 为了迎接残酷的社会竞争 个人管理助 手是每个个体都需要实用的一种提醒软件 因此 毫无疑问的说 日程管理无能对 个人还是企业都是非常必要的 做好了日程管理个人可以更好地规划自己生活 让 自己的生活多姿多彩 井然有序 让企业能确保各项工作及时有效推进 在时间以 及效率上能够给企业带来最大的受益 能够在规定时间内完成既定任务 日程管理 的重要性在于可以将每天的工作和事务安排在日期中并做一个有效的记录方便管理 日常的工作和事务 达到工作备忘的目的 同时也具有对员工日常工作进行指导 监督的作用 关键词 办公自动化 计算机 日程管理 日程管理小助手 目 录 摘摘 要要 I 第第 1 章章 系统分析系统分析 1 1 1 问题描述 1 1 2 技术分析 1 1 3 工程进度计划 2 第第 2 章章 系统功能设计系统功能设计 3 2 1 功能分析 3 2 2 系统设计 4 2 2 1 数据库表的设计 4 图图 2 22 2 4 3 1 功能模块 5 3 2 主要界面实现 6 3 3 部分功能实现的源代码 10 第第 4 章章 结束语结束语 20 日程管理小助手 1 第 1 章 系统分析 1 1 问题描述 在这个激烈竞争的社会 人们的杂乱事务越来越多 而且常常因为一些 小事情把重要的事情耽误 对个人家庭以及企业造成巨大的损失 事件提醒 也来越成为人们的一个救星 来化解各个事件间的矛盾 为了迎接残酷的社 会竞争 个人管理助手是每个个体都需要实用的一种提醒软件 因此 毫无 疑问的说 日程管理无能对个人还是企业都是非常必要的 日程管理个人可 以更好地规划自己生活 让自己的生活多姿多彩 井然有序 让企业能确保 各项工作及时有效推进 在时间以及效率上能够给企业带来最大的受益 能 够在规定时间内完成既定任务 1 2 技术分析 在界面设计上 要尽量简化 是用图形化页面 在前面利用了上中下三 个面板 最外面的布局管理用的是 BorderLayout 在最上面那一行用的是 JMenu 二级下拉菜单用的是 JMenuItem 在 BorderLayout CENTER 中放 的是图形 用来美化外观 BorderLayout SOUTH 放了四个 JLabel 用来提示 已经添加的事件提醒 在具体的时间选择上要提供日历 即使用 Calender 类 用此类可以避免用户在输入的时候输入非法字符以及非法操作等造成异 常 而且 要使用数据库来记录具体的时间 事件信息 在记录时间的时候 考虑到用 Date 记录时间要将 Date 转化成字符串 在记录的时候又得将字符 串转化为 Date 类型较为繁琐 因此 在时间记录方面 一直使用的字符串 类型 避免相互转化的繁琐 以及在转化石可能抛出的异常 简化了代码 减少了工作量 事件记录方面也是用的字符串类型 基于事件提醒时 记录 字数较少 用 Text 格式的又较为麻烦 因此选择了字符串 但是 在帮助 日程管理小助手 2 的通告项方面使用的为 Text 字数较多 需要选择该格式 在细节方面 一定要捕捉异常 用到 try catch 捕捉并处理异 常 在时间输入时 默认不输入时间为本地时间 后又一个时间判断 用到 if 语句 当获得的时间与本地时间相同时 提示用户未输入时间且重新输入 事件提醒内容 equals 提示用户输入事件提醒内容 在异常处理 方面做到捕捉异常 处理异常 并且合理 在操作性方面 要人性化 当提 示用户输入的内容 或操作非法时 用重新返回到原页面 而不是异常或退 出 用到 dispose 让本页面 消失 在重新调用原来的页面 在提醒用 户方面 获得本地的时间与提醒时间相同时 用到 ShowMessageDialog 提 示 用户在某时间要做某事 1 3 工程进度计划 本课题小组共两人 一个主要负责前期的需求分析 中期的一些异常处 理 具体的修改 最后的一些总结 代码优化 另外 我主要负责部分功能 的实现 对部分代码的修改 优化 在三周内可以基本结束课题的所有内容 完成知道老师对本课题的指导 安排的具体的修改工作 当然 在三周的时间里 肯定不是刚开始就立即着手开始进入课题实践 阶段 在第一周内 主要对课程管理小助手需要完成的必要功能 参考别人 做过的功能以及其他人做的优点以及不足的地方 综合我们学过的知识选择 我们要完成的功能 总结我们需要实现的方法以及复习或者学习实现该功能 的方法 第二周开始着手进入代码编译阶段 具体的代码完成后 部分要修 改或优化的由我的同伴完成 第三周前段时间 主要对已完成的系统进行测 试 对一些未处理的异常进行捕捉并处理 后段时间进行课题报告的完成以 及总结三周里的实践心得 系统的完成满意度以及学习方法的总结 日程管理小助手 3 第 2 章 系统功能设计 2 1 功能分析 图 2 1 如图 2 1 所示 用户使用本系统时 可以根据日历表选择事件提醒的时 间 输入事件提醒的内容 用户可以选择按时间删除和全部删除两种删除方 式 也可以通过帮助 来了解本软件的功能以及操作步骤 查看事件提醒可以通过时间或查询全部两种查询方式查询 在设置方面 可以设置系统的字体颜色 大小以及背景色 在美化系统首页方面 用了 Icon 对象 添加了图片 利用 JPanel JLabel JMenu JMenuItem 来图形 化界面 在面板的下方 有四个 JLabel 来显示要提示的事件提醒内容 根 据事件的紧急程度来定义不同的颜色来区分等级 在添加完事件提醒内容之 后 会显示到系统主业的下方 JLabel 上 也可以调节字体的大小 颜色 日程管理 添 加 事 件 提 醒 查 看 事 件 提 醒 设 置 按 时 间 查 询 查 询 全 部 按 时 间 删 除 删 除 全 部 删 除 全 部 提 醒 时 间 提 醒 内 容 字 体 大 小 背 景 色 删 除 事 件 提 醒 字 体 大 小 帮 助 日程管理小助手 4 背景色 查询 删除事件提醒可以选择全部或对单一对象进行操作 可以在 日历中选择事件提醒的事件以及提示所有非法的操作以及提示用户再次输入 2 2 系统设计 2 2 1 数据库表的设计 表 2 2 Schedule 日程安排配置表 字段名称类型大小约束说明 No int201时间编号 thingsVARCHAR900事件提醒 daytimeVARCHAR300提醒时间 图 2 2 如图 2 2 所示 数据库中有一张表 其属性为时间编号 事件提醒内容 提醒时间等内容 No 定义为 int 类型 为事件的序号 设置为主键 用数据库来记录具体的时间 事件信息 在记录时间的时候 考虑到用 Date 记录时间要将 Date 转化成字符串 在记录的时候又得将字符串转化为 Date 类型较为繁琐 因此 在时间记录方面 一直使用的字符串类型 避免 相互转化的繁琐 以及在转化石可能抛出的异常 简化了代码 减少了工作 量 事件记录方面也是用的字符串类型 基于事件提醒时 记录字数较少 用 Text 格式的又较为麻烦 因此选择了字符串 但是 在帮助的通告项方 面使用的为 Text 字数较多 需要选择该格式 在细节方面 一定要捕捉异 常 用到 try catch 捕捉并处理异常 日程管理小助手 5 第 3 章 系统实现 3 1 功能模块 图 3 1 如图 3 1 所示 在主界面方面 添加了一张背景图片来美化桌面 下面 是事件消息的提醒 按照时间的先后顺序根据颜色的不同不区分事件要处理 的紧急度 最上面一行是菜单栏 主要是简化按钮所占用的空间 在界面设计上 要尽量简化 是用图形化页面 在前面利用了上中下三 个面板 最外面的布局管理用的是 BorderLayout 在最上面那一行用的是 JMenu 二级下拉菜单用的是 JMenuItem 在 BorderLayout CENTER 中放的 是图形 用来美化外观 BorderLayout SOUTH 放了四个 JLabel 用来提示已 经添加的事件提醒 在具体的时间选择上要提供日历 即使用 Calender 类 日程管理小助手 6 用此类可以避免用户在输入的时候输入非法字符以及非法操作等造成异常 在操作性方面 要人性化 当提示用户输入的内容 或操作非法时 用重新 返回到原页面 而不是异常或退出 用到 dispose 让本页面 消失 在 重新调用原来的页面 在提醒用户方面 获得本地的时间与提醒时间相同时 用到 ShowMessageDialog 提示 用户在某时间要做某事 在细节方面 一 定要捕捉异常 用到 try catch 捕捉并处理异常 在时间输入时 默认不输入时间为本地时间 后又一个时间判断 用到 if 语句 当获得的 时间与本地时间相同时 提示用户未输入时间且重新输入 事件提醒内容 equals 提示用户输入事件提醒内容 在异常处理方面做到捕捉 异常 处理异常 并且合理 在操作性方面 要人性化 当提示用户输入的 内容 或操作非法时 用重新返回到原页面 而不是异常或退出 用到 dispose 让本页面 消失 在重新调用原来的页面 在提醒用户方面 获得本地的时间与提醒时间相同时 用到 ShowMessageDialog 提示 用户 在某时间要做某事 3 2 主要界面实现 1 日程管理小助手 7 图 3 2 1 图 3 2 2 添加界面 是可以根据日历的方式来进行时间的选择 如果不惊醒时间 选择的话 默认时间是本地时间 如果不输入事件信息的话 利用 if 判断 若等于本地时间 则提示 没有输入时间提醒的时间 会返回时间选择页面 重新进行时间的获取 在事件提醒内容方面 如果输入的信息提示为空 会 提示未输入 返回页面重新输入 日程管理小助手 8 在具体的时间选择上要提供日历 即使用 Calender 类 用此类可以避免 用户在输入的时候输入非法字符以及非法操作等造成异常 而且 要使用数 据库来记录具体的时间 事件信息 在记录时间的时候 考虑到用 Date 记录 时间要将 Date 转化成字符串 在记录的时候又得将字符串转化为 Date 类型 较为繁琐 因此 在时间记录方面 一直使用的字符串类型 避免相互转化 的繁琐 以及在转化石可能抛出的异常 简化了代码 减少了工作量 事件 记录方面也是用的字符串类型 基于事件提醒时 记录字数较少 用 Text 格 式的又较为麻烦 因此选择了字符串 但是 在帮助的通告项方面使用的为 Text 字数较多 需要选择该格式 在细节方面 一定要捕捉异常 用到 try catch 捕捉并处理异常 在时间输入时 默认不输入时间为本地时间 后又一个时间判断 用到 if 语 句 当获得的时间与本地时间相同时 提示用户未输入时间且重新输入 事 件提醒内容 equals 提示用户输入事件提醒内容 在异常处理方面做到 捕捉异常 处理异常 并且合理 在操作性方面 要人性化 当提示用户输 入的内容 或操作非法时 用重新返回到原页面 而不是异常或退出 用到 dispose 让本页面 消失 在重新调用原来的页面 在提醒用户方面 获得本地的时间与提醒时间相同时 用到 ShowMessageDialog 提示 用户 在某时间要做某事 2 删除界面 3 3 如图 3 3 所示 在删除方式方面 可以选择全部删除或者单一删除 在删除方式选择方面用的是 JOptionPane ShowOptionDialog 利用 if 判 断选择的序号 根据用户选择的功能 执行相应的方法 日程管理小助手 9 当选择的内容为 按时间删除 内容时 在数据库方面用到的 sql 语句为 delete from Schedule where daytime date 可以根据时间删除 事件提醒的内容 在首页面板的 JLabel 上显示的就没有本条事件提醒内容 而在选择的内容为 删除所有事件提醒 内容时 在数据库方面用到的 sql 语句为 delete from Schedule 可以根据删除全部的事件提醒的内容 在 首页面板的 JLabel 上显示的就为空 3 查询界面 3 4 如图 3 3 所示 在删除方式方面 可以选择全部查询或者单一查询 在删除方式选择方面用的是 JOptionPane ShowOptionDialog 利用 if 判 断选择的序号 根据用户选择的功能 执行相应的方法 当选择的内容为 按时间查询 内容时 在数据库方面用到的 sql 语句 为 select No daytime things from Schedule where daytime date 可以 根据时间查询事件提醒的内容 在 showMessageDialog 消息弹出一个消息对 话框 会提示查询成功以及查询的结果 而在选择的内容为 查询所有事件提醒 内容时 在数据库方面用到的 sql 语句为 select from Schedule 可以查询全部的事件提醒的内容 在弹 出的面板中会显示所查询的内容 日程管理小助手 10 3 3 部分功能实现的源代码 import java util Date import java util Calendar import java text SimpleDateFormat import java text ParseException import java awt Color import java awt Font import java awt Point import java awt Dimension import java awt BorderLayout import java awt FlowLayout import java awt GridLayout import java awt Cursor import java awt Frame import java awt event ActionEvent import java awt event ActionListener import javax swing JFrame import javax swing JButton import javax swing JDialog import javax swing JFrame import javax swing JOptionPane import javax swing JPanel import javax swing JLabel import javax swing JSpinner import javax swing JTextArea import javax swing JTextField import javax swing SpinnerNumberModel import javax swing SwingUtilities import javax swing SwingConstants import javax swing event ChangeListener import javax swing event ChangeEvent import javax swing border LineBorder SuppressWarnings serial public class Cal extends JFrame final String showMessageDialog 未添加时间信息 请重新添加 private String getDate TODO Auto generated method stub Date d new Date SimpleDateFormat sdf new SimpleDateFormat yyyy MM dd kk String str sdf format d System out println The date is str return str 日程管理小助手 11 public Cal final DateChooserJButton btn new DateChooserJButton final JTextField jt1 new JTextField 30 final JButton btn2 new JButton 确定 final JLabel jl new JLabel 请输入事件提醒的内容 if btn getText getDate JOptionPane showMessageDialog null showMessageDialog if jt1 getText equals null JOptionPane showMessageDialog null 未添加提示信息 请重新添加 btn2 addActionListener new ActionListener public void actionPerformed ActionEvent e if btn getText getDate JOptionPane showMessageDialog null 未添加时间信息 请重新添加 System out print getDate if jt1 getText null JOptionPane showMessageDialog null 未添加提示信息 请重新添 加 JOptionPane showMessageDialog null 未添加提示信息 请重新添加 JOptionPane showMessageDialog null 事件提醒时间 btn getText 获取 成功 dispose System out println jt1 getText ScheduleManagement sm new ScheduleManagement sm setSize 600 500 sm setLocation 400 200 this getContentPane setLayout new BorderLayout this getContentPane add btn new BorderLayout NORTH this getContentPane add jl new BorderLayout WEST this getContentPane add jt1 new BorderLayout EAST this getContentPane add btn2 new BorderLayout SOUTH this setSize 500 400 this setLocation 400 300 this setDefaultCloseOperation JFrame EXIT ON CLOSE 日程管理小助手 12 this setVisible true SuppressWarnings unused public static void main String args Cal cal new Cal SuppressWarnings serial class DateChooserJButton extends JButton private DateChooser dateChooser null private String preLabel public DateChooserJButton this getNowDate public DateChooserJButton SimpleDateFormat df String dateString this setText df dateString public DateChooserJButton Date date this date public DateChooserJButton String preLabel Date date if preLabel null this preLabel preLabel setDate date setBorder null setCursor new Cursor Cursor HAND CURSOR super addActionListener new ActionListener public void actionPerformed ActionEvent e if dateChooser null dateChooser new DateChooser Point p getLocationOnScreen p y p y 30 dateChooser showDateChooser p private static Date getNowDate 日程管理小助手 13 return Calendar getInstance getTime private static SimpleDateFormat getDefaultDateFormat return new SimpleDateFormat yyyy MM dd HH 覆盖父类的方法 public void setText String s Date date try date getDefaultDateFormat parse s catch ParseException e date getNowDate setDate date public void setText SimpleDateFormat df String s Date date try date df parse s catch ParseException e date getNowDate setDate date public void setDate Date date super setText preLabel getDefaultDateFormat format date public Date getDate String dateString getText substring preLabel length try return getDefaultDateFormat parse dateString catch ParseException e return getNowDate 覆盖父类的方法使之无效 public void addActionListener ActionListener listener 日程管理小助手 14 private class DateChooser extends JPanel implements ActionListener ChangeListener int startYear 1980 默认 最小 显示年份 int lastYear 2050 默认 最大 显示年份 int width 400 界面宽度 int height 600 界面高度 Color backGroundColor Color gray 底色 月历表格配色 Color palletTableColor Color GRAY 日历表底色 Color todayBackColor Color GREEN 今天背景色 Color weekFontColor Color blue 星期文字色 Color dateFontColor Color black 日期文字色 Color weekendFontColor Color red 周末文字色 控制条配色 Color controlLineColor Color GRAY 控制条底色 Color controlTextColor Color white 控制条标签文字色 Color rbFontColor Color white RoundBox文字色 Color rbBorderColor Color red RoundBox边框色 Color rbButtonColor Color pink RoundBox按钮色 Color rbBtFontColor Color red RoundBox按钮文字色 JDialog dialog JSpinner yearSpin JSpinner monthSpin JSpinner hourSpin JButton daysButton new JButton 6 7 DateChooser setLayout new BorderLayout setBorder new LineBorder backGroundColor 2 setBackground backGroundColor JPanel topYearAndMonth createYearAndMonthPanal add topYearAndMonth BorderLayout NORTH JPanel centerWeekAndDay createWeekAndDayPanal add centerWeekAndDay BorderLayout CENTER 日程管理小助手 15 private JPanel createYearAndMonthPanal Calendar c getCalendar int currentYear c get Calendar YEAR int currentMonth c get Calendar MONTH 1 int currentHour c get Calendar HOUR OF DAY 1 JPanel result new JPanel result setLayout new FlowLayout result setBackground controlLineColor yearSpin new JSpinner new SpinnerNumberModel currentYear currentYear lastYear 1 yearSpin setPreferredSize new Dimension 48 20 yearSpin setName Year yearSpin setEditor new JSpinner NumberEditor yearSpin yearSpin addChangeListener this result add yearSpin JLabel yearLabel new JLabel 年 yearLabel setForeground controlTextColor result add yearLabel monthSpin new JSpinner new SpinnerNumberModel currentMonth currentMonth 12 1 monthSpin setPreferredSize new Dimension 35 20 monthSpin setName Month monthSpin addChangeListener this result add monthSpin JLabel monthLabel new JLabel 月 monthLabel setForeground controlTextColor result add monthLabel hourSpin new JSpinner new SpinnerNumberModel currentHour currentHour 23 1 hourSpin setPreferredSize new Dimension 35 20 hourSpin setName Hour hourSpin addChangeListener this result add hourSpin JLabel hourLabel new JLabel 时 hourLabel setForeground controlTextColor result add hourLabel return result 日程管理小助手 16 private JPanel createWeekAndDayPanal String colname 日 一 二 三 四 五 六 JPanel result new JPanel 设置固定字体 以免调用环境改变影响界面美观 result setFont new Font 宋体 Font PLAIN 12 result setLayout new GridLayout 7 7 result setBackground Color white JLabel cell for int i 0 i 7 i cell new JLabel colname i cell setHorizontalAlignment JLabel CENTER if i 0 i 6 cell setForeground weekendFontColor else cell setForeground weekFontColor result add cell int actionCommandId 0 for int i 0 i 6 i for int j 0 j 0 result x offsetX if offsetY 0 result y offsetY return result private Calendar getCalendar Calendar result Calendar getInstance result setTime getDate return result private int getSelectedYear return Integer yearSpin getValue intValue private int getSelectedMonth return Integer monthSpin getValue intValue private int getSelectedHour return Integer hourSpin getValue intValue 日程管理小助手 18 private void dayColorUpdate boolean isOldDay Calendar c getCalendar int day c get Calendar DAY OF MONTH c set Calendar DAY OF MONTH 1 int actionCommandId day 2 c get Calendar DAY OF WEEK int i actionCommandId 7 int j actionCommandId 7 if isOldDay daysButton i j setForeground dateFontColor else daysButto
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高三电场复习课件
- 高一物理课件功率
- 高一政治课件阅读
- 高一化学氯气制备课件
- 高档住宅小区专业保洁与安保综合管理合同
- 专业婚内出轨离婚协议书定制服务及子女抚养方案
- 离婚协议书起草与财产分割协议执行监督
- 离婚后子女抚养与财产分割详细协议书
- 国际商事合同通则在跨境科研合作合同中的条款解析
- 家庭教育指导师咨询服务合同
- 2025中国农业科学院棉花研究所第二批招聘7人备考考试题库附答案解析
- 移动照明车夜间施工租赁协议
- 重庆西南大学附中2025-2026学年九年级上学期开学考试语文试题
- 2025-2026学年人教版PEP英语二年级上册教学计划(三篇)
- 2025年秋季学期教科版二年级上册科学教学计划(三篇)
- 买家赎楼签协议签合同
- (2025年标准)整容医师聘用协议书
- 煤矿机电考试试题及答案
- 借名购车协议贷款协议书
- 2025年6月四川省高中学业水平合格性考试地理试题(解析版)
- 2025至2030年中国虹膜识别市场深度调查分析及投资前景研究预测报告
评论
0/150
提交评论