java课程设计日历记事本赵锐

java课程设计日历记事本赵锐
java课程设计日历记事本赵锐

本科生课程设计

课程名称Java程序设计课程设计

题目日历记事本

学号201440930252

学生姓名赵锐

所在专业2014 计算机学院

所在班级信工2班

成绩

课程设计时间:2017年5月日--2017年5月日

目录

1.引言 ............................................................................................... - 1 -

2.设计目的与任务 ........................................................................... - 1 -

3.设计方案 ....................................................................................... - 1 -

4.各种功能截图 ............................................................................. - 22 -

5.课程设计总结 (25)

6.个人心得体会 (25)

日历记事本

摘要

本课程设计通过代码实现将理论知识和具体实践相结合,巩固提高了对JAVA的相关方法与概念的理解,使学生的发散思维及动手能力进一步加强,加强对计算机及软件工程的进一步了解。

在这个课程设计中,我们做成了一个有日历标记的记事本软件,日历记事本面板由日历、记事本、图片、时钟四部分组成。日历部分可以选择不同的年份、月份、日期和星期;记事本模块可以实现查看,保存,删除日志等操作;并且每一步操作都有相应提示;图片模块可以显示预设的图片;时钟模块可以用时钟来显示当前时间。本软件是一个实用性较强,简洁,美观,方便的功能软件。

1.引言

Java是一种纯面向对象的、网络编程首选的语言。Java技术作为软件的一种革命性技术,已被列为当今世界信息技术的主流之一。为了适应时代潮流,我们应该加强对Java 的学习,更好的掌握这门课程。为此,我们成了一个课程小组,经过小组成的商讨之后,我们决定以“日历记事本”为设题材,借此巩固加深我们对Java的了解。

本次课程设计的实例虽然比较简单,程序设计也不是很复杂,但在此程序的设计过程也是一个学习过程,更是对复杂程序的一个学习过程,还能培养我们的数抽象能力。因此,我们觉得这次课程设计是非常有意义的,能为我们今后学习面向过程的程序设计作一些铺垫。

2.设计目的与任务

本课程设计所要求达到的目的和任务:通过Java程序设计的一些重要理论基础来实现“日历记事本”的“日历”和“记事本”的双重功能。并通过此次课程设计的训练,使学生巩固和加深对Java这门课程的理解,通过利用所学到的计算科学的理论知识,提高解决实际问题的能力,增强运算、编程和使用技术资料的技能,通过实际问题的分析设计、编程和调试,掌握应用软件的分析方法和工程设计方法,能正确阐述设计和实验结果。通过这次课程设计,培养实事求是、认真、严谨的科学态度和刻苦钻研不断创新的精神,逐步建立正确的全局观念。

3.设计方案

3.1 总体设计

(1)问题定义:创建日历记事本,实现对某日期的事情进行记录这主要功能,并能显示设置的图片和时钟,增加美观。

(2)问题分析:通过对“日历记事本”这一题材的分析,我需要四个类来实现其“日历”和“记事本”这两大功能。通过主类CalendWindow创建动日历记事本软件的主窗口,该类含有main方法,程序从该类开始执行。再用余下CalendarPad、CalendarMessage 、NotePad类来显示并改变日期和实现记事本的功能。而CalendarImage和Clock这两个类用来显示图片和时钟。

(3)研究意义:通过本次课程设计,我们掌握了Java语言的基本运用,提高了理论结合实际的能力。

3.2设计要求

(1)界面的左侧是日历和一幅图。该日历可以按年前后翻动,用鼠标鼠标单击“上年”按钮时,当前日历的年份将减一;当鼠标左键单击“下年”按钮,当前日历的年份将加一。该日历还可以在某年内按月前月后翻动,当鼠标左键单击“上月”按钮时,当前日历的月份将减一;当鼠标左键单击“下月” 当前日历表的月份将加一。图片是为了增加美观而加进去的。

(2)系统界面的右侧是记事本和一个闹钟。用鼠标单击日历上的日期,就可以通过该记事本编辑有关日志,并将日志保存到一个文件,该文件的名字由该日期组成的字符序列命名。用户可以查看,删除某个日期的日志,也可以继续向某个日志添加新内容。时钟能够实时显示当前的时间。

(3)当某个日期有日志时,在日历表该日期的外观上就会出现“yes”标记,表明这个日期有日志,当用户删除某个日期的日志后,该日期的外观上“yes”标志就会消失。

3.3系统的主要功能

(1)可以对个人日志进行添加、查阅、删除;

(2)可以方便地在任何日期记载个人日志以及查看某个日期记载的日志;

(3)可以显示当前日期与时间。

3.4各个类的组合结构图

3.5 各个类说明

(1)主函数CalendarWindow类

该类是整个程序的主框架,是javax.swing包中Jframe的一个子类。并实现了ActionListener、MouseListener和FocusListener接口。以下是该类的有关数据说明!1)成员变量

●year,month和day是int型变量。它们的值分别确定年份、月份和日期。

●calendarMessage是CalnedarMessage对象,该对象用来处理与日期有关的数据。

●calendarPad是CalendarPad对象,该对象可以显示与日期有关的数据。

●notPad是NotPad的对象。具有编辑、读取、保存和删除日志的功能。

●showYear和showMonth是JtextField类创建的文本框,用来显示年月。

●showDay数组的每个单元是JtextField类创建的用来显示日期的文本框。

●calendarImage是CalendarImage创建的对象,用来显示图像。

●clock是Clock创建的对象,用来显示时钟。

●nextYear,PreviousYear,nextMonth和PreviousMonth是JButton创建的按钮对

象,名字依次为“下年、上年、下月、上月”。这些按钮都将当前窗口注册为自己的ActionEvent事件监视器。

●savaDailyRecord,deleteDailyRecord和readDailyRecord是JButton创建的按

钮对象,名字依次为“保存日志、删除日志、读取日志”。这些按钮都将当前窗口注册为自己的ActionEvent事件监视器。

2)方法

●CalendarWindow()是构造方法,负责完成窗口初始化。

●actionPerformed(ActionEvent)方法是CalendarWindow类实现的

ActionListener接口中的方法。CalendarWindow创建的窗口是nextYear,

previousYear,nextMonth,previousMonth,saveDailyRecord,

deleteDailyRecord和readDailyRecord按钮的ActionEvent事件监视器,当用

户单击其中按钮时,窗口将执行actionPerformed(ActionEvent)方法进行相

应的操作。

●mousePressed(MouseEvent)方法是CalendarWindow类实现的MouseListener

接口中的方法。CalendarWindow创建的窗口时showDay数组中的JtextField

文本框的MouseEvent事件监视器,当用户在某个显示日期的文本框上按下鼠标

左键时,窗口将执行mousePress(MouseEvent)方法进行相应操作。

●focusGained(FocusEvent)和focusLost(FocusEvent)方法是CalendarWindow

类实现的FocusListener接口中的方法。CalendarWindow创建窗口是showDay

数组中的JtextField文本框的FocusEvent事件监视器,当用户的操作导致某

个显示日期的文本框的焦点发生变化时,窗口将执行focusGained(FocusEvent)或focusLost(FocusEvent)方法进行相应的操作。

●doMark()方法负责对有日志的日期作出标志。

●main方法是程序运行的入口方法。

详细代码:

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.util.*;

import java.io.*;

public class CalendarWindow extends JFrame implements ActionListener,

MouseListener,FocusListener

{

int year,month,day;

CalendarMessage calendarMessage;

CalendarPad calendarPad;

NotePad notePad;

JTextField showYear,showMonth;

JTextField showDay[];

CalendarImage calendarImage;

Clock clock;

JButton nextYear,previousYear,nextMonth,previousMonth;

JButton saveDailyRecord,deleteDailyRecord,readDailyRecord;

File dir;

Color backColor=Color.white;

public CalendarWindow()

{

dir= new File("./dailyRecord");

dir.mkdir();

showDay = new JTextField[42];

for(int i=0;i

{

showDay[i]=new JTextField();

showDay[i].setBackground(backColor);

showDay[i].setLayout(new GridLayout(3,3));

showDay[i].addMouseListener(this);

showDay[i].addFocusListener(this);

}

calendarMessage = new CalendarMessage();

calendarPad = new CalendarPad();

notePad = new NotePad();

Calendar calendar = Calendar.getInstance();

calendar.setTime(new Date());

year = calendar.get(Calendar.YEAR);

month = calendar.get(Calendar.MONTH)+1;

day = calendar.get(Calendar.DAY_OF_MONTH);

calendarMessage.setYear(year);

calendarMessage.setMonth(month);

calendarMessage.setDay(day);

calendarPad.setCalendarMessage(calendarMessage);

calendarPad.setShowDayTextField(showDay);

notePad.setShowMessage(year,month,day);

calendarPad.showMonthCalendar();

doMark();

calendarImage = new CalendarImage();

calendarImage.setImageFile(new File("flower.jpg"));

clock = new Clock();

JSplitPane splitV1 = new JSplitPane(JSplitPane.VERTICAL_SPLIT,calendarPad,calendarImage);

JSplitPane splitV2 = new JSplitPane(JSplitPane.VERTICAL_SPLIT,notePad,clock);

JSplitPane splitH = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,splitV1,splitV2);

add(splitH,BorderLayout.CENTER);

showYear = new JTextField(""+year,6);

showYear.setFont(new Font("TimesRoman",Font.BOLD,12));

showYear.setHorizontalAlignment(JTextField.CENTER);

showMonth = new JTextField(""+month,4);

showMonth.setFont(new Font("TimesRoman",Font.BOLD,12));

showMonth.setHorizontalAlignment(JTextField.CENTER);

nextYear = new JButton("下年");

previousYear = new JButton("上年");

nextMonth = new JButton("下月");

previousMonth = new JButton("上月");

nextYear.addActionListener(this);

previousYear.addActionListener(this);

nextMonth.addActionListener(this);

previousMonth.addActionListener(this);

showYear.addActionListener(this);

JPanel north = new JPanel();

north.add(previousYear);

north.add(showYear);

north.add(nextYear);

north.add(previousMonth);

north.add(showMonth);

north.add(nextMonth);

add(north,BorderLayout.NORTH);

saveDailyRecord = new JButton("保存日志");

deleteDailyRecord = new JButton("删除日志");

readDailyRecord = new JButton("读取日志");

saveDailyRecord.addActionListener(this);

deleteDailyRecord.addActionListener(this);

readDailyRecord.addActionListener(this);

JPanel pSouth = new JPanel();

pSouth.add(saveDailyRecord);

pSouth.add(deleteDailyRecord);

pSouth.add(readDailyRecord);

add(pSouth,BorderLayout.SOUTH);

setVisible(true);

setBounds(70,70,770,500);

validate();

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public void actionPerformed(ActionEvent e)

{

if(e.getSource()==nextYear)

{

year++;

showYear.setText(""+year);

calendarMessage.setYear(year);

calendarPad.setCalendarMessage(calendarMessage);

calendarPad.showMonthCalendar();

notePad.setShowMessage(year,month,day);

doMark();

}

else if (e.getSource()==previousYear)

{

year--;

showYear.setText(""+year);

calendarMessage.setYear(year);

calendarPad.setCalendarMessage(calendarMessage);

calendarPad.showMonthCalendar();

notePad.setShowMessage(year,month,day);

doMark();

}

else if (e.getSource()==nextMonth)

{

month++;

if(month>12) month=1;

showMonth.setText(""+month);

calendarPad.setCalendarMessage(calendarMessage);

calendarPad.showMonthCalendar();

notePad.setShowMessage(year,month,day);

doMark();

}

else if (e.getSource()==previousMonth)

{

month--;

if(month<1) month=12;

showMonth.setText(""+month);

calendarPad.setCalendarMessage(calendarMessage);

calendarPad.showMonthCalendar();

notePad.setShowMessage(year,month,day);

doMark();

}

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

{

String s = showYear.getText().trim();

char a[] = s.toCharArray();

boolean boo = false;

for(int i = 0;i < a.length;i++)

{

if(!(Character.isDigit(a[i])))

boo = true;

}

if(boo==true)

JOptionPane.showMessageDialog(this,"你输入了非法年份","警告!", JOptionPane.WARNING_MESSAGE);

else if(boo==false)

year = Integer.parseInt(s);

showYear.setText(""+year);

calendarMessage.setYear(year);

calendarPad.setCalendarMessage(calendarMessage);

calendarPad.showMonthCalendar();

notePad.setShowMessage(year,month,day);

doMark();

}

else if (e.getSource()== saveDailyRecord)

{

notePad.save(dir,year,month,day);

doMark();

}

else if(e.getSource()==deleteDailyRecord)

{

notePad.delete(dir,year,month,day);

doMark();

}

else if (e.getSource()==readDailyRecord)

{

notePad.read(dir,year,month,day);

doMark();

}

}

public void mousePressed(MouseEvent e)

{

JTextField text = (JTextField)e.getSource();

String str = text.getText().trim();

try

{

day = Integer.parseInt(str);

}

catch (NumberFormatException exp)

{}

calendarMessage.setDay(day);

notePad.setShowMessage(year,month,day);

}

public void mouseReleased(MouseEvent e){}

public void mouseEntered(MouseEvent e){}

public void mouseExited(MouseEvent e){}

public void mouseClicked(MouseEvent e){}

public void focusGained(FocusEvent e)

{

Component com = (Component)e.getSource();

com.setBackground(Color.pink);

}

public void focusLost(FocusEvent e)

{

Component com = (Component)e.getSource();

com.setBackground(backColor);

}

public void doMark()

{

for(int i=0;i

{

showDay[i].removeAll();

String str = showDay[i].getText().trim();

try

{

int n = Integer.parseInt(str);

if(isHaveDailyRecord(n)==true)

{

JLabel mess = new JLabel("yes");

mess.setFont(new Font("TimesRoman",Font.PLAIN,11));

mess.setForeground(Color.blue);

showDay[i].add(mess);

}

}

catch (Exception exp){}

}

calendarPad.repaint();

calendarPad.validate();

}

public boolean isHaveDailyRecord(int n)

{

String key = ""+year+""+month+""+n;

String []dayFile = dir.list();

boolean boo = false;

for(int k = 0;k

{

if(dayFile[k].equals(key+".txt"))

{

boo = true;

break;

}

}

return boo;

}

public static void main(String args[])

{

new CalendarWindow();

}

}

(2)CalendarMessage类

CalendarMessage类创建的对象calendarMessage是CalendarWindow窗口的重要成员对象之一,负责处理和日期有关的数据。该类的有关数据说明如下:

1)成员变量

year,month,day是int型数据,它们的值分别确定年份、月份和日期。

2)方法

●setYear(int)和getYear()方法分别用来设置year和获取year的值。

●setMonth(int)和getMonth()方法分别用来设置month和获取month的值。

●setDay(int)和getDay()方法分别用来设置和获取day的值。

●getMonthCalendar()方法是用来处理日期数据,使其按着习惯来显示。即日

历牌中每行的第一列为“星期天”。getMonthCalendar()方法根据year,month

和day的值返回一个存放着“日历”数据的String类型的数组,例如,如果某

月有30天,而且该月的第一天是星期三,那么返回的String类型的数组是:“”,“”,“”,“1”,“2”,·····,“30”。

详细代码:

import java.util.Calendar;

public class CalendarMessage{

int year=-1,month=-1,day=-1;

public void setYear(int year){

this.year=year;

}

public int getYear(){

return year;

}

public void setMonth(int month){

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

this.month=month;

else

this.month=1;

}

public int getMonth(){

return month;

}

public void setDay(int day){

this.day=day;

}

public int getday()

{

return day;

}

public String [] getMonthCalendar(){

String [] day=new String[42];

Calendar rili=Calendar.getInstance();

rili.set(year,month-1,1);//将日历翻到year年month月1日

int 星期几=rili.get(Calendar.DAY_OF_WEEK)-1;

int dayAmount=0;

if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) dayAmount=31;

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

dayAmount=30;

if(month==2)

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

dayAmount=29;

else

dayAmount=28;

for(int i=0;i<星期几;i++)

day[i]=" ";

for(int i=星期几,n=1;i<星期几+dayAmount;i++){

day[i]=String.valueOf(n);

n++;

}

for (int i=星期几+dayAmount;i<42;i++ )

day[i]=" ";

return day;

}

}

(3)CalendarPad类

CalendarPad类是javax.swing包中Jpanel容器的子类,所创建的对象:calendarPad 是CalendarWindow类中最重要的成员之一,负责显示经CalendarMessage类处理后的日期数据,被添加到CalendarWindow窗口的左上侧。以下是该类的有关说明:

1)成员变量

●year,month和day是int型数据,它们的值分别确定年份、月份和日期

●calendarMessage是CalendarMessage对象,该对象可以处理和日期有关的数

据。

●showDay数组的每个单元是JtextField类创建的用来显示日期的文本框。

●“星期”是String数组,单元的值依次为“SUN日”、“MON一”、“TUE二”、“WED

三”、“THU四”、“FRI五”、“SAT六”。

2)方法

●CalendarPad()是构造方法,用来创建calendarPad对象。

●setShowDayTextField(JtextField[])方法负责设置showDay数组。

●setCalendarMessage(CalendarMessage)方法负责设置calendarMessage对象。

●showMonthCalendar()方法负责显示“日历”。

详细代码:

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

import java.util.*;

public class CalendarPad extends JPanel{

int year,month,day;

CalendarMessage calendarMessage;

JTextField []showDay;

JLabel title [];

String [] 星期={"SUN 日","MON 一","TUE 二","WED 三","THU 四","FRI 五","SAT 六"};

JPanel north,center;

public CalendarPad(){

setLayout(new BorderLayout());

north=new JPanel();

north.setLayout(new GridLayout(1,7));

center=new JPanel();

center.setLayout(new GridLayout(6,7));

add(center,BorderLayout.CENTER);

add(north,BorderLayout.NORTH);

title=new JLabel[7];

for(int j=0;j<7;j++){

title[j]=new JLabel();

title[j].setFont(new Font("TimesRoman",Font.BOLD,12));

title[j].setText(星期[j]);

title[j].setHorizontalAlignment(JLabel.CENTER);

title[j].setBorder(BorderFactory.createRaisedBevelBorder());

north.add(title[j]);

}

title[0].setForeground(Color.red);

title[6].setForeground(Color.blue);

}

public void setShowDayTextField(JTextField [] text){

showDay=text;

for(int i=0;i

showDay[i].setFont(new Font("TimesRoman",Font.BOLD,15));

showDay[i].setHorizontalAlignment(JTextField.CENTER);

showDay[i].setEditable(false);

center.add(showDay[i]);

}

}

public void setCalendarMessage(CalendarMessage calendarMessage){

this.calendarMessage=calendarMessage;

}

public void showMonthCalendar(){

String [] a=calendarMessage.getMonthCalendar();

for(int i=0;i<42;i++)

showDay[i].setText(a[i]);

validate();

}

}

(4)NotePad类

NotePad类javax.swing包中的Jpanel容器的子类,实现了ActionListener接口,所创建的对象:notePad是MineGame CalendarWindow类中的重要成员之一,作为一个容器添加到CalendarWindow窗口的右上侧以,下是该类的有关说明:

1)成员变量

●text 是JtextArea创建的文本区,可在text中编译多行文本。

●showMessage 是JtextField 创建的文本条,用来显示和日期相关的数据。

●menu是JpopupMenu 创建的弹出式菜单。

●itemCopy、itemCut、itemPaste、itemClear 是JmenuItem 创建的菜单项,名字依

次是“复制”, “剪切”, “黏贴”, “清空”。

2)方法

●NotePad()构造方法,用来创建notePad对象。

●setShowMessage(int,int,int)方法根据参数指定的日期数据显示有关日期信

息。

●save(File,int,int,int)方法根据参数指定日期保存日志

●delete(File,int,int,int)用于删除日志

●read(File,int,int,int)用于读取日志。

详细代码:

import java.awt.*;

import javax.swing.*;

import java.io.*;

import java.awt.event.*;

public class NotePad extends JPanel implements ActionListener{

JTextArea text;

JTextField showMessage;

JPopupMenu menu;

JMenuItem itemCopy,itemCut,itemPaste,itemClear;

public NotePad(){

showMessage=new JTextField();

showMessage.setHorizontalAlignment(JTextField.CENTER);

showMessage.setFont(new Font("TimesRoman",Font.BOLD,16));

showMessage.setForeground(Color.blue);

showMessage.setBackground(Color.pink);

showMessage.setBorder(BorderFactory.createRaisedBevelBorder());

showMessage.setEditable(false);

menu =new JPopupMenu();

itemCopy=new JMenuItem("复制");

itemCut=new JMenuItem("剪切");

itemPaste=new JMenuItem("粘贴");

itemClear=new JMenuItem("清空");

itemCopy.addActionListener(this);

itemCut.addActionListener(this);

itemPaste.addActionListener(this);

itemClear.addActionListener(this);

menu.add(itemCopy);

menu.add(itemCut);

menu.add(itemPaste);

menu.add(itemClear);

text=new JTextArea(10,10);

text.addMouseListener(new MouseAdapter(){

public void mousePressed(MouseEvent e){

if(e.getModifiers()==InputEvent.BUTTON3_MASK)

menu.show(text,e.getX(),e.getY());

}

});

setLayout(new BorderLayout());

add(showMessage,BorderLayout.NORTH);

add(new JScrollPane(text),BorderLayout.CENTER);

}

public void setShowMessage(int year,int month, int day){

showMessage.setText(""+year+"年"+month+"月"+day+"日");

}

public void save(File dir,int year,int month,int day){

String dailyContent=text.getText();

String fileName=""+year+""+month+""+day+""+".txt";

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

String [] dayFile=dir.list();

boolean boo=false;

for(int k=0;k

if(dayFile[k].startsWith(key)){

boo=true;

break;

}

}

if(boo){

String m=""+year+"年"+month+"月"+day+"已有日志,将新内容添加到日志吗?";

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

JOptionPane.QUESTION_MESSAGE);

if(ok==JOptionPane.YES_OPTION){

try{

File f=new File(dir,fileName);

RandomAccessFile out=new RandomAccessFile(f,"rw");

long fileEnd=out.length();

byte [] bb=dailyContent.getBytes();

out.seek(fileEnd);

out.write(bb);

out.close();

}

catch(IOException exp){}

}

}

else {

String m=""+year+"年"+month+"月"+day+"还没有日志,保存日志吗?";

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

JOptionPane.QUESTION_MESSAGE);

if(ok==JOptionPane.YES_OPTION){

try{

File f=new File(dir,fileName);

RandomAccessFile out= new RandomAccessFile(f,"rw");

long fileEnd=out.length();

byte []bb=dailyContent.getBytes();

out.write(bb);

out.close();

}

catch(IOException exp){}

}

}

}

public void delete(File dir,int year,int month,int day){

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

String [] dayFile=dir.list();

boolean boo=false;

for(int k=0;k

if(dayFile[k].startsWith(key)){

boo=true;

break;

}

}

if(boo){

String m="删除"+year+"年"+month+"月"+day+"日的日志吗?";

int ok=JOptionPane.showConfirmDialog(this,m,"询问",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);

if(ok==JOptionPane.YES_OPTION){

String fileName=""+year+""+month+""+day+""+".txt";

File deleteFile=new File(dir,fileName);

deleteFile.delete();

}

}

else{

String m=""+year+"年"+month+"月"+day+"无日志记录";

JOptionPane.showMessageDialog(this,m,"提示",JOptionPane.W ARNING_MESSAGE);

}

}

public void read(File dir,int year,int month,int day){

String fileName=""+year+""+month+""+day+""+".txt";

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

String [] dayFile=dir.list();

boolean boo=false;

for(int k=0;k

if(dayFile[k].startsWith(key)){

boo=true;

break;

}

}

if(boo){

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(null);

try{

File f=new File(dir,fileName);

FileReader inOne=new FileReader(f);

BufferedReader inTwo=new BufferedReader(inOne);

String s=null;

while ((s=inTwo.readLine())!=null)

text.append(s+"\n");

inOne.close();

inTwo.close();

}

catch(IOException exp){}

}

}

else{

String m=""+year+"年"+month+"月"+day+"无日志记录";

JOptionPane.showMessageDialog(this,m,"提示",JOptionPane.W ARNING_MESSAGE);

}

}

public void actionPerformed(ActionEvent e){

if(e.getSource()==itemCopy)

text.copy();

else if(e.getSource()==itemCut)

text.cut();

else if(e.getSource()==itemPaste)

text.paste();

else if(e.getSource()==itemClear)

text.setText(null);

}

}

(5)CalendarImage类

CalendarImage创建的对象负责绘制图像

CalendarImage类是javax.swing包中Jpanel容器的一个子类,创建的对象calendarMessage 是CalendarWindow类的成员之一,负责绘制图像,作为一个容器添加到CalendarWindow 窗口的左下侧,以下是该类的有关说明:

1)成员变量

●imageFile是File对象,用来存放图像文件的引用

●image 是Image对象

●tool 是Tookit对象,负责创建image对象

2)方法

●CalendarImage()是构造方法,负责创建calendarImage 对象

●setImageFile(File)方法负责设置imageFile 对象,并根据imageFile创建image

paintComponent(Griphics)方法负责绘制image

详细代码:

import javax.swing.*;

import java.io.*;

import java.awt.*;

public class CalendarImage extends JPanel

{

File imageFile;

Image image;

Toolkit tool;

CalendarImage()

{

tool = getToolkit();

}

public void setImageFile(File f)

{

imageFile = f;

try

{

image = tool.getImage(imageFile.toURI().toURL());

}

catch (Exception e){}

repaint();

}

public void paintComponent(Graphics g)

{

super.paintComponent(g);

int w = getBounds().width;

int h = getBounds().height;

g.drawImage(image,0,0,w,h,this);

}

}

(6)Clock类

Clock类是javax.swing包中Jpanel容器的子类,并实现了ActionListener接口,所创建的对像:clock是CalendarWindow类中的成员之一,负责显示时间,被添加到CalendarWindow窗口的右下侧,以下是该类的有关说明:

1)成员变量

重庆科技学院_java程序课程设计__日历记事本

Java程序设计课程设计报告

日历记事本 目录 目录 (2) 1 概述 (1) 1.1 课程设计目的 (1) 1.2 课程设计内容 (1) 2 系统需求分析 (1) 2.1 系统目标 (1) 2.2 主体功能 (1) 2.3 开发环境 (1) 3系统概要设计 (1) 3.1 系统的功能模块划分与系统流程图 (1) 4系统详细设计 (2) 5 测试 (4) 5.1 测试方案 (4) 5.2 测试结果 (4) 6 小结 (6) 参考文献 (8) 附录 (9) 附录1 源程序清单 (9)

Java程序设计课程设计报告(2011) 学生成绩管理系统的设计 1 概述 1.1 课程设计目的 1)巩固和提高java编程技术。 2)培养掌握成学设计的基本思路和方法。 3)加强研发、调试程序的能力。 4)增强分析、解决问题的能力。 5)提高科技论文写作能力。 1.2 课程设计内容 设计GUI界面的日历记事本。系统将日历、记事本功能结合在一起,用户可以方便地在任何日期记录下有关内容或查看某个日期的记录内容。 2 系统需求分析 2.1 系统目标 1. 系统界面的左侧是日历。该日历可以按年份前后翻动,鼠标单击“上年”按钮时,当前的日历的年份减一;当鼠标左键单击“下年”按钮,当前日历年份加一。 2. 该日历也可以在某年内按月前后翻动,鼠标单击“上月”按钮时,当前的日历的月份减一;当鼠标左键单击“下月”按钮,当前日历月份加一。 3. 使用鼠标左键单击选定的日期,如已有记录内容,系统将弹出对话框提示该日已有记录内容,并询问用户是否用记事本显示该内容。 2.2 主体功能 用户可以方便地在任何日期记录下有关内容或查看某个日期的记录内容。 通过按按钮“上年”和“下年”对年份进行翻页。通过按按钮“上月”和“下月”对月份进行翻页。用户可以通过输入年份来查看自己的日志。 2.3 开发环境 Windows XP;jdk1.5.0-0-05;ultraedit开发工具 3系统概要设计 3.1 系统的功能模块划分与系统流程图 本日历记事本共有4个java源文件。

Java课程设计+文档+源代码(万年历+闹钟+记事本)

2015年12月18日 一、课程题目 设计一个万年历系统,实现以下功能 (1)可以查看当前的年份、月份和日期; (2)有时间栏,便于用户查看当前时间; (3)能够查找1至9999年的日期与星期的关系。 其它功能可自行开发。 二、题目分析与设计 1.使用的开发环境为eclipse Jdk环境:jdk1.8 2. (此为万 年历界面图) 使用了jTabbedPane 类对功能页面分页,布局策略基本用BorderLayout 和GridLayout 。 3.本项共有5个类,基本一个功能有一个类实现,主类CalendarMain 只包含一个main函数:对创建框架和其属性设置。

AlarmDemo类则实现闹钟功能;NoteBook 类实现记事本功能;CalendarsView 类则实现基本日历功能,ChooseDay 类是一个弹窗,被CalendarsView 调用,CalendarsView 、AlarmDemo 也在该类被调用; . 4.日历界面使用了jTable ,功能的实现逻辑则是 1.首先定义两个全局变量---年和月,查看不同时间的日历,该变量也 随之改变。 2.写了几个函数获取今年第一天是星期几,然后根据月份天数即可推 算具体某月第一天是星期几。 3.知道一个月第一天是星期几,则该月日历既可以顺序列出。 闹钟的功能实现思路: 1.获取界面设定的时间。

2.使用线程,每过一秒急救获取当前时间,并判断是否到达设定的时 间 3.到设定的时间,启动弹窗,播放闹铃 4.闹铃科根据文件选择器自行选择 记事本功能实现思路 1.在项目文件夹先新建一个txt文件作为储存的数据库 2.利用File 类和io 数据流将界面文本储存进txt文件,实现保存功 能 3.每当程序启动,读取txt文件内容并显示到界面上 三、测试分析 1.使用如下拓展包

Java日历记事本课程设计报告毕业用资料

Java日历记事本课程设计报告 在设计日历记事本时,需要编写6个JAVA源文件:CalendarWindow.java、CalendarPad.java、NotePad.java、CalendarImage.java、Clock.java和CalendarMesssage.java 效果图如下 .CalendarWindow类 import javax.swing.*; import java.awt.*;

import java.awt.event.*; import java.util.*; import java.io.*; public class CalendarWindow extends JFrame implements ActionListener,MouseListener,FocusListener{ int year,month,day; CalendarMessage calendarMessage; CalendarPad calendarPad; NotePad notePad; JTextField showYear,showMonth; JTextField[]showDay; CalendarImage calendarImage; String picturename; Clock clock; JButton nextYear,previousYear,nextMonth,previousMonth; JButton saveDailyRecord,deleteDailyRecord,readDailyRecord; JButton getPicture; File dir;

日历记事本2020

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初九

java课程设计策画日历记事本

课程设计说明书 课程: Java程序设计 院系:计算机科学学院 专业班级:计算机科学与技术(2)班 组员:张少华、张天阳 2010年6月 26 日

《Java程序设计》课程设计 ——日历记事本 我们开发了一个实现有日历标记的记事本软件,日历记事本面板由日历和和记事本两部分组成。日历部分可以调节年份,月份,日期,星期。记事本可以实行查看,保存,删除等操作,并且每一步操作都有相应提示。本软件是一个实用性很强,简洁,方便的功能软件。 引言 Java是一种纯面向对象的、网络编程首选的语言。Java技术作为软件开的一种革命性技术,已被列为当今世界信息技术的主流之一。为了适应时代潮流,我们应该加强对Java的学习,更好的掌握这门课程。为此,我们成了一个课程小组,经过小组成的商讨之后,我们决定以“日历记事本”为设题材,借此巩固加深我们对Java 的了解。 本次课程设计的实例虽然比较简单,程序设计也不是很复杂,但在此程序的设计过程也是一个学习过程,更是对复杂程序的一个学习过程,还能培养我们的数抽象能力。因此,我们觉得这次课程设计是非常有意义的,能为我们今后学习面向过程的程序设计作一些铺垫。 1、设计的目的与要求; (1)为用户提供一个简便的日历记事本; (2)对java技术的进一步了解和简单的运用; (3)初步的接触软件工程; 2.设计目的与任务 本课程设计所要求达到的目的和任务:通过Java程序设计的一些重要理论基础来实现“日历记事本”的“日历”和“记事本”的双重功能。并通过此次课程设计的训练,使学生巩固和加深对Java这门课程的理解,通过利用所学到的计算科学的理论知识,提高解决实际问题的能力,增强运算、编程和使用技术资料的技能,通过实际问题的分析设计、编程和调试,掌握应用软件的分析方法和工程设计方法,能正确阐述设计和实验结果。通过这次课程设计,培养实事求是、认真、严谨的科学态度和刻苦钻研不断创新的精神,逐步建立正确的全局观念。 3.设计方案 3.1 总体设计

面向对象程序的设计说明书与程序(日历记事本)

日历记事本 1.课程设计目的 通过此次课程设计,巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。使我们通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。 本课程设计设计GUI界面的日历记事本,系统将日历和记事本结合在一起,可以方便的保存、查看日志,即在任何日期记载下有关容或查看某个日期记载的容。 2.设计方案论证 2.1设计思路 2.1.1 本系统界面的左侧是日历和一幅图像。该日历可以按年前后翻动,用鼠标左键单击“上年”按钮,可将当前日历的年份减一;用鼠标左键单击“下年”按钮,可将当前日历的年份加一。该日历还可以在某年按月前后翻动,用鼠标单击“上月”按钮,可将当前日历的月份减一;用鼠标单击“下月”按钮,可将当前日历的月份增一。 2.1.2 系统界面的右侧是记事本和一个时钟。用鼠标单击日历上的日期,就可以通过该记事本编辑有关日志,并将日志保存到一个文件。该文件的名字是由当前日期组成的字符序列。用户可以查看、删除某个日期的日志,也可以继续向某个日志添加新的容。2.1.3 当某个日期有日志时,显示该日期的外观上就会出现“有”标记,表明这个日期有日志;当用户删除某个日期的日志后,该日期的外观上的“有” 标记就会消失。 2.2设计方法 在设计日历记事本时,需要编写6个Java源文件:CalendarWindow.java、CalendarPad.java、NotePad.java、CalendarImage.java 、Clock.java和CalendarMessage.java。 日历记事本除了需要编写的上述6个Java源文件所给出的类外,还需要Java系统提供的一些重要的类,如JTextField、JTextArea和File类。 2.2.1 CalendarWindow.java 主类

c#记事本课程设计报告

课程设计报告 课程名称:面向对象程序设计 题目名称:记事本 学生姓名: 学号: 专业班级: 指导教师: 目录 一.前言--------------------------------------------------3二.课程设计目的与任务-------------------------------4三.课程设计内容---------------------------------------4 1.记事本主要内容-------------------------------------4 2.设计思想--------------------------------------------4 3.主要构架--------------------------------------------4 4.流程图----------------------------------------------5 5.核心模块------------------------------------------5 6.文件菜单的各个功能------------------------------6 7.使用说明--------------------------------------------6 8.设计及分析------------------------------------------7

9.设计总节--------------------------------------------8四.附录-------------------------------------------------8 1打开的源码---------------------------------------------8 2保存的源码---------------------------------------------8五.主要参考资料----------------------------------------9 前言 VisualStudio是微软公司推出的开发环境,VisualStudio可以用来创建Windows平台下的Windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和Office插件。 Visualc#2008提供了高级开发工具、调试功能、数据库功能和创新功能,帮助在各种平台上快速创建当前最先进的应用程序。 Visualc#2008包括各种增强功能,例如可视化设计器(使用.加速开发)、对Web开发工具的大量改进,以及能够加速开发和处理所有类型数据的语言增强功能。VisualStudio2008为开发人员提供了所有相关的工具和框架支持,帮助创建引人注目的、令人印象深刻并支持AJAX的Web应用程序。 我的课程设计的记事本是使用c#编写的,只运用了c#2008中比较简单的功能,制作的记事本是仿照windows记事本制作的。实现记事本的基本功能,参考windows中记事本的功能。要求打开文件,读取文件中

电子日历记事本--Java课程设计

《面向对象程序设计》课程设计报告 题目:电子日历记事本的设计 院(系):信息科学与工程学院 专业班级:计算机科学与技术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功能图

日历记事本课程设计报告

Java程序设计课程设计报告 XXX 日历记事本 专业XXX 学生XXX 班级XXX 学号XXX 指导教师XXX 完成日期XXX

目录 1概述 (1) 1.1 课程设计目的 (1) 1.2 课程设计容 (1) 2 系统需求分析 (1) 2.1 系统目标 (1) 2.2 主体功能 (1) 2.3开发环境 (1) 3系统概要设计 (2) 3.1 系统的功能模块划分与系统流程图 (2) 4 系统详细设计 (2) 5 测试 (4) 5.1 测试方案 (4) 5.2 测试结果 (4) 6 小结 (6) 参考文献 (7) 附录 (8) 附录1 源程序清单 (8)

日历记事本 1 概述 1.1 课程设计目的 1) 巩固和提高java编程技术。 2)培养掌握成学设计的基本思路和方法。 3)加强研发、调试程序的能力。 4)增强分析、解决问题的能力。 5)提高科技论文写作能力。 1.2 课程设计容 设计GUI界面的日历记事本。系统将日历、记事本功能结合在一起,用户可以方便地在任何日期记录下有关容或查看某个日期的记录容。 2 系统需求分析 2.1 系统目标 1.系统界面的左侧是日历。该日历可以按年份前后翻动,鼠标单击“上年”按钮时,当前日历的年份减一;当鼠标左键单击“下年”按钮,当前日历的年份加一。 2.该日历也可以在某年按月前后翻动。当鼠标左键单击“上月”按钮时,当前日历的月份减一;当鼠标左键单击“下月”按钮时,当前日历的月份加一。 3.使用鼠标左键单击选定的日期,如已有记录容,系统将弹出对话框提示该日已有记录容,并询问用户是否用记事本显示该容。 4.用户选择具体日期后,可以将记事本的当前容保存起来,形成日志。 2.2 主体功能 用户可以方便地在任何日期记录下有关容或查看某个日期的记录容。 通过按按钮“上年”和“下年”对年份进行翻页。通过按按钮“上月”和“下月”对月份进行翻页。用户可以通过输入年份来查看自己的日志。 2.3 开发环境 Windows XP;jdk1.5.0-0-05;ultraedit开发工具

日历记事本设计(6个类)Java课程设计

Java语言与面向对象技术课程设计报告 ( 2013 -- 2014年度第1 学期) 日历记事本 专业软件工程 学生姓名 班级 学号 指导教师 完成日期

目录 1 概述 (1) 1.1 课程设计目的 (1) 1.2 课程设计内容 (1) 2 系统需求分析 (1) 2.1 系统目标 (1) 2.2 主体功能 (1) 2.3 开发环境 (1) 3 系统概要设计 (1) 3.1 系统的功能模块划分 (1) 3.2 系统流程图 (2) 4系统详细设计 (2) 5 测试 (5) 5.1 测试方案 (11) 5.2 测试结果 (12) 6 小结 (14) 参考文献 (15) 附录 (16) 附录1 源程序清单 (16)

日历记事本 1 概述 1.1 课程设计目的 1.学习Java程序开发的环境搭建与配置,并且在实际运用中学习和和掌握Java 程序开发的过程 2.通过课程设计进一步掌握Java程序设计语言的基础内容,如用户图形界面设计等 3.通过亲自设计,编写,调试程序来扩展知识面和动手操作能力 4.加强研发、调试程序的能力;增强分析、解决问题的能力;提高科技论文写作能力 1.2 课程设计内容 设计GUI界面的日历记事本。系统将日历、记事本功能结合在一起,用户可以方便地在任何日期记录下有关内容或查看某个日期的记录内容。 2 系统需求分析 2.1 系统目标 1.系统界面的左侧是日历。该日历可以按年份前后翻动,鼠标单击“上年”按钮时,当前的日历的年份减一;当鼠标左键单击“下年”按钮,当前日历年份加一。 2.该日历也可以在某年内按月前后翻动,鼠标单击“上月”按钮时,当前的日历的月份减一;当鼠标左键单击“下月”按钮,当前日历月份加一。 3.使用鼠标左键单击选定的日期,如已有记录内容,系统将弹出对话框提示该日已有记录内容,并询问用户是否用记事本显示该内容。 2.2 主体功能 1.用户可以方便地在任何日期记录下有关内容或查看某个日期的记录内容。 2.通过按按钮“上年”和“下年”对年份进行翻页;通过按按钮“上月”和“下月”对月份进行翻页。 3.用户可以通过输入年份来查看自己的日志。 2.3 开发环境 Windows 8;jdk1.5.0-0-05;ultraedit开发工具; 3 系统概要设计 3.1 系统的功能模块划分 本日历记事本共有6个java源文件。 CalendarWindow.java

简单日历(加记事本)

两个实体类分别为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) {

java课程设计日历记事本

java课程设计日历记事本 湖南人文科技学院计算机系 2009年6月19日 - 1 - : : 1; (1)为用户提供一个简便的日历记事本; (2)对java技术的进一步了解和简单的运用; (3)初步的接触软件工程; 2 6月8日分析课题、分配任务;对题目进行初步分析 6月9日建立模型,完成整体设计以及功能模块分析 6月10日确立每个类的功能,完成对算法的分析 6月11日完成CalendarPad类的设计 6月12日完成对Year类的设计 6月13日完成对Month类的设计 6月14日完成对NotePad类的设计 6月15日紧系程序测试与修改 6月16日完成设计,整理说明书 6月19日打包发布程序 设计成绩:(教师填写) 指导老师:(签字) 2009年月日

- 2 - 摘 要 ..................................................................... ................................................................... - 4 - 1. 引 言 ..................................................................... ...................................................................... - 5 - 2.设计目的与任 务 ..................................................................... ................................................... - 5 - 3.设计方案...................................................................... ............................................................... - 6 - 3.1 总体设 计 ..................................................................... ................................................... - 6 - 3.2设计要 求 ..................................................................... .................................................... - 6 - 3.3系统的主要功能...................................................................... ....................................... - 6 - 3.4系统功能结构图...................................................................... ....................................... - 6 -

java记事本课程设计

目录 目录 (1) 1 引言 (2) 2、需求分析 (3) 2.1系统概述 (3) 2.2 系实统现思路 (3) 3 系统详细设计 (4) 3.1 界面设计 (4) 3.2 功能设计 (5) 3.3 代码设计 (6) 4 系统调试运行 (8) 4.1 界面调试 (8) 4.2 功能调试 (11) 5 课程设计总结与思考 (12) 6 参考文献 (12) 7 附录 (13)

1 引言 目前,很多新的技术领域都涉及到了Java语言,Java语言是面向对象编程,并涉及到网络、多线程等重要的基础知识,因此Java语言也是学习面向对象编程和网络编程的首选语言。按照教学培养计划要求,学生在学习完课本中指定课时的知识后,应安排一定课时的课程设计。其主要目的是使学生深入理解并实践在本课程中所学的有关JAVA程序设计方面的语言基础、异常处理、事件处理、小应用程序以及图形用户界面设计等。故此“日历记事本”应运而生。 本课程设计是为了配合Java程序设计课程 ,帮助学生深入学习掌握Java语言,熟练运用这个工具而设立的课程。通过课程设计各个项目的综合训练,加强学生对JAVA语言的理解,检验学生对专业理论知识理解与掌握的程度,锻炼学生综合运用JAVA程序设计处理所学的知识实际分析问题、解决问题的能力,使课堂上的理论在实践中得到运用,提高学生的综合素质,为学生毕业后的实际工作打好基础。同时也满足了大多数同学对于一款简单易用的日记本软件的需求。 设计一个简单的Windows记事本,可以实现以下功能:文件的新建,打开,保存和另存; 对文件的编辑,如全选,复制,剪切,粘贴; 执行完操作后,能够顺利关闭记事本。 通过这次设计,可以帮助学生: 提高对Java语言设计的掌握能力; 理论联系实际,进一步提高学生的软件开发技术; 培养学生分析、解决问题的能力。

日历记事本课程设计报告范本

日历记事本课程设 计报告

J a va 程序设计课程设计报告 XXX 日历记事本 专业 XXX 学生姓名 XXX 班 级 XXX 学 号 XXX 指导教师 XXX 完成日期 XXX

目录 1概述 (1) 1.1 课程设计目的 (1) 1.2 课程设计内容 (1) 2 系统需求分析 (1) 2.1 系统目标 (1) 2.2 主体功能 (1) 2.3开发环境 (1) 3系统概要设计 (2) 3.1 系统的功能模块划分与系统流程图 (2) 4 系统详细设计 (2) 5 测试 (4) 5.1 测试方案 (4) 5.2 测试结果 (4) 6 小结 (6) 参考文献 (7) 附录 (8) 附录1 源程序清单 (8)

日历记事本 1 概述 1.1 课程设计目的 1) 巩固和提高java编程技术。 2)培养掌握成学设计的基本思路和方法。 3)加强研发、调试程序的能力。 4)增强分析、解决问题的能力。 5)提高科技论文写作能力。 1.2 课程设计内容 设计GUI界面的日历记事本。系统将日历、记事本功能结合在一起,用户能够方便地在任何日期记录下有关内容或查看某个日期的记录内容。 2 系统需求分析 2.1 系统目标 1.系统界面的左侧是日历。该日历能够按年份前后翻动,鼠标单击“上年”按钮时,当前日历的年份减一;当鼠标左键单击“下年”按钮,当前日历的年份加一。

2.该日历也能够在某年内按月前后翻动。当鼠标左键单击“上月”按钮时,当前日历的月份减一;当鼠标左键单击“下月”按钮时,当前日历的月份加一。 3.使用鼠标左键单击选定的日期,如已有记录内容,系统将弹出对话框提示该日已有记录内容,并询问用户是否用记事本显示该内容。 4.用户选择具体日期后,能够将记事本的当前内容保存起来,形成日志。 2.2 主体功能 用户能够方便地在任何日期记录下有关内容或查看某个日期的记录内容。 经过按按钮“上年”和“下年”对年份进行翻页。经过按按钮“上月”和“下月”对月份进行翻页。用户能够经过输入年份来查看自己的日志。 2.3 开发环境 Windows XP;jdk1.5.0-0-05;ultraedit开发工具 3 系统概要设计 3.1 系统的功能模块划分与系统流程图 本日历记事本共有4个java源文件。

2017年记事本日历(每日可记)

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初七

备忘录系统课程设计报告

目录 摘要 (2) 第1章前言 (3) 第2章需求分析 (4) 第3章概要设计 (5) 3.1系统界面 (5) 3.2日历部分 (5) 3.3记事本部分 (6) 第4章详细设计 (7) 4.1系统界面 (7) 4.2日历部分 (7) 4.3记事本部分 (10) 第5章系统测试 (12) 第6章小结 (17) 参考文献 (18)

摘要 本课程设计通过代码实现将理论知识和具体实践相结合,巩固提高了对JAVA的相关方法与概念的理解,使学生的发散思维及动手能力进一步加强,加强对计算机及软件工程的进一步了解。 在本案例中,我们开发了一个实现有日历的记事本软件,日历记事本中,日历部分可以调节年份,月份,日期,星期。记事本可以实行查看,保存,删除,取消等操作,并且每一步操作都有相应提示,本软件是一个实用性很强,简洁,方便的功能软件。 关键词: java;日历记事本

第1章前言 Java是一个面向对象的程序设计语言,可以让我们更好的掌握面向对象思想解决实际问题的能力。Java拥有庞大的API,其中https://www.360docs.net/doc/828594471.html,ng包下的80%的类都是我们必须熟练掌握的,还有其他如:java.awt包,java.io包等等,AWT的基本内容,包括各种组件事件、监听器、布局管理器、常用组件、打印,还有Swing组件的基本内容等。运用这些强大的API 我们可以开发出很多的应用程序。当然,java的优势在网络编程上,但那不等于java在桌面应用程序这一块不可以,java的思想照样可以做到,甚至更好。 Java是一种纯面向对象的、网络编程首选的语言。Java技术作为软件开的一种革命性技术,已被列为当今世界信息技术的主流之一。为了适应时代潮流,我们应该加强对Ja va 的学习,更好的掌握这门课程。为此,我们成了一个课程小组,经过小组成的商讨之后,我们决定以“日历记事本”为设题材,借此巩固加深我们对Java的了解。 本次课程设计的实例虽然比较简单,程序设计也不是很复杂,但在此程序的设计过程也是一个学习过程,更是对复杂程序的一个学习过程,还能培养我们的数抽象能力。因此,我们觉得这次课程设计是非常有意义的,能为我们今后学习面向过程的程序设计作一些铺垫。

日历记事本课程设计报告

Java 程序设计课程设计报告 XXX 日历记事本 专业 XXX 学生 XXX 班级 XXX 学 号 XXX 指导教师 XXX 完成日期 XXX

目录 1概述 (1) 1.1 课程设计目的 (1) 1.2 课程设计容 (1) 2 系统需求分析 (1) 2.1 系统目标 (1) 2.2 主体功能 (1) 2.3开发环境 (1) 3系统概要设计 (2) 3.1 系统的功能模块划分与系统流程图 (2) 4 系统详细设计 (2) 5 测试 (4) 5.1 测试方案 (4) 5.2 测试结果 (4) 6 小结 (6) 参考文献 (7) 附录 (8) 附录1 源程序清单 (8)

日历记事本 1 概述 1.1 课程设计目的 1) 巩固和提高java编程技术。 2)培养掌握成学设计的基本思路和方法。 3)加强研发、调试程序的能力。 4)增强分析、解决问题的能力。 5)提高科技论文写作能力。 1.2 课程设计容 设计GUI界面的日历记事本。系统将日历、记事本功能结合在一起,用户可以方便地在任何日期记录下有关容或查看某个日期的记录容。 2 系统需求分析 2.1 系统目标 1.系统界面的左侧是日历。该日历可以按年份前后翻动,鼠标单击“上年”按钮时,当前日历的年份减一;当鼠标左键单击“下年”按钮,当前日历的年份加一。 2.该日历也可以在某年按月前后翻动。当鼠标左键单击“上月”按钮时,当前日历的月份减一;当鼠标左键单击“下月”按钮时,当前日历的月份加一。 3.使用鼠标左键单击选定的日期,如已有记录容,系统将弹出对话框提示该日已有记录容,并询问用户是否用记事本显示该容。 4.用户选择具体日期后,可以将记事本的当前容保存起来,形成日志。 2.2 主体功能 用户可以方便地在任何日期记录下有关容或查看某个日期的记录容。 通过按按钮“上年”和“下年”对年份进行翻页。通过按按钮“上月”和“下月”对月份进行翻页。用户可以通过输入年份来查看自己的日志。 2.3 开发环境 Windows XP;jdk1.5.0-0-05;ultraedit开发工具

电子日历记事本--Java课程设计

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

华中科技大学武昌分校制

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

目录 1需求与总体设计 (1) 需求分析 (1) 总体设计思路 (1) 功能图 (1) 1.类图 (2) 【 2详细设计 (3) CalendarPad类说明 (3) Year类说明 (3) Month 类模块 (4) NotePad类说明 (4) 3编码实现 (6) CalendarPad模块 (6) Year模块 (11) ^ Month 模块 (14) NotePad模块 (16) 4系统运行与测试 (23) 程序主界面 (23) 日志查看——无日志 (23) 建立日志 (24) 日志查看——有日志 (24) 删除日志 (26) > 总结 (27)

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

日历记事本的设计与实现

课程设计报告 (2013 2014年度第二学期) 名称:软件设计与实践 题目:日历记事本的设计与实现院系:计算机系 班级: 学号: 学生姓名: 指导教师: 设计周数: 2 成绩: 日期:年月日

软件设计与实践 任务书 一、目的与要求 目的:通过综合性实验的设计,使学生综合训练自己的需求分析、系统设计、编程、测试等各种能力,积累软件开发的经验,提高学生进行软件开发所需具备的专业素质以及团队协作能力。 要求:完成一个界面的日历记事本的分析、设计、编程、测试工作。 二、主要内容 1.编写一个界面的日历记事本,结合两者的功能。 2.用户可以方便地在任何日期记录下有关内容或查看某个日期的记录内容; 3.能够在对应的日期时间给用户以提醒; 三、进度计划 四、设计(实验)成果要求 程序代码注释丰富,经过测试,运行正常、合理。程序页面友好,使用方便。 五、考核方式 1.平时成绩占10%。 2.综合实验完成情况占30%。 3.实验问答占20% 4.实验报告占40%。 学生姓名: 指导教师:软件设计与实践教学组 年月日

一、课程设计的目的与要求 1.目的:通过综合性实验的设计,使学生综合训练自己的需求分析、系统设计、编程、测试等各种能力,积累软件开发的经验,提高学生进行软 件开发所需具备的专业素质以及团队协作能力。 2.要求:完成一个界面的日历记事本的分析、设计、编程、测试工作。 二、设计正文 1设计说明书 1.1用例图

1.2功能结构图 日历记事本功能: (1) 添加事件: 1)添加生日:出生日期、姓名 2)添加行程:日期、时间、地点、内容、提示音、提示日期、提示时 间 3)添加纪念日:日期、时间、地点、内容 (2) 管理事件: 1)管理生日 a)按条件查询:查询全部、按姓名查询,将相应的查询结果显示在 列表框中 b)删除选中的一条记录(从数据库中删除) c)清空全部记录(数据库和列表框中同时清空) 2)管理行程 a)按条件查询:查询全部、查询今日以前的记录、查询今日以后的 记录、选择某一日期查询(缺省为今日),将相应的查询结果显 示在列表框中 b)删除选中的一条记录(从数据库和列表框中删除) c)清空全部记录(数据库和列表框中同时清空)

相关文档
最新文档