桌面日历系统的设计与实现

合集下载

日历设计方案

日历设计方案
五、风险评估与应对措施
1.技术风险:项目开发过程中,可能出现技术难题,影响项目进度。
应对措施:组建专业的技术团队,提前进行技术预研,确保项目顺利进行。
2.法律风险:产品可能涉及隐私、知识产权等法律问题。
应对措施:加强法律法规学习,确保产品合规,防范法律风险。
3.市场风险:市场竞争激烈,可能导致产品推广困难。
(3)考虑用户操作习惯,优化交互设计,降低用户学习成本。
3.技术实现
(1)采用主流的前端框架,如React、Vue等,提高开发效率。
(2)后端采用稳定的数据库存储用户数据,保证数据安全。
(3)使用加密技术,确保用户隐私安全。
(4)针对不同设备进行优化,提高产品兼容性。
4.法律法规合规
(1)遵守《中华人民共和国网络安全法》等相关法律法规,保护用户信息安全。
五、风险评估与应对措施
1.技术风险:项目开发过程中可能遇到技术难题,影响项目进度。
应对措施:组建专业团队,提前进行技术预研,确保项目顺利进行。
2.法律风险:产品可能涉及隐私、知识产权等法律问题。
应对措施:加强法律法规培训,确保产品合规,防范法律风险。
3.市场风险:市场竞争激烈,可能导致产品推广困难。
2.用户界面设计
(1)遵循简洁、美观的设计原则,采用一致的风格和色彩,提高用户使用体验。
(2)充分考虑用户操作习惯,优化布局和交互设计,降低用户学习成本。
(3)字体、颜色、图标等元素统一规范,保证界面美观性和一致性。
3.技术实现与安全保障
(1)采用成熟的前端框架,如React或Vue,提高开发效率和产品质量。
(2)后端采用稳定的数据库存储用户数据,保障数据安全。
(3)采用加密技术,确保用户数据安全,尊重用户隐私权益。

桌面万年历程序体系结构设计报告

桌面万年历程序体系结构设计报告

桌面万历年程序 体系结构设计报告青岛软件园软件人才 实训服务中心变更历史目录1. 系统概述 (4)2. 设计约束 (4)3. 系统总体结构 (4)4.子系统的结构与功能 (5)4.1主界面子系统 (5)4.2日历显示子系统 (6)4.3参数设定子系统 (7)6. 开发环境的配置 (8)7. 运行环境的配置 (9)1. 系统概述桌面万年历程序,运行显示在Windows的桌面,具有时间、周、农历、公历显示,纪念日提醒、闹铃、个性皮肤设置等功能。

2. 设计约束(1)需求约束。

体系结构设计人员从需求文档《软件需求规格说明书》)中提取需求约束,遵循需求文档中规定的如下约束✧软件、硬件环境(包括运行环境和开发环境)的约束✧软件质量的约束,如正确性、可靠性、易用性(2)隐含约束。

有一些假设或依赖并没有在需求文档中明确指出,但可能会对系统设计产生影响,这里假定用户会使用Windows的基本操作,使用过一些常见的工具软件如QQ、小游戏、上网浏览页面等。

3. 系统总体结构桌面万年历程序是典型的Windows界面程序,根据需求文档中要求的功能,以及Windows程序的特点,将系统分为三个子系统:主界面子系统、日历显示子系统、参数设定子系统,这样设计简单易实现。

其中,主界面子系统负责程序主界面的显示、程序主逻辑的控制、以及其他子系统的调用。

日历显示子系统负责万年历计算、显示。

参数设定子系统负责设定纪念日、闹铃、皮肤等设定。

下图是三个子系统之间的逻辑关系图。

4.子系统的结构与功能4.1 主界面子系统主界面子系统负责程序主界面的显示、程序主逻辑的控制、以及其他子系统的调用。

分为以下模块。

程序入口模块、主界面消息处理模块、主界面贴图模块、时间处理模块。

下图是模块之间的关系图。

其中,程序入口模块,是Windows程序的入口函数,在该模块内创建主界面。

消息处理模块负责响应用户的鼠标和键盘操作。

时间处理模块负责时间运算和显示。

界面贴图模块负责主界面的图像显示。

精美日历的程序设计及代码示例

精美日历的程序设计及代码示例

精美日历的程序设计及代码示例一、引言日历是我们日常生活中重要的时间管理工具。

一个精美美观的日历设计可以提升用户的使用体验。

本文将介绍精美日历的程序设计方法以及相应的代码示例。

二、设计思路1. 日历显示界面设计精美日历应该具备以下设计要素:- 界面简洁明了,突出重要信息;- 适配不同设备屏幕尺寸,保证用户在不同设备上都能良好显示;- 使用合适的字体、颜色和布局,营造舒适的阅读体验;- 支持用户自定义主题,以满足不同用户的个性化需求。

2. 日历功能设计精美日历的功能设计要考虑以下几点:- 显示当前日期以及所在月份,方便用户快速查看;- 支持切换月份,以便查看过去或未来的日期;- 标记重要日期,例如节假日、生日等,以便用户一目了然;- 提供日程管理功能,允许用户添加、编辑和删除日程安排;- 支持农历显示,满足中国用户的需求。

三、代码示例下面是一个简单的精美日历的代码示例,代码使用HTML、CSS和JavaScript编写。

```<!DOCTYPE html><html><head><title>精美日历</title><style>/* CSS样式 *//* 省略部分样式代码,包括字体、颜色和布局等 */</style></head><body><div id="calendar"><div id="header"><button id="prevBtn">上个月</button><div id="title"></div><button id="nextBtn">下个月</button> </div><table id="days"><tr><th>周一</th><th>周二</th><th>周三</th><th>周四</th><th>周五</th><th>周六</th><th>周日</th></tr><!-- 日期格子动态生成 --></table></div><script>// JavaScript代码// 获取当前日期var date = new Date();var currentYear = date.getFullYear();var currentMonth = date.getMonth() + 1;// 标记重要日期var importantDates = [5, 10, 15];// 更新日历显示function updateCalendar(year, month) {// 更新标题document.getElementById("title").innerHTML = year + "年" + month + "月";// 清空日期格子var table = document.getElementById("days");table.getElementsByTagName("tbody")[0].innerHTML = "";// 获取本月第一天的日期对象var firstDay = new Date(year, month - 1, 1);var startDay = firstDay.getDay(); // 本月第一天是星期几// 动态生成日期格子var dateIndex = 1;var tr = document.createElement("tr");for (var i = 0; i < startDay; i++) {tr.innerHTML += "<td></td>";}while (firstDay.getMonth() === month - 1) {if (startDay === 0) {table.getElementsByTagName("tbody")[0].appendChild(tr); tr = document.createElement("tr");}var td = document.createElement("td");td.innerHTML = dateIndex;if (importantDates.includes(dateIndex)) {td.classList.add("important"); // 添加重要日期样式}tr.appendChild(td);dateIndex++;firstDay.setDate(firstDay.getDate() + 1);startDay = firstDay.getDay();}table.getElementsByTagName("tbody")[0].appendChild(tr);}// 切换月份document.getElementById("prevBtn").addEventListener("click", function() {if (currentMonth === 1) {currentYear--;currentMonth = 12;} else {currentMonth--;}updateCalendar(currentYear, currentMonth);});document.getElementById("nextBtn").addEventListener("click", function() {if (currentMonth === 12) {currentYear++;currentMonth = 1;} else {currentMonth++;}updateCalendar(currentYear, currentMonth);});// 初始化日历updateCalendar(currentYear, currentMonth);</script></body></html>```四、总结本文介绍了精美日历的程序设计方法及相应的代码示例。

diy日历桌面课程设计

diy日历桌面课程设计

diy日历桌面课程设计一、课程目标知识目标:1. 学生能理解日历的基本概念,掌握年、月、日的关系及其在日常生活中的应用。

2. 学生能通过DIY日历桌面活动,熟悉时间单位换算,增强数学运算能力。

3. 学生能运用所学生活常识,结合实际需求设计个性化日历桌面,提高对时间管理的认识。

技能目标:1. 培养学生动手操作和创新能力,通过设计日历桌面,提升审美观和空间想象力。

2. 培养学生团队协作能力,学会在小组讨论中发表观点,倾听他人意见,共同完成任务。

3. 提高学生运用信息技术手段解决问题的能力,如使用计算机软件设计日历桌面。

情感态度价值观目标:1. 培养学生珍惜时间、合理安排生活的意识,树立正确的时间观念。

2. 增强学生对生活美学的认识,激发对生活的热爱,提高生活质量。

3. 培养学生勇于尝试、积极探究的学习态度,树立自信、自主、创新的价值观。

本课程结合学生年级特点,注重实践性和趣味性,以培养学生综合素质为目标,将知识、技能、情感态度价值观三者有机结合,旨在提高学生对时间管理的认识,培养动手操作能力和创新精神。

通过分解课程目标为具体的学习成果,为教学设计和评估提供明确依据。

二、教学内容1. 日历的基本知识:年、月、日的概念及其关系,星期、时、分的认识,时间单位换算。

2. 个性化日历桌面设计:引导学生结合实际需求,运用所学生活常识和美学知识,设计具有个人特色的日历桌面。

3. 团队协作与讨论:分组进行设计活动,培养学生团队协作能力,共同完成日历桌面设计任务。

4. 信息技术应用:运用计算机软件(如Word、Photoshop等)设计日历桌面,提高学生运用信息技术解决问题的能力。

教学内容依据课程目标,结合教材相关章节进行安排。

具体教学大纲如下:第一课时:日历基本知识学习,包括时间单位换算,以及日常生活中的应用。

第二课时:个性化日历桌面设计方法指导,启发学生创意思维。

第三课时:分组讨论,确定设计主题,进行团队协作设计。

基于桌面的多功能万年历设计与开发

基于桌面的多功能万年历设计与开发

基于桌面的多功能万年历设计与开发摘要:描述了基于桌面多功能万年历的设计与开发过程,利用软件工程思想对软件进行分析与设计,除了实现多功能万年历的基本功能,同时也实现了时间的多种显示及日期的备忘录功能。

在对系统进行分析时使用自上而下、逐层分析的方法,所实现的多功能万年历界面美观,使用方便。

关键词:多功能万年历;sa;sd;sp中图分类号:tp319 文献标识码:a 文章编号:16727800(2013)0020072020 引言随着计算机技术的发展,万年历已成为一种使用非常广泛的工具。

当前互联网上有很多万年历软件,但大多数基于桌面的万年历的功能都比较单一,用户的交互性差,不能很好地适应用户需求。

因此,开发一款迎合广大用户需求、交互性能好、功能齐全的桌面万年历尤为必要。

1 技术路线结构化分析方法简单,容易掌握,而且还能和设计阶段的结构化设计衔接,从而取得良好的设计结果。

分解和抽象是系统开发中控制复杂性的基本手段,它先将系统“抽象”成一个模型,然后对模型进行逐层分解,直到能被理解、可以实现为止。

因此,分析的策略是自顶向下、逐层分解、由抽象到具体的过程。

1.1 系统设计基本方法本系统基于mfc的dialog based对话框进行界面设计与编程,在对该软件进行系统分析和界面设计的基础上,利用panel、combo、edit等组件进行界面的开发。

在程序中主要调用系统时间,利用系统时间来计算时钟显示时针、分针、秒针的位置。

它具有以下特点:(1)封装性: mfc类库是由mfc框架构成的。

这些类有的封装了win32应用程序编程接口,有的封装了应用程序的概念,还有的封装了ole特性,或者封装了odbc和dao数据访问功能。

(2)继承性:mfc将众多类的共同特性抽象出来,设计出一些基类作为实现其它类的基础。

其中,cobject和ccmdtarget是这些类中最重要的。

(3)虚拟函数和动态约束: mfc建立了消息映射机制,而消息映射机制使其用富有效率、便于使用的手段解决消息处理函数的动态约束问题。

桌面日历系统的设计与实现

桌面日历系统的设计与实现

桌面日历系统的设计与实现摘要自上个世纪以来,随着电脑的慢慢普及,人们的工作和生活愈来愈方便和快捷,也使愈来愈多的人依托于电脑办公。

而传统的日程记事本慢慢显现出在现今时期的不足和局限性,比如不便携带、不便查阅、不能自动提示等等,电脑桌面日历由此孕育而生。

专门快,桌面日历就以其方便的日期查询、个性化的日程安排、精准的闹钟提示与配套的日记系统、美观的界面设计,受到广大电脑办公者的喜爱。

本设计确实是针对当前网络上众多的桌面日历,综合其各项大体功能来开发一套属于自己的个性化日历日记系统。

本设计要紧采纳C#+SQL的C/S设计模式,来实现不同用户的登录、日程编辑、日程提示、日期查询、节假日治理等工作。

方便了利用者对每日行程的把握,也爱惜了各利用者之间的私人信息。

本设计依照功能模块分为用户登录模块、用户注册、日历和时刻模块、节假日模块、日程行程模块、自动提示模块、数据库模块。

本文详细地介绍了该日历日程系统的功能需求、系统设计和具体实现。

并简要介绍了系统开发采纳的进程及方式。

关键词:桌面日历;日程;多用户系统需求分析用户需求该系统的用户要紧分为三种:未登录用户、登录用户、治理员。

未登录用户只能查看日历主界面和注册模块,登录用户能够利用除删除用户和修改其他用户之外功能,治理员能够利用该桌面日历所有功能。

登录用户和系统治理员都是通过密码验证登录,当角色操作完成后点击“注销”或“退出”按钮退出登录状态。

功能需求系统功能模块要紧包括以下几个方面:1,用户注册模块;2,登录模块;3,日记提示模块;4,节假日模块;5,日历主模块;6,用户信息、节假日信息和日记信息都保留在数据库模块中.以下依照不同的用户对具体功能进行描述:未登录用户未登录用户运行该系统后进入日历主界面,能够查看日历信息,能够查看当前的系统时刻,当点击日历上某一天时能够查看该天是不是是已设置的节假日。

用户当点击“日记记录”或“节日设置”的时候,系统提示对话框显示“该用户为未登录用户”,点击确信按钮后进入登录界面,输入账号和密码后实现用户登录。

桌面电子日历制作

桌面电子日历制作

软件类设计实训———电子日历软件设计作者:学号:学院:自动化工程学院班级:院系:自动化工程学院专业:自动化指导者:年月吉林摘要本次课设是设计一个桌面日历,要求能实现以数字形式显示日期和时间并能对时间进行修改和调整功能。

因此首先需要显示日历,从系统中获取时间进行初始化;然后按要求进行显示,再通过软件进行时间修改,将修改过的时间进行保存,使时间能够在修改过后自主进行计时。

在修改时间时,不能同时对时分秒中的任意两个或三个进行修改,当输入值不在正常范围值时,软件会自主进行报错。

同时,本软件也能实现日期的查询与调整。

同样地,不能同时对年月日中的任意两个或三个进行修改,当输入值不在正常范围值之内时,软件会弹出对话框进行报错。

由于本设计是由C++builder软件设计的,程序部分看起来会比较简单;但由于C++builder中组件属性值要求的类型是固定的,所以在调试过程中曾出现大量错误和漏洞。

因此一些看似不必要的程序势必不可少的。

关键字:C++builder,万年历,C语言目录第1章绪论 (3)1.1 设计目的 (3)1.2 设计内容和要求 (3)1.3 设计工作任务及工作量的要求 (3)第2章设计思路及程序流程 (4)2.1 总设计思路与总流程图 (4)2.1.1 总设计思路 (4)2.1.2 总流程图 (4)2.2 模块流程图及程序介绍 (6)2.2.1 时间的获取 (6)2.2.2 检查时间正确性 (7)2.2.3 日期及时间的更新 (10)2.2.4 时间及日期的修改 (12)第3章部分补丁程序简介 (13)3.1 多个输入框不能同时为空 (13)3.2 不同时间段时间获取 (14)第4章软件操作说明 (16)4.1 按键简介 (17)4.1.1 今天按键 (17)4.1.2 修改按键 (17)4.1.3 上取消按键 (17)4.1.4 下取消按键 (17)4.2 输入框简介 (17)第4章心得体会 (18)参考文献 (18)附录 (19)第1章绪论1.1设计目的本次实训是自动化(卓越班)专业重要的实践性环节之一,是在学生学习完程序设计类课程后进行的一次全面的综合实践。

Java课程设计报告——桌面日历

Java课程设计报告——桌面日历

Java课程设计报告——桌面日历目录一、需求分析 (2)二、概要设计 (3)三、详细设计 (4)四、调试分析 (9)五、用户说明 (9)六、运行结果 (10)七、附录 (10)一、需求分析选题意义:自上世纪以来,随着电脑的逐渐普及,人们的工作和生活越来越方便和快捷,也使越来越多的人依赖于电脑办公。

而传统的日历记事本显现出在当今时代的不足和局限性,比如不便携带、不便查找、不能自动提醒等等,电脑桌面日历由此孕育而生。

本设计就是针对当前网络上众多的桌面日历,综合其各项基本功能来开发一套属于自己的个性化日历系统。

本设计主要采用NetBeans开发平台,通过java语言来实现记事,日期查询以及日志提醒等工作。

为客户带来方便,同时系统的阐述开发采用的过程及方法。

功能实现:1、通过标签类jLabel显示日、月,程序主体框架。

2、通过按钮类jPanelButton,▲和▼调整年份通过代码“\u25C4”和“"\u25BA"”调整月份。

3、添加鼠标事件,键盘事件,分别可以通过按钮和键盘输入调整显示日期。

4、程序通过读取计算机当前日期,显示当前日期二、概要设计1、取得月份天数private JToggleButton cur=null;//月份天数数组,用来取得当月有多少天// 1 2 3 4 5 6 7 8 9 10 11 12private int[] mm={31,28,31,30,31,30,31,31,30,31,30,31}; //空日期构造函数2、带日期设置的构造函数public JCalendar() {try {jbInit();}catch(Exception e) {e.printStackTrace();}}//带日期设置的构造函数3、带日历输入的构造函数public JCalendar(int year, int month, int day) {cal.set(year, month, day);try {jbInit();}catch (Exception e) {e.printStackTrace();}}//带日历输入的构造函数4、带日期输入的构造函数public JCalendar(GregorianCalendar calendar) {cal=calendar;try {jbInit();}catch (Exception e) {e.printStackTrace();}}//带日期输入的构造函数5、初始化组件public JCalendar(Date date) {cal.setTime(date);try {jbInit();}catch (Exception e) {e.printStackTrace();}}//初始化组件三、详细设计部分代码void jPanelButtonComponentResized(ponentEvent evt){ YearUp.setLocation(0,0);YearDown.setLocation(0,YearUp.getHeight());jPanelButton.setSize(YearUp.getWidth(),YearUp.getHeight()*2); jPanelButton.setPreferredSize(newDimension(YearUp.getWidth(),YearUp.getHeight()*2));jPanelButton.updateUI();}//测试用public static void main(String[] args){JFrame f=new JFrame();f.setContentPane(new JCalendar());f.pack();//f.setResizable(false);f.show();}//增加年份void YearUp_actionPerformed(ActionEvent e) {year++;showYear();showDate();showDays();}//减少年份void YearDown_actionPerformed(ActionEvent e) {year--;showYear();showDate();showDays();}//减少月份void MonthDown_actionPerformed(ActionEvent e) {month--;if(month<0) {month = 11;year--;showYear();}showMonth();showDate();showDays();}//增加月份void MonthUp_actionPerformed(ActionEvent e) {month++;if(month==12) {month=0;year++;showYear();}showMonth();showDate();showDays();}//初始化年月日void iniCalender(){year=cal.get(Calendar.YEAR);month=cal.get(Calendar.MONTH);day=cal.get(Calendar.DAY_OF_MONTH);}//刷新月份void showMonth(){Month.setText(Integer.toString(month+1)+"月");}//刷新年份void showYear(){Year.setText(Integer.toString(year)+"年");}//刷新日期void showDate(){Out.setText(Integer.toString(year)+"-"+Integer.toString(month+1)+"-"+In teger.toString(day));}//重画天数选择面板void showDays() {cal.set(year,month,1);int firstDayOfWeek = cal.get(Calendar.DAY_OF_WEEK); int n=mm[month];if(cal.isLeapYear(year)&&month==1) n++;int i=0;for(;i<firstDayOfWeek-1;i++){days[i].setEnabled(false);days[i].setSelected(false);days[i].setText("");}int d=1;for(;d<=n;d++){days[i].setText(Integer.toString(d));days[i].setEnabled(true);if(d==day) days[i].setSelected(true);else days[i].setSelected(false);;i++;}for(;i<42;i++){days[i].setEnabled(false);days[i].setSelected(false);days[i].setText("");}}//单击年份面板选择整个年份字符串void SelectionYear(){Year.setSelectionStart(0);Year.setSelectionEnd(Year.getText().length());}//单击月份面板选择整个月份字符串void SelectionMonth(){Month.setSelectionStart(0);Month.setSelectionEnd(Month.getText().length());}//月份面板响应鼠标单击事件void Month_mouseClicked(MouseEvent e) {//SelectionMonth();inputMonth();}//检验输入的月份void inputMonth(){String s;if(Month.getText().endsWith("月")){s=Month.getText().substring(0,Month.getText().length()-1); }else s=Month.getText();month=Integer.parseInt(s)-1;this.showMe();}//月份面板键盘敲击事件响应void Month_keyPressed(KeyEvent e) {if(e.getKeyChar()==10)inputMonth();}//年份面板响应鼠标单击事件void Year_mouseClicked(MouseEvent e) {//SelectionYear();inputYear();}//年份键盘敲击事件响应void Year_keyPressed(KeyEvent e) {//System.out.print(new Integer(e.getKeyChar()).byteValue()); if(e.getKeyChar()==10)inputYear();}//检验输入的年份字符串void inputYear() {String s;if(Year.getText().endsWith("年")){s=Year.getText().substring(0,Year.getText().length()-1);}else s=Year.getText();year=Integer.parseInt(s);this.showMe();}//以字符串形式返回日期,yyyy-mm-ddpublic String getDate(){return Out.getText();}//以字符串形式输入日期,yyyy-mm-ddpublic void setDate(String date){if(date!=null){StringTokenizer f = new StringTokenizer(date, "-");if(f.hasMoreTokens())year = Integer.parseInt(f.nextToken());if(f.hasMoreTokens())month = Integer.parseInt(f.nextToken());if(f.hasMoreTokens())day = Integer.parseInt(f.nextToken());cal.set(year,month,day);}this.showMe();}//以日期对象形式输入日期public void setTime(Date date){cal.setTime(date);this.iniCalender();this.showMe();}//返回日期对象public Date getTime(){return cal.getTime();} //返回当前的日public int getDay() {return day;}//设置当前的日public void setDay(int day) {this.day = day;cal.set(this.year,this.month,this.day); this.showMe();}//设置当前的年public void setYear(int year) {this.year = year;cal.set(this.year,this.month,this.day); this.showMe();}//返回当前的年public int getYear() {return year;}//返回当前的月public int getMonth() {return month;}//设置当前的月public void setMonth(int month) {this.month = month;cal.set(this.year,this.month,this.day); this.showMe();}//刷新public void showMe(){this.showDays();this.showMonth();this.showYear();this.showDate();}}public class TestJCalendar {public static void main(String[] args) {JFrame f=new JFrame();f.setContentPane(new JCalendar());f.pack();//f.setResizable(false);f.show();}}四、调试分析1、程序调试初期,按钮无法调整程序日期,后重写Year_mouseClicked(MouseEvent e)添加void showYear()使得功能得以完善。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java语言开发一个GUI程序,需要用到组件、容器、布局 管理器和事件处理程序4种基本元素
本次毕设AWT和SwingGUI都有涉及。包括:AWT包和事件 模型、常用的AWT包中的容器组件和控件组件以及布局 管理器,和Swing包中的组件类。
5.研究方法
通过对人们日常生活和工作的安排,分析形成基础报告, 参考现有的桌面日历系统寻找不足,同时查阅中国的历 法,完成分析需求,编程采用MVC设计模式,将模型、 视图、控制器分开,降低耦合度。
7.系统总功能模块图
8.系统的接口实现方案
系统实现了ActionListener和MouseListener接口。
ActionListener用于接收操作事件的侦听器接口。对处理 操作事件感兴趣的类可以实现此接口,而使用该类创建 的对象可使用组件的 addActionListener 方法向该组件注 册。在发生操作事件时,调用该对象的 actionPerformed 方法。
2
2.研究内容
桌面日历系统基于对现实生活中人们对工作和生活日常 安排的分析,以记录和标注在一定的时间内的工作日程, 特殊日期,假期等。经过计划标注后可以在日期之前或 者当日提醒使用者,可以解决事物的计划安排,不会忘 记特殊的日期,进一步的提高了人们的生活水平和生活 质量。以下是本研究的主要内容、能在手机系统中经常见,但在电脑 上很少有,这对于办公的人来说就有一些不便。例如人在非常 忙的时候经常会忘记日常定点工作,这个时候有了日历系统的 闹铃功能,就能轻松解决。用户可以设置很多闹铃,提示的方 式可以是音乐,如果音乐不方便,也可以使用弹窗的方式。还 有一个皮肤功能也是有一些新意的,人在长时间看一些东西的 时候会产生视觉疲劳,工作的精神也会受到影响,这个时候换 一种自己喜欢的界面皮肤,或许会让人感觉格外清新,从而带 动工作的积极性,提高工作效率。
2020.1:完成相应的功能设计文档。
2020.2:根据项目功能需求文档说明书,完成界面开发。
2020.3:完成系统的日程安排,特殊日期提醒等相关功能 模块开发。
2020.4:完成系统设计与功能检测,撰写论文,形成初稿, 交指导老师审阅。
2020.5:根据指导老师的意见修改完成,制作终期答辩的 PPT,并且准备参加答辩。
桌面日历系统的设计与实现
作者:
1.选题背景和意义
1.1 背景 随着电脑越来越多的渗入到人们的生活,人们对电脑的
依赖也是越来越明显,为了方便人的生活和办公,对软 件的要求也是提高了很多。方便、人性的软件应运而生。 1.2 意义 日历在人们的生活中不可或缺,那么便捷,功能丰富的 日历系统也就很有必要。本次毕设就是为了创造一个实 用,功能丰富的日历系统,来提高人们的生活和办公质 量。而且我在原来比较古板的日历系统里,增加了计算 器和闹铃等附加功能,让它的使用价值和综合性增强。
a Hybrid Exponential Smoothing and Calendar Variation Model[J]. Journal of Physics Conference Series,2018, 979(1):012096. [13]La-Mei S U . Achieve Development of Calendar and Notepad in Java[J]. Computer Knowledge and Technology,2010. [14]徐洪位. 关于Java8 AbstractChronology接口的使用方法[J]. 科教导刊(上旬刊),2018,355(11):40-41. [15]高子熙,郑茗骞,刘伟城,et al. 基于日历的个人能力分析的设计及实现[J]. 科技创新导报,2016(26).
9.创新之处
最大创新在于它的功能丰富多样化,添加了菜单模块,通过点 击菜单相应的功能选项可以实现用户所需功能,例如计算器、 时钟、闹铃、和换皮肤功能。这些小小的看起来不起眼的功能, 却从细微处帮助了用户,让用户不需要借助外部设备,而只需 要在自己的电脑上就可以轻松实现。在实现了查看日期信息的 同时,也提高了它的价值和综合性,真正达到了为用户提供方 便,为办公人员提高效率的好处,我相信从这些方面出发,才 会从各个日历系统中脱颖而出。
(1)引入研究的背景,并综述日程安排有关问题。 (2)通过对人们生活和工作习惯,确定人们怎么样使用
日历。 (3)对日的功能为:用户登录,日程编排,日程提醒,
日期查询,节假日管理。 (4)结合客户端界面开发和数据库,基于C/S结构的应
用程序开发系统,由Java Swing+Mysql实现。客户端程序 由Eclipse制作,用于与用户交互;后台数据库使用 Mysql5.5,由带有逻辑结构关联的表组构成。
2020.6:继续完成对论文的后期修改,并且进行最终打印。
12.参考文献
[1] 张培瑜 / 陈美东 / 薄树人 / 胡铁珠 . 中国古代历法 2008-3-1 [2] 张闻玉. 古代天文历法讲座 2008-1-1 [3] 沈志忠. 二十四节气形成年代考 南京农业大学人文学院 [2006]4号 [4] 王荣荣. 二十四节气融入幼儿园课程的行动研究[D];西南大学;2011年 [5] 吉顺平. 陇东时令节气农谚与农耕生产探微[J];山西农业大学学报(社会科学版);2011年09期 [6]苏黎. 桌面日历让Outlook日程明明白白[J]. 软件指南,2003(2):21-21. [7]伊利贵. Linux企业桌面应用:日历及日程安排[J]. 开放系统世界,2003(1):39-40. [8]林楚. 电脑桌面日历[J]. 学生天地:初中版,2010(7):30-31. [9]onfabulator桌面软件管理器令你的桌面更酷[J]. 大众电脑,2005(1):79-79. [10]东力. 历历在幕——定制活动的日历桌面[J]. 新潮电子,1998(9):61-62. [11]Susanti A ,Suhartono, Setyadi H J ,et al. Forecasting Inflow and Outflow of Money Currency in East Java [12]Using
10.预期结果
桌面日历系统基于Java Gui来实现为用户提供方便快捷的、 准确的日历时间信息,以便用户能够迅速的查找出自己 所需的相关的日历信息。
可以任意选择一种时间内的某个年月份进行查询,对相 关的日历信息进行公历和农历的换算显示,显示相应的 日期的节日信息等。
11.进度安排
2019.12:完成数据库,分析,设计,实现,测试相关功 能。
3.开发工具及技术
开发工具:Windows10+Eclipse+MySQL
然后这次毕设主要用的技术就是java的gui编程技术。通 过Gui的丰富的布局,如:BorderLayout、GridLayout、 FlowLayout等,让整个系统的界面看起来丰富整齐,把各 个模块都划分的井井有条,首先给了用户视觉的美感。 主要是通过SimpleDateFormat类来获取当前系统的时间来 实现日期查询--日历系统的基本功能,主要是通过年份和 月份俩个下拉列表框来控制用户要查询的具体年月份; 然后通过相应的公历和农历算法在界面显示出对应日期 的农历日期。
4.Gui编程技术介绍
图形用户界面(gui)是程序的一种图示界面。优秀的gui 通过给程序提供一致的外观和直观的控件(例如按钮、 滑动块、下拉列表、菜单等), 使得程序使用起来非常容易。Java API包含俩种不同类型 的图形用户界面,“老的gui”通常称为抽象窗口工具包 (AWT)GUI,它是在Java SDK 1.0中引入的。“新的GUI” 称为Swing GUI,从Java2开始,它以称为JavaSDK的一部分。 SwingGUI是在老的AWTGUI基础上构建的类。他相对于 AWTGUI来说,速度更快,更具有灵活性。
6.设计的总体思想与算法描述
依据查询需求分析,桌面日历系统主要可以分为以下几 个模块:用户查询主界面设计模块,用户输入查询日历 模块,公历与农历日期信息转换模块,相应日期节日信 息显示模块和查询主界面效果更换模块,菜单模块。主要 的算法有农历和公历的算法,公历日期号与星期的求解 算法,相应节日信息的生成算法,界面换肤算法,实时 日期显示算法等。系统总功能模块图如下:
MouseListener旨在处理鼠标事件的类要么实现此接口 (及其包含的所有方法),要么扩展抽象类 MouseAdapter(仅重写所需的方法)。 然后使用组件的 addMouseListener 方法将从该类所创建的侦听器对象向该 组件注册。当按下、释放或单击(按下并释放)鼠标时 会生成鼠标事件。鼠标光标进入或离开组件时也会生成 鼠标事件。发生鼠标事件时,将调用该侦听器对象中的 相应方法,并将 MouseEvent 传递给该方法。
相关文档
最新文档