版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
基于Android平臺的新聞客戶端的設計與實現(xiàn)摘要隨著智能世界范圍內(nèi)的迅速開展,智能的操作系統(tǒng)之間的競爭也是越來越劇烈。為了讓智能用戶能夠十分便利地了解當前世界的實時資訊,一種高效的方法就是將查看新聞的功能拓展到終端上。因此,開發(fā)出一款智能的新聞客戶端將有廣闊的前景。本文是基于android操作系統(tǒng),開發(fā)出一款android新聞客戶端應用程序,通過工具Eclipse編寫邏輯代碼,ApacheTomcat6.0作為應用程序的效勞器,根據(jù)數(shù)據(jù)量的要求,采用Mysql數(shù)據(jù)庫處理數(shù)據(jù),三者共同作用開發(fā)出的android新聞客戶端軟件。本文在分析Android系統(tǒng)軟件開發(fā)原理的技術層面上,開發(fā)出能為用戶提供更人性化、更方便的基于Android新聞客戶端軟件。通過實踐與測試,本文所述的原理和方法能夠完成設計所需要的功能?!娟P鍵詞】Android;新聞客戶端軟件;智能操作系統(tǒng)DesignandRealizationofAndroidClientBasedonTheNewsAbstractWiththerapiddevelopmentofsmartphonesworldwide,competitionbetweensmartphoneoperatingsystemisalsomoreintense.Toallowsmartphoneuserstoreal-timeinformationisveryconvenienttounderstandthecurrentworld,anefficientapproachistoviewthenewsfeaturetoexpandtothemobileterminals.Therefore,thedevelopmentofasmartphonenewsclientwillhavebroadprospects.Thisarticleisbasedonandroidoperatingsystem,developedanandroidphonenewsclientapplicationlogiccodebywritingtoolsEclipse,ApacheTomcat6.0asaserverapplication,accordingtotheamountofdatarequiredtoprocessdatausingMysqldatabase,combinedactiondevelopedaandroidphonenewsclientsoftware.ThispaperanalyzestheAndroidsysteminprinciplethetechnicalaspectsofsoftwaredevelopment,thedevelopmentcouldprovideamorehumane,moreconvenientmobileoperatingsystembasedonAndroidnewsclientsoftwareforusers.Throughpracticeandtesting,principlesandmethodsdescribedhereincanachievetherequiredfunctionaldesign.【Keywords】Android;NewsClientSoftware;Smartphoneoperatingsystems目錄1緒論 11.1研究內(nèi)容 11.2研究意義 11.3研究現(xiàn)狀和開展趨勢 12系統(tǒng)分析與環(huán)境搭建 22.1研究目標 22.2可行性分析 22.3需求分析 32.4性能分析 32.5開發(fā)環(huán)境的搭建 32.5.1Java環(huán)境配置 32.5.2Eclipse的安裝 32.5.3EclipseStandard的安裝 32.5.4Tomcat效勞器的安裝 32.5.5Mysql數(shù)據(jù)庫的安裝 33系統(tǒng)設計與實現(xiàn) 43.1軟件流程 43.1.1模塊設計 43.1.2功能設計 53.3用戶界面設計 53.4數(shù)據(jù)庫設計 63.5軟件的實現(xiàn) 83.5.1文件結構與說明 83.5.2具體實現(xiàn) 114系統(tǒng)測試 174.1軟件的測試 174.2測試結果及說明 175總結與展望 215.1總結 215.2展望 21參考文獻 22致謝 23附錄A 241 緒論1.1研究內(nèi)容 Android應用平臺新聞客戶端軟件是基于Android平臺,采用Java語言,從網(wǎng)絡上的開放的新聞接口獲取數(shù)據(jù),設計出針對使用Android平臺的新聞客戶端資訊實時掌控的應用程序。1.2研究意義 Android平臺新聞客戶端軟件的開發(fā)可以進一步擴大時事新聞的覆蓋面,讓廣闊公眾能夠隨時隨地方便且快捷地獲取最新的新聞資訊信息,了解新聞時事,本軟件的廣泛使用,尤其是在傳授知識、普及教育方面起著非常重要的作用。1.3研究現(xiàn)狀和開展趨勢目前市場研究機構Worldpanel發(fā)布了全球主要的國家智能操作系統(tǒng)在去年Q4內(nèi)的分布報告,報告指出了谷歌的Android繼續(xù)保持著增長的勢態(tài),但是增幅已經(jīng)明顯放緩了。而在另一個方面,蘋果iOS操作系統(tǒng)在全球只能市場上均有下滑,個別國家的降幅甚至高達10.3%。最新統(tǒng)計數(shù)據(jù)中顯示,Android操作系統(tǒng)將繼續(xù)領跑全球市場,包括美國、澳大利亞、中國、意大利、英國、德國、西班牙等所占的市場比例都已經(jīng)超出50%,并且還將繼續(xù)呈現(xiàn)上漲的趨勢。而在蘋果iOS操作系統(tǒng)方面,最大的市場份額所占比的國家依舊是美國,數(shù)值為43.9%;緊隨美國的那么是澳大利亞,數(shù)值為35.2%;而在中國方面,市場份額也從21.2%下降到了19%;在意大利,iOS所占的市場份額更是從23.1%猛降至12.8%[1]。從上面的數(shù)據(jù)可以看出,Android軟件的開發(fā)具有巨大的開展前景,在Android系統(tǒng)上開發(fā)出一款新聞客戶端軟件所支持的用戶量也是相比擬于其他系統(tǒng)多出很多的。谷歌的移動平臺主管安迪·魯賓(AndyRubin)表示,跟軟件開發(fā)合作對象的密切接觸正在進行中。Google與開放聯(lián)盟聯(lián)合開發(fā)了Android操作系統(tǒng),這個聯(lián)盟由摩托羅拉、高通、宏達電、中國移動和T-Mobile等在內(nèi)的多家無線應用和技術的領軍企業(yè)組成。Google通過與設備制造商、開發(fā)商、運營商和其他有關各方結成深層次的合作關系,希望借助建立開放式、標準化的移動移動軟件平臺,在移動產(chǎn)業(yè)內(nèi)形成一個開放性的生態(tài)系統(tǒng),這將是開發(fā)Android軟件的一個契機,Android平臺的開發(fā)在將來必定大放異彩[2]。2系統(tǒng)分析與環(huán)境搭建2.1研究目標1)了解Android應用的設計和開發(fā)過程;2)使用多種組件進行Android平臺新聞軟件的開發(fā)。本款新聞客戶端軟件是采用java語言編寫,基于Eclipse的開發(fā)平臺,連接網(wǎng)絡新聞數(shù)據(jù)接口,開發(fā)出了針對Android平臺的新聞客戶端軟件。2.2可行性分析開發(fā)任何一個基于的應用程序,都會受到資源和時間上的限制。因此,在接收任何一個應用程序發(fā)任務之前,必須根據(jù)用戶可能提供的資源和時間條件進行可行性分析,旨在減少工程開發(fā)風險,防止人力、財力和物力的浪費。風險分析與可行性分析在很多方面是相互關聯(lián)的,工程的風險越大,開發(fā)質量高的軟件的可行性的幾率就越小。1)經(jīng)濟可行性采用的數(shù)據(jù)流量作為通信手段,當今通信技術的迅速開展,2G的運營商的GSM網(wǎng)絡已經(jīng)逐漸被當今的3G、甚至是4G所取代,數(shù)據(jù)流量的資費也越來越低,而且現(xiàn)在很多都可連接無線wifi,實現(xiàn)數(shù)據(jù)流量0資費,大大加強了本新聞閱讀軟件的經(jīng)濟可行性。2)技術可行性開發(fā)一個新聞客戶端軟件,用到的技術不會十分復雜,用到最多的就是客戶端與效勞端的數(shù)據(jù)交換時所用到的servlet及常見的數(shù)據(jù)庫技術,android系統(tǒng)下的解析json數(shù)據(jù)以及UI的設計,經(jīng)查閱相關資料是可以實現(xiàn)的。2.3需求分析啟動程序后可以進行新聞資訊的實時更新,可分不同的欄目讓使用者了解任意感興趣的資訊進行閱讀,同時,能對感興趣的新聞資訊發(fā)表自己的意見,進行評論,其他用戶也能看見別人發(fā)表的評論,從而進行互動交流,增強用戶的體驗感,用戶能通過下拉新聞列表,方便于操作。從上面的描述中可以根本了解軟件的功能需求:1)啟動應用程序;2)設置界面:采用多種布局嵌套,美化控件。3)顯示界面:模仿網(wǎng)易新聞客戶端進行UI編寫。4)詳細界面:分為頭條、推薦、娛樂、體育、財經(jīng)、科技、游戲等板塊。2.4性能分析從用戶的角度出發(fā),針對用戶的需求,所涉及的程序響應速度快、信息處理速度快、平安性高是用戶所需要的三大主要性能[2],另外為了受眾面更廣,根據(jù)目前的android設備系統(tǒng)版本的分布情況,android2.3以上的版本占到設備總量的80%以上,所以做開發(fā)的時候選擇的android系統(tǒng)最低版本也必須是android2.3以上來保證用戶量。2.5開發(fā)環(huán)境的搭建Java環(huán)境配置采用jdk的版本是jdk1.6,目前jdk版本最高的是jdk1.7,但是為了程序的穩(wěn)定性,還是采用已經(jīng)穩(wěn)定成熟的版本作為開發(fā)工具。從Oracle公司下載jdk1.6之后安裝,由于本機的開發(fā)系統(tǒng)是win8的64位操作系統(tǒng),選擇下載64為jdk,然后按照安裝步驟一步一步next,jdk就安裝完成了,然后配置環(huán)境java的環(huán)境變量,整個jdk的過程就完成了。Eclipse的安裝從Eclipse官網(wǎng):///downloads/下載Eclipse3.2,根據(jù)系統(tǒng)下載相應的Eclipse版本,點擊解壓縮就行了,然后啟動eclipse.exe就行了。值得注意的是Eclipse的bit數(shù)要與jdk的一致,就是說jdk如果是32位的,Eclipse也要是32位的。EclipseStandard4.3.2的安裝EclipseStandard版本用來做效勞器端程序,方法與Eclipse的方法類似。Tomcat效勞器的安裝從:/下載tomcat6.0作為的效勞器,下載好文件后開始安裝,點擊下一步,在安裝過程中會提示設置默認的效勞器端口號,假設是不做修改默認為8080,建議不要修改,安裝完成。在EclipseforJavaEE建立效勞器工程的時候選擇剛剛安裝的tomcat作為效勞器就行了。安裝Mysql數(shù)據(jù)庫現(xiàn)如今有很多種類的數(shù)據(jù)庫,如oracle、sqlserver、mysql、access等等很多種,但是在選擇的時候也有考究,本設計的開發(fā)涉及到的數(shù)據(jù)并不是很多所以選擇一種輕量級的數(shù)據(jù)mysql[3]。3系統(tǒng)設計3.1系統(tǒng)流程模塊設計軟件分為了兩大模塊,分別是新聞客戶端模塊和效勞器模塊。圖形解析能夠清楚的看出程序的功能與流程,以下圖3-1是客戶端流程圖:新聞界面新聞界面詳細界面效勞器接收指令詳細界面效勞器接收指令接收效勞器的數(shù)據(jù)接收效勞器的數(shù)據(jù)評論界面評論界面顯示在界面顯示在界面圖3-1客戶端流程圖如以下圖圖3-2所示的是效勞器端的流程圖:客戶端客戶端效勞器接收指令效勞器接收指令生成sql語句生成sql語句調用sql類調用sql類返回結果數(shù)據(jù)庫操作返回結果數(shù)據(jù)庫操作圖3-2效勞器流程圖功能設計客戶端模塊功能結構如以下圖所示3-3:新聞客戶端新聞客戶端新聞內(nèi)容管理新聞內(nèi)容管理游戲科技時尚財經(jīng)娛樂體育推薦頭條游戲科技時尚財經(jīng)娛樂體育推薦頭條詳細內(nèi)容管理詳細內(nèi)容管理評論管理評論管理圖3-3客戶端功能結構圖效勞器端模塊功能結構如以下圖3-4所示:數(shù)據(jù)庫配置數(shù)據(jù)轉換工具數(shù)據(jù)解析配置數(shù)據(jù)交互管理數(shù)據(jù)模型配置效勞器端數(shù)據(jù)庫配置數(shù)據(jù)轉換工具數(shù)據(jù)解析配置數(shù)據(jù)交互管理數(shù)據(jù)模型配置效勞器端圖3-4效勞器端功能結構圖3.3用戶界面設計根據(jù)需求分析可知,應用程序應包含三個主要的用戶界面,這里要進一步分析每個用戶界面中應該包括哪些顯示內(nèi)容。1)在“新聞概況頁面〞中,需要顯示得是各類新聞的的欄目頭,然后在選擇欄目頭時選擇相應的新聞資訊信息顯示在當前的欄目頭下,資訊信息以一個ListView的形式展示在界面上,用戶可拖動獲得內(nèi)容,并在滑到最后一個內(nèi)容時有一個加載更多的按鈕,用戶點擊之后可以獲得更多內(nèi)容。2)在“詳細新聞頁面〞中,用戶在點擊了一條新聞之后,可以進入詳細新聞界面,在界面中會展示當前所點擊新聞的標題、發(fā)表時間、作者以及評論條數(shù),在點擊新聞詳細內(nèi)容的區(qū)域向兩邊滑動的時候還能顯示上一條新聞和下一條新聞,方便操作,不需要返回上一個界面之后才能閱讀上一條或者下一條。3)在“新聞評論頁面〞中,此頁面展示的信息就比擬簡單了,根據(jù)時間的排列顯示相應新聞的評論內(nèi)容,一條內(nèi)容包含的信息有,用戶所在的省份,發(fā)表的時間以及評論的內(nèi)容,在發(fā)表評論的編輯框會默認提示用戶“請文明發(fā)表言論〞。以下圖就是根據(jù)對新聞界面顯示內(nèi)容的分析,繪制出用戶界面的草圖。圖3-5用戶界面草圖3.4數(shù)據(jù)庫設計本軟件是一個需要存儲很多新聞資訊信息的程序,其中包括新聞的閱讀和用戶的評論信息,這些數(shù)據(jù)都是要從數(shù)據(jù)庫中查詢而來的并不是緩存的數(shù)據(jù),所以少不了使用數(shù)據(jù)庫,其中數(shù)據(jù)庫為我們管理數(shù)據(jù)提供方便,Mysql數(shù)據(jù)庫使用方便、易懂。如以下圖3-6所示的是新聞欄目的E-R圖:新聞欄目新聞欄目編號序列標題編號序列標題圖3-6新聞欄目E-R圖如以下圖3-7所示的是新聞詳細內(nèi)容的E-R圖:欄目編號新聞編號標題新聞欄目內(nèi)容來源序列欄目編號新聞編號標題新聞欄目內(nèi)容來源序列評論數(shù)量評論數(shù)量編號摘要編號摘要圖3-7新聞詳細內(nèi)容E-R圖如以下圖3-8所示的是新聞評論的E-R圖:新聞編號欄目編號新聞欄目新聞編號欄目編號新聞欄目地區(qū)評論時間評論內(nèi)容地區(qū)評論時間評論內(nèi)容圖3-8新聞評論內(nèi)容E-R圖本軟件中有三張表的數(shù)據(jù)需要存儲,因此在MySql中分別建立三張表。新聞類別分類表t_category,新聞評論表t_comment,新聞內(nèi)容表t_news。三張表分別如下表所示:表3.1新聞類別分類表t_category的結構屬性數(shù)據(jù)類型說明cidinteger分類編號,自動增加的主鍵titleString分類名稱sequncetext序列表3.2顯示新聞評論表t_comment的結構屬性數(shù)據(jù)類型說明cidinteger評論編號,自動增長nidinteger新聞編號ptimeString評論的日期regionString發(fā)布人地區(qū)〔默認為未知地區(qū)〕contentString評論內(nèi)容續(xù)表3.2顯示新聞評論表t_comment的結構supportcountString支持數(shù)opposecounttext反對數(shù)表3.3顯示新聞內(nèi)容表t_news的結構屬性數(shù)據(jù)類型說明nidinteger新聞編號編號,自動增長cidinteger新聞分類號titleString新聞標題bodyString新聞正文sourceString新聞來源ptimeString發(fā)表時間imgsrctext圖片來源summaryString摘要sequenceint序列仔細分析不難得出,后臺效勞是整個應用程序的核心,主要是“數(shù)據(jù)獲取〞,用戶進行點擊操作,后臺效勞接收用戶的指令,向效勞器接口調用收據(jù),效勞端接收指令,從效勞器進行相應的增刪改查,然后返回信息給客戶端,使用戶獲得需要的新聞資訊,滿足客戶的需求。效勞端器端的代碼主要的功能就是對數(shù)據(jù)庫進行的操作,采用servlet技術通過接受客戶端傳過來的指令查詢數(shù)據(jù)庫,然后返回json數(shù)據(jù)格式的數(shù)據(jù)跟客戶端進行數(shù)據(jù)交互操作,簡單方便,客戶端接收的時候也能十分方便的解析出來,顯示在用戶界面上。在完成用戶界面設計、效勞器和數(shù)據(jù)庫設計后,至此軟件的框架設計階段根本完成。3.5功能的實現(xiàn)文件結構與說明1)客戶端Eclipse開發(fā)局部在程序的開發(fā)階段,首先確定“Android平臺新聞客戶端〞的工程名為“快看新聞〞,據(jù)程序模塊設計的內(nèi)容,建立“快看新聞〞工程,然后分析完成功能所需要的代碼結構,認真完善,做好每一個功能。其工程源代碼的結構與作用如以下圖3-9所示。圖3-9“快看新聞〞工程的源代碼文件為了使源代碼文件的結構更清晰,快看新聞〞工程設置了多個命名空間,其包的作用分別展示在下表。表3.4“快看新聞〞工程的文件用途說明包名稱文件名說明Category.java新聞欄目的bean類CustomSimpleAdapter.java新聞欄目標題的適配器DensityUtil.java像素和dip之間的轉換工具類StringUtil.javaString數(shù)據(jù)轉化成int的工具類MainActivity.java主新聞界面的ActivitycoCommentActivity.java新聞評論界面的ActivityNewDetailActivity.ava新聞詳細內(nèi)容的Activity包內(nèi)所有文件互聯(lián)網(wǎng)上開源的異步訪問框架結構Android中資源文件都保存在/res的子目錄中。其中,/res/drawable/目錄中下保存的是圖像文件,/res/values目錄中保存的是自定義的字符串和顏色的文件以及樣式文件,/res/xml目錄中保存的是xml格式的數(shù)據(jù)文件,/res/layout目錄下保存的是UI的布局文件。/res/anim目錄下包含的是所有的動畫控制文件。程序開發(fā)階段可以被調用的所有資源都保存在這些目錄中[4],具體的文件圖圖3-10示如下。圖3-10android資源文件圖2)效勞器端EclipseStandard開發(fā)局部在效勞器開發(fā)端,建立工程名為“News〞的工程,如以下圖3-11所示圖3-11效勞器端目錄圖配合上圖的目錄結構圖,使結構更加清晰,目標類的作用分別展示在如下表3-5的工程文件目錄說明中。表3.5“News〞工程的文件用途說明包名稱文件名說明CategoryDAO.javaCommentDAO.javaNewsDAO.java對數(shù)據(jù)庫增刪改查的類CpertiesSqlManager.java連接MySql的配置文件Category.javaComment.javaNews.java新聞、評論、類型的模型類GetCategoriesServlet.javaGetCommentsServlet.javaGetNewsServlet.javaGetSpecifyCategoryNewsServlet.javaPostCommentServlet.java數(shù)據(jù)交互操作的servlet類org.jsonJSONArray.javaJSONException.javaJSONML.javaJSONObject.javaJSONString.javaJSONStringer.javaJSONTokener.javaJSONWriter.java生成json文件的工具類org.jsonCDL.javaCookie.javaCookieList.java.javaTokener.java緩存級訪問工具類TextUtility.java字符編碼轉換工具類具體實現(xiàn)主新聞頁面的設計與實現(xiàn)1)開頭定義出頁面所需要用到的控件以及新聞欄目的適配器,從代碼中可以看出,除了全局變量layoutinflater,loadnews_progress,titlebar_refresh,MainActivity類中有以上私有屬性cid、newsData、newsListAdapter、newslists、CatName、ategories。點擊新聞欄目之后,MainActivity會顯示相應欄目下的的新聞信息,假設此欄目下有新聞的話就會顯示出來,假設沒有新聞的話就會提示“該欄目下沒有新聞信息〞,要是無法連接網(wǎng)絡的話就會提示“網(wǎng)絡無法連接〞,十分清楚的告訴用戶現(xiàn)在所處的狀態(tài)??蛻舳瞬捎玫氖钱惒皆L問框架,其中AsyncClient類是十分方便的異步訪問類,它是封裝好的,只需提供接口地址和參數(shù),就能十分方便的訪問接口獲得數(shù)據(jù),并且不用再寫回調方法,只需要AsyncClient中的cilent對象get或者post請求方式訪問接口,然后重寫兩個方法,一個是onsuccess(),另一個是onfailure(),其中onsuccess()方法是訪問接口成功,獲得的數(shù)據(jù)將從方法的參數(shù)content中可以得到,然后再進行相應解析,當由于接口錯誤或者網(wǎng)絡錯誤時或者返回錯誤信息時,請求數(shù)據(jù)時將會執(zhí)行onfailure()方法。2)訪問接口成功后,會從效勞器得到一個json數(shù)據(jù),我們要做的就是解析它,然后將之填充到我們的頁面顯示,解析MainActivity.java頁面中接收各個欄目的json格式數(shù)據(jù),需要導入json包的支持,代碼見附錄A。3)加載更多新聞按鈕,是訪問getSpeCatNews這個接口,點擊按鈕的時候只是傳的第二個參數(shù)變成了我們需要加載的新聞個數(shù),這是一個變量由我們自己定義出來的,getSpeCatNews(cid,newsData.size(),false)。newsData.size()新聞數(shù)目的size就是自己定義出來的變量。實現(xiàn)的代碼如下:loadMoreBtn.setOnClickListener(newOnClickListener(){publicvoidonClick(Viewv){getSpeCatNews(cid,newsData.size(),false);}});4)關于界面的退出,是重寫了onKeyDown()的方法,判斷是否按了后退鍵,然后在界面上提示再按一次退出鍵退出程序,兩次退出操作的時間間隔超過兩秒退出無效,兩秒以內(nèi)完成退出操作,具體界面退出的代碼見附錄 新聞詳細頁面的設計與實現(xiàn):1)頁面初始化首先要初始化變量一些控件和變量的信息,如上一頁按鈕newsdetails_titlebar_previous,下一頁按鈕newsdetails_titlebar_next,評論的按鈕newsdetails_titlebar_comments,以及手指觸摸屏幕時記錄的坐標StartX起點坐標X,floatStartY起點坐標Y等等相關的控件及變量。2)發(fā)送評論評論按鈕newsdetails_titlebar_comments會通過intent對象把新聞的nid穿到評論頁面,這里是實現(xiàn)按鈕的監(jiān)聽,實現(xiàn)代碼:newsdetails_titlebar_comments.setOnClickListener(newOnClickListener(){publicvoidonClick(Viewv){Intentintent=newIntent(NewDetailActivity.this,CommentActivity.class);intent.putExtra("nid",mNid);startActivity(intent);}});根據(jù)用戶的體驗感,顯示詳細新聞信息的時候希望能夠不用返回主新聞界面查看下一條或者上一條新聞,所以在詳細新聞頁面添加手勢判斷功能,手指觸摸屏幕實現(xiàn)上一條或者是下一條,然后添加動畫效果,讓用戶用起來更加舒服,更加人性化,動畫效果的配置在res/anim目錄下。評論界面的設計與實現(xiàn)1)初始化變量首先定義頁面控件和一些變量,首先定義出評論界面的控件和變量,如發(fā)表按鈕news_reply_post,LinearLayoutnews_reply_edit_layout;//評論的編輯區(qū)域,LinearLayoutnews_reply_img_layout;//評論的圖形區(qū)域2)獲得評論信息獲得評論信息,訪問評論的接口,以get方式傳遞新聞的id,然后從json的格式數(shù)據(jù)中獲得返回的評論信息,要是沒有網(wǎng)絡或者傳遞的參數(shù)不正確會彈出toast框提示錯誤信息。獲得評論的接口地址是:.1:8080/News/getComments?nid="+nid"&startnid=0&count=10";里面的三個參數(shù)分別是:nid新聞ID,startnid評論的起始ID和count每次需要獲得的數(shù)目,參數(shù)的作用就是讓我們每次訪問時,只獲取10個數(shù)據(jù),這樣的好處就是節(jié)省數(shù)據(jù)流量,并且無需占用額外的內(nèi)存。3)發(fā)送評論信息以post方式請求數(shù)據(jù),通過Requestparams對象傳遞參數(shù)信息,發(fā)送評論的接口地址是:Stringurl="://:8080/News/postComment",需要傳遞的參數(shù)是:nid新聞ID,region發(fā)送人的地址,content發(fā)送內(nèi)容,訪問的方法是采用異步訪問框架的post方法訪問成功會返回發(fā)送成功了信息,失敗也會有相應提示,核心代碼參見附錄A。EclipseStandard效勞器端開發(fā)局部1)首先導入測試類和mysql的jar包如以下圖3-12。圖3-12測試類和mysql的jar包2)配置servlet的web.xml文件詳見附錄A3)數(shù)據(jù)庫管理類SqlManager.java的作用就是連接數(shù)據(jù)庫配置的屬性,包括數(shù)據(jù)庫主機地址、數(shù)據(jù)庫名、數(shù)據(jù)庫端口、數(shù)據(jù)庫密碼、連接字符串、連接對象。配置資源文件和JDBC的驅動類型,代碼如下:privatestaticSqlManagermanager=null;//靜態(tài)變量,支持單態(tài)模式 privatePropertyResourceBundlebundle;//配置資源文件 privatestaticStringjdbcDrive=null;//JDBC驅動類型 privateStringDBhost="";//數(shù)據(jù)庫主機地址 privateStringDBname="";//數(shù)據(jù)庫名 privateStringDBprot="";//數(shù)據(jù)庫端口 privateStringDBuser="";//數(shù)據(jù)庫用戶名 privateStringDBpasswd="";//數(shù)據(jù)庫密碼 privateStringstrcon=null;//連接字符串 privateConnectionconn=null;//連接對象 privatePreparedStatementpstm=null; privateCallableStatementcstm=null;私有的成員變量只是定義出來,并沒有進行初始化,創(chuàng)立一個Cperties的配置文件,用來配置連接數(shù)據(jù)的各項配置參數(shù)。Cperties的配置信息如下:DBpassword=123456然后再SqlManager.java添加一個私有的構造方法,將Cperties的配置信息加載到代碼中來,用new一個屬性資源的bundle,參數(shù)是得到一個配置文件的輸入流,構造方法如下:privateSqlManager()throwsIOException{bundle=newPropertyResourceBundle(SqlManager.classgetResourceAsStream("Cperties"));this.DBhost=getString("DBhost");//讀取主機名this.DBname=getString("DBname");//讀取用戶名this.DBprot=getString("DBport");//讀取端口this.DBuser=getString("DBuser");//讀取用戶this.DBpasswd=getString("DBpassword");//讀取密碼//設置mysql數(shù)據(jù)庫的驅動程序和連接字符river";strcon="jdbc:mysql://"+DBhost+":"+DBprot+"/"+DBname;}我們對數(shù)據(jù)庫的增、刪、改、查用到的方法全都依賴于SqlManager.java中的方法,要在SqlManager.java中寫出查詢和更新的方法,在sql語句對數(shù)據(jù)庫進行操作的時候會根據(jù)sql語句的不同,參數(shù)也會不同,所以要在這里設置PrepareStatement對象中sql語句中的參數(shù)的方法,配置參數(shù)的代碼如下:privatevoidsetPrepareStatementParams(Stringsql,Object[]params)throwsSQLException{pstm=conn.prepareStatement(sql);//獲取對象if(params!=null){for(inti=0;i<params.length;i++)//遍歷參數(shù)列表填充參數(shù){pstm.setObject(i+1,params[i]); } }}執(zhí)行查詢操作是數(shù)據(jù)庫操作的核心功能,代碼如下:publicResultSetexecuteQuery(Stringsql,Object[]params)throwsSQLException{//執(zhí)行查詢數(shù)據(jù)庫接口ResultSetrs=null;manager.setPrepareStatementParams(sql,params);//填充參數(shù)rs=pstm.executeQuery();//執(zhí)行查詢操作returnrs;}更新數(shù)據(jù)庫的代碼如下:publicbooleanexecuteUpdate(Stringsql,Object[]params)throwsSQLException{booleanresult=false;manager.setPrepareStatementParams(sql,params);//填充參數(shù)pstm.executeUpdate();//執(zhí)行更新managermitChange();result=true;returnresult;}4)效勞器端的核心功能就是接收客戶端發(fā)過來的指令,獲得參數(shù)對數(shù)據(jù)進行操作,然后返回json格式的數(shù)據(jù)給客戶端,這里面的數(shù)據(jù)交互所用到的技術是servlet技術,前面已經(jīng)在web.xml文件中已經(jīng)對各個servlet進行了配置。這里以接收客戶端發(fā)送過來的發(fā)表評論PostCommentServlet.java的指令為例,進行說明,因為其他的操作指令類似,區(qū)別在于參數(shù)的獲得和json數(shù)據(jù)的生成,下面進行詳細代碼的介紹。request.setCharacterEncoding("iso-8859-1")因為從客戶端傳過來的參數(shù)的編碼是“iso-8859-1〞,所以效勞器端接收數(shù)據(jù)是設置格式編碼為一致。發(fā)送評論的時候客戶端會向效勞器傳遞三個參數(shù),所以我們要接收者三個參數(shù):StringnidStr=request.getParameter("nid");Stringregion=request.getParameter("region");Stringcontent=request.getParameter("content");接收到的三個參數(shù)都是String類型的數(shù)據(jù),因為nid是int類型,所以要對其進行轉換,這里用到先前提到的工具類TextUtility.java:intnid=TextUtility.String2Int(nidStr);參數(shù)content代表的發(fā)表評論內(nèi)容,參數(shù)region代表的是地域,它們都有可能是中文、英文以及數(shù)字,因為“iso-8859-1〞并不支持中文,所以這里要將它們轉換成“utf-8〞的編碼格式,這樣才不會出現(xiàn)亂碼的情況,這里同樣是用到TextUtility.java這個工具類,轉換如下:region=TextUtility.toUTF8(region);content=TextUtility.toUTF8(content);在獲得參數(shù)以后,需要調用CommentDAO.java中的addComment方法,將參數(shù)添加進去。publicvoidaddComment(intnid,Stringptime,Stringregion,Stringcontent)throwsSQLException{sql="INSERTINTOt_comment(nid,ptime,region,content)VALUES Object[]params=newObject[]{nid,ptime,region,content};manager.connectDB();manager.executeUpdate(sql,params);manager.closeDB();}在增加成功之后,要返回一個成功的json數(shù)據(jù)給客戶端。其他的servlet類的操作原理與上述類似,這里就不一一累贅了。4系統(tǒng)測試4.1軟件的測試軟件測試的目的,第一個是確認android新聞客戶端是否能運行,其一個方面就是確認軟件是否完成了我先前設計的那些功能。第二個是提供信息,比方提供應我回饋信息,看看在開發(fā)的哪些步驟上面能夠有精簡,能夠有提升。第三個是測試不僅是在測試這個新聞客戶端的本身,而且還包括了整個的開發(fā)過程。如果在這個新聞客戶端開發(fā)完成后出現(xiàn)了很多問題,那就說明了開發(fā)的過程還存在漏洞。4.2測試與實現(xiàn)的結果及說明1)采用的真機進行測試在工程名“快看新聞〞上點右鍵,然后選擇“RunAs〞或者點擊菜單欄上面的按鈕,然后選擇“AndroidApplication〞。出現(xiàn)如以下圖4-1所示:圖4-1選擇測試工具圖為什么要用真機來做測試,因為用戶都是用的真機,而且選擇用模擬器來做,有兩點弊端。(1)模擬器反響速度太慢(2)測試效果不如在真機上看的方便2)啟動新聞客戶端選擇屏幕上的“快看新聞〞如以下圖4-2:圖4-2新聞頁面的圖標3)進入到載入界面如以下圖4-3所示:圖4-3載入界面效果圖4)然后就是顯示主要新聞界面的內(nèi)容了,界面顯示如前面設計的簡單界面加以樣式修飾,界面包含軟件名稱、刷新按鈕、新聞分欄、欄目下一欄的按鈕、新聞列表和加載更多按鈕,所有的新聞放在一個ListView里面界面只會顯示六條新聞,滑動界面可以查看更多的新聞,點擊加載更多按鈕可以加載出更多的新聞參加ListView顯示在界面上,具體效果如以下圖4-4所示:圖4-4主新聞頁面效果圖5)點擊新聞列表中的某一條新聞,選擇查看新聞詳細信息,因為在主新聞的頁面只能看到新聞的預覽內(nèi)容,新聞的詳細頁面能夠看到新聞的標題,詳細信息,發(fā)表人和發(fā)表時間,在上面的新聞分欄的右邊還能看到評論的數(shù)目信息,點擊新聞的數(shù)目的信息能夠看到該條新聞的具體評論信息,具體效果如以下圖5-5所示:圖4-5詳細新聞頁面效果圖 6)點擊跟帖數(shù)目,進入評論界面,界面顯示的就是該條新聞的評論信息,每一條評論信息包含發(fā)表人的地點,內(nèi)容和評論時間,然后再參加一條評論與左圖進行比照,效果如以下圖4-6所示:圖4-6新聞評論頁面效果圖測試小結:經(jīng)過一系列的測試,這款新聞客戶端軟件根本完成了預期的功能,并且系統(tǒng)的穩(wěn)定性也較好。5總結與展望5.1總結經(jīng)過數(shù)月的不懈努力,Android平臺新聞客戶端軟件終于完成了,用戶可以通過這款新聞客戶端了解新聞時事,對于Android平臺的開發(fā)需要用到很多Java的根底知識,在這方面Java語言帶給我了很多的方便。在整個開發(fā)設計過程之中,我學習到了很多的Android平臺的知識,比方Android的UI的設計優(yōu)化、樣式的的設計、Activity、Service、BroadcastReceiver、ContentProvider等四大組件的運用,還有對Eclipse、Tomcat、Mysql等開發(fā)工具的熟練使用。雖然軟件相比于已經(jīng)上線的新聞客戶端軟件還有一定的差距,但是這并沒有打擊我對于Android平臺開發(fā)的興趣,反倒這是一件鼓勵我的事情,我從中發(fā)現(xiàn)了我很多缺乏的方面,然后可以通過更加認真地學習,掌握更多先進的編程技術,設計出更系統(tǒng)更好用的Android軟件。5.2展望經(jīng)過了對本軟件的設計和實踐,將老師在課堂上和自己在課外時間學習的知識做了一個總結。一方面有做的很好的地方,另一方面同樣也存在著有缺陷的地方。這是為我們馬上畢業(yè)工作敲的一個警鐘。學校學習到的知識雖然可能能用在工作中的并不會很多,但是我們在學校學到的是學習方法,因為不管在任何階段,人總是需要不停地學習。在以后的工作和學習當中,我將保持積極認真的態(tài)度,遇事謹慎,仔細分析,以一顆永不停歇的心來面對人生,在軟件開發(fā)這份職業(yè)上,需要充分鍛煉自己的思維與敏銳,因為軟件開發(fā)更新?lián)Q代是十分迅速的,想不被淘汰就不能停下學習的腳步。參考文獻肖云鵬,劉宴兵.Android程序設計教程[M].清華大學出版社,2021-04張榮.Android開發(fā)與應用[M].人民郵電出版,2021-02王向輝,張國印,賴明珠.Android應用程序開發(fā)[M].清華大學出版社,2021-05趙常松.Android應用程序開發(fā)與典型案例[M].電子工業(yè)出版社,2021-10高凱,仇晶.Android智能軟件開發(fā)教程[M].國防工業(yè)出版社,2021-06孫衛(wèi)琴編著.JAVA面向對象編程[M].電子工業(yè)出版社,2021-7張帆編著.Java范例開發(fā)大全[M].清華大學出版社,2010-6-1楊春花,俞黎敏.EffectiveJava中文版[M].機械工業(yè)出版社,2009-1-1[10]李剛.輕量級JavaEE企業(yè)應用實戰(zhàn)[M].電子工業(yè)出版社,2008-11-1[11]〔美〕塞假設貝茨.HeadFirstJava〔中文版〕[M].中國電力出版社,2007-2-1[12]張孝祥,張紅梅.JavaScript網(wǎng)頁開發(fā)[M].清華大學出版社,2004-11[13]張孝祥.深入體驗JavaWeb開發(fā)內(nèi)幕[M].電子工業(yè)出版社,2006-10-1[14]張孝祥.深入體驗JavaWeb高級特性[M].電子工業(yè)出版社,2007-12[15]俞東進,任祖杰JavaEEWeb應用開發(fā)根底[M].電子工業(yè)出版社,2021-6[16]求是科技.Java數(shù)據(jù)庫系統(tǒng)開發(fā)實例導航[J].人民郵電出版社,2004-5附錄A初始化新聞界面控件和變量:privateintcid;//新聞ID privateArrayList<HashMap<String,Object>>newsData;//新聞列表 privateSimpleAdapternewsListAdapter;//定義新聞欄目適配器 privateListViewnewslists;//新聞列表的ListView LayoutInflaterlayoutinflater; Buttontitlebar_refresh;//刷新按鈕 ProgressBarloadnews_progress;//進程提示框 privateStringmCatName; privateList<HashMap<String,Category>>categories;獲取新聞的代碼:TextViewcategorytitle;for(inti=0;i<parent.getCount();i++){ categorytitle=(TextView)parent.getChildAt(i); categorytitle.setTextColor(0xffadb2ad); categorytitle.setBackgroundDrawable(null); } categorytitle=(TextView)v; categorytitle.setTextColor(Color.WHITE); categorytitl.setBackgroundResource(R.drawable.categorybar_item_background); if(newsListAdapter==null){ Toast.makeText(MainActivity.this,"網(wǎng)絡連接失敗",0).show(); return; } newsListAdapter.notifyDataSetChanged(); cid=categories.get(position).get("category_title").getCid(); mCatName=categories.get(position).get("category_title").getTitle(); System.out.println("cid="+cid);//獲取該欄目下新聞 System.out.println(newsData.size()+"newsData數(shù)目"); getSpeCatNews(cid,0,true); System.out.println(newsData.size()+"newsData數(shù)目");//通知ListView進行更新 newsListAdapter.notifyDataSetChanged();}其中,封裝好的訪問效勞器的接口方法:getSpeCatNews(cid,0,true),具體的代碼如下:publicvoidgetSpeCatNews(intcid,intstartnid,booleanfirsttime) { AsyncClientclient=newAsyncClient(); Stringpath="://6:8080/News/getSpecifyCategoryNews?startnid="+startnid+"&count=7&cid=" +cid; client.get(path,newAsyncResponseHandler(){ @Override publicvoidonSuccess(Stringcontent){ //TODOAuto-generatedmethodstub super.onSuccess(content); dothis(content); } publicvoidonFailure(Throwableerror,Stringcontent){ Toast.makeText(MainActivity.this,"網(wǎng)絡連接失敗,請檢查", 0).show(); } });}JSONArraynewslist=dataObject.getJSONArray("newslist");for(inti=0;i<newslist.length();i++){JSONObjectnewsObject=(JSONObject)newslist.opt(i);HashMap<String,Object>hashMap=newHashMap<String,Object>(); hashMap.put("nid",newsObject.getInt("nid")); hashMap.put("newslist_item_title",newsObject.getString("title")); hashMap.put("newslist_item_digest",newsObject.getString("digest")); hashMap.put("newslist_item_source",newsObject.getString("source")); hashMap.put("newslist_item_ptime",newsObject.getString("ptime")); hashMap.put("newslist_item_comments",newsObject.getString("commentcount"); newsData.add(hashMap);}退出界面實現(xiàn)的代碼如下: publicbooleanonKeyDown(intkeyCode,KeyEventevent){ if(keyCode==KeyEvent.KEYCODE_BACK){//截獲后退鍵 longcurrentTime=newDate().getTime(); //如果時間間隔大于2秒,不處理 if((currentTime-preTime)>TWO_SECOND){ Toast.makeText(this,"再按一次退出鍵退出程序", Toast.LENGTH_SHORT).show();//顯示消息 preTime=currentTime;//更新時間 returntrue;//截獲事件,不再處理 } } returnsuper.onKeyDown(keyCode,event);}評論界面的初始化代碼:ViewFlippernews_body_flipper;//動畫Flipper LayoutInflaternewsbodyinflater; Buttonnewsdetails_titlebar_previous;//上一頁 Buttonnewsdetails_titlebar_next;//下一頁 Buttonnewsdetails_titlebar_comments;//評論按鈕 intcount;//數(shù)量 ArrayList<HashMap<String,Object>>mNewsData=new ArrayList<HashMap<String,Object>>(); intposition;//當前頁面的位置 IntegermNid; floatStartX;//起點坐標X floatStartY;//起點坐標Y TextViewnewsdetails_titlebar_title; TextViewnewsDetails; HashMap<String,Object>hashmap;Viewbodyviewlayout;加載下一頁 privatevoidshownext(){ if(position>=mNewsData.size()-1){ Toast.makeText(NewDetailActivity.this,"已到最后一頁", 0).show(); return; }else{ position++; inflateview(); news_body_flipper.setOutAnimation(this, R.anim.push_left_out); news_body_flipper.setInAnimation(this, R.anim.push_left_in); news_body_flipper.showNext(); }}加載上一頁 privatevoidshowprevious(){ if(position<=0){ Toast.makeText(NewDetailActivity.this,"當前已經(jīng)是第一頁", 0).show(); return; }else{ position--; inflateview(); news_body_flipper.setInAnimation(this, R.anim.push_right_in); news_body_flipper.setOutAnimation(this, R.anim.push_right_out); news_body_flipper.showPrevious(); }}判斷手指方向的代碼:publicbooleanonTouch(Viewv,MotionEventevent){ switch(event.getAction()){ caseMotionEvent.ACTION_DOWN: StartX=event.getX(); StartY=event.getY(); break; caseMotionEvent.ACTION_UP: floaty=StartY-event.getY(); floatx=StartX-event.getX(); if(x>0){//假設x>0,那么方向是向坐滑 floatangle=Math.abs(y)/Math.abs(x); if(angle<0.5){ shownext(); } }else//假設x<0,那么方向是向右滑{ floatangle=Math.abs(y)/Math.abs(x); if(angle<0.5){ showprevious(); } } break; } returntrue; }ImageButtonnews_reply_img_btn;//回復評論的imageview LinearLayoutnews_reply_edit_layout;//評論的編輯區(qū)域 LinearLayoutnews_reply_img_layout;//評論的圖形區(qū)域 Buttonnews_reply_post;//發(fā)表評論 intnid;//新聞id EditTextnews_reply_edittext;//評論的回復內(nèi)容 Stringcontent;List<HashMap<String,Object>>comments;發(fā)送評論的核心代碼: publicvoidsenComment(){ content=news_reply_edittext.getText().toString().trim(); AsyncClientclient=newAsyncClient(); Stringurl="://:8080/News/postComment"; RequestParamsparams=newRequestParams(); params.put("nid",nid+""); params.put("region","湖南省長沙市"); params.put("content",content); client.post(url,params,newAsyncResponseHandler(){ //發(fā)送成功 publicvoidonSuccess(Stringcontent){ StringretStr=content; try{ JSONObjectjsonObject=newJSONObject(retStr); intretCode=jsonObject.getInt("ret"); if(0==retCode){ Toast.makeText(CommentActivity.this,"發(fā)送成功", Toast.LENGTH_SHORT).show(); return; } }catch(Exceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); } } //發(fā)送失敗 publicvoidonFailure(Throwableerror,Stringcontent){ Toast.makeText(CommentActivity.this,"網(wǎng)絡連接異常", Toast.LENGTH_SHORT).show(); } }); }Servlet的web.xml配置文件<servlet><servlet-name>GetCategoriesServlet</servlet-name><servlet-class>com.szy.web.servlet.GetCategoriesServlet</servlet-class></servlet><servlet><servlet-name>GetSpecifyCategoryNewsServlet</servlet-name><servlet-class>com.szy.web.servlet.GetSpecifyCategoryNewsServlet</servlet-class></servlet><servlet><servlet-name>GetNewsServlet</servlet-name><servlet-class>com.szy.web.servlet.GetNewsServlet</servlet-class></servlet><servlet><servlet-name>GetCommentsServlet</servlet-name> <servlet-class>com.szy.web.servlet.GetCommentsServlet</servlet-class></servlet><servlet><servlet-name>PostCommentServlet</servlet-name><servlet-class>com.szy.web.servlet.PostCommentServlet</servlet-class></servlet><servlet-mapping><servlet-name>GetCategoriesServlet</servlet-name><url-pattern>/getCategories</url-pattern></servlet-mapping><servlet-mapping><servlet-name>GetSpecifyCategoryNewsServlet</servlet-name><url-pattern>/getSpecifyCategoryNews</url-pattern></servlet-mapping><servlet-mapping><servlet-name>GetNewsServlet</servlet-name><url-pattern>/getNews</url-pattern></servlet-mapping><servlet-mapping><servlet-name>GetCommentsServlet</servlet-name><url-pattern>/getComments</url-pattern></servlet-mapping><servlet-mapping><servlet-name>PostCommentServlet</servlet-name><url-pattern>/postComment</url-pattern></servlet-mapping><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list>本科畢業(yè)設計〔論文〕簡明指導手冊1畢業(yè)設計(論文)總論1.1概述高等院校的畢業(yè)設計(論文)教學過程是實現(xiàn)本科培養(yǎng)目標及規(guī)格的重要培養(yǎng)階段。畢業(yè)設計(論文)是學生畢業(yè)前的最后學習階段,是學習深化與升華的重要過程;是能力與素質培養(yǎng)的重要途徑;是學生學習、研究與實踐成果的全面總結;是學生綜合素質與實踐能力培養(yǎng)效果的全面檢驗;是學生畢業(yè)及學位資格認定的重要依據(jù);是評價高等學校教育教學質量的重要依據(jù)。1.1.1畢業(yè)設計(論文)的根本概念〔1〕畢業(yè)設計的內(nèi)涵畢業(yè)設計是高等學校應屆畢業(yè)生,畢業(yè)前接受課題任務,所進行的設計過程,并取得其設計成果?!?〕畢業(yè)論文的內(nèi)涵畢業(yè)論文是高等學校學生畢業(yè)前所撰寫的學術論文。畢業(yè)論文說明作者在科學研究工作中取得的新成果或提出的新見解,并說明作者具有的科研能力與學識水平。畢業(yè)論文具有學術論文所共有的一般屬性,它的構成與展開嚴格按照緒論、本論、結論的思維方式,以事實為根底,以嚴謹?shù)耐评磉^程為依據(jù),得出可信的科學結論。1.1.2畢業(yè)設計(論文)的特點與功能〔1〕畢業(yè)設計的特點與功能①畢業(yè)設計的特點高等院校學生畢業(yè)設計具有設計內(nèi)容的科學性、設計思想的新穎性、設計表述的標準性、設計條件的約束性、設計過程的綜合性、設計結果的實用性等工程設計的特點外,還具有畢業(yè)設計任務確實定首先考慮教學根本要求、畢業(yè)設計時間的限定性及學業(yè)的規(guī)定性、畢業(yè)設計是在指導教師指導下獨立完成的等特點。②畢業(yè)設計的功能·教學與教育功能畢業(yè)設計教學過程是高等院校培養(yǎng)方案的重要組成局部;是進行設計科學教育,強化工程意識,接受工程根本訓練,提高工程實踐能力的重要培養(yǎng)階段;是培養(yǎng)優(yōu)良的思維品質,進行綜合素質教育的重要途徑。通過畢業(yè)設計教學工作,培養(yǎng)學生綜合運用多學科理論、知識與技能,解決具有一定復雜程度的工程實際問題的能力;培養(yǎng)學生樹立正確的設計思想和掌握現(xiàn)代設計方法;培養(yǎng)學生嚴肅認真的科學態(tài)度和嚴謹求實的工作作風;培養(yǎng)學生優(yōu)良的思維品質,強化工程實際意識;培養(yǎng)學生2工學院畢業(yè)設計〔論文〕簡明指導手冊勇于實踐、勇于探索和開拓創(chuàng)新的精神。在畢業(yè)設計階段,通過畢業(yè)設計教學與教育功能的實現(xiàn),有益于學生科學的智能結構的形成及綜合素質的全面培養(yǎng)?!ど鐣δ墚厴I(yè)設計課題來源于實際,畢業(yè)設計成果直接或間接為經(jīng)濟建設效勞,為生產(chǎn)、科研效勞,為社會效勞,以實現(xiàn)畢業(yè)設計的社會功能?!?〕畢業(yè)論文的特點與功能①畢業(yè)論文的特點畢業(yè)論文或稱學位論文是學術論文中的一種類型,具有學術性、科學性、創(chuàng)造性,即一般學術論文的共同屬性,同時具有以下特點:·畢業(yè)論文課題確實定,首先要符合教學根本要求,同時也要兼顧科學研究實際需要,緊密聯(lián)系實際?!ぎ厴I(yè)論文具有時間的限定性及學業(yè)的規(guī)定性?!ぎ厴I(yè)論文是在指導教師指導下獨立完成的。②畢業(yè)論文的功能·教學與教育功能畢業(yè)論文教學過程是高等學校培養(yǎng)方案的重要組成局部,是學生畢業(yè)前提交的一份具有一定理論與實際價值的學術論文。它是高等學校學生從事系統(tǒng)的科學研究的初步嘗試;是在指導教師指導下,對取得的科研成果的綜合表述。通過畢業(yè)論文的教學過程,培養(yǎng)學生探求未知、探索真理的科學精神,以及優(yōu)良的科學品質與科學素養(yǎng);培養(yǎng)學生從事科學研究的根本能力。通過畢業(yè)論文的教學過程,檢驗學生綜合運用根底理論、根本知識和實驗技術,解決科學和技術領域有關問題的能力;檢驗科研根本訓練的實際效果?!ど鐣δ墚厴I(yè)論文是以應用研究成果作為媒介與生產(chǎn)和社會實際相聯(lián)系。然后,通過開發(fā)研究的成果應用于生產(chǎn)實際,為社會效勞。同時,畢業(yè)論文又是面向社會發(fā)表研究成果的重要手段,也是信息交流與信息存儲的重要工具,從而實現(xiàn)其社會功能。3工學院畢業(yè)設計〔論文〕簡明指導手冊1.2畢業(yè)設計(論文)教學各階段流程表1畢業(yè)設計(論文)教學各階段流程1、指導教師上報課12、教研室(課程組)召開會議進行課題審查、論證〔要求紀錄3、院系〔學術委員會〕或邀請校外專家對教研室上報課題進行評4、對學生公布課題,并確保一名學生做一個課題〔或子課題5、院系匯總通過評審的課題,并作為教學執(zhí)行方案報教務1、指導教師指導學生查閱相關文獻〔包括一定數(shù)量的外文文獻22、畢業(yè)生就課題撰寫開題報告,開題報告包括以下內(nèi)容2.1課題背景介2.2課題擬設計研究的主要內(nèi)容、實驗方2.3相關文獻綜2.4預期成果〔或階段性結果3、開題報告辯論〔各院系制定辯論方法,報教務處備案1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025下半年重慶市地震局事業(yè)單位招聘擬聘歷年高頻重點提升(共500題)附帶答案詳解
- 2025下半年浙江省舟山引航站招聘引航員9人高頻重點提升(共500題)附帶答案詳解
- 2025下半年四川遂寧高新區(qū)部分事業(yè)單位考試招聘擬聘用人員高頻重點提升(共500題)附帶答案詳解
- 2025下半年四川省廣安市華鎣市“小平故里英才”引進急需緊缺專業(yè)人才17人歷年高頻重點提升(共500題)附帶答案詳解
- 2025上半年重慶市屬衛(wèi)生計生事業(yè)單位招聘擬聘歷年高頻重點提升(共500題)附帶答案詳解
- 2025上半年江蘇省南通事業(yè)單位招聘95人歷年高頻重點提升(共500題)附帶答案詳解
- 2025上半年四川省甘孜州考試招聘事業(yè)單位人員163人筆試高頻重點提升(共500題)附帶答案詳解
- 2025上半年四川省內(nèi)江市“甜城英才”選聘活動402人高頻重點提升(共500題)附帶答案詳解
- 2025上半年四川內(nèi)江市本級部分事業(yè)單位考聘55人高頻重點提升(共500題)附帶答案詳解
- 成分分析產(chǎn)品行業(yè)相關投資計劃提議范本
- 市場營銷習題庫(附參考答案)
- 重大事項內(nèi)部會審制度例文(2篇)
- 貴州省銅仁市碧江區(qū)2023-2024學年八年級上學期期末數(shù)學試題
- 大部分分校:地域文化形考任務二-國開(CQ)-國開期末復習資料
- 2024年馬拉松比賽項目合作計劃書
- 苗圃購銷合同范本
- ICU患者跌倒、墜床應急預案及防范措施
- 電力監(jiān)控系統(tǒng)安全防護總體方案
- 爐渣爐灰采購合同模板
- 國家開放大學Python程序設計形考任務實驗六-互聯(lián)網(wǎng)評論數(shù)據(jù)分析及其展示綜合案例
- GB/T 44899-2024商品條碼散裝和大宗商品編碼與條碼表示
評論
0/150
提交評論