JAVA課程設(shè)計(jì) 時(shí)鐘的設(shè)計(jì)實(shí)現(xiàn)
《JAVA課程設(shè)計(jì) 時(shí)鐘的設(shè)計(jì)實(shí)現(xiàn)》由會(huì)員分享,可在線閱讀,更多相關(guān)《JAVA課程設(shè)計(jì) 時(shí)鐘的設(shè)計(jì)實(shí)現(xiàn)(21頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 遼 寧 工 業(yè) 大 學(xué) JAVA程序設(shè)計(jì) 課程設(shè)計(jì)(論文) 題目: 時(shí)鐘 院(系): 軟件學(xué)院 專(zhuān)業(yè)班級(jí): 軟件技術(shù)091班 學(xué) 號(hào): 888888888 學(xué)生姓名: tianxi 指導(dǎo)教師: tianxi 教師職稱: 助 教 起止時(shí)間: 2010.12.1至2010.12.16 程序設(shè)計(jì)專(zhuān)題(報(bào)告)任務(wù)及評(píng)語(yǔ) 院(系):軟件學(xué)院 教研
2、室:軟件教研室 學(xué) 號(hào) 8888888 學(xué)生姓名 tianxi 專(zhuān)業(yè)班級(jí) 軟件技術(shù)091 程序設(shè)計(jì)(報(bào)告)題目 時(shí)鐘 程序設(shè)計(jì)(報(bào)告)任務(wù) 程序設(shè)計(jì)專(zhuān)題的任務(wù)與要求: (1)掌握J(rèn)ava編程、面向?qū)ο蟮幕A(chǔ)知識(shí)。 (2)較熟練地編寫(xiě)Java應(yīng)用程序Application。 (3)了解Java的常用標(biāo)準(zhǔn)類(lèi)庫(kù)、編程技巧、異常處理。 (5)聯(lián)系已學(xué)過(guò)的內(nèi)容,鞏固所學(xué)的理論,增強(qiáng)獨(dú)立工作能力。 (6)通過(guò)設(shè)計(jì)主要使學(xué)生有一個(gè)獨(dú)立編寫(xiě)程序的過(guò)程,對(duì)理論學(xué)習(xí)及動(dòng)手能力都有一個(gè)很大的提高。 (7)通過(guò)本次設(shè)計(jì),進(jìn)一步培養(yǎng)學(xué)生熱愛(ài)專(zhuān)業(yè)的思想,同時(shí)對(duì)本專(zhuān)業(yè)綜合素質(zhì)的提高起一個(gè)
3、積極的推動(dòng)作用。 課程設(shè)計(jì)過(guò)程中,要嚴(yán)格遵守實(shí)踐環(huán)節(jié)的時(shí)間安排,聽(tīng)從指導(dǎo)教師的指導(dǎo)。正確地完成上述內(nèi)容,記錄實(shí)習(xí)日記,規(guī)范完整地撰寫(xiě)出課程設(shè)計(jì)報(bào)告。 指導(dǎo)教師評(píng)語(yǔ)及成績(jī) 成績(jī): 指導(dǎo)教師簽字: 2009 年 12 月 20 日 遼 寧 工 業(yè) 大 學(xué) 課 程 設(shè) 計(jì) 說(shuō) 明 書(shū)(論 文) 目 錄 第1章 課程設(shè)計(jì)的目的與要求 1 1.1 課程設(shè)計(jì)目的 1 1
4、.2 課程設(shè)計(jì)的實(shí)驗(yàn)環(huán)境 1 1.3 課程設(shè)計(jì)的預(yù)備知識(shí) 1 1.4 課程設(shè)計(jì)要求 1 第2章 課程設(shè)計(jì)內(nèi)容 2 2.1課程設(shè)計(jì)主要內(nèi)容 2 2.2概要設(shè)計(jì) 2 2.2.1自定義類(lèi)說(shuō)明 2 2.3詳細(xì)設(shè)計(jì) 3 2.4測(cè)試分析 16 2.4.1程序運(yùn)行情況 16 2.4.2程序異常處理 16 第3章 課程設(shè)計(jì)總結(jié) 17 參考資料 18 第1章 課程設(shè)計(jì)的目的與要求 1.1 課程設(shè)計(jì)目的 《JAVA程序設(shè)計(jì)》是計(jì)算機(jī)相關(guān)專(zhuān)業(yè)的必修專(zhuān)業(yè)基礎(chǔ)課程,其實(shí)踐性、應(yīng)用性很強(qiáng)。實(shí)踐教學(xué)環(huán)節(jié)是必不可少的一個(gè)重要環(huán)節(jié)。本課程的程序設(shè)計(jì)專(zhuān)題實(shí)際是計(jì)算機(jī)相關(guān)專(zhuān)業(yè)學(xué)生學(xué)習(xí)完《JA
5、VA程序設(shè)計(jì)》課程后,進(jìn)行的一次全面的綜合訓(xùn)練,JAVA程序設(shè)計(jì)的設(shè)計(jì)目的是加深對(duì)理論教學(xué)內(nèi)容的理解和掌握,使學(xué)生較系統(tǒng)地掌握程序設(shè)計(jì)及其在網(wǎng)絡(luò)開(kāi)發(fā)中的廣泛應(yīng)用,基本方法及技巧,為學(xué)生綜合運(yùn)用所學(xué)知識(shí),利用軟件工程為基礎(chǔ)進(jìn)行軟件開(kāi)發(fā)、并在實(shí)踐應(yīng)用方面打下一定基礎(chǔ)。 1.2 課程設(shè)計(jì)的實(shí)驗(yàn)環(huán)境 硬件要求能運(yùn)行Windows 9.X操作系統(tǒng)的微機(jī)系統(tǒng)。JAVA程序設(shè)計(jì)語(yǔ)言及相應(yīng)的集成開(kāi)發(fā)環(huán)境,J2SDK和ECLIPSE開(kāi)發(fā)工具。 1.3 課程設(shè)計(jì)的預(yù)備知識(shí) 熟悉JAVA語(yǔ)言及ECLIPSE開(kāi)發(fā)工具。 1.4 課程設(shè)計(jì)要求 按課程設(shè)計(jì)指導(dǎo)書(shū)提供的課題,要求學(xué)生在自行完成各個(gè)操作環(huán)節(jié),并能
6、實(shí)現(xiàn)且達(dá)到舉一反三的目的,完成一個(gè)項(xiàng)目解決一類(lèi)問(wèn)題。要求學(xué)生能夠全面、深入理解和熟練掌握所學(xué)內(nèi)容,并能夠用其分析、設(shè)計(jì)和解答類(lèi)似問(wèn)題;對(duì)此能夠較好地理解和掌握,能夠進(jìn)行簡(jiǎn)單分析和判斷;能編寫(xiě)出具有良好風(fēng)格的程序;掌握J(rèn)AVA程序設(shè)計(jì)的基本技能和面向?qū)ο蟮母拍詈头椒?;了解多線程、安全和網(wǎng)絡(luò)等編程技術(shù)。同時(shí)培養(yǎng)學(xué)生進(jìn)行分析問(wèn)題、解決問(wèn)題的能力;培養(yǎng)學(xué)生進(jìn)行設(shè)計(jì)分析、設(shè)計(jì)方法、設(shè)計(jì)操作與測(cè)試、設(shè)計(jì)過(guò)程的觀察、理解和歸納能力的提高。 第2章 課程設(shè)計(jì)內(nèi)容 2.1課程設(shè)計(jì)主要內(nèi)容 我設(shè)計(jì)的時(shí)鐘有的界面良好,比較簡(jiǎn)潔美觀,程序有很強(qiáng)的實(shí)用性,實(shí)現(xiàn)程序與電腦的時(shí)間的同步。可以顯示時(shí)鐘,也可以顯
7、示分針秒針,并可以在相應(yīng)位置調(diào)整時(shí)間。而且初始運(yùn)行會(huì)自動(dòng)與電腦的時(shí)間校對(duì),一般默認(rèn)為同步,但還可以自己再次調(diào)節(jié),提高了實(shí)用性。 本系統(tǒng)共包括1個(gè)java源文件。1、Clock源文件是本程序的主函數(shù)其作用是初始化棋盤(pán)。2、setCurrentTime源文件實(shí)現(xiàn)電腦設(shè)置時(shí)間。3、paintHourPointer源文件為時(shí)針.4、paintSecondPointer源文件實(shí)現(xiàn)人與電腦設(shè)置秒針.5、paintMinuteDot源文件人與電腦設(shè)置分針. 2.2概要設(shè)計(jì) 2.2.1自定義類(lèi)說(shuō)明 ****************************************************
8、****** * 類(lèi)名: Clock * * 作用: 自定義主類(lèi),對(duì)鼠標(biāo)拖拽的初始界面進(jìn)行聲明* * 繼承的父類(lèi): JComponent類(lèi) * * 實(shí)現(xiàn)的接口: 沒(méi)有 * ********************************************************** 表1-成員變量表 表2.1 Clock成員變量 成員變量描述 變量類(lèi)型 名稱 時(shí)針 String Hour 分針 String Minute 秒針 String Second 時(shí)間點(diǎn) TextField text_1 表2-方法表 表2 Cloc
9、k方法 方法名 功能 備注 setCurrentTime 設(shè)置當(dāng)前時(shí)間 構(gòu)造方法 paintHourPointer 設(shè)置時(shí)針 接口方法 paintSecondPointer 設(shè)置秒針 接口方法 paintMinuteDot 設(shè)置分針 接口方法 actionPerformed 事件處理 run 程序運(yùn)行 2.3詳細(xì)設(shè)計(jì) import java.awt.*; import java.awt.geom.Ellipse2D; import java.awt.geom.GeneralPath; import java.aw
10、t.geom.Line2D; import java.awt.geom.Rectangle2D; import java.util.Calendar; import java.util.Date; import javax.swing.BorderFactory; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.UIManager; public class Clock extends JComponent {
11、 private static final Color INTEGRAL_COLOR = new Color(0, 128, 128); private int radius; private Calendar currentTime = Calendar.getInstance(); private double s = 0.03; public Clock(int radius) { this.radius = radius; } public void
12、setCurrentTime(Date time) //設(shè)置當(dāng)前時(shí)間 { this.currentTime.setTime(time); } public void setCurrentTime(long millis) { this.currentTime.setTimeInMillis(millis); } public Dimension getPreferredSize() { Insets insets = getInsets(); int r = (int) (radiu
13、s == -1 ? 0 : radius*(1+s))+1; return new Dimension(r * 2 + insets.left + insets.right,r * 2 + insets.top + insets.bottom); //返回一個(gè)指定寬、高的Dimension } protected void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2d
14、= (Graphics2D) g; g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); Insets insets = getInsets(); int wid = getWidth() - insets.left - insets.right; int hei = getHeight() - insets.top - insets.bottom; int r
15、= (int) ((Math.min(wid, hei)) / 2 / (1+s)); g2d.translate(insets.left + r * (1+s), insets.top + r * (1+s)); g2d.scale(1, -1); for (int i = 0; i < 60; i++) { int angle = 90 - i * 6; double pos[] = calcPos(r, angle);
16、 paintMinuteDot(r, g2d, pos[0], pos[1], i % 5 == 0); } paintHourPointer(r, g2d); paintMinutePointer(r, g2d); paintSecondPointer(r, g2d); paintCenterPoint(g2d); g2d.scale(1, -1); g2d.translate(-insets.left - r * (1+s), -insets.top - r * (1+s));
17、 } private void paintCenterPoint(Graphics2D g2d) { g2d.setColor(Color.BLUE); Rectangle2D rect = new Rectangle2D.Double(-2, -2, 4, 4); g2d.fill(rect); } private void paintMinutePointer(int r, Graphics2D g2d) { int minute = currentTime.get(Calenda
18、r.MINUTE); int second = currentTime.get(Calendar.SECOND); double angle = 90 - (minute + second / 60.0) * 6; Shape pointerShape = createPointerShape(r * 0.8, r * 0.04, r * 0.08, angle); g2d.setColor(Color.LIGHT_GRAY); g2d.fill(pointerShape
19、); g2d.setColor(Color.DARK_GRAY); g2d.draw(pointerShape); } private void paintHourPointer(int r, Graphics2D g2d) { int hour = currentTime.get(Calendar.HOUR); int minute = currentTime.get(Calendar.MINUTE); int second = currentTime.get(Calendar.SECOND); do
20、uble angle = 90 - (hour + minute / 60.0 + second / 3600.0) * 30; Shape pointerShape = createPointerShape(r * 0.6, r * 0.06, r * 0.1, angle); g2d.setColor(Color.LIGHT_GRAY); g2d.fill(pointerShape); g2d.setColor(Color.DARK_GRAY); g2d.draw
21、(pointerShape); } private Shape createPointerShape(double r1, double r2, double r3, double angle) { GeneralPath gp = new GeneralPath(); double[] pos = calcPos(r1, angle); double[] pos1 = calcPos(r2, angle + 90); gp.append(new Line2D.Doubl
22、e(pos[0], pos[1], pos1[0], pos1[1]), true); double[] pos2 = calcPos(r3, angle + 180); gp.lineTo((float)pos2[0], (float)pos2[1]); double[] pos3 = calcPos(r2, angle + 270); gp.lineTo((float)pos3[0], (float)pos3[1]); gp.closePath(); return gp; } p
23、rivate void paintSecondPointer(int r, Graphics2D g2d) { g2d.setColor(Color.BLACK); int second = currentTime.get(Calendar.SECOND); int angle = 90 - second * 6; double pos[] = calcPos(r * 0.9, angle); double pos1[] = calcPos(r * 0.2, an
24、gle + 180); Line2D line = new Line2D.Double(pos1[0], pos1[1], pos[0], pos[1]); g2d.draw(line); } private void paintMinuteDot(int r, Graphics2D g2d, double x, double y, boolean flag) { g2d.setColor(flag ? Color.RED : Color.BLACK); if (fl
25、ag) { //Rectangle2D rect = new Rectangle2D.Double( Ellipse2D rect = new Ellipse2D.Double( x - r * s, y - r * s, r * s * 2, r * s * 2); g2d.fill(rect); } else { //Rectangle2D rect = new Rectangle2D.Double( Ellipse2D r
26、ect = new Ellipse2D.Double( x - r * 0.02, y - r * 0.02, r * 0.04, r * 0.04); g2d.fill(rect); } } private double[] calcPos(double r, double angle) { double radian = Math.toRadians(angle); double x = r * Math.cos(radian);
27、double y = r * Math.sin(radian); return new double[] {x, y}; } public static void main(String[] args) { try { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (Exception e) { e.printStackTrace(); } final Clock cl
28、ock = new Clock(50); clock.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); JFrame f = new JFrame( "軟件081班 071404011 孫慶賀 "); //f.setBounds(380,200,500,600); f.getContentPane().add(clock, BorderLayout.CENTER); f.pack(); f.setLocationRelativeTo(
29、null); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); new Thread() { public void run() { while (true) { try { Thread.sleep(1000); } catch (InterruptedException ex) { ex.printStackTrace(); } clock.setCurrentTime(System.currentTimeMi
30、llis()); clock.repaint(); } } }.start(); } }int y1 = (int)((r - 10) * Math.cos(rad * s)); g.drawLine(x + r, y + r, x + r + x1, y + r - y1); //分針 g.setColor(Color.BLUE); x1 = (int)((r - r / 2.5) * Math.sin(rad * m)); y1 = (int)((r - r / 2.5) * Math.cos(rad * m)); g.drawLine(x + r, y
31、 + r, x + r + x1, y + r - y1); //時(shí)針 g.setColor(Color.CYAN); x1 = (int)((r - r / 1.5) * Math.sin(rad * h)); y1 = (int)((r - r / 1.5) * Math.cos(rad * h)); g.drawLine(x + r, y + r, x + r + x1, y + r - y1); //數(shù)字 g.setColor(Color.YELLOW); int d = 29; for (int i = 1; i <= 12; i++) { x1 = (int)(
32、(r - 10) * Math.sin(rad * d)); y1 = (int)((r - 10) * Math.cos(rad * d)); g.drawString(i + "", x + r + x1 - 4, x + r - y1 + 5); d+=30; } //小點(diǎn) d = 0; for (int i = 0; i < 60; i++) { x1 = (int)((r - 2) * Math.sin(rad * d)); y1 = (int)((r - 2) * Math.cos(rad * d)); g.drawString(".", x + r + x1
33、- 1, x + r - y1 + 1); d+=6; } //顯示時(shí)間 Calendar now1 = new GregorianCalendar(); g.drawString(now1.get(Calendar.HOUR_OF_DAY) + ":" + now1.get(Calendar.MINUTE) + ":" + now1.get(Calendar.SECOND), 0, 10); } public void run() { while (true) { try { Thread.sleep(1000); } catch (Exception ex) {
34、} s+=6; if (s >= 360) { s = 0; m+=6; if (m == 72 || m == 144 || m == 216 || m == 288) { h+=6; } if (m >= 360) { m = 0; h+=6; } if (h >=360) { h = 0; }} this.repaint(); }}}int x, y, r; int h, m, s;//小時(shí),分鐘,秒 double rad = Math.PI / 180; public ClockPaint(int x, int y, int r) { this.
35、x = x; this.y = y; this.r = r; Calendar now = new GregorianCalendar(); s = now.get(Calendar.SECOND) * 6;//獲得秒轉(zhuǎn)換成度數(shù) m = now.get(Calendar.MINUTE) * 6;//獲得分鐘 h = (now.get(Calendar.HOUR_OF_DAY) - 12) * 30 + now.get(Calendar.MINUTE) / 12 * 6;//獲得小時(shí) Thread t = new Thread(this); t.start(); } publ
36、ic void paint(Graphics g) { //清屏 super.paint(g); g.setColor(Color.BLACK); g.fillRect(0, 0, r * 3, r * 3); //畫(huà)圓 g.setColor(Color.WHITE); g.drawOval(x, y, r * 2, r * 2); //秒針 g.setColor(Color.RED); int x1 = (int)((r - 10) * Math.sin(rad * s)); //定義MyTimer類(lèi) class MyTimer1 extends JFrame
37、{ static int count=0; //判斷是否重定義了時(shí)間 //構(gòu)造函數(shù) public MyTimer1() { //定義窗口大小 setSize(320, 200); //定義窗口標(biāo)題 setTitle("測(cè)試自定義時(shí)鐘類(lèi)!"); Container c = getContentPane(); // new ClockCanvas("北京時(shí)間", "GMT+8") c.add(new ClockCanvas("北京時(shí)間", "GMT+8")); } } //定義接口 interface TimerListener1 { v
38、oid timeElapsed(Timer1 t); } class Timer1 extends Thread //類(lèi)Timer1 { private TimerListener1 target; private int interval; public Timer1(int i, TimerListener1 t) { target = t; interval = i; setDaemon(true); } public void run() { try { while (!interrupted()) { sleep(int
39、erval); target.timeElapsed(this); } } catch(InterruptedException e) {} } } class ClockCanvas extends JPanel //clockcanvas implements TimerListener1 { static int seconds = 0; private String city; private GregorianCalendar calendar; //構(gòu)造函數(shù) public ClockCanvas(String c, String tz
40、) { city = c; calendar = new GregorianCalendar(TimeZone.getTimeZone(tz)); Timer1 t = new Timer1(1000, this); t.start(); setSize(180, 180); } //繪制鐘面 public void paintComponent(Graphics g) { super.paintComponent(g); g.drawOval(100, 5, 120, 120); g.drawOval(101, 6, 118, 118);
41、 //分離時(shí)間 double hourAngle = 2 * Math.PI * (seconds - 3 * 60 * 60) / (12 * 60 * 60); double minuteAngle = 2 * Math.PI * (seconds - 15 * 60) / (60 * 60); double secondAngle = 2 * Math.PI * (seconds - 15) / 60; } public void timeElapsed(Timer1 t) { calendar.setTime(new Date()); if(MyT
42、imer1.count==1) {int a=1; seconds=MyTimer.intHour*60*60+MyTimer.intMinute*60+MyTimer.intSecond; seconds+=a;//a為秒自加 repaint();} else { seconds = calendar.get(Calendar.HOUR) * 60 * 60 + calendar.get(Calendar.MINUTE) * 60 + calendar.get(Calendar.SECOND); repaint();} } } //定義時(shí)鐘類(lèi) cl
43、ass MyTimer implements TimerListener { //定義時(shí)鐘類(lèi)的屬性 static int intHour,intMinute,intSecond; //構(gòu)造函數(shù) public MyTimer() { setCurrentTimeAsSystemTime(); Timer t = new Timer(1000, this); //實(shí)例Timer類(lèi),里面有run方法 t.start(); } //顯示當(dāng)前時(shí)間 public void displayCurrentTime() { JOptionPane.sh
44、owMessageDialog(null,intHour+":"+intMinute+":"+intSecond); } //設(shè)定當(dāng)前時(shí)間 public void setCurrentTime() { //從對(duì)話框輸入時(shí),分秒 String strTemp=JOptionPane.showInputDialog(null,"請(qǐng)輸入當(dāng)前小時(shí)(24小時(shí)制):"); int iHour=Integer.parseInt(strTemp); strTemp=JOptionPane.showInputDialog(null,"請(qǐng)輸入當(dāng)前分:"); int iMinute=In
45、teger.parseInt(strTemp); strTemp=JOptionPane.showInputDialog(null,"請(qǐng)輸入當(dāng)前秒:"); int iSecond=Integer.parseInt(strTemp); //設(shè)定當(dāng)前時(shí)間為對(duì)話框輸入的時(shí)間 if(iHour>=0&&iHour<24) intHour=iHour; transform(angle); g.setcolor(color); //設(shè)定當(dāng)前時(shí)間為系統(tǒng)時(shí)間,構(gòu)造函數(shù)調(diào)用 public void setCurrentTimeAsSystemTime() { //定義Date
46、類(lèi)的一個(gè)對(duì)象,用來(lái)獲取系統(tǒng)時(shí)間 Date timeCurrent=new Date(); catch(InterruptedException e) {} } } 2.4測(cè)試分析 2.4.1程序運(yùn)行情況 當(dāng)程序正常運(yùn)行的時(shí)候,它能清晰的顯示時(shí)鐘界面。默認(rèn)為與系統(tǒng)時(shí)間同步,如果出現(xiàn)錯(cuò)誤,就會(huì)進(jìn)行歸零。運(yùn)行界面如圖2.1: 圖2.1運(yùn)行界面 2.4.2程序異常處理 當(dāng)線程在活動(dòng)之前或活動(dòng)期間處于正在等待、休眠或占用狀態(tài)且該線程被中斷時(shí),拋出該異常。有時(shí)候,一種方法可能希望測(cè)試當(dāng)前線程是否已被中斷,如果已被中斷,則立即拋出此異常。利用try……catch來(lái)捕獲出現(xiàn)的
47、異常。 try { Thread.sleep(1000); } catch (InterruptedException ex) { System.out.println(“拋出異?!? 第3章 課程設(shè)計(jì)總結(jié) 本次Java課程設(shè)計(jì)我的題目是時(shí)鐘,題目不算難,但我做的很艱苦。主要就是動(dòng)手能力太差,理論知識(shí)掌握的不全面,自以為會(huì)不少,但真做起來(lái),卻不知道從哪下手了。又回去溫習(xí)理論知識(shí),請(qǐng)教老師,上網(wǎng)查資料,忙的不亦樂(lè)乎。不過(guò)經(jīng)過(guò)努力總算是做出來(lái)了,還通過(guò)此次課程設(shè)計(jì),將我本學(xué)期所學(xué)的JAVA知識(shí)得到鞏固和應(yīng)用。在設(shè)計(jì)的過(guò)程中我遇到的很多問(wèn)題,在老師
48、的幫助和自己的思考下還是很好的完成了。這此課程設(shè)計(jì)我懂得了寫(xiě)程序不能脫離實(shí)際,只憑主觀辦事,要努力拓寬知識(shí)面,拓展思維。 事情就是如此,努力代表收獲。通過(guò)這次課程設(shè)計(jì),我才真正領(lǐng)悟到“艱苦奮斗”這一詞的真正含義,我才感受到早期電子設(shè)計(jì)者為現(xiàn)代的社會(huì)付出。設(shè)計(jì)確實(shí)有些辛苦,但苦中也有樂(lè),在如今單一的理論學(xué)習(xí)中,很少有機(jī)會(huì)能有實(shí)踐的機(jī)會(huì),但現(xiàn)在可以,這些天的設(shè)計(jì)中得到的東西卻不比理論課上得到的少多少,我感覺(jué)我和Java的距離更加近了;我想說(shuō),確實(shí)很累,但當(dāng)我看到自己所做的成果時(shí),心中也不免產(chǎn)生興奮; 學(xué)習(xí)有成果了么。 對(duì)Java編程有了一個(gè)基本的了解。這些天溫習(xí)的內(nèi)容越多,敲得代碼越多,自己的
49、學(xué)習(xí)積極性也越在提高,感覺(jué)也越充實(shí)。越來(lái)越發(fā)現(xiàn)現(xiàn)在學(xué)習(xí)的只是Java的基礎(chǔ),但涉及的面還是很廣泛的,這些都為以后進(jìn)一步學(xué)習(xí)Java的高級(jí)特性打下了扎實(shí)的基礎(chǔ)。隨著課程難度的慢慢加強(qiáng),今后遇到的困難也必將會(huì)越來(lái)越多,但我相信自己一定能做好這些的。 在本次Java課程設(shè)計(jì)中,我要非常感謝我的指導(dǎo)老師tian老師,不但在課堂上教給了我很多的Java的編程知tian,編程思想,而且在這次課程設(shè)計(jì)中更教會(huì)了我動(dòng)手的能力,真正的編出了自己的東西,還要感謝我的同學(xué),他們?cè)谖矣龅嚼щy時(shí)也給了我很多幫助。 參考資料 1. 季民 J2EE案例開(kāi)發(fā) 中國(guó)水利水電出版
50、2003-08 2. [美]Joe Walnes Java開(kāi)放源碼編程 電子工業(yè)出版 2004-07 3.郝玉龍 J2EE編程技術(shù) 北方交大出版 2003-02 4. 朱喜福 Java程序設(shè)計(jì) 人民郵電出版 2003-04 5. 王路群 Java高級(jí)程序設(shè)計(jì) 中國(guó)水利水電出版社 2009-8 6. 王碧波 JBuilder 10入門(mén)與提高 清華大學(xué)出版 2004-11 7. 吳其慶 Java程序設(shè)計(jì)實(shí)例教程 冶金工業(yè)出版社 2007-11 8. 柳西玲 Java語(yǔ)言應(yīng)用開(kāi)發(fā)基礎(chǔ) 清華大學(xué)出版社 2008-2 9. 朱戰(zhàn)立 Java程序設(shè)計(jì)實(shí)用教程 人民郵電出版 2004-03 10. 馮博 Java網(wǎng)絡(luò)編程 清華大學(xué)出版 2003-10 18
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫(kù)試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫(kù)試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫(kù)試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫(kù)及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫(kù)含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案