C语言实现万年历记事本,万年历记事本.doc

万年历记事本

学号

《》

课程设计报告

万年历记事本专业:计算机科学与技术班级:13计科2班姓名:鲍超指导教师:江涛成绩:

计算机学院

2016年4月12日目 录

1设计内容及要求1

1.1概述1

1.2主要功能1

1.3目的和要求2

2概要设计2

2.1软件结构2

2.2主要功能模块3

2.3程序流程框图4

3设计过程或程序代码5

4设计结果与分析17

5参考文献20

6小结20

1设计内容

本软件定义了两个包,其中一个包是cn.webbc.wnl,这个包放置的类是窗口Main类,还有一个包就是cn.webbc.wnl.utils,这个包放置的都是工具类,这个包中有两个类,其中CalendarUtils是关于日历操作的工具类,IOUtils类是关于操作文件的工具类。下图是包的结构图。

图1 包结构图

2.2主要功能模块

1、Main方法:创建窗口对象,并调用窗口对象的初始化方法

2、窗口初始化方法:包括初始化数据、对当前窗口进行测量、设置窗口布局策略、初始化标题栏、初始化星期条、初始化显示日历的网格条、初始化记事本布局、绑定监听器、显示窗口、判断今天是否要显示提醒等小模块

3、初始化数据方法:通过之前定义的工具包下的CalendarUtils类来获取指定月份的天数、指定年份和月份本月的第一天

图2 软件执行流程图

3设计过程或程序代码

1、Main方法

public static void main(String[] args) {

Main main = new Main();// 创建一个窗口对象

main.init();// 调用窗口对象的初始化方法

}

2、窗口初始化方法

public void init() {

initData();// 初始化数据

onMeasure();// 对当前窗口进行测量

onLayout();// 对窗口设置布局策略

initTitleBar();// 初始化标题栏

initWeekBar();// 初始化星期条

initCalendarGrid();// 初始化显示日历的网格条

initTextAreaLayout();// 初始化记事本布局

initListener();// 绑定监听器

showWindow();// 显示窗口

todayHaveTip();// 判断今天是否有提醒

}

3、初始化数据方法

private void initData() {

// 根据年份和月份判断本月的第一天是星期几

firstDayOfWeek = CalendarUtils.getDayOfWeek(year, month);

// 根据年份和月份判断这个月多少天

totalDays = CalendarUtils.getTotalDays(year, month);

}

4、测量窗口

private void onMeasure() {

setSize(700, 450);// 设置窗口大小

// 获取屏幕尺寸

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

// 设置窗口的位置为屏幕的正中央

setLocation((int) (screenSize.getWidth() - getWidth()) / 2,

(int) (screenSize.getHeight() - getHeight()) / 2);

}

5、定义布局策略

private void onLayout() {

setLayout(null);// 设置宽口的布局策略为绝对布局

}

初始化标题栏

private void initTitleBar() {

// 创建今天日期的显示条

JPanel datePanel = new JPanel();// 创建容器

String today = String.format(

"%4d年%2d月%2d日 ",

currentDate.get(Calendar.YEAR),

currentDate.get(Calendar.MONTH) + 1,

currentDate.get(Calendar.DAY_OF_MONTH));// 获取今天的日期

JLabel jlToday = new

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值