当前位置:文档之家› 日历记事本201120460217

日历记事本201120460217

日历记事本201120460217
日历记事本201120460217

《JAVA程序设计》

课程设计报告

专业:信息管理与信息系统

班级:1124602

学号:2

姓名:邹玮

指导教师:姜俊坡

2018.01.11

目录

1.可行性分析 (2)

2.需求分析功能 (2)

3.课程设计 (2)

4. 编码 (3)

5. 系统验证 (21)

6.总结 (21)

1.可行性分析

1.学习Java程序开发的环境搭建与配置,并且在实际运用中学习和和掌握Java程序开发的过程

2.通过课程设计进一步掌握Java程序设计语言的基础内容,如用户图形界面设计等

3.通过亲自设计,编写,调试程序来扩展知识面和动手操作能力

2.需求分析功能

设计一个日历记事本.具体要求如下:

1.可以设置日历的日期

2. 可以判断当前日期是否有日志记录

3. 对有日志记录的日期,可以对该日期的日志记录进行修改和删除

4. 对没有日志记录的日期,可以创建并保存新建的日志记录

3.课程设计

表1 日历记事本系统主面板与日历板模块(CalendarPad.java>

表2 日历记事本系统年设置模块(Year.java>

表3 日历记事本系统月设置模块(Month.java>

表4 日历记事本系统记事本模块(NotePad.java>

4.编码

1.日历记事本系统主面板与日历板模块(CalendarPad.java> 该模块设计主要主要包含以下成员变量:

年(year>

月(month>

日(day>

存放日期的表(Hashtable>

存放日志的文件(File>

主要方法有:

创建程序主面板的构造方法

处理ActionEvent事件的接口方法

程序开始运行的main<)方法。

实现编码如下:

import java.util.Calendar。

import javax.swing.*。

import java.awt.*。

import java.awt.event.*。

import java.io.*。

import java.util.Hashtable。

public class CalendarPad extends JFrame implements MouseListener

int year,month,day。

Hashtable hashtable。

File file。

JTextField showDay[]。

JLabel title[]。

Calendar 日历。

int 星期几。

NotePad notepad=null。

Month 负责改变月。

Year 负责改变年。

String 星期[]=

{"SUN","MON","TUE","WED","THU","FRI","SAT"}。

JPanel leftPanel,rightPanel。

public CalendarPad(int year,int month,int day>

leftPanel=new JPanel(>。

JPanel leftCenter=new JPanel(>。

JPanel leftNorth=new JPanel(>。

leftCenter.setLayout(new GridLayout(7,7>>。

rightPanel=new JPanel(>。

this.year=year。

this.month=month。

this.day=day。

负责改变年=new Year(this>。

负责改变年.setYear(year>。

负责改变月=new Month(this>。

负责改变月.setMonth(month>。

title=new JLabel[7]。

showDay=new JTextField[42]。

for(int j=0。j<7。j++>

title[j]=new JLabel(>。

title[j].setText(星期[j]>。

title[j].setBorder(BorderFactory.createRaisedBevelBorder(>>。

leftCenter.add(title[j]>。

}

title[0].setForeground(Color.red>。

title[6].setForeground(Color.blue>。

for(int i=0。i<42。i++>

showDay[i]=new JTextField(>。

showDay[i].addMouseListener(this>。

showDay[i].setEditable(false>。

leftCenter.add(showDay[i]>。

}

日历=Calendar.getInstance(>。

Box box=Box.createHorizontalBox(>。

box.add(负责改变年>。

box.add(负责改变月>。

leftNorth.add(box>。

leftPanel.setLayout(new BorderLayout(>>。

leftPanel.add(leftNorth,BorderLayout.NORTH>。

leftPanel.add(leftCenter,BorderLayout.CENTER>。

leftPanel.add(new Label("请在年份输入框输入所查年份

(负数表示公元前>,并回车确定">,BorderLayout.SOUTH>。

leftPanel.validate(>。

Container con=getContentPane(>。

JSplitPane split=new

JSplitPane(JSplitPane.HORIZONTAL_SPLIT,leftPanel,rightPanel>。

con.add(split,BorderLayout.CENTER>。

con.validate(>。

hashtable=new Hashtable(>。

file=new File("日历记事本.txt">。

if(!file.exists(>>

try

FileOutputStream out=new FileOutputStream(file>。

ObjectOutputStream objectOut=new ObjectOutputStream(out>。

objectOut.writeObject(hashtable>。

objectOut.close(>。

out.close(>。

}

catch(IOException e>

}

}

notepad=new NotePad(this>。

rightPanel.add(notepad>。

设置日历牌(year,month>。

addWindowListener(new WindowAdapter(>

public void windowClosing(WindowEvent e>

System.exit(0>。

}

}>。

setVisible(true>。

setBounds(100,50,524,285>。

validate(>。

}

public void 设置日历牌(int year,int month>

日历.set(year,month-1,1>。

星期几=日历.get(Calendar.DAY_OF_WEEK>-1。

if(month==1||month==2||month==3||month==5||month==7||month==8|| month==10||month==12>

排列号码(星期几,31>。

}

else

if(month==4||month==6||month==9||month==11>

排列号码(星期几,30>。

}

else if(month==2>

if((year%4==0&&year%100!=0>||(year%400==0>>

排列号码(星期几,29>。

}

else

排列号码(星期几,28>。

}

}

}

public void 排列号码(int 星期几,int 月天数>

for(int i=星期几,n=1。i<星期几+月天数。i++>

showDay[i].setText(""+n>。

if(n==day>

showDay[i].setForeground(Color.green>。

showDay[i].setFont(new Font("TimesRoman",Font.BOLD,20>>。

}

else

showDay[i].setFont(new Font("TimesRoman",Font.BOLD,12>>。

showDay[i].setForeground(Color.black>。

}

if(i%7==6>

showDay[i].setForeground(Color.blue>。

}

if(i%7==0>

showDay[i].setForeground(Color.red>。

}

n++。

}

for(int i=0。i<星期几。i++>

showDay[i].setText("">。

}

for(int i=星期几+月天数。i<42。i++>

showDay[i].setText("">。

}

}

public int getYear(>

return year。

}

public void setYear(int y>

year=y。

notepad.setYear(year>。

}

public int getMonth(>

return month。

}

public void setMonth(int m>

month=m。

notepad.setMonth(month>。

}

public int getDay(>

return day。

}

public void setDay(int d>

day=d。

notepad.setDay(day>。

}

public Hashtable getHashtable(>

return hashtable。

}

public File getFile(>

return file。

}

public void mousePressed(MouseEvent e>

JTextField source=(JTextField>e.getSource(>。

try

day=Integer.parseInt(source.getText(>>。

notepad.setDay(day>。

notepad.设置信息条(year,month,day>。

notepad.设置文本区(null>。

notepad.获取日志内容(year,month,day>。

}

catch(Exception ee>

}

}

public void mouseClicked(MouseEvent e>{}

public void mouseReleased(MouseEvent e>{}public void mouseEntered(MouseEvent e>{}

public void mouseExited(MouseEvent e>{}

public static void main(String args[]>

Calendar calendar=Calendar.getInstance(>。

int y=calendar.get(Calendar.YEAR>。

int m=calendar.get(Calendar.MONTH>+1。

int d=calendar.get(Calendar.DAY_OF_MONTH>。

new CalendarPad(y,m,d>。

}

}

2.日历记事本系统年设置模块(Year.java>

该模块用于实现日历记事本系统中关于年的设置

模块中包含的主要成员变量有用于改变年的按钮(Jbutton 明年去年>,显示年的文本框(JTextField>

模块中包含的主要方法有用于设置年的方法(setYear>,用于获取年的方法(getYear>和处理ActionEvent事件的接口方法(actionPerformed>等实现编码如下:

import javax.swing.*。

import java.awt.*。

import java.awt.event.*。

public class Year extends Box implements ActionListener

int year。

JTextField showYear=null。

JButton 明年,去年。

CalendarPad 日历。

public Year(CalendarPad 日历>

{super(BoxLayout.X_AXIS>。

showYear=new JTextField(4>。

showYear.setForeground(Color.blue>。

showYear.setFont(new Font("TimesRomn",Font.BOLD,14>>。

this.日历=日历。

year=日历.getYear(>。

明年=new JButton("下年">。

去年=new JButton("上年">。

add(去年>。

add(showYear>。

add(明年>。

showYear.addActionListener(this>。

去年.addActionListener(this>。

明年.addActionListener(this>。

}

public void setYear(int year>

this.year=year。

showYear.setText(""+year>。

}

public int getYear(>

return year。

}

public void actionPerformed(ActionEvent e>

if(e.getSource(>==去年>

year=year-1。

showYear.setText(""+year>。

日历.setYear(year>。

日历.设置日历牌(year,日历.getMonth(>>。

}

else if(e.getSource(>==明年>

year=year+1。

showYear.setText(""+year>。

日历.setYear(year>。

日历.设置日历牌(year,日历.getMonth(>>。

}

else if(e.getSource(>==showYear>

try

year=Integer.parseInt(showYear.getText(>>。

showYear.setText(""+year>。

日历.setYear(year>。

日历.设置日历牌(year,日历.getMonth(>>。

}

catch(NumberFormatException ee>

showYear.setText(""+year>。

日历.setYear(year>。

日历.设置日历牌(year,日历.getMonth(>>。

}

}

}

}

3.日历记事本系统月设置模块(Month.java>

该模块用于实现日历记事本系统中关于月的设置

模块中包含的主要成员变量有用于改变月的按钮(Jbutton 上月下月>,显示月的文本框(JTextField>

模块中包含的主要方法有用于设置月的方法(setMonth>,用于获取月的方法(getMonth>和处理ActionEvent事件的接口方法(actionPerformed>等实现编码如下:

import javax.swing.*。

import java.awt.*。

import java.awt.event.*。

public class Month extends Box implements ActionListener

int month。

JTextField showMonth=null。

JButton 下月,上月。

CalendarPad 日历。

public Month(CalendarPad 日历>

super(BoxLayout.X_AXIS>。

this.日历=日历。

showMonth=new JTextField(2>。

month=日历.getMonth(>。

showMonth.setEditable(false>。

showMonth.setForeground(Color.blue>。

showMonth.setFont(new Font("TimesRomn",Font.BOLD,16>>。

下月=new JButton("下月">。

上月=new JButton("上月">。

add(上月>。

add(showMonth>。

add(下月>。

上月.addActionListener(this>。

下月.addActionListener(this>。

showMonth.setText(""+month>。

}

public void setMonth(int month>

if(month<=12&&month>=1>

this.month=month。

}

else

this.month=1。

}

showMonth.setText(""+month>。

}

public int getMonth(>

return month。

}

public void actionPerformed(ActionEvent e> {

if(e.getSource(>==上月>

if(month>=2>

month=month-1。

日历.setMonth(month>。

日历.设置日历牌(日历.getYear(>,month>。

}

else if(month==1>

month=12。

日历.setMonth(month>。

日历.设置日历牌(日历.getYear(>,month>。

}

showMonth.setText(""+month>。

}

else if(e.getSource(>==下月>

if(month<12>

month=month+1。

日历.setMonth(month>。

日历.设置日历牌(日历.getYear(>,month>。

}

else if(month==12>

month=1。

日历.setMonth(month>。

日历.设置日历牌(日历.getYear(>,month>。

}

showMonth.setText(""+month>。

}

}

}

4.日历记事本系统记事本模块(NotePad.java>

该模块中包含的主要成员变量有文本框(JTextArea>,按钮(JButton 保存日志删除日志>,用于存放日志记录的文件(File>以及响应相关操作的信息提示(JLabel>

该模块中包含的主要方法有设置信息条,设置文本区,获取日志内容,保存日志,删除日志

实现编码如下:

import java.awt.*。

import java.awt.event.*。

import java.util.*。

import javax.swing.*。

import javax.swing.event.*。

import java.io.*。

public class NotePad extends JPanel implements ActionListener

JTextArea text。

JButton 保存日志,删除日志。

Hashtable table。

JLabel 信息条。

int year,month,day。

File file。

CalendarPad calendar。

public NotePad(CalendarPad calendar>

this.calendar=calendar。

year=calendar.getYear(>。

month=calendar.getMonth(>。

day=calendar.getDay(>。

table=calendar.getHashtable(>。

file=calendar.getFile(>。

信息条=new JLabel(""+year+"年"+month+"月"+day+"日

",JLabel.CENTER>。

信息条.setFont(new Font("TimesRoman",Font.BOLD,16>>。

信息条.setForeground(Color.blue>。

text=new JTextArea(10,10>。

保存日志=new JButton("保存日志">。

删除日志=new JButton("删除日志">。

保存日志.addActionListener(this>。

删除日志.addActionListener(this>。

setLayout(new BorderLayout(>>。

JPanel pSouth=new JPanel(>。

add(信息条,BorderLayout.NORTH>。

pSouth.add(保存日志>。

pSouth.add(删除日志>。

add(pSouth,BorderLayout.SOUTH>。

add(new JScrollPane(text>,BorderLayout.CENTER>。

}

public void actionPerformed(ActionEvent e>

if(e.getSource(>==保存日志>

保存日志(year,month,day>。

}

else if(e.getSource(>==删除日志>

删除日志(year,month,day>。

}

}

public void setYear(int year>

this.year=year。

}

public int getYear(>

return year。

}

public void setMonth(int month>

this.month=month。

}

public int getMonth(>

return month。

}

public void setDay(int day>

this.day=day。

}

public int getDay(>

return day。

}

public void 设置信息条(int year,int month,int day>

信息条.setText(""+year+"年"+month+"月"+day+"日">。}

public void 设置文本区(String s>

text.setText(s>。

}

public void 获取日志内容(int year,int month,int day>

String key=""+year+""+month+""+day。

try

FileInputStream inOne=new FileInputStream(file>。

ObjectInputStream inTwo=new

ObjectInputStream(inOne>。

table=(Hashtable>inTwo.readObject(>。

inOne.close(>。

inTwo.close(>。

}

catch(Exception ee>

{}

if(table.containsKey(key>>

String m=""+year+"年"+month+"月"+day+"这一天有日志记载,是否查看?"。

int ok=JOptionPane.showConfirmDialog(this,m,"询问",JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE>。

if(ok==JOptionPane.YES_OPTION>

text.setText((String>table.get(key>>。

}

else

text.setText("">。

}

}

else

text.setText("无记录">。

}

}

public void 保存日志(int year,int month,int day>

String 日志内容=text.getText(>。

String key=""+year+""+month+""+day。

String m=""+year+"年"+month+"月"+day+"保存日志吗?"。

int ok=JOptionPane.showConfirmDialog(this,m,"询问

",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE>。

if(ok==JOptionPane.YES_OPTION>

try

FileInputStream inOne=new

FileInputStream(file>。

ObjectInputStream inTwo=new ObjectInputStream(inOne>。

table=(Hashtable>inTwo.readObject(>。

inOne.close(>。

inTwo.close(>。

table.put(key,日志内容>。

FileOutputStream out=new

FileOutputStream(file>。

ObjectOutputStream objectOut=new ObjectOutputStream(out>。

objectOut.writeObject(table>。

objectOut.close(>。

out.close(>。

}

catch(Exception ee>

}

}

}

public void 删除日志(int year,int month,int day>

String key=""+year+""+month+""+day。

2020年1月 星期一星期二星期三星期四星期五星期六星期日 1元旦2腊八节3初九4初十5十一 6小寒7十三8十四9十五10十六11十七12十八 13十九14二十15廿一16廿二17小年18廿四19廿五 20大寒21廿七22廿八23廿九24除夕25春节26初二 27初三28初四29初五30初六31初七

2020年2月 星期一星期二星期三星期四星期五星期六星期日 1初八2湿地日 3初十4立春5十二6十三7十四8元宵节9十六 10十七11十八12十九13二十14情人节15廿二16廿三 17廿四18廿五19雨水20廿七21廿八22廿九23初一 24龙头节25初三26初四27初五28初六29初七

2020年3月 星期一星期二星期三星期四星期五星期六星期日30初七31初八1初八 2初九3初十4十一5惊蛰6十三7十四8妇女节 9十六10十七11十八12植树节13二十14廿一15消费者... 16廿三17廿四18廿五19廿六20春分21廿八22廿九 23三十24初一25初二26初三27初四28初五29初六

2020年4月 星期一星期二星期三星期四星期五星期六星期日 1愚人节2初十3十一4清明5十三 6十四7十五8十六9十七10十八11十九12二十 13廿一14廿二15廿三16廿四17廿五18廿六19谷雨 20廿八21廿九22地球日23初一24初二25初三26初四 27初五28初六29初七30初八

2020年5月 星期一星期二星期三星期四星期五星期六星期日 1劳动节2初十3十一 4五四青...5立夏6十四7十五8十六9十七10母亲节 11十九12护士节13廿一14廿二15廿三16廿四17廿五 18博物馆日19廿七20小满21廿九22三十23初一24初二 25初三26初四27初五28初六29初七30初八31初九

excel表格制作日历 2、同时选中B1、C1、D1单元格,按“格式工具栏上的“合并及居中按钮,将其合并成一个单元格,并输入公式:=TODAY()。 选中B1(合并后的)单元格,执行“格式→单元格命令,打开“单元格格式对话框,在“数字标签中的“分类下面选中“日期选项,再在右侧“类型下面选中“二○○一年三月十四日选项,“确定退出,将日期设置成中文形式。 注意:TODAY()函数用于提取当前系统日期,请将系统日期一定要调整准确哟。 3、选中F1单元格,输入公式:=IF(WEEKDAY(B1,2)=7,"日",WEEKDAY(B1,2));选中H1单元格,输入公式:=NOW()。 选中F1单元格,打开“单元格格式对话框,在“数字标签中的“分类下面选中“特殊选项,再在右侧“类型下面选中“中文小写数字选项,“确定退出,将“星期数设置成中文小写形式;选中H1单元格,打开“单元格格式对话框,在“数字标签中的“分类下面选中“时间选项,再在右侧“类型下面选中一款时间格式,“确定退出。 注意:①上述前面一个公式的含义是:如果(IF)当前日期(B1)是星期“7(WEEKDAY(B1,2)=7),则在F1单元格中显示“日,否则,直接显示出星期的数值(WEEKDAY(B1,2))。 ②上述第二个函数(NOW())用于提取当前系统日期和时间,也请将系统日期和时间调整准确。

4、在I1、I2单元格分别输入1900、1901,然后同时选中I1、I2单元格,用“填充柄向下拖拉至I151单元格,输入1900—2050年份序列。 同样的方法,在J1至J12单元格中输入1—12月份序列。 5、选中D13单元格,执行“数据→有效性命令,打开“数据有效性对话框(如图3),按“允许右侧的下拉按钮,选中“序列选项,在“来源下面的方框输入:=$I$1:$I$151,“确定退出。 同样的操作,将F15单元格数据有效性设置为“=$J$1:$J$12序列。 注意:经过这样的设置以后,当我们选中D15(或F15)单元格时,在单元格右侧出现一个下拉按钮,按此下拉按钮,即可选择年份(或月份)数值,快速输入需要查询的年、月值。 6、选中A2单元格(不一定非得是A2哟),输入公式:=IF(F13=2,IF(OR(D13/400=INT(D13/400),AND(D13/4=INT(D13/4),D13/100I NT(D13/100))),29,28),IF(OR(F13=4,F13=6,F13=9,F13=11),30,31)),用于获取查询“月份所对应的天数(28、29、30、31)。 注意:上述函数的含义是:如果查询“月份为“2月(F13=2)时,并且“年份数能被400整除[D13/400=INT(D13/400)],或者(OR)“年份能被4整除,但不能被100整除[AND(D13/4=INT(D13/4),D13/100INT(D13/100))],则该月为29天(也就是我们通常所说的“闰年),否则为28天。 如果“月份不是2月,但是“4、6、9、11月,则该月为30天。 其他月份天数为31天。

《面向对象程序设计》课程设计报告 题目:电子日历记事本的设计 院(系):信息科学与工程学院 专业班级:计算机科学与技术1201班 学生姓名:程伟 学号: 20121183011 指导教师:吴奕 20 14 年 12 月 29 日至20 15 年 1 月 9 日 华中科技大学武昌分校制 面向对象程序设计课程设计任务书

目录 1需求与总体设计 1 1.1需求分析 1 1.2总体设计思路 1 1.2.1功能图 1 1.2.2类图 2 2详细设计 (3) 2.1 CalendarPad类说明 3 2.2 Year类说明 3 2.3 Month 类模块 4 2.4 NotePad类说明 4 3编码实现 6 3.1 CalendarPad模块 6

3.2 Year模块 11 3.3 Month 模块 14 3.4 NotePad模块 16 4系统运行与测试 23 4.1程序主界面 23 4.2日志查看——无日志 23 4.3建立日志 24 4.4日志查看——有日志 24 4.5删除日志 26 总结 27 1需求与总体设计 1.1需求分析 根据题目要求,将日历与记事本功能相结合,实现对某日期的事件进行记录的功能,设计出简洁方便美观的GUI界面。 将本程序主界面可以分为四个部分:日历日期信息展示、年份、月份、记事本内容、记事本下方的时钟,用四个类来实现其“日历”和“记事本”这两大功能。通过主类CalendarPad创建动日历记事本软件的主界面,且该类中含有main

方法,程序从该类开始执行。再用余下的year、mouth、NotePad类来显示并改变日期和实现记事本的功能。 1.2总体设计思路 1. 可以编辑日历的日期 2. 可以判断当前日期是否存在日志记录 3. 对有日志记录的日期,可以对该日期的日志记录进行修改和删除 4. 对没有日志记录的日期,可以创建并保存新建的日志记录 5. 对保存的日志加密,查看时得输入密码 1.2.1功能图

两个实体类分别为Note和Month Note实体类如下: package com.wangjing.calendar.pojo; public class Note { private int num ; private int year; private int month; private int day; private String diary; public int getNum() { return num; } public void setNum(int num) { this.num = num; } public int getYear() { return year; } public void setYear(int year) { this.year = year; } public int getMonth() { return month; } public void setMonth(int month) { this.month = month; } public int getDay() { return day; } public void setDay(int day) { this.day = day; } public String getDiary() { return diary; } public void setDiary(String diary) { this.diary = diary;

} } Month类如下: package com.wangjing.calendar.pojo; public class Month { //??·Ymonthó?êy×?±íê? public static final int N_JANUARY = 1; public static final int N_FEBRUARY = 2; public static final int N_MARCH = 3; public static final int N_APRIL = 4; public static final int N_MAY = 5; public static final int N_JUNE = 6; public static final int N_JULY = 7; public static final int N_AUGUST = 8; public static final int N_SEPTEMBER = 9; public static final int N_OCTOBER = 10; public static final int N_NOVEMBER = 11; public static final int N_DECEMBER = 12; private int year; public Month(int year) { this.year = year; } //??·Yììêy private int D_JANUARY = 31; private int D_FEBRUARY = 28; private int D_MARCH = 31; private int D_APRIL = 30; private int D_MAY = 31; private int D_JUNE = 30; private int D_JULY = 31; private int D_AUGUST = 31; private int D_SEPTEMBER = 30; private int D_OCTOBER = 31; private int D_NOVEMBER = 30; private int D_DECEMBER = 31; public int getD_JANUARY() { return D_JANUARY; } public int getD_FEBRUARY() { if ((this.year % 4 == 0 && this.year % 100 != 0) || this.year % 400 == 0) {

2017年1月 星期日星期一星期二星期三星期四星期五星期六1元旦节2初五3初六4初七5腊八节6初九7初十 8十一9十二10十三11十四12十五13十六14十七15十八16十九17二十18廿一19廿二20小年21廿四22廿五23廿六24廿七25廿八26廿九27除夕28春节29初二30初三31初四

1初五2初六3立春4初八5初九6初十7十一8十二9十三10十四11元宵节12十六13十七14情人节15十九16二十17廿一18雨水19廿三20廿四21廿五22廿六23廿七24廿八25廿九26 2月大27初二28初三

1初四2初五3初六4初七5惊蛰6初九7初十8妇女节9十二10十三11十四12植树节13十六14十七15十八16十九17二十18廿一19廿二20春分21廿四22廿五23廿六24廿七25廿八26廿九27三十28 3月小29初二30初三31初四

1初五 2初六3初七4清明节5初九6初十7十一8十二9十三10十四11十五12十六13十七14十八15十九16二十17廿一18廿二19廿三20谷雨21廿五22廿六23廿七24廿八25廿九26 4月大27初二28初三29初四30初五

1劳动节2初七3初八4青年节5立夏6十一7十二8十三9十四10十五11十六12十七13十八14母亲节15二十16廿一17廿二18廿三19廿四20廿五21小满22廿七23廿八24廿九25三十26 5月小27初二28初三29初四30端午节31初六

1儿童节2初八3初九4初十5芒种6十二7十三8十四9十五10十六11十七12十八13十九14二十15廿一16廿二17廿三18父亲节19廿五20廿六21夏至22廿八23廿九24 6月小25初二26初三27初四28初五29初六30初七

2018年1月 星期一星期二星期三星期四星期五星期六星期日 1 元旦2 十六 3 十七 4 十八 5 小寒 6 二十 7 廿一 8 廿二9 廿三 10 廿四 11 廿五 12 廿六 13 廿七 14 廿八 15廿九16 三十 17 腊月 18 初二 19 初三 20 大寒 21 初五 22初六23 初七 24 腊八节 25 初九 26 初十 27 十一 28 十二 29十三 30 十四 31 十五休

2018年2月 星期一星期二星期三星期四星期五星期六星期日 1 十六2 湿地日 3 十八 4 立春 5 二十6 廿一 7 廿二 8 小年 9 廿四 10 廿五 11 廿六 12 廿七13 廿八 14 情人节 15 除夕 16 春节 17 初二 18 初三 19 雨水20 初五 21 初六 22 初七 23 初八 24 初九 25 初十 26 十一 27 十二 28 十三 休 休 休 休 休 休 休 班 班

2018年3月 星期一星期二星期三星期四星期五星期六星期日 1 十四2 元宵节 3 十六 4 十七 5 惊蛰6 十九 7 二十 8 妇女节 9 廿二 10 廿三 11 廿四 12 植树节13 廿六 14 廿七 15 消费者权益日 16 廿九 17 二月 18 龙头节 19 初三20 初四 21 春分 22 初六 23 初七 24 初八 25 初九 26 初十27 十一 28 十二 29 十三 30 十四 31 十五

2018年4月 星期一星期二星期三星期四星期五星期六星期日 1 愚人节 2 十七3 十八 4 十九 5 清明 6 廿一 7 廿二 8 廿三 9 廿四10 廿五 11 廿六 12 廿七 13 廿八 14 廿九 15 三十 16 三月17 初二 18 初三 19 初四 20 谷雨 21 初六 22 地球日 23 初八24 初九 25 初十 26 十一 27 十二 28 十三 29 十四 30 十五 休班 班 休休 休休

2020.1 日一二三四五六 1234 元旦腊八节初九初十567891011 十一小寒十三十四十五十六十七12131415161718 十八十九二十廿一廿二廿三廿四19202122232425 廿五大寒廿七廿八廿九除夕春节262728293031 初二初三初四初五初六初七

2020.2 日一二三四五六 1 初八2345678 初九初十立春十二十三十四元宵9101112131415 十六十七十八十九二十情人节廿二16171819202122 廿三廿四廿五雨水廿七廿八廿九23242526272829 二月初二初三初四初五初六初七

2020.3 日一二三四五六1234567 初八初九初十十一惊蛰十三十四891011121314 妇女节十六十七十八植树节二十廿一15161718192021 廿二廿三廿四廿五廿六春分廿八22232425262728 廿九三十三月初二初三初四初五293031 初六初七初八

2020.4 日一二三四五六 1234 愚人节初十十一清明567891011 十三十四十五十六十七十八十九12131415161718 复活节廿一廿二廿三廿四廿五廿六19202122232425 谷雨廿八廿九三十四月初二初三2627282930 初四初五初六初七初八

2020.5 日一二三四五六 12 劳动节初十3456789 十一青年节立夏十四十五十六十七10111213141516 母亲节十九二十廿一廿二廿三廿四17181920212223 廿五廿六廿七小满廿九三十闰四月24252627282930 初二初三初四初五初六初七初八 31 初九

星期一星期二星期三星期四星期五星期六星期日 1元旦2廿三3廿四 4廿五5廿六6小寒7廿八8廿九9三十10初一 11初二12初三13初四14初五15初六16初七17腊八节18初九19初十20大寒21十二22十三23十四24十五 25十六26十七27十八28十九29二十30廿一31廿二

星期一星期二星期三星期四星期五星期六星期日1祭灶节2湿地日3廿五4立春5廿七6廿八7除夕 8春节9初二10初三11初四12初五13初六14情人节 15初八16初九17初十18十一19雨水20十三21十四 22元宵节23十六24十七25十八26十九27二十28廿一

2016年3月 星期一星期二星期三星期四星期五星期六星期日29廿二1廿三2廿四3廿五4廿六5惊蛰6廿八 7廿九8妇女节9初一10龙头节11初三12植树节13初五 14初六15消费者... 16初八17初九18初十19十一20春分 21十三22十四23十五24十六25十七26十八27十九 28二十29廿一30廿二31廿三

2016年4月 星期一星期二星期三星期四星期五星期六星期日 1愚人节2廿五3廿六 4清明5廿八6廿九7初一8初二9初三10初四 11初五12初六13初七14初八15初九16初十17十一 18十二19谷雨20十四21十五22地球日23十七24十八 25十九26二十27廿一28廿二29廿三30廿四1劳动节

2016年5月 星期一星期二星期三星期四星期五星期六星期日2廿六3廿七4五四青... 5立夏6三十7初一8母亲节 9初三10初四11初五12护士节13初七14初八15初九 16初十17十一18博物馆日19十三20小满21十五22十六 23十七24十八25十九26二十27廿一28廿二29廿三 30廿四31廿五

《面向对象程序设计》 课程设计报告 题目:电子日历记事本的设计 院(系):信息科学与工程学院 专业班级:计算机科学与技术1201班 学生姓名:程伟 学号:20121183011 指导教师:吴奕 20 14 年 12 月 29 日至20 15 年 1 月 9 日 华中科技大学武昌分校制

面向对象程序设计课程设计任务书

目录 1需求与总体设计 (1) 1.1需求分析 (1) 1.2总体设计思路 (1) 1.2.1功能图 (1) 1.2.2类图 (2) 2详细设计 (3) 2.1 CalendarPad类说明 (3) 2.2 Year类说明 (3) 2.3 Month 类模块 (4) 2.4 NotePad类说明 (4) 3编码实现 (6) 3.1 CalendarPad模块..................................... 错误!未定义书签。 3.2 Year模块............................................ 错误!未定义书签。 3.3 Month 模块........................................... 错误!未定义书签。 3.4 NotePad模块......................................... 错误!未定义书签。4系统运行与测试 (20) 4.1程序主界面 (20) 4.2日志查看——无日志 (20) 4.3建立日志 (21) 4.4日志查看——有日志 (21) 4.5删除日志 (23) 总结 (24)

1需求与总体设计 1.1需求分析 根据题目要求,将日历与记事本功能相结合,实现对某日期的事件进行记录的功能,设计出简洁方便美观的GUI界面。 将本程序主界面可以分为四个部分:日历日期信息展示、年份、月份、记事本内容、记事本下方的时钟,用四个类来实现其“日历”和“记事本”这两大功能。通过主类CalendarPad创建动日历记事本软件的主界面,且该类中含有main方法,程序从该类开始执行。再用余下的year、mouth、NotePad类来显示并改变日期和实现记事本的功能。 1.2总体设计思路 1. 可以编辑日历的日期 2. 可以判断当前日期是否存在日志记录 3. 对有日志记录的日期,可以对该日期的日志记录进行修改和删除 4. 对没有日志记录的日期,可以创建并保存新建的日志记录 5. 对保存的日志加密,查看时得输入密码 1.2.1功能图

相关主题
文本预览
相关文档 最新文档