




已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
山東交通學(xué)院接口技術(shù)課程設(shè)計(VHDL/JAVA)萬年歷院(系)別 信息科學(xué)與電氣工程學(xué)院 班 級 電信091 學(xué) 號 090819344 姓 名 胡 利 指導(dǎo)教師 龐希愚 時 間 2012-01-272012-03-02 課 程 設(shè) 計 任 務(wù) 書題 目 萬年歷 系 (部) 信息科學(xué)與電氣工程學(xué)院 專 業(yè) 電子信息工程 班 級 電信091 學(xué)生姓名 胡 利 學(xué) 號 090819344 1 月 27 日至 3 月 2 日 共 1 周指導(dǎo)教師(簽字) 系 主 任(簽字) 年 月 日一、設(shè)計內(nèi)容及要求 1、使用圖形用戶界面。 2、實(shí)現(xiàn)日期與星期的查詢二、設(shè)計原始資料 1、顯示信息:用戶可以向前翻頁查詢前一個月的日期,也可以向后翻頁查詢下一個月的日期。 2、定時提醒:用戶可以針對某一天來添加,刪除和編輯這一天的日程提醒信息,當(dāng)系統(tǒng)時間和提醒時間相吻合時,給出具有提示信息的對話框。三、設(shè)計完成后提交的文件和圖表1計算說明書部分?jǐn)?shù)據(jù)庫設(shè)計分析 1. 總天數(shù)的算法:首先用if語句判斷定義年到輸入年之間每一年是否為閏年,是閏年,該年的總天數(shù)為366,否則,為365。然后判斷輸入的年是否為定義年,若是,令總天數(shù)S=1,否則,用累加法計算出定義年到輸入年之間的總天數(shù),再把輸入年的一月到要輸出的月份之間的天數(shù)累加起來,若該月是閏年中的月份并且該月還大于二月,再使總天數(shù)加1,否則,不加,既算出從定義年一月一日到輸出年的該月一日的總天數(shù)。2. 輸出月份第一天為星期幾的算法:使總天數(shù)除以7取余加2得幾既為星期幾,若是7,則為星期日。3. 算出輸出月份第一天為星期幾的算法:算出輸出月份第一天為星期幾后,把該日期以前的位置用空格補(bǔ)上,并總該日起一次輸出天數(shù)直到月底,該月中的天數(shù)加上該月一日為星期幾的數(shù)字再除以7得0換行,即可完整的輸出該月的日歷。開始2圖紙部分:計算,繪制屏幕程序初始化獲取當(dāng)前系統(tǒng)時間年份等數(shù)據(jù)程序流程圖是否輸入或選擇年(月)份提交年月變更數(shù)據(jù)更數(shù)據(jù)結(jié)束四、進(jìn)程安排1、星期一選定題目,查閱資料2、星期二構(gòu)思程序流程圖3、星期三和星期四編寫且完善程序4、星期五答辯五、主要參考資料 1、Eclipse使用教程 2、java程序設(shè)計常用教程成 績 評 定 表作品成績報告成績口試(答辯)成績總評成績目 錄前言31需求分析31.1需求分析31.2功能設(shè)計32.概要設(shè)計32.1程序設(shè)計思路32.2程序運(yùn)行界面42.3流程圖53.各模塊的功能及程序說明63.1.初始化組件63.2.初始化數(shù)據(jù)63.3.繪制程序界面74測試分析85源程序清單106課程設(shè)計體會18參考文獻(xiàn)19摘 要我們的實(shí)踐的能力,為提高知識,可以運(yùn)用了再創(chuàng)造,學(xué)校在2周安排,我們發(fā)出java課程設(shè)計進(jìn)行實(shí)習(xí)。此文件的詳細(xì)說明java的環(huán)境下,一個軟件設(shè)計的過程,本軟體是各種數(shù)據(jù)的個數(shù)統(tǒng)計。這種軟件的功能,用戶可一段文字輸入后,軟件是文字中的各類的數(shù)據(jù)的成績?yōu)橛⒄Z和數(shù)據(jù)的數(shù)量和數(shù)字?jǐn)?shù)據(jù)的數(shù)量、空白的數(shù)據(jù)的數(shù)量和它的類型的數(shù)據(jù)的數(shù)量,然后,他將顯示出來。以下,課程設(shè)計通過解釋數(shù)據(jù)是軟件的統(tǒng)計,計劃于解釋了調(diào)整,并將負(fù)責(zé)等方面,還詳細(xì)介紹了此項(xiàng)技術(shù)的制作過程說明了作用,以及各種無法實(shí)行操作。關(guān)鍵字:萬年歷,java,頭文件前言Java的前身是Oak,它一開始只是被應(yīng)用于消費(fèi)性電子產(chǎn)品中。后來它的開發(fā)者們發(fā)現(xiàn)它還可以被用于更大范圍的Internet上。1995年,Java語言的名字從Oak編程了Java。1997年J2SE1.1發(fā)布。1998年J2SE1.2發(fā)布,標(biāo)志Java2的誕生。十多年來,Java編程語言及平臺成功地運(yùn)用在網(wǎng)絡(luò)計算及移動等各個領(lǐng)域。Java的體系結(jié)構(gòu)由Java語言、Java class、Java API、Java虛擬機(jī)組成。它具有簡單、面向?qū)ο?、健壯、安全、結(jié)構(gòu)中立、可移植和高效能等眾多優(yōu)點(diǎn)。Java支持多線程編程,Java運(yùn)行時系統(tǒng)在多線程同步方面具有成熟的解決方案。Java的平臺標(biāo)準(zhǔn)有Java ME,Java SE和Java EE。Java發(fā)展到今天,它的卓越成就及在業(yè)界的地位毋庸置疑。目前在眾多的支持Java的開發(fā)工具中主要的7有Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中Java Development Kit 簡稱JDK是大多開發(fā)工具的基礎(chǔ)。以上的每種開發(fā)工具都有優(yōu)缺點(diǎn),對于開發(fā)者來說,重要的是要根據(jù)自己的開發(fā)規(guī)模、開發(fā)內(nèi)容和軟硬件環(huán)境等因素來選擇一種合適的開發(fā)工具。1需求分析1.1需求分析本程序的要求為:1.使用圖形用戶界面;2.本程序能夠?qū)崿F(xiàn)日期與星期的查詢。1.2功能設(shè)計本程序要構(gòu)建的萬年歷程序,其功能有以下幾個方面:(1)通過網(wǎng)頁形式運(yùn)行,實(shí)現(xiàn)圖形界面。(2)能以月歷形式顯示日期與星期。 (3)支持用戶自己輸入年份,并提供月份的下拉形式菜單來選擇月份。 (4)通過點(diǎn)擊“更新”來刷新日歷。2.概要設(shè)計2.1程序設(shè)計思路1. 總天數(shù)的算法:首先用if語句判斷定義年到輸入年之間每一年是否為閏年,是閏年,該年的總天數(shù)為366,否則,為365。然后判斷輸入的年是否為定義年,若是,令總天數(shù)S=1,否則,用累加法計算出定義年到輸入年之間的總天數(shù),再把輸入年的一月到要輸出的月份之間的天數(shù)累加起來,若該月是閏年中的月份并且該月還大于二月,再使總天數(shù)加1,否則,不加,既算出從定義年一月一日到輸出年的該月一日的總天數(shù)。2. 輸出月份第一天為星期幾的算法:使總天數(shù)除以7取余加2得幾既為星期幾,若是7,則為星期日。3. 算出輸出月份第一天為星期幾的算法:算出輸出月份第一天為星期幾后,把該日期以前的位置用空格補(bǔ)上,并總該日起一次輸出天數(shù)直到月底,該月中的天數(shù)加上該月一日為星期幾的數(shù)字再除以7得0換行,即可完整的輸出該月的日歷。4. 如果年份小于1582年則程序不予判斷。2.2程序運(yùn)行界面2.3流程圖程序初始化獲取當(dāng)前系統(tǒng)時間年份等數(shù)據(jù)提交年月變更數(shù)據(jù) 是否輸入年份或選擇月份開始計算,繪制屏幕結(jié)束3.各模塊的功能及程序說明3.1.初始化組件 import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;/import java.sql.Date;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.table.DefaultTableModel;3.2.初始化數(shù)據(jù)public class MyCalendar extends JFrame implements ActionListener, MouseListener /實(shí)現(xiàn)監(jiān)聽器接口 private Calendar cld = Calendar.getInstance(); private String astr = Sunday,Monday, Tuesday, wednesday, Thursday, Friday, Saturday; private DefaultTableModel dtm = new DefaultTableModel(null,astr); private JTable table = new JTable(dtm); /裝日期的表格 private JScrollPane sp = new JScrollPane(table); private JButton bLastYear = new JButton(last year); private JButton bNextYear = new JButton(next year); private JButton bLastMonth = new JButton(last month); private JButton bNextMonth = new JButton(next month); private JTextField jtfYear = new JTextField(4);/jtfYear年份顯示和輸入文本框 private JTextField jtfMonth = new JTextField(4);/jtfMonth月份顯示文本框 private JPanel p1 = new JPanel(); /裝入控制日期按鈕的模塊 /private JPanel p2 = new JPanel(); private JPanel p3 = new JPanel(new BorderLayout(); private JPanel p4 = new JPanel(new GridLayout(2,1); private JPanel p5 = new JPanel(new BorderLayout(); / private JTextArea jta = new JTextArea(); /jta-JTextArea private JLabel l = new JLabel(提示:可向年(月)份文本框中鍵入您要查找的年份,以提高查詢效率); private JLabel lt = new JLabel(); private JLabel ld = new JLabel(); private int lastTime;3.3.繪制程序界面public MyCalendar() super(MyCalendar); /框架命名 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/窗口關(guān)閉函數(shù) this.getContentPane().setLayout(new BorderLayout(10, 0); jta.setLineWrap(true); table.setGridColor(Color.GRAY); /星期之間的網(wǎng)格線是灰色的 table.setColumnSelectionAllowed(true); table.setSelectionBackground(Color.BLACK);/當(dāng)選定某一天時這一天背景黑色 table.setSelectionForeground(Color.GREEN);/選定的日期字體是綠色的 table.setBackground(new Color(184,207,229);/日期顯示表格顏色淺藍(lán)色 table.setFont(new Font(黑體,Font.BOLD,24);/日期數(shù)字字體格式 table.setRowHeight(30);/表格的高度 table.addMouseListener(this); /鼠標(biāo)監(jiān)聽器 jtfYear.addActionListener(this);/可輸入年份的文本框 /為各個按鈕添加監(jiān)聽函數(shù) bAdd.addActionListener(this); bDel.addActionListener(this); bLastYear.addActionListener(this); bNextYear.addActionListener(this); bLastMonth.addActionListener(this); bNextMonth.addActionListener(this); /將按鈕添加到Jpanel上 p1.add(bLastYear); p1.add(jtfYear);/年份輸入文本框 p1.add(bNextYear); p1.add(bLastMonth); p1.add(jtfMonth); p1.add(bNextMonth); p2.add(bAdd); p2.add(bDel); p3.add(jsp, BorderLayout.CENTER); /JSP? p3.add(p2, BorderLayout.SOUTH); p3.add(ld, BorderLayout.NORTH); p4.add(l); p4.add(lt); p5.add(p4, BorderLayout.SOUTH); p5.add(sp, BorderLayout.CENTER); p5.add(p1, BorderLayout.NORTH); this.getContentPane().add(p5, BorderLayout.CENTER); this.getContentPane().add(p3, BorderLayout.EAST); String strDate = DateFormat.getDateInstance().format(new Date().split(-);/獲得日期 cld.set(Integer.parseInt(strDate0), Integer.parseInt(strDate1)-1, 0); showCalendar(Integer.parseInt(strDate0), Integer.parseInt(strDate1), cld); jtfMonth.setEditable(false);/設(shè)置月份的文本框?yàn)椴豢删庉?jtfYear.setText(strDate0); jtfMonth.setText(strDate1); this.showTextArea(strDate2); ld.setFont(new Font(新宋體,Font.BOLD,24); new Timer(lt).start(); this.setBounds(200,200,600,320); this.setResizable(false); this.setVisible(true);4、測試分析5源程序清單import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import javax.swing.AbstractButton;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.table.DefaultTableModel;public class MyCalendar extends JFrame implements ActionListener, MouseListener /實(shí)現(xiàn)監(jiān)聽器接口 private Calendar cld = Calendar.getInstance(); private String astr = Sunday,Monday, Tuesday, wednesday, Thursday, Friday, Saturday; private DefaultTableModel dtm = new DefaultTableModel(null,astr); private JTable table = new JTable(dtm); /裝日期的表格 private JScrollPane sp = new JScrollPane(table); private JButton bLastYear = new JButton(last year); private JButton bNextYear = new JButton(next year); private JButton bLastMonth = new JButton(last month); private JButton bNextMonth = new JButton(next month); private JTextField jtfYear = new JTextField(4);/jtfYear年份顯示和輸入文本框 private JTextField jtfMonth = new JTextField(4);/jtfMonth月份顯示文本框 private JPanel p1 = new JPanel(); /裝入控制日期按鈕的模塊 /private JPanel p2 = new JPanel(); private JPanel p3 = new JPanel(new BorderLayout(); private JPanel p4 = new JPanel(new GridLayout(2,1); private JPanel p5 = new JPanel(new BorderLayout(); / private JTextArea jta = new JTextArea(); /jta-JTextArea private JLabel l = new JLabel(提示:可向年(月)份文本框中鍵入您要查找的年份,以提高查詢效率); private JLabel lt = new JLabel(); private JLabel ld = new JLabel(); private int lastTime; public MyCalendar() super(MyCalendar); /框架命名 ;super調(diào)用父類隱藏的構(gòu)造方法title this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);/窗口關(guān)閉函數(shù) this.getContentPane().setLayout(new BorderLayout(); /jta.setLineWrap(true); table.setGridColor(Color.YELLOW); /星期之間的網(wǎng)格線是黃色的 table.setColumnSelectionAllowed(true); table.setSelectionBackground(Color.BLACK);/當(dāng)選定某一天時這一天背景黑色 table.setSelectionForeground(Color.RED);/選定的日期字體是紅色的 table.setBackground(new Color(120,220,160);/選定表格的背景顏色 table.setFont(new Font(黑體,Font.BOLD,24);/日期數(shù)字字體格式 table.setRowHeight(35);/表格的高度 table.addMouseListener(this); /鼠標(biāo)監(jiān)聽器 /為各個按鈕添加監(jiān)聽函數(shù) jtfYear.addActionListener(this);/可輸入年份的文本框 jtfMonth.addActionListener(this); bLastYear.addActionListener(this); bNextYear.addActionListener(this); bLastMonth.addActionListener(this); bNextMonth.addActionListener(this); /將按鈕添加到Jpanel上 p1.add(bLastYear); p1.add(jtfYear);/年份輸入文本框 p1.add(bNextYear); p1.add(bLastMonth); p1.add(jtfMonth); p1.add(bNextMonth); /p3.add(jta, BorderLayout.EAST); /jtextarea /p3.add(p2, BorderLayout.CENTER); p3.add(ld, BorderLayout.CENTER); p4.add(l); p4.add(lt); p5.add(p4, BorderLayout.SOUTH); p5.add(sp, BorderLayout.CENTER); p5.add(p1, BorderLayout.NORTH); this.getContentPane().add(p5, BorderLayout.CENTER); /this引用父類的方法 this.getContentPane().add(p3, BorderLayout.NORTH); String strDate = DateFormat.getDateInstance().format(new Date().split(-);/獲得日期 cld.set(Integer.parseInt(strDate0), Integer.parseInt(strDate1)-1, 0); showCalendar(Integer.parseInt(strDate0), Integer.parseInt(strDate1), cld); /jtfMonth.setEditable(false);/設(shè)置月份的文本框?yàn)椴豢删庉?jtfYear.setText(strDate0); jtfMonth.setText(strDate1); this.showTextArea(strDate2); ld.setFont(new Font(新宋體,Font.BOLD,24);/顯示的日期字體格式 new Timer(lt).start(); /顯示系統(tǒng)時間 this.setBounds(200,200,500,300); this.setResizable(false);/框架尺寸不可變 this.setVisible(true);/窗口可見 public void showCalendar(int localYear, int localMonth, Calendar cld) int Days = getDaysOfMonth(localYear, localMonth) + cld.get(Calendar.DAY_OF_WEEK)-1 ; Object ai = new Object7; lastTime = 0; for (int i = cld.get(Calendar.DAY_OF_WEEK); i = Days; i+) aii%7 = String.valueOf(i-(cld.get(Calendar.DAY_OF_WEEK)-1); if (i%7 = 6) dtm.addRow(ai); /dtm=table ai = new Object7; lastTime+; /換到下一個空表格 dtm.addRow(ai); /循環(huán)加行 public int getDaysOfMonth(int year, int Month) /顯示所選月份的天數(shù) if(Month = 1 | Month = 3 | Month = 5 | Month = 7 | Month = 8 | Month = 10 | Month = 12) return 31; if(Month = 4 | Month = 6 | Month = 9 | Month = 11) return 30; if(year%4 = 0 & year%100 != 0 | year%400 = 0)/閏年 return 29; else return 28; public void actionPerformed(ActionEvent e) if(e.getSource() = jtfYear | e.getSource() = bLastYear | e.getSource() = bNextYear | e.getSource() = bLastMonth | e.getSource() = bNextMonth) int m, y; y = Integer.parseInt(jtfYear.getText(); m = Integer.parseInt(jtfMonth.getText(); for (int i = 0; i lastTime+1; i+) dtm.removeRow(0); if(e.getSource() = bLastYear) jtfYear.setText(String.valueOf(-y); if(e.getSource() = bNextYear)jtfYear.setText(String.valueOf(+y); if(e.getSource() = bLastMonth) if(m = 1) jtfYear.setText(String.valueOf(-y); m = 12; jtfMonth.setText(String.valueOf(m); else jtfMonth.setText(String.valueOf(-m); if(e.getSource() = bNextMonth) if(m = 12) jtfYear.setText(String.valueOf(+y); m = 1; jtfMonth.setText(String.valueOf(m); else jtfMonth.setText(String.valueOf(+m); cld.set(y, m-1 , 0); showCalendar(y, m, cld); public void mouseClicked(MouseEvent e) int r = table.getSelectedRow(); int c = table.getSelectedColumn(); this.showTextArea(table.getValueAt(r,c); public void mousePressed(MouseEvent e) public void mouseReleased(MouseEvent e) public void mouseEntered(MouseEvent e) public void mouseExited(MouseEvent e) private void showTextArea(Object selected) ld.setText(jtfYear.getText()+年+jtfMonth.getText()+月+selected+日); / File filein = new File(ld.getT
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)內(nèi)部審計財務(wù)代理合同標(biāo)準(zhǔn)文本
- 零售業(yè)采購計劃編制及目標(biāo)優(yōu)化合同
- 住宅小區(qū)車位租賃合同標(biāo)準(zhǔn)范本
- 財產(chǎn)分割及子女撫養(yǎng)權(quán)糾紛調(diào)解協(xié)議書
- 房地產(chǎn)項(xiàng)目前期開發(fā)手續(xù)一站式代辦與專業(yè)咨詢協(xié)議
- 消費(fèi)者金融代收款代理合同
- 不可壓縮流體的一元流動課件
- 車輛駕駛與智能駕駛系統(tǒng)承包合同范本
- 文化創(chuàng)意產(chǎn)業(yè)廠房轉(zhuǎn)租合同書
- 餐飲企業(yè)股東權(quán)益保障與合伙經(jīng)營合同
- 邊坡噴護(hù)檢驗(yàn)批質(zhì)量驗(yàn)收記錄表
- GB∕T 31062-2014 聚合物多元醇
- 氧、氬、二氧化碳?xì)怏w充裝企業(yè)風(fēng)險點(diǎn)分級管控資料
- 醫(yī)學(xué)專題杏林中人乳腺穴位敷貼
- 公路水運(yùn)工程施工安全標(biāo)準(zhǔn)化指南(42頁)
- 人教版 2021-2022學(xué)年 五年級下冊數(shù)學(xué)期末測試試卷(一)含答案
- 錫槽缺陷手冊(上
- (完整版)全國校園籃球特色學(xué)校申報材料
- 西門子SAMA圖DEH邏輯講解
- 施工現(xiàn)場安全、文明施工檢查評分表
- 管道支架重量計算表常用圖文精
評論
0/150
提交評論