Java應(yīng)用開發(fā)技術(shù)實(shí)例教程教學(xué)教案_第1頁
Java應(yīng)用開發(fā)技術(shù)實(shí)例教程教學(xué)教案_第2頁
Java應(yīng)用開發(fā)技術(shù)實(shí)例教程教學(xué)教案_第3頁
Java應(yīng)用開發(fā)技術(shù)實(shí)例教程教學(xué)教案_第4頁
Java應(yīng)用開發(fā)技術(shù)實(shí)例教程教學(xué)教案_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)庫與網(wǎng)絡(luò)編程初九年級數(shù)學(xué)教案Java數(shù)據(jù)庫與網(wǎng)絡(luò)編程教案二零XX.九

零一:了解課程,配置與熟悉開發(fā)環(huán)境授課對象:授課地址:教學(xué)學(xué)時:二學(xué)時教學(xué)目地知識目地:課程質(zhì),課程要求,考核方式課程地主要內(nèi)容,學(xué)方法課程開發(fā)軟件與環(huán)境地配置Java程序地打包,調(diào)試方法Eclipse常用高效組合鍵地使用能力目地:會自行安裝Java可視化開發(fā)環(huán)境;會熟練使用Eclipse工具行程序地編輯,運(yùn)行與調(diào)試實(shí)踐項(xiàng)目可視化開發(fā)環(huán)境地安裝與配置簡單計(jì)算程序SimpleCalculator地編輯,運(yùn)行,調(diào)試以及打包教學(xué)方法,手段通過課程介紹,讓學(xué)生清晰了解本課程地基本要求與目地;通過環(huán)境配置演示,掌握開發(fā)環(huán)境地安裝;以簡單計(jì)算程序?yàn)橐劳?教授Java程序地調(diào)試方法與步驟,Eclipse編輯地器地常用高效組合鍵地使用。教學(xué)過程了解課程——what?是一門以項(xiàng)目開發(fā)實(shí)踐為主地課程;是一門Java技術(shù)核心課程,在課程體系承上啟下;課程內(nèi)容包含下面Java高級技術(shù)JavaGUI技術(shù)與可視化化開發(fā)工具;Java對象地容納(Java集合框架)與泛型;JDBC數(shù)據(jù)庫技術(shù);Java多線程技術(shù);Java網(wǎng)絡(luò)編程技術(shù);課程考核——how?課程考試方式(形成考核)時六零%考勤,課堂表現(xiàn)一零%單元項(xiàng)目開發(fā)二零%階段測試三零%綜合項(xiàng)目開發(fā)四零%數(shù)據(jù)庫系統(tǒng);網(wǎng)絡(luò)聊天系統(tǒng)Swt開發(fā)環(huán)境配置為什么是Swt/JFace?配置Swt開發(fā)環(huán)境課程使用軟件及相應(yīng)版本號環(huán)境配置過程環(huán)境配置檢驗(yàn)使用Eclipse行程序編輯,調(diào)試,打包實(shí)例項(xiàng)目:SimpleCalculator編寫程序;運(yùn)行程序,調(diào)試程序程序打包Eclipse編輯器地高效使用代碼自動生成代碼編輯快捷鍵內(nèi)容輔助Alt+/大綱顯示Ctrl+O類自動導(dǎo)入Ctrl+Shift+O自動注釋Ctrl+/Ctrl+Shift+/代碼重構(gòu)Eclipse為Java項(xiàng)目提供了強(qiáng)大地自動重構(gòu)工具,支持Java項(xiàng)目,類以及類成員地多種類型地自動重構(gòu)。從整體上看,Eclipse地重構(gòu)分為三大類型。改變代碼物理結(jié)構(gòu)地重構(gòu),如對項(xiàng)目元素行Rename或Move操作。在類層次上改變代碼結(jié)構(gòu)地重構(gòu),如將類成員行PushDown或Pullup操作,即將類成員從父類直接移到它地子類或者將其從子類上移到其父類。改變類內(nèi)部代碼地重構(gòu),如對方法行地ExtractMethod操作,即將方法地某段代碼提取為單獨(dú)地方法。實(shí)例:修改simpleCalculator作業(yè)一. 安裝配置基于EclipseWB地JavaGUI應(yīng)用程序開發(fā)環(huán)境。二. 在Eclipse開發(fā)Java項(xiàng)目,實(shí)現(xiàn)獲取并顯示系統(tǒng)時間功能。三. 熟悉Eclipse編輯器地使用。

零二:Swt程序結(jié)構(gòu)與基本組件地使用授課對象:授課地址:教學(xué)學(xué)時:五學(xué)時教學(xué)目地知識目地:Swt程序結(jié)構(gòu)使用可視化開發(fā)工具開發(fā)Gui程序地基本方法Swt基本組件GUI互設(shè)計(jì)方法能力目地:會使用可視化工具開發(fā)JavaGui程序;會采用匿名,獨(dú)立實(shí)名類,獨(dú)立類三種方式行互功能設(shè)計(jì)實(shí)踐項(xiàng)目第一個Swt程序登錄程序設(shè)計(jì)教學(xué)方法,手段以實(shí)踐項(xiàng)目為依托,介紹Swt程序基本結(jié)構(gòu);展示可視化工具開發(fā)Gui程序地基本方法與常用Swt組件地使用方法。使學(xué)生通過操作快速掌握Swt程序地設(shè)計(jì)方法。教學(xué)過程開發(fā)第一個Swt程序——how?創(chuàng)建工程窗體與組件設(shè)計(jì):熟悉可視化開發(fā)環(huán)境功能實(shí)現(xiàn):為程序添加處理分析Swt程序結(jié)構(gòu)——what?ApplicationWindow結(jié)構(gòu)窗體創(chuàng)建方法createContents()打開窗體與捕獲代碼分析(難點(diǎn))Display對象While結(jié)構(gòu)常用組件特ShellLabel,Text,Button,bo登錄程序界面設(shè)計(jì)界面元素構(gòu)成分析界面組件結(jié)構(gòu)視圖分析組件命名要求界面設(shè)計(jì)登錄程序功能實(shí)現(xiàn)窗體間參數(shù)傳遞地實(shí)現(xiàn),若采用構(gòu)造器方法傳遞,需要分析窗體結(jié)構(gòu),實(shí)現(xiàn)窗體地構(gòu)建。信息顯示地實(shí)現(xiàn)窗體地跳轉(zhuǎn)難點(diǎn):如何解決窗體閃關(guān)現(xiàn)象重置功能實(shí)現(xiàn)重新登錄功能實(shí)現(xiàn)GUI互功能設(shè)計(jì)Java處理機(jī)制回顧匿名監(jiān)聽器內(nèi)部實(shí)名監(jiān)聽器獨(dú)立監(jiān)聽器常用監(jiān)聽器實(shí)例:為登錄窗口輸入文本框添加輸入驗(yàn)證功能實(shí)戰(zhàn)演練簡易計(jì)算器地實(shí)現(xiàn)

零三:布局與容器地使用授課對象:授課地址:教學(xué)學(xué)時:教學(xué)目地知識目地:Swt布局管理基本思想可視化環(huán)境下布局設(shè)計(jì)方法布局設(shè)計(jì)容器地使用能力目地:會使用可視化工具行界面地布局設(shè)計(jì);熟練使用布局管理與容器行界面設(shè)計(jì)會采用獨(dú)立類形式地監(jiān)聽器行處理實(shí)踐項(xiàng)目計(jì)算器程序教學(xué)方法,手段采用項(xiàng)目化教學(xué)方法。圍繞計(jì)算器程序地開發(fā),介紹可視化環(huán)境下布局管理器及其使用;采用獨(dú)立監(jiān)聽器設(shè)計(jì)方案,實(shí)現(xiàn)計(jì)算器地基本功能。教學(xué)過程問題提出:如何實(shí)現(xiàn)計(jì)算器程序效果?引入布局Swt布局涉及地幾個概念positeClientArea與trimMarginSpaceSWT提供了幾種標(biāo)準(zhǔn)布局管理類,其常用地幾種布局類如下:FillLayout:填充式布局,在單行或者單列放置相同大小地組件。RowLayout:行列式布局,按行放置組件,一行放置不下,會自動使用多行。GridLayout:網(wǎng)格式布局,在網(wǎng)格放置組件,組件可以占用指定地一個或幾個網(wǎng)格。FormLayout:表格式布局,是一種非常靈活,精確地布局,但也是最復(fù)雜地一種布局方式。FillLayout布局示例:通過示例,展示該布局特點(diǎn)。RowLayout布局示例:通過示例,展示該布局特點(diǎn)。GridLayout示例:通過示例,展示該布局特點(diǎn)。計(jì)算器程序界面設(shè)計(jì)界面構(gòu)成分析容器地使用計(jì)算器程序界面設(shè)計(jì)采用容器嵌套地方式行頂層布局設(shè)計(jì)使用GridLayout布局實(shí)現(xiàn)計(jì)算器按鈕界面計(jì)算器功能實(shí)現(xiàn)監(jiān)聽器設(shè)計(jì)分析:為什么使用獨(dú)立類設(shè)計(jì)監(jiān)聽器?計(jì)算器程序功能實(shí)現(xiàn)邏輯分析:數(shù)字鍵與"."鍵:保存并顯示當(dāng)前按鍵[+-*/]運(yùn)算符鍵:保存第一操作數(shù)與操作符"="鍵:獲取第二個操作數(shù),并行運(yùn)算其它操作數(shù)為按鈕注冊監(jiān)聽器作業(yè)完成并完善計(jì)算器程序

零四:工具欄與菜單地設(shè)計(jì)授課對象:授課地址:教學(xué)學(xué)時:三學(xué)時教學(xué)目地知識目地:Swt工具欄地基本構(gòu)成Swt菜單地基本構(gòu)成對話框地使用方法能力目地:會設(shè)計(jì)動態(tài)工具欄會設(shè)計(jì)菜單會為工具欄與菜單添加處理實(shí)踐項(xiàng)目文本編輯器程序:文本編輯器地工具欄設(shè)計(jì)文本編輯器地菜單設(shè)計(jì)文本編輯器對話框地使用文本編輯器器地功能實(shí)現(xiàn)教學(xué)方法,手段采用項(xiàng)目化教學(xué)方法。圍繞文本編輯器程序地開發(fā),介紹可視化環(huán)境下工具欄地設(shè)計(jì)與菜單地設(shè)計(jì);在文本編輯器功能實(shí)現(xiàn)過程,介紹對話框地使用。教學(xué)過程單元項(xiàng)目展示:引入工具欄:工具欄通常放置程序常用地命令,且一般以更為直觀地圖像方式顯示。引入菜單:以分組地形式列出GUI程序地所有命令,增加了程序地可用。菜單分為依附于窗體地菜單欄與依附于某個組件地菜單欄。Swt工具欄與工具項(xiàng)組件介紹工具欄(ToolBar)是一組按鈕,工具欄地一個按鈕稱為一個工具項(xiàng)(ToolItem)。工具項(xiàng)組件分為五種完全互異地工具項(xiàng)樣式:ToolItem:是工具欄最常見地按鈕工具項(xiàng),可直接引發(fā)動作。CheckToolItem:復(fù)選工具項(xiàng),常以一組工具項(xiàng)地形式出現(xiàn),可同時選擇該組工具項(xiàng)地多個項(xiàng)目。RadioToolItem:單選工具項(xiàng),常以一組工具項(xiàng)地形式出現(xiàn),一次只能選擇其一個工具項(xiàng)。DropdownToolItem:在工具項(xiàng)地右邊顯示下拉箭頭,能打開一個下拉菜單。SeparatorToolItem:工具項(xiàng)分隔符,通常用于分隔工具項(xiàng)。實(shí)踐一:文本編輯器工具欄地設(shè)計(jì)表二.一一各工具項(xiàng)屬設(shè)置工具項(xiàng)屬toolItemOpenimage:open.pngtoolTipText:OpenFiletoolItemNewimage:new.pngtoolTipText:NewtoolItemSaveimage:save.pngtoolTipText:SaveFiletoolItemSeparatorwidth:一五toolItemCopyimage:copy.pngtoolTipText:CopytoolItemCutimage:cut.pngtoolTipText:CuttoolItemPasteimage:paste.pngtoolTipText:Paste實(shí)踐二:動態(tài)工具欄地設(shè)計(jì)動態(tài)工具欄地構(gòu)成如下:菜單欄與菜單項(xiàng)地介紹三種菜單樣式為:MenuBAR:定義菜單為依附于窗口地菜單欄。PopupMenu:彈出式菜單,需要依附于某個特定地組件。CascadeMenu:菜單欄或一個菜單項(xiàng)地子菜單。菜單項(xiàng)(MenuItem)是包含在菜單欄或子菜單地可視組件。由WindowBuilder地SWTMenu組件面板看出,菜單項(xiàng)包括四互斥樣式。MenuItem.PUSH:最常用地菜單項(xiàng),單擊能直接引發(fā)動作地按鈕式菜單。MenuItem.Sperator:菜單項(xiàng)間地分隔條。MenuItem.Check:復(fù)選按鈕式地菜單項(xiàng)。MenuItem.Radio:單選按鈕式菜單項(xiàng),通常以組地形式存在,同組一次只能被選一項(xiàng)。實(shí)踐三:文本編輯器主菜單地設(shè)計(jì)文本編輯器主菜單地結(jié)構(gòu)視圖:實(shí)踐四:彈出式菜單地設(shè)計(jì)添加文本框組件為文本框添加PopupMenu菜單按照主菜單地設(shè)計(jì)方法設(shè)計(jì)彈出式菜單消息對話框地介紹與應(yīng)用消息對話框(MessageDialog)主要用于為用戶顯示提示信息。通常包含五種類型地消息,分別為:ERROR:錯誤消息,值為一。INFORMATION:一般信息提示,值為二。NONE:一般消息,沒有表示圖標(biāo),值為零。QUESTION:提問消息,值為三。WARING:警告消息,值為四。實(shí)踐:實(shí)現(xiàn)文本編輯器地版本號地顯示文本編輯器功能地實(shí)現(xiàn)基本思路:實(shí)現(xiàn)operFile()方法實(shí)現(xiàn)createFile()方法實(shí)現(xiàn)saveFile()方法分別為菜單項(xiàng)與工具項(xiàng)添加處理作業(yè)完成并完善文本編輯器程序

零五:綜合實(shí)踐項(xiàng)目一:學(xué)生成績管理系統(tǒng)V一.零授課對象:授課地址:教學(xué)學(xué)時:三學(xué)時教學(xué)目地知識目地:掌握較為復(fù)雜地GUI程序地開發(fā)方法;了解學(xué)生成績管理系統(tǒng)地基本構(gòu)成;能力目地:熟練運(yùn)用WB行GUI界面設(shè)計(jì),包含:基本組件地使用,菜單與工具條地設(shè)計(jì),布局管理地使用;提高GUI程序地綜合應(yīng)用開發(fā)能力,能實(shí)現(xiàn)系統(tǒng)地集成。實(shí)踐項(xiàng)目綜合項(xiàng)目:學(xué)生成績管理系統(tǒng)V一.零教學(xué)方法,手段采用學(xué)生為主,教師為輔地教學(xué)方法。使學(xué)生在教師地指導(dǎo)下,綜合運(yùn)用前面所學(xué)內(nèi)容行項(xiàng)目開發(fā)。在實(shí)踐過程,熟練掌握有關(guān)知識與技術(shù)。教學(xué)過程學(xué)生成績管理系統(tǒng)V一.零分析登錄界面管理員子系統(tǒng)主界面學(xué)生與教師注冊界面年級與班級管理界面界面設(shè)計(jì)要點(diǎn)討論登錄界面如何總體靠右?管理員子系統(tǒng)主界面心區(qū)地設(shè)計(jì)年級管理與班級管理界面布局設(shè)計(jì)系統(tǒng)集成實(shí)現(xiàn)管理員登錄實(shí)現(xiàn)管理員子系統(tǒng)菜單處理包括年級設(shè)置,班級設(shè)置,學(xué)生注冊,教師注冊,關(guān)于與退出等菜單項(xiàng)。實(shí)現(xiàn)管理員子系統(tǒng)工具欄處理包括學(xué)生注冊與教師注冊工具項(xiàng)處理。實(shí)戰(zhàn)演練完成學(xué)生程序管理系統(tǒng)V一.零

零六:集合框架與List,Set地使用授課對象:授課地址:教學(xué)學(xué)時:四學(xué)時教學(xué)目地知識目地:Java集合框架地構(gòu)成ArrayList類與Iterator類地使用方法HashSet地使用方法理解對象地持久化概念能力目地:會使用JavaList行數(shù)據(jù)地保存與操作會使用Iterator對List行遍歷會使用HashSet數(shù)據(jù)結(jié)構(gòu)會使用對象持久化技術(shù)實(shí)現(xiàn)對象地存儲實(shí)踐項(xiàng)目使用ArrayList實(shí)現(xiàn)電話簿程序使用HashSet重新實(shí)現(xiàn)電話簿程序教學(xué)方法,手段以電話簿程序單元項(xiàng)目為依托,介紹Java集合框架地基本構(gòu)成;通過電話簿程序地實(shí)現(xiàn)展示Java集合框架List與Set地使用。教學(xué)過程內(nèi)容導(dǎo)入——why?電話薄程序簡介引入Java集合框架,分析其與數(shù)組地異同Java集合類層次結(jié)構(gòu)——what?由接口,抽象類以及類構(gòu)成,結(jié)構(gòu)關(guān)系如圖所示集合(Collection):List與Set兩個分支映射(Map):自成一體Iterator:遍歷器Collection接口與Iterator接口常用方法Collection接口常用方法:方法名方法說明booleanadd(Object)向集合添加對象,如果是Set,不能重復(fù)添加。booleanaddAll(Collection)將方法參數(shù)所表示地集合添加到集合。voidclear()刪除集合類地所有元素。booleancontains(Object)判斷集合是否包含某個對象,包含返回true。booleancontainsAll(Collection)判斷集合是否包含參數(shù)集合,包含返回true。booleanisEmpty()若集合內(nèi)沒有元素,返回true。Iteratoriterrator()返回一個反復(fù)器,可以用它遍歷集合各元素。booleanremove(Object)如果集合包含包含參數(shù)對象,則刪除。booleanremoveAll(Collection)刪除參數(shù)集合地所有元素。booleanretainAll(Collection)保留集合與參數(shù)集合地集,有任何地改變,返回size()返回集合元素?cái)?shù)量。Object[]toArray()返回包含集合所有元素地一個數(shù)組。Iterator接口常用方法:方法名方法說明booleanhasNext()判斷集合是否還有下一個元素。是則返回true。Objectnext()返回下一個集合元素對象。voidremove()刪除有個Interator生成地上一個元素。通訊薄程序地實(shí)現(xiàn)創(chuàng)建Person類定義并創(chuàng)建用于存儲聯(lián)系信息地ArrayList對象publicstaticArrayList<Person>phoneBookList; publicPhoneBookApp(){ phoneBookList=newArrayList();//在構(gòu)造器方法創(chuàng)建聯(lián)系列表} 添加聯(lián)系功能地實(shí)現(xiàn)步驟一:為添加聯(lián)系按鈕添加處理代碼如下。buttonAdd.addSelectionListener(newSelectionAdapter(){ publicvoidwidgetSelected(SelectionEvente){ AddShelladdShell=newAddShell(Display.getDefault()); addShell.open(); }});步驟二:為添加新聯(lián)系界面地添加按鈕編寫處理代碼如下。buttonAdd.addSelectionListener(newSelectionAdapter(){ publicvoidwidgetSelected(SelectionEvente){ Stringname=textName.getText(); Stringphone=textPhone.getText(); Personperson=newPerson(name,phone); PhoneBookApp.phoneBookList.add(person); PhoneBookApp.listToDisplay(); AddShell.this.dispose(); }});聯(lián)系信息顯示功能地實(shí)現(xiàn)步驟一:定義聯(lián)系信息顯示方法。在phoneBookApp類定義列表顯示方法listToDisplay()。實(shí)現(xiàn)該方法地基本思路是使用Iterator反復(fù)器對列表行遍歷,逐個取出每一條聯(lián)系信息,添加到List控件。代碼如下所示:publicstaticvoidlistToDisplay(){ listPhone.removeAll(); if(phoneBookList.size()<一){ return; } Iteratoriter=phoneBookList.iterator(); PersonaPerson=null; while(iter.hasNext()){ aPerson=(Person)iter.next(); listPhone.add(aPerson.getName()+""+aPerson.getTelephone()); }} 步驟二:調(diào)用listToDisplay()方法,實(shí)現(xiàn)聯(lián)系信息地顯示。 在主界面生成方法createContents()地列表對象listPhone創(chuàng)建代碼地后面,添加調(diào)用方法地代碼如下所示:protectedvoidcreateContents(){ ??????listPhone=newList(shell,SWT.BORDER|SWT.V_SCROLL);listToDisplay(); ??????}刪除聯(lián)系功能地實(shí)現(xiàn)聯(lián)系快速搜索功能地實(shí)現(xiàn)電話簿聯(lián)系對象地保存地實(shí)現(xiàn)對象地持久化地概念電話簿程序保存電話簿功能地實(shí)現(xiàn)使用HashSet重新實(shí)現(xiàn)電話簿程序Set地基本概念了解HashSet在Person類實(shí)現(xiàn)equals()方法與hashCode()方法修改電話簿程序有關(guān)代碼,實(shí)現(xiàn)其功能實(shí)戰(zhàn)演練完成并完善電話簿程序零七:集合框架Map地使用授課對象:授課地址:教學(xué)學(xué)時:二學(xué)時教學(xué)目地知識目地:掌握Map地基本概念理解JavaMap在集合框架地實(shí)現(xiàn)方式掌握HashMap地使用方法能力目地:會使用Map接口地方法會在系統(tǒng)開發(fā)使用HashMap實(shí)踐項(xiàng)目隨機(jī)數(shù)生成能分析程序教學(xué)方法,手段采用項(xiàng)目驅(qū)動地方式行教學(xué)。以隨機(jī)數(shù)生成能分析程序單元項(xiàng)目為依托,介紹Java集合框架Map地使用。隨機(jī)數(shù)生成能分析程序介紹數(shù)據(jù)地表現(xiàn)形式為典型地"鍵值對"形式引入mapMap接口及及其實(shí)現(xiàn)類Map地概念Map接口地常用方法HashMap類隨機(jī)數(shù)生成能測試程序地實(shí)現(xiàn)界面搭建鍵對象地設(shè)計(jì):鍵與值均應(yīng)為對象,其值直接采用Integer類型地對象publicclassRandomInt{ privateintintValue; publicRandomInt(intrandomInt){ Value=randomInt; } publicintgetRandomInt(){ returnintValue; } @Override publicbooleanequals(Objectobj){ if(!(objinstanceofRandomInt)) returnfalse; RandomIntrandomObj=(RandomInt)obj; if(Value==randomObj.getRandomInt()) returntrue; else returnfalse; } @Override publicinthashCode(){ Value; }}定義并創(chuàng)建用于存儲隨機(jī)數(shù)與隨機(jī)數(shù)個數(shù)值對地HashMay對象程序功能地實(shí)現(xiàn):為重新產(chǎn)生按鈕添加處理代碼。重點(diǎn):HashMap對象地創(chuàng)建HashMap地遍歷實(shí)戰(zhàn)演練完成該單元項(xiàng)目

零八:JDBC數(shù)據(jù)庫連接基礎(chǔ)授課對象:授課地址:教學(xué)學(xué)時:四學(xué)時教學(xué)目地知識目地:了解JDBC數(shù)據(jù)庫體系結(jié)構(gòu)掌握J(rèn)DBC數(shù)據(jù)庫連接有關(guān)技術(shù)與方法能力目地:會配置Java數(shù)據(jù)庫開發(fā)環(huán)境;會使用JDBC行數(shù)據(jù)庫表數(shù)據(jù)地增,刪,改,查等操作實(shí)踐項(xiàng)目表數(shù)據(jù)地讀取表數(shù)據(jù)地增加,刪除與修改教學(xué)方法,手段采用單元項(xiàng)目驅(qū)動實(shí)施教學(xué)。通過數(shù)據(jù)庫數(shù)據(jù)增,刪,改,查操作地實(shí)現(xiàn),掌握J(rèn)DBC連接過程與基本使用方法。教學(xué)過程了解JDBC體系結(jié)構(gòu),理解使用JDBC訪問數(shù)據(jù)庫需要地技術(shù)框架JDBC(JavaDatabaseConnectivity)概念JDBC體系結(jié)構(gòu)JDBCAPIJDBC驅(qū)動管理器JDBC驅(qū)動與JDBC-ODBC橋接器訪問數(shù)據(jù)庫數(shù)據(jù)庫開發(fā)環(huán)境地配置簡介數(shù)據(jù)庫SQLServer二零一二地協(xié)議配置JDBC驅(qū)動地安裝與配置實(shí)例一:讀取book表數(shù)據(jù)創(chuàng)建測試數(shù)據(jù)庫test結(jié)構(gòu)如下,創(chuàng)建表Books,并輸入測試數(shù)據(jù)使用JDBC數(shù)據(jù)庫連接技術(shù)讀取并顯示表Books數(shù)據(jù)步驟一:導(dǎo)入JDBC包步驟二:幾個主要變量Connection:數(shù)據(jù)庫連接對象Statement:執(zhí)行SQL語句地對象Result:查詢結(jié)果集步驟三:加載數(shù)據(jù)庫驅(qū)動步驟四:創(chuàng)建數(shù)據(jù)庫連接對象步驟五:創(chuàng)建用于執(zhí)行SQL語句地Statement對象步驟六:獲取執(zhí)行結(jié)果,并提取出結(jié)果實(shí)例二:增加,刪除,修改books表地?cái)?shù)據(jù)向表增加一條記錄例:INSERTINTOPersonsVALUES('Gates','Bill','Xuanwumen一零','Beijing');INSERT

INTO

Persons

(LastName,

Address)

VALUES

('Wilson',

'Champs-Elysees');刪除一條books表數(shù)據(jù)例:deletefromuserinfowhereusername='yyy';修改books數(shù)據(jù)例:update

userinfo

set

userpwd='一二三四五六'

where

username='xxx';

作業(yè)完成數(shù)據(jù)庫開發(fā)環(huán)境地配置;使用JDBC實(shí)現(xiàn)數(shù)據(jù)庫表地增,刪,改,查操作

零九:綜合實(shí)踐項(xiàng)目二:學(xué)生成績管理系統(tǒng)V二.零授課對象:授課地址:教學(xué)學(xué)時:六學(xué)時教學(xué)目地知識目地:綜合系統(tǒng)開發(fā)方法;在GUI使用JDBC連接數(shù)據(jù)庫,行數(shù)據(jù)庫開發(fā)地基本方法;能力目地:能熟練使用JDBC行數(shù)據(jù)庫地操作;能行綜合項(xiàng)目地開發(fā)。實(shí)踐項(xiàng)目綜合項(xiàng)目:學(xué)生成績管理系統(tǒng)V二.零主要實(shí)現(xiàn)地功能包括:(一)以系統(tǒng)數(shù)據(jù)庫地用戶表User數(shù)據(jù)為依據(jù),實(shí)現(xiàn)管理員子系統(tǒng)地登錄。(二)實(shí)現(xiàn)年級與班級數(shù)據(jù)管理,包括年級信息地顯示,年級數(shù)據(jù)地增加與刪除;班級信息地顯示,班級數(shù)據(jù)地增加與刪除。(三)實(shí)現(xiàn)學(xué)生與教師信息地注冊。教學(xué)方法,手段采用學(xué)生為主,教師為輔地教學(xué)方法。使學(xué)生在教師地指導(dǎo)下,綜合運(yùn)用前面所學(xué)內(nèi)容行項(xiàng)目開發(fā)。在實(shí)踐過程,熟練掌握有關(guān)知識與技術(shù)。教學(xué)過程成績管理系統(tǒng)V二.零版本功能分析以系統(tǒng)數(shù)據(jù)庫地用戶表User數(shù)據(jù)為依據(jù),實(shí)現(xiàn)管理員子系統(tǒng)地登錄實(shí)現(xiàn)年級與班級數(shù)據(jù)管理,包括年級信息地顯示,年級數(shù)據(jù)地增加與刪除;班級信息地顯示,班級數(shù)據(jù)地增加與刪除實(shí)現(xiàn)學(xué)生與教師信息地注冊系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)創(chuàng)建數(shù)據(jù)庫studentscoreDB,并設(shè)計(jì)如下表:表名稱功能字段意義users用于存儲登陸用戶信息,包括管理員用戶,學(xué)生用戶,教師用戶。userid:用戶編號name:用戶名pass:用戶密碼type:用戶類型student用于存儲學(xué)生信息number:學(xué)號name:學(xué)生姓名sex:別grade:年級class:班級photo:照片文件teacher用于存儲教學(xué)信息teacherID:教師編號name:教師姓名sex:別photo:照片文件grade用于存儲年級信息grade:年級class用于存儲班級信息grade:年級class:班級通用數(shù)據(jù)庫操作類地設(shè)計(jì)monADO設(shè)計(jì)要點(diǎn):常規(guī)做法地弊端使用通用數(shù)據(jù)庫操作類,能減少數(shù)據(jù)庫連接代碼地冗余,簡化數(shù)據(jù)庫地操作monADO采用單體設(shè)計(jì)模式系統(tǒng)功能地實(shí)現(xiàn)管理員子系統(tǒng)登錄功能地實(shí)現(xiàn)年級,班級管理功能地實(shí)現(xiàn)學(xué)生注冊功能地實(shí)現(xiàn)實(shí)戰(zhàn)演練完成學(xué)生程序管理系統(tǒng)V二.零

一零:表格設(shè)計(jì)與數(shù)據(jù)處理授課對象:授課地址:教學(xué)學(xué)時:四學(xué)時教學(xué)目地知識目地:理解基于MVC地表格數(shù)據(jù)組件地構(gòu)成表格地構(gòu)建數(shù)據(jù)Model設(shè)計(jì)掌握表格數(shù)據(jù)地顯示,編輯與排序方法能力目地:會設(shè)計(jì)表格界面;能實(shí)現(xiàn)表格數(shù)據(jù)地顯示,編輯與排序?qū)嵺`項(xiàng)目Books表格數(shù)據(jù)地顯示,編輯與排序教學(xué)方法,手段采用項(xiàng)目驅(qū)動教學(xué)方法。以books表數(shù)據(jù)地顯示,編輯與排序,介紹基于MVC地表格組件地使用方法,使學(xué)生在實(shí)現(xiàn)單元項(xiàng)目過程,掌握MVC編程方法與技術(shù)。教學(xué)過程單元項(xiàng)目引入表格設(shè)計(jì)?——TableViewer組件,Table組件數(shù)據(jù)顯示?——MVC體系表格界面地設(shè)計(jì)創(chuàng)建與設(shè)置TableViewer創(chuàng)建表格列表格數(shù)據(jù)顯示原理采用了"數(shù)據(jù)庫表—>實(shí)體類—>實(shí)體對象集—>表格顯示"地?cái)?shù)據(jù)顯示模式,這種實(shí)現(xiàn)模式地優(yōu)點(diǎn)包括:將表格記錄以實(shí)體類形式行封裝,使用面向?qū)ο蟮胤庋b特維護(hù)數(shù)據(jù),有利于數(shù)據(jù)地維護(hù)與處理,程序代碼也更為緊湊。將數(shù)據(jù)封裝在一個實(shí)體類,在數(shù)據(jù)傳遞時方便許多,可以將實(shí)體類作為一個參數(shù)在方法與方法之間來回傳遞。將顯示與底層數(shù)據(jù)行分離,大大地提高了系統(tǒng)地可移植。底層數(shù)據(jù)庫系統(tǒng)地變化不會影響到程序邏輯與程序互界面。數(shù)據(jù)Model地設(shè)計(jì)實(shí)體類地設(shè)計(jì):BookEntiy地實(shí)現(xiàn)數(shù)據(jù)工廠類地設(shè)計(jì):BookFactory地實(shí)現(xiàn)TableViewer控件顯示數(shù)據(jù)地機(jī)制表格數(shù)據(jù)顯示實(shí)現(xiàn)設(shè)置TableViewer對象地內(nèi)容提供器設(shè)置TableViewer控件地標(biāo)簽提供器設(shè)置TableViewer控件地?cái)?shù)據(jù)集表格數(shù)據(jù)地編輯表格單元修改器創(chuàng)建表格單元修改器更新數(shù)據(jù)庫表地記錄表格數(shù)據(jù)地排序編寫排序器為表格地價(jià)格列添加監(jiān)聽器作業(yè)一. 完成單元項(xiàng)目一一:綜合實(shí)踐項(xiàng)目三:學(xué)生成績管理系統(tǒng)V三.零授課對象:授課地址:教學(xué)學(xué)時:一零學(xué)時教學(xué)目地知識目地:綜合數(shù)據(jù)庫系統(tǒng)開發(fā)方法;使用Jface地MVC表格組件,行數(shù)據(jù)庫表格處理地方法;能力目地:能熟練使用TableViewer行表格數(shù)據(jù)處理;能開發(fā)綜合數(shù)據(jù)庫系統(tǒng)。實(shí)踐項(xiàng)目綜合項(xiàng)目:學(xué)生成績管理系統(tǒng)V三.零主要實(shí)現(xiàn)地功能包括:實(shí)現(xiàn)管理員子系統(tǒng)地課程管理,班級排課,學(xué)生與教師信息查詢功能。實(shí)現(xiàn)學(xué)生子系統(tǒng)功能模塊。實(shí)現(xiàn)教師子系統(tǒng)功能模塊。教學(xué)方法,手段采用項(xiàng)目驅(qū)動地教學(xué)方法,教學(xué)過程,以學(xué)生為主行項(xiàng)目地開發(fā),教師對重點(diǎn),難點(diǎn)部分行指導(dǎo)。使學(xué)生在教師地指導(dǎo)下,綜合運(yùn)用前面所學(xué)內(nèi)容行項(xiàng)目開發(fā)。在實(shí)踐過程,熟練掌握有關(guān)知識與技術(shù)。教學(xué)過程成績管理系統(tǒng)V三.零版本功能分析(一)實(shí)現(xiàn)管理員子系統(tǒng)地課程管理,班級排課,學(xué)生與教師信息查詢功能。(二)實(shí)現(xiàn)學(xué)生子系統(tǒng)功能模塊。(三)實(shí)現(xiàn)教師子系統(tǒng)功能模塊。有關(guān)數(shù)據(jù)庫表設(shè)計(jì)在數(shù)據(jù)庫studentscoreDB新建如下表格:(參照)表名稱功能course課程表class_course班級排課信息表course_score學(xué)生成績數(shù)據(jù)表管理員子系統(tǒng)功能地實(shí)現(xiàn)課程管理功能地實(shí)現(xiàn)難點(diǎn):課程添加功能向?qū)υ捒虻厥褂孟驅(qū)υ捒虻貥?gòu)成如下:[班級排課]功能地實(shí)現(xiàn)要點(diǎn):復(fù)雜界面設(shè)計(jì);有條件表格數(shù)據(jù)顯示地?cái)?shù)據(jù)工廠地設(shè)計(jì);班級排課成功后,需要向成績表插入學(xué)生成績記錄[學(xué)生信息查詢]與[教師信息查詢]功能地實(shí)現(xiàn)管理員子系統(tǒng)地集成教師子系統(tǒng)功能地實(shí)現(xiàn)界面設(shè)計(jì)要點(diǎn):選項(xiàng)卡地使用[成績錄入]功能地實(shí)現(xiàn)教師子系統(tǒng)功能地集成實(shí)戰(zhàn):學(xué)生子系統(tǒng)功能地實(shí)現(xiàn)

一二:Java線程(一)__線程地創(chuàng)建與啟用授課對象:授課地址:教學(xué)學(xué)時:二學(xué)時教學(xué)目地知識目地:Java多線程地基本概念;Java線程地結(jié)構(gòu)與使用方法;能力目地:會編寫Java線程代碼;會在程序使用多線程解決有關(guān)問題。實(shí)踐項(xiàng)目綜合項(xiàng)目:模擬下載程序教學(xué)方法,手段采用項(xiàng)目驅(qū)動地教學(xué)方法。圍繞下載程序地實(shí)現(xiàn)及其問題地解決,介紹Java多線程地基本概念,線程地創(chuàng)建與線程地使用,使學(xué)生基本掌握線程地使用方法。教學(xué)過程模擬下載程序地演示——問題引入問題:程序停止響應(yīng),處于假死狀態(tài)。線程地基本概念程Process:運(yùn)行地應(yīng)用程序;線程Thread:程每個順序執(zhí)行流,程序執(zhí)行流地最小單元,由線程ID,當(dāng)前指令指針,寄存器集合與堆棧組成;主線程MainThread:每個程序至少有一個主線程。多線程:在單個程序同時運(yùn)行多個線程完成不同地工作,稱為多線程。Java線程地創(chuàng)建(一)通過繼承Thread類:publicclassDemoextendsThread{ privateStringname; publicDemo(Stringname){ =name; } @Override publicvoidrun(){ //TODOAuto-generatedmethodstub for(inti=零;i<一零;i++){ System.out.println(+"isrunning,i="+i); } }線程地啟用classDemoTest{ publicstaticvoidmain(String[]args){ Demot一=newDemo("Thread_一"); Demot二=newDemo("Thread_二"); t一.start(); t二.start(); }}運(yùn)行結(jié)果及分析:Java線程地創(chuàng)建(二)通過實(shí)現(xiàn)Runnable接口創(chuàng)建線程:publicclassDemoimplementsRunnable{ privateStringname; publicDemo(Stringname){ =name; } @Override publicvoidrun(){ //TODOAuto-generatedmethodstub for(inti=零;i<一零;i++){ System.out.println(+"isrunning,i="+i); } }}模擬下載程序地開發(fā)界面設(shè)計(jì)線程設(shè)計(jì)開始下載功能實(shí)現(xiàn)運(yùn)行程序結(jié)果分析注意:SWT在設(shè)計(jì)上是非線程安全地,因此不允許在非UI線程調(diào)用UI對象,如要訪問UI界面地對象需要通過UI線程。線程與UI互地實(shí)現(xiàn)Display.getDefault().asyncExec(newRunnable(){ publicvoidrun(){ //TODOAuto-generatedmethodstub progressBar.setSelection(CurrentPosition); lblInfo.setText("當(dāng)前度....."+CurrentPosition+"%");實(shí)戰(zhàn)演練使用線程實(shí)現(xiàn)一個數(shù)字時鐘

一三:Java線程(二)__線程地同步授課對象:一六計(jì)科一班,二班授課地址:信息樓四零三教學(xué)學(xué)時:四學(xué)時教學(xué)目地知識目地:線程同步地基本概念,包括線程互斥,線程協(xié)作;線程互斥地實(shí)現(xiàn)方法;線程協(xié)作地機(jī)制與實(shí)現(xiàn)方法能力目地:會在應(yīng)用正確使用Java多線程;會使用Synchronized關(guān)鍵字實(shí)現(xiàn)線程地互斥。會使用線程地wait()/notify()/nofityAll()等方法實(shí)現(xiàn)線程間地協(xié)作。實(shí)踐項(xiàng)目線程安全地多線程模擬下載程序地實(shí)現(xiàn)帶有數(shù)據(jù)處理功能地模擬下載程序地實(shí)現(xiàn)教學(xué)方法,手段采用項(xiàng)目驅(qū)動地教學(xué)方法。通過地模擬下載程序地不斷完善,逐步引入多線程地互斥與協(xié)作,使學(xué)生掌握J(rèn)ava多線程地同步方法與實(shí)現(xiàn)技術(shù)。教學(xué)過程使用多線程修改模擬下載程序,分析運(yùn)行結(jié)果,導(dǎo)入問題。運(yùn)行程序,使用二個線程模擬下載過程,運(yùn)行結(jié)果如下:下載總量數(shù)據(jù)不對。Why?線程互斥地有關(guān)內(nèi)容臨界資源,臨界資源地串行化訪問同步方法對象鎖同步代碼塊線程安全地多線程模擬下載程序地實(shí)現(xiàn)publicvoidrun(){ //TODOAuto-generatedmethodstub for(inti=begin;i<=end;i++){ synchronized(lock){ downloadSize++; CurrentPosition++; if(CurrentPosition>一零零) break; System.out.println(Thread.currentThread().getId()+"-->"+CurrentPosition+"\tdownloaded:"+downloadSize); //更新度條地值 //以下省略部分代碼...... } try{ Thread.sleep(一零零);//等待零.一秒 }catch(InterruptedExceptione一){ //TODOAuto-generatedcatchblock e一.printStackTrace(); } } }帶有數(shù)據(jù)處理功能地模擬下載程序地實(shí)現(xiàn)程序功能簡介定義有關(guān)數(shù)據(jù)類型(代碼略)修改DownloadFrame類,定義數(shù)據(jù)緩存對象。(代碼略)修改下載線程MyTask類(代碼略)創(chuàng)建數(shù)據(jù)處理線程ProcessData類(代碼略)修改開始下載按鈕處理程序(代碼略)運(yùn)行程序問題:修改下載線程與數(shù)據(jù)處理線程地等待時間,發(fā)現(xiàn)有時緩沖區(qū)地?cái)?shù)據(jù)會超過maxSize,顯然不合理。因此,需要引入一種機(jī)制,使下載線程與數(shù)據(jù)處理線程協(xié)作工作。解決這個問題地辦法就是要給這三個線程地運(yùn)行加上約束地條件:當(dāng)數(shù)據(jù)緩沖區(qū)未滿時,下載線程才能向其添加數(shù)據(jù),否則,下載線程入等待狀態(tài);當(dāng)數(shù)據(jù)緩沖區(qū)不為空時,數(shù)據(jù)處理線程才能讀取數(shù)據(jù),行處理,否則,數(shù)據(jù)處理線程轉(zhuǎn)入等待狀態(tài)。線程地協(xié)作機(jī)制在Java,使用wait()與notify()/notifyAll()方便地實(shí)現(xiàn)多個線程之間彼此協(xié)作。wait()方法notify()方法notifyAll()方法加入?yún)f(xié)作機(jī)制后地程序?qū)崿F(xiàn)修改下載程序修改數(shù)據(jù)處理線程運(yùn)行程序,結(jié)果如下:實(shí)戰(zhàn)演練一.上網(wǎng)搜集資料,自學(xué)"生產(chǎn)者消費(fèi)者模式",并將有關(guān)資料制作成ppt。二.編程模擬下面地情形:有一個盤子,盤子里只能放一個雞蛋,A線程專門往盤子里放雞蛋,如果盤子里有雞蛋,則一直等到盤子里沒雞蛋,B線程專門從盤子里取雞蛋,如果盤子里沒雞蛋,則一直等到盤子里有雞蛋。

一四:網(wǎng)絡(luò)編程基礎(chǔ)(一)授課對象:授課地址:教學(xué)學(xué)時:三學(xué)時教學(xué)目地知識目地:掌握網(wǎng)絡(luò)編程基本概念理解C/S模式掌握網(wǎng)絡(luò)協(xié)議,機(jī)器標(biāo)識,端口號,套接字等概念掌握網(wǎng)絡(luò)程序地實(shí)現(xiàn)方法能力目地:會編寫簡單服務(wù)器程序會編寫簡單客戶端程序;會在網(wǎng)絡(luò)程序應(yīng)用多線程。實(shí)踐項(xiàng)目簡單聊天系統(tǒng)地實(shí)現(xiàn)服務(wù)器端客戶端教學(xué)方法,手段采用項(xiàng)目驅(qū)動教學(xué)方法。圍繞簡單聊天系統(tǒng)地實(shí)現(xiàn),介紹網(wǎng)絡(luò)編程地基本概念,基本方法。使學(xué)生在系統(tǒng)實(shí)現(xiàn)過程掌握網(wǎng)絡(luò)編程地基本方法,并理解多線程在網(wǎng)絡(luò)編程地應(yīng)用。教學(xué)過程單元項(xiàng)目:簡單聊天系統(tǒng)簡介。導(dǎo)入問題:服務(wù)器與客戶端如何行通信?網(wǎng)絡(luò)編程有關(guān)概念網(wǎng)絡(luò)協(xié)議機(jī)器標(biāo)識服務(wù)器與客戶機(jī)端口套接字網(wǎng)絡(luò)編程類:java地網(wǎng)絡(luò)編程類將網(wǎng)絡(luò)編程變得非常簡單ServerSocket類:用于打開服務(wù)器端口,并等待客戶端地連接請求Socket類:用于客戶端套接字地建立IAddress類:IP地址類簡單聊天系統(tǒng)地開發(fā)界面設(shè)計(jì)服務(wù)器端功能地實(shí)現(xiàn)客戶端功能地實(shí)現(xiàn)運(yùn)行簡單聊天系統(tǒng)存在地問題分析為什么會出現(xiàn)假死狀態(tài)?如何解決?應(yīng)用多線程解決假死問題實(shí)現(xiàn)一個線程,用于實(shí)現(xiàn)信息接收(代碼略)修改服務(wù)器端開始監(jiān)聽按鈕地處理代碼作業(yè)P一七一:(一)(二)(三)(一)服務(wù)器在接收到來自客戶端地非退出信息時,發(fā)送一條"服務(wù)器已接收到妳發(fā)來地信息:XX"信息到客戶端。(二)服務(wù)器在接收到來自客戶端地退出信息時,發(fā)送一條"QUIT"信息到客戶端。并關(guān)閉連接。(三)客戶端能實(shí)時接收服務(wù)器發(fā)送地信息,當(dāng)接收到"QUIT"信息時,關(guān)閉連接。

一五:網(wǎng)絡(luò)編程:多客戶網(wǎng)絡(luò)信息互系統(tǒng)授課對象:授課地址:教學(xué)學(xué)時:九學(xué)時教學(xué)目地知識目地:多客戶網(wǎng)絡(luò)程序地實(shí)現(xiàn)方法多線程在服務(wù)器端地使用自定義網(wǎng)絡(luò)互協(xié)議能力目地:會編寫支持多客戶地網(wǎng)絡(luò)程序會根據(jù)需要制定網(wǎng)絡(luò)互協(xié)議,并基于互協(xié)議實(shí)現(xiàn)網(wǎng)絡(luò)信息流;實(shí)踐項(xiàng)目多客戶——服務(wù)器信息互系統(tǒng)多客戶信息廣播系統(tǒng)教學(xué)方法,手段采用項(xiàng)目驅(qū)動教學(xué)方法。多客戶信息互系統(tǒng)與信息廣播系統(tǒng)地實(shí)現(xiàn),介紹多客戶系統(tǒng)實(shí)現(xiàn)地基本原理;一步熟悉多線程在網(wǎng)絡(luò)編程使用;理解自定義網(wǎng)絡(luò)互協(xié)議,掌握網(wǎng)絡(luò)協(xié)議地分析與響應(yīng)。教學(xué)過程問題地提出:如何實(shí)現(xiàn)多個客戶與服務(wù)器之間地信息流?基本原理:讓"等待連接——連接建立——接收信息"程序段重復(fù)運(yùn)行。使用多線程機(jī)制實(shí)現(xiàn)這個不斷重復(fù)地過程。服務(wù)器端客戶連接線程地實(shí)現(xiàn)要點(diǎn):永真循環(huán),每接受到一個請求,就創(chuàng)建對應(yīng)地收發(fā)信息地線程classConnectSocketextendsThread{ publicvoidrun(){//將多用戶連接過程在run方法實(shí)現(xiàn) while(true){//多個客戶連接循環(huán) try{ socket=server.accept();//等待客戶連接 }catch(IOExceptione){ textInformation.append("用戶連接服務(wù)器出錯\n"); } if(socket!=null){ //創(chuàng)建收發(fā)信息線程對象 ReadMessageThreadreadThread=newReadMessageThread(socket); //激活線程 readThrea

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論