java日歷小程序課程設(shè)計(jì)_第1頁
java日歷小程序課程設(shè)計(jì)_第2頁
java日歷小程序課程設(shè)計(jì)_第3頁
java日歷小程序課程設(shè)計(jì)_第4頁
java日歷小程序課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上湖南農(nóng)業(yè)大學(xué)課程論文學(xué) 院:信息科學(xué)技術(shù) 班 級(jí):08級(jí)信息工程2班姓 名:郭顯勇、劉彥波、任濤 學(xué) 號(hào):7、8、9課程論文題目:JAVA日歷小程序課程名稱:Java程序設(shè)計(jì)(雙語)評閱成績:評閱意見:成績評定教師簽名:日期: 年 月 日專心-專注-專業(yè)目 錄JAVA日歷小程序?qū)W 生:郭顯勇、劉彥波、任濤湖南農(nóng)業(yè)大學(xué)信息科學(xué)技術(shù)學(xué)院2008級(jí)信息工程2班學(xué)號(hào)7、8、9 摘 要: 萬年歷是一個(gè)強(qiáng)大的日歷系統(tǒng),通過它可以實(shí)現(xiàn)對過去,現(xiàn)在以及將來日期的查詢,通過在年份對話框中輸入要查詢的年份,再相應(yīng)的在月份對應(yīng)的下拉菜單選擇要查詢的月份,則可得到相應(yīng)的日歷。本實(shí)驗(yàn)是對圖形用

2、戶界面,布局管理器的綜合運(yùn)用,理解JAVA的時(shí)間處理機(jī)制,編寫?yīng)毩⑦\(yùn)行的窗口。關(guān)鍵詞: 日歷;swing;布局管理器; 1需求分析1.1需求分析本程序的要求為: 1.使用圖形用戶界面; 2.本程序能夠?qū)崿F(xiàn)日期與星期的查詢。1.2功能設(shè)計(jì)本程序要構(gòu)建的萬年歷程序,其功能有以下幾個(gè)方面: 1.實(shí)現(xiàn)圖形界面。 2.能以月歷形式顯示日期與星期。工作日、雙休日、當(dāng)天分別以黑色、紅色和藍(lán)色顯示。 3.支持用戶通過下拉形式菜單來選擇月份。 4.通過點(diǎn)擊“現(xiàn)在日期”來刷新日歷。2概要設(shè)計(jì)2.1開發(fā)環(huán)境 開發(fā)平臺(tái):Microsoft Windows XP Professional Service Pack 2

3、開發(fā)工具:Eclipse SDK 3.2.0 + JDK 1.6.0_022.2程序設(shè)計(jì)思路 1.月份總天數(shù)的算法:直接根據(jù)month_int,即月份序號(hào)判斷該月的天數(shù)。當(dāng)month_int等于2時(shí),調(diào)用isLeapYear()方法判斷是否為閏年。2.網(wǎng)格內(nèi)容算法:用dt.getDate()方法算出輸出月份第一天為星期幾,第一天的格子序號(hào)應(yīng)該為7+第一天的星期序號(hào)。算出輸出月份第一天為星期幾后,把該日期以前的位置用空格補(bǔ)上,并從該日起一次輸出天數(shù)直到月底,該月中的天數(shù)加上該月一日為星期幾的數(shù)字再除以7得0換行,即可完整的輸出該月的日歷。3.日期顏色的算法:格子數(shù)從0開始,第一行為星期序號(hào),則日

4、期從第7格開始。根據(jù)格子序號(hào)i進(jìn)行判斷,當(dāng)i模7余數(shù)為0或者6時(shí)日期為周末,置為紅色;當(dāng)i等于第一天的格子序號(hào)加上當(dāng)前日期減一時(shí),置為藍(lán)色;其余日期為黑色。4. 如果年份小于2001年大于2031年則程序不予判斷。2.3具體功能設(shè)計(jì)數(shù)據(jù)選擇列表:年份選擇列表、月份選擇列表。點(diǎn)擊日期跳轉(zhuǎn)按鈕,即在日歷中顯示用戶選擇日期數(shù)據(jù);點(diǎn)擊現(xiàn)在日期按鈕,即在日歷中顯示當(dāng)前日期數(shù)據(jù)。2.4程序運(yùn)行界面(圖2.4.1:程序運(yùn)行界面截圖)2.5程序流程圖是否計(jì)算,繪制屏幕是否選擇日期提交年月變更數(shù)據(jù) 程序初始化結(jié)束獲取當(dāng)前系統(tǒng)時(shí)間年份等數(shù)據(jù)開始(圖2.5.1:程序流程圖)3詳細(xì)設(shè)計(jì)3.1初始化組件import j

5、ava.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;3.2初始化程序數(shù)據(jù),繪制程序面板在初始化模塊中,首先定義一個(gè)公共類 CalenderTrain,它繼承自JFrame。ActionListener是一個(gè)接口,在實(shí)現(xiàn)此接口的類CalenderTrain中,給需要關(guān)注其動(dòng)作的組件跳轉(zhuǎn)按鈕button_jump和現(xiàn)在日期按鈕button_today添加監(jiān)聽器(addActionListener(this),之后在事件處理方法public void actionPerformed (ActionEven

6、t e) 中,對每個(gè)事件進(jìn)行不同處理。在這個(gè)類中,定義用到的標(biāo)簽、下拉列表框、按鈕,放置面板。public class CalenderTrain extends JFrame implements ActionListener JComboBox Month = new JComboBox(); JComboBox Year = new JComboBox(); JLabel Year_l = new JLabel("年份:"); JLabel Month_l = new JLabel("月份:"); Date now_date = new Date(

7、); JButton button_day = new JButton49; JButton button_jump = new JButton("日期跳轉(zhuǎn)"); JButton button_today = new JButton("現(xiàn)在日期"); int now_year = now_date.getYear() + 1900; int now_month = now_date.getMonth(); boolean bool = false;String year_int = null; int month_int; JPanel pane_ym

8、= new JPanel(); JPanel pane_day = new JPanel();JPanel pane_parent = new JPanel(); 調(diào)用CalenderTrain,設(shè)定面板標(biāo)題為"JAVA日歷程序"。只給窗口設(shè)置frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)的話,點(diǎn)擊關(guān)閉按鈕,執(zhí)行的其實(shí)只有把窗口隱藏動(dòng)作,在任務(wù)管理器中可以看到進(jìn)程仍在運(yùn)行。于是加上后面的代碼,確保點(diǎn)擊關(guān)閉,程序直接退出system。面板的大小設(shè)置為不能變化。public CalenderTrain() super(&

9、quot;JAVA日歷程序"); setDefaultCloseOperation(DISPOSE_ON_CLOSE);addWindowListener(new WindowAdapter() public void windowClose(WindowEvent e) System.exit(0););setResizable(false); 設(shè)定年月時(shí),規(guī)定年份的區(qū)間是當(dāng)前年份的過去10年到當(dāng)前年份的未來20年,月份區(qū)間為正常1-12月。由于在年份區(qū)間中,今年是所有年份中的第十一個(gè),所以Year.setSelectedIndex()指定要選擇的列表項(xiàng)的整數(shù),其中 0 指定列表中

10、的第一項(xiàng)的參數(shù)為10時(shí),年份剛好是2011。Pane_ym即放置年月下拉列表框以及兩個(gè)控制按鈕的面板。給“跳轉(zhuǎn)按鈕”和“現(xiàn)在日期”按鈕添加監(jiān)聽事件。for (int i = now_year - 10; i <= now_year + 20; i+) Year.addItem(i + "");for (int i = 1; i < 13; i+) Month.addItem(i + "");/addItem( anObject)為項(xiàng)列表添加項(xiàng)。僅當(dāng) JComboBox 使用可變數(shù)據(jù)模型時(shí)此方法才有效。anObject- 要添加到列表的 Obj

11、ect Year.setSelectedIndex(10); button_jump.addActionListener(this); button_today.addActionListener(this); 初始化日期按鈕并繪制。由于每一月第一天不能確定,即所在列的位置(星期)不能確定,加上第一行的星期序號(hào),畫一個(gè)7*7網(wǎng)格布局管理器GridLayout。GridLayout把容器分成指定行和列的若干個(gè)網(wǎng)格,每個(gè)組件占一個(gè)網(wǎng)格,從左向右、從上到下依次把組件添加進(jìn)來。所有的網(wǎng)格都是同樣大小的。GridLayout(7, 7)設(shè)置行列數(shù)為7*7。pane_day.setLayout(new G

12、ridLayout(7, 7); for (int i = 0; i < 49; i+) button_dayi = new JButton(" ");pane_day.add(button_dayi); 本程序中,對組件的布置、整形和定位授權(quán)給一個(gè)布局管理器,由布局管理器來負(fù)責(zé)。利用布局管理器可以做到:(1)計(jì)算一個(gè)容器的所選尺寸和最小尺寸(2)布置一個(gè)容器的組件。這里采用的是BorderLayout,按東南西北和中心將組件布置在容器的四周和中心。用setContentPane()方法把容器置為JFrame的內(nèi)容面板。用pack()方法調(diào)整此窗口的大小,以適合其子組

13、件的首選大小和布局實(shí)現(xiàn)全部顯示,然后用show()方法顯示出來。pane_parent.setLayout(new BorderLayout(); /先把子容器pane_parent設(shè)置為東南西北中setContentPane(pane_day);setContentPane(pane_ym);pane_parent.add(pane_day, BorderLayout.SOUTH);pane_parent.add(pane_ym, BorderLayout.NORTH);/把內(nèi)容面板添加到子容器pane_parent中setContentPane(pane_parent);/把子容器添加到欄

14、框中pack();/調(diào)整此窗口的大小show();3.3顯示日期的方法 根據(jù)bool的值,由if語句進(jìn)行判斷執(zhí)行哪一顯示日期的語句塊,為true時(shí),顯示現(xiàn)在的時(shí)間;為false時(shí),顯示用戶選定的時(shí)間。網(wǎng)格第一行,即0至6號(hào)格子,內(nèi)容固定為星期序號(hào),即“星期日”到“星期六”。void setDay() if (bool) year_int = now_year + ""month_int = now_month; else year_int = Year.getSelectedItem().toString();month_int = Month.getSelectedInd

15、ex();/getSelectedIndex()指定當(dāng)前選擇的列表項(xiàng)的整數(shù),其中 0 指定列表中的第一項(xiàng);如果沒有選擇任何項(xiàng)或者當(dāng)前所選項(xiàng)不在列表中,則返回 -1int year_sel = Integer.parseInt(year_int) - 1900; /Integer構(gòu)造一個(gè)新分配的 Integer 對象,它表示 String 參數(shù)所指示的 int 值。使用與 parseInt 方法(對基數(shù)為 10 的值)相同的方式將該字符串轉(zhuǎn)換成 int 值。 Date dt = new Date(year_sel, month_int, 1); GregorianCalendar cal = n

16、ew GregorianCalendar(); cal.setTime(dt);String week = "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" ;int day = 0; int day_week = 0; for (int i = 0; i < 7; i+) button_dayi.setText(weeki); 判斷當(dāng)前月份的天數(shù),根據(jù)它來設(shè)定day的值,其中二月份要判斷是否是閏年。因?yàn)?/p>

17、第一行的星期序號(hào)已經(jīng)占用了7個(gè)格子,所以day_week的值要加上7,即day_week = 7 + dt.getDay()。if (month_int = 0| month_int = 2| month_int = 4| month_int = 6| month_int = 7| month_int = 9| month_int = 11) day = 31; else if (month_int = 3| month_int = 5| month_int = 8| month_int = 10) day = 30; else if (cal.isLeapYear(year_sel) day

18、 = 29; else day = 28;day_week = 7 + dt.getDay(); 繪制GridLayout網(wǎng)格的內(nèi)容。首先要根據(jù)選定的月份的第一天是星期幾來確定我們繪制按鈕的起始位置。前段代碼中的day_week就是我們要繪制的起始位置。對于那些沒有數(shù)值可以顯示的按鈕要置空。星期六和星期日以紅色字體顯示,工作日以黑色字體顯示,當(dāng)天以藍(lán)色字體顯示。對于沒有日期數(shù)值顯示的按鈕進(jìn)行置空處理。Count的值即網(wǎng)格的內(nèi)容,值從1一直到day(當(dāng)月的總天數(shù))。int count = 1;for (int i = day_week; i < day_week + day; count+

19、, i+) if (i % 7 = 0| i = 13| i = 20| i = 27| i = 48| i = 34| i = 41) if (i = day_week + now_date.getDate() - 1)button_dayi.setForeground(Color.blue);button_dayi.setText(count + ""); else button_dayi.setForeground(Color.red);button_dayi.setText(count + ""); elseif (i = day_week +

20、now_date.getDate() - 1) button_dayi.setForeground(Color.blue);button_dayi.setText(count + ""); else button_dayi.setForeground(Color.black);button_dayi.setText(count + "");3.4點(diǎn)擊按鈕產(chǎn)生的效果 對監(jiān)聽器關(guān)注的按鈕動(dòng)作進(jìn)行處理,點(diǎn)擊“日期跳轉(zhuǎn)”按鈕時(shí),將bool置為false,并調(diào)用setDay()方法重新繪制網(wǎng)格內(nèi)容;點(diǎn)擊“現(xiàn)在日期”按鈕時(shí),將bool置為true,得到今天的日期,將

21、月份置為當(dāng)前月份,將年份置為當(dāng)前年份。public void actionPerformed(ActionEvent e) if (e.getSource() = button_jump) bool = false;this.setDay(); else if (e.getSource() = button_today) bool = true;this.setDay(); Month.setSelectedIndex(now_month);Year.setSelectedIndex(10); 4程序測試4.1程序不能完全退出 點(diǎn)擊窗口右上角的關(guān)閉按鈕,程序窗口消失,但是,查看任務(wù)管理器,可以

22、發(fā)現(xiàn)進(jìn)程仍然在運(yùn)行。(圖4.1.1:程序不能完全退出)解決方法:將關(guān)閉部分的代碼修改為下段代碼后,程序能夠完全退出。setDefaultCloseOperation(DISPOSE_ON_CLOSE);addWindowListener(new WindowAdapter() public void windowClose(WindowEvent e) System.exit(0);4.2下拉列表數(shù)據(jù)不能返回 運(yùn)行程序,跳轉(zhuǎn)日期后,再點(diǎn)擊“當(dāng)前日期”按鈕,日期面板顯示的是當(dāng)前的日期數(shù)據(jù),年份、月份下拉列表的值還是停留在跳轉(zhuǎn)時(shí)所選定的值,不能正常返回。(圖4.2.1:下拉列表數(shù)據(jù)不能返回)解決方

23、法:把button_day的處理事件,修改為下段代碼else if (e.getSource() = button_today) bool = true;this.setDay(); Month.setSelectedIndex(now_month);Year.setSelectedIndex(10); 5心得體會(huì)經(jīng)過短暫的兩周的Java程序設(shè)計(jì),使我又學(xué)到了很多的知識(shí),尤其是運(yùn)用Java知識(shí)去解決實(shí)際問題的能力又得到了很大的提高。盡管所設(shè)計(jì)的程序比較簡單,但是程序中的每個(gè)功能的實(shí)現(xiàn)都經(jīng)過了自己的一定認(rèn)真的思考。由于把所學(xué)的知識(shí)做到很靈活的運(yùn)用在實(shí)際中,對于現(xiàn)在的我還有一定的難度,故而,在設(shè)計(jì)

24、的每個(gè)的環(huán)節(jié)中,都會(huì)多多少少的遇到一些問題,這就促使我去查閱各種資料,或者請教同學(xué),極大的提高我的專業(yè)素養(yǎng),同時(shí)對在有些書上的理論知識(shí)在實(shí)際的運(yùn)用,以及應(yīng)該注意的問題有了比較深刻的認(rèn)識(shí)。當(dāng)然,仍然有些理論問題不是很好的去運(yùn)用,或者是了解的不深刻。這就使的在實(shí)踐中的所設(shè)計(jì)的程序有些功能不是自己所想的那樣的完美。不過,既然發(fā)現(xiàn)了問題的所在,我就不會(huì)放棄的,直至問題得到解決。這些也同時(shí)反映出了平時(shí)運(yùn)用知識(shí)去實(shí)踐這方面做的太少。太缺乏經(jīng)驗(yàn)。對所設(shè)計(jì)中將所面臨的問題認(rèn)識(shí)不夠。是Java課程設(shè)計(jì)讓我認(rèn)識(shí)到了這些問題的存在。同時(shí)給我提供了去面對這些問題的平臺(tái)。也使我充分的認(rèn)識(shí)到在以后也應(yīng)該怎樣去實(shí)踐,怎樣去

25、學(xué)習(xí)一門計(jì)算機(jī)語言,以及如何去運(yùn)用這門語言去解決實(shí)際問題等等??傊?,在經(jīng)過這次Java的課程設(shè)計(jì),使我認(rèn)識(shí)到了自己很多的缺點(diǎn),同時(shí),也是我學(xué)到新知識(shí)和新方法的一個(gè)機(jī)會(huì)。這給我在以后繼續(xù)學(xué)習(xí)好這門語言指明了方向。6參考文獻(xiàn)1.曾令明 索 望 甘 剛 宋 波,Java程序設(shè)計(jì)教程,西安電子科技大學(xué)出版社,2007.82.孫全黨 王吳迪 趙楓朝,Java程序設(shè)計(jì)應(yīng)用教程,電子工業(yè)出版社,2006.23.趙玉陽,Java從入門到精通,清華大學(xué)出版社,2006.8致 謝 本設(shè)計(jì)及報(bào)告是在指導(dǎo)老師張老師的指導(dǎo)下完成的,所此在此衷心感謝張老師的悉心教誨以及耐心的講解。同時(shí)還要感謝在設(shè)計(jì)程序和報(bào)告期間給予我?guī)?/p>

26、助和啟示的同學(xué),讓我了解了很多自己沒有注意或忽視的地方,希望我們一起分享成功的喜悅。附:程序源代碼import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.util.*;public class CalenderTrain extends JFrame implements ActionListener JComboBox Month = new JComboBox(); /月份下拉列表框JComboBox Year = new JComboBox(); /年份下拉列表框JLabel Year_l =

27、new JLabel("年份:"); /定義標(biāo)簽JLabel Month_l = new JLabel("月份:"); /定義標(biāo)簽Date now_date = new Date(); /獲取今天的日期JButton button_day = new JButton49; /定義一個(gè)數(shù)組用來存放日期JButton button_jump = new JButton("日期跳轉(zhuǎn)"); /現(xiàn)實(shí)選擇日期JButton button_today = new JButton("現(xiàn)在日期"); /顯示今天日期按鈕int now

28、_year = now_date.getYear() + 1900; /獲取年份值int now_month = now_date.getMonth(); /獲取月份值(當(dāng)前月份-1)boolean bool = false;String year_int = null; /存放年份int month_int; /存放月份JPanel pane_ym = new JPanel(); /放置下拉列表框和控制按鈕面板JPanel pane_day = new JPanel(); /放置日期面板JPanel pane_parent = new JPanel(); /放置以上兩個(gè)面板/定義方法繪制面板

29、public CalenderTrain() super("JAVA日歷程序"); /設(shè)定面板標(biāo)題/-以下幾行使得關(guān)閉面板時(shí)退出程序setDefaultCloseOperation(DISPOSE_ON_CLOSE);addWindowListener(new WindowAdapter() public void windowClose(WindowEvent e) /System.out.print("CLOSING THE WIN");System.exit(0););setResizable(false); /面板的大小不能變化/設(shè)定年月/*年份

30、的區(qū)間是當(dāng)前年份的過去10年到當(dāng)前年份的未來20年* 月份正常1-12月*/for (int i = now_year - 10; i <= now_year + 20; i+) Year.addItem(i + "");for (int i = 1; i < 13; i+) Month.addItem(i + "");Year.setSelectedIndex(10); /設(shè)定年份下拉列表為當(dāng)前年份/Year.setText()pane_ym.add(Year_l); /添加年份標(biāo)簽pane_ym.add(Year); /添加年份下拉列表框

31、Month.setSelectedIndex(now_month); /設(shè)定月份下拉列表為當(dāng)前月份pane_ym.add(Month_l); /添加月份標(biāo)簽pane_ym.add(Month); /添加月份下拉列表框pane_ym.add(button_jump); /添加跳轉(zhuǎn)按鈕pane_ym.add(button_today); /添加“現(xiàn)在日期”按鈕button_jump.addActionListener(this); /跳轉(zhuǎn)按鈕添加 監(jiān)聽事件button_today.addActionListener(this); /“現(xiàn)在日期”按鈕添加 監(jiān)聽事件/年月設(shè)定結(jié)束/初始化日期按鈕并繪制

32、pane_day.setLayout(new GridLayout(7, 7);for (int i = 0; i < 49; i+) button_dayi = new JButton(" ");pane_day.add(button_dayi);this.setDay(); /調(diào)用setDay()方法pane_parent.setLayout(new BorderLayout(); /設(shè)定布局管理器setContentPane(pane_day);setContentPane(pane_ym);pane_parent.add(pane_day, BorderLay

33、out.SOUTH);pane_parent.add(pane_ym, BorderLayout.NORTH);setContentPane(pane_parent);pack();show();/SET DAY 方法,顯示日期void setDay() if (bool) year_int = now_year + ""month_int = now_month; else year_int = Year.getSelectedItem().toString();month_int = Month.getSelectedIndex();/year_int=Year.get

34、Text();/month_int=Integer.parseInt(Month.getText();int year_sel = Integer.parseInt(year_int) - 1900; /獲得年份值Date dt = new Date(year_sel, month_int, 1); /構(gòu)造一個(gè)日期GregorianCalendar cal = new GregorianCalendar(); /創(chuàng)建一個(gè)Calendar實(shí)例cal.setTime(dt);String week = "星期日", "星期一", "星期二"

35、;, "星期三", "星期四", "星期五", "星期六" ;int day = 0; /day中存放某個(gè)月份的天數(shù)int day_week = 0; /用來存放某個(gè)月的第一天是星期幾的數(shù)值/-將星期添加到前7個(gè)按鈕中for (int i = 0; i < 7; i+) button_dayi.setText(weeki);/-/*判斷是幾月份,根據(jù)它來設(shè)定day的值* 其中二月份要判斷是否是閏年*/if (month_int = 0| month_int = 2| month_int = 4| month_

36、int = 6| month_int = 7| month_int = 9| month_int = 11) day = 31; else if (month_int = 3| month_int = 5| month_int = 8| month_int = 10) day = 30; else if (cal.isLeapYear(year_sel) day = 29; else day = 28;day_week = 7 + dt.getDay();int count = 1;/*繪制按鈕*首先要根據(jù)選定的月份的第一天是星期幾來確定我們繪制按鈕的起始位置* 其中day_week就是我們要繪制的起始位置* 對于那些沒有數(shù)值可以顯示的按鈕要置空*/for (int i = d

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論