畢業(yè)論文(龐晉鑌) 基于藍牙的考勤系統(tǒng)_第1頁
畢業(yè)論文(龐晉鑌) 基于藍牙的考勤系統(tǒng)_第2頁
畢業(yè)論文(龐晉鑌) 基于藍牙的考勤系統(tǒng)_第3頁
畢業(yè)論文(龐晉鑌) 基于藍牙的考勤系統(tǒng)_第4頁
畢業(yè)論文(龐晉鑌) 基于藍牙的考勤系統(tǒng)_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

基于藍牙的考勤系統(tǒng)摘要隨著教育的普及,大學生的數(shù)量也越來越多。不同于初高中的管理,大學更偏向于自主學習。且高校流行選分制度班級流動性增強,因此大學生獲得了更多課程選擇上的自由度,班級概念弱化,因此學生有著充裕的時間可以去做自己喜歡的項目,從而在自己喜歡的項目上大放異彩,但是在這種情況下,學院管理難度變大。有些學生過于放縱導致對上課產(chǎn)生厭倦情緒,因此產(chǎn)生了逃課,代名互相頂替等行為。而且有些老師淡化管理,進一步縱容了這種行為。在傳統(tǒng)的考勤方式比如口頭點名,在學生人數(shù)太多情況下很難有效檢測這些行為。因此,為了杜絕這種行為,基于藍牙的考勤系統(tǒng)被廣泛的應用起來。本設計雖然叫基于藍牙的考勤系統(tǒng),但藍牙只負責簽到,連接信息交互這方面的功能,其他數(shù)據(jù)的交互只要靠app和服務端完成。本文主要描述在設計的工作原理和各個模塊的內容。本設計以數(shù)據(jù)庫和服務端的交互和作為核心,讓學生的藍牙名稱改為自己學號,讓設備自己進行搜尋和定位,從而確定學生狀態(tài)。mysql是服務端的數(shù)據(jù)庫主要用來處理登錄、注冊、收發(fā)通知sqlite為本地數(shù)據(jù)庫,主要用來存儲藍牙通訊的簽到以及請假的數(shù)據(jù)。對于缺勤的學生做出特殊標記且顯示出勤率,事后打包信息傳送給相關管理人員。這種方法能提高學生出勤率,也能改善教學質量。而且比口頭點名更加現(xiàn)代

化.。關鍵詞:藍牙考勤;數(shù)據(jù)庫;服務端;BluetoothManagementSystemBasedon-UserInterfaceDesignAbstractWiththepopularizationofeducation,thenumberofcollegestudentsisincreasing.Differentfromthemanagementofjuniorandseniorhighschools,universitiespreferautonomouslearning.Inaddition,theclassmobilityofthepopularselectionandscoringsystemincollegesisenhanced,socollegestudentshavemorefreedomincourseselectionandclassconceptisweakened.Althoughthereisplentyoftimetodotheprojectstheylike,soastoshineintheprojectstheylike,inthiscase,theschoolmanagementbecomesmoredifficult.Somestudentsaresoindulgentthattheygetboredofclasses,sotheyskipclassesandsubstituteforeachother.Andsometeachersdownplaythemanagement,furthercondoningthiskindofbehavior.Intraditionalattendancemethodssuchasoralrollcall,itisdifficulttodetectthesebehaviorseffectivelywhentherearetoomanystudents.Therefore,inordertoeliminatethiskindofbehavior,bluetoothbasedattendancesystemiswidelyused.Althoughthisdesigniscalledabluetooth-basedattendancesystem,bluetoothisonlyresponsibleforcheck-in,connectioninformationinteraction,otherdatainteractionaslongastheappandtheservertocomplete.Thispapermainlydescribestheworkingprincipleinthedesignandthecontentofeachmodule.Thedesignofthedatabaseandserversideoftheinteractionandasthecore,letthestudents'bluetoothnamechangedtotheirstudentnumber,letthedevicetosearchandlocate,soastodeterminethestatusofstudents.Mysqlisaserver-sidedatabasemainlyusedtohandlelogin,registration,sendandreceivenotificationsqliteisalocaldatabase,mainlyusedtostorethebluetoothcommunicationcheck-inandleavedata.Studentswhoareabsentfromschoolarespeciallymarkedandtheirattendanceisdisplayed.Theinformationisthenpackagedandsenttotherelevantmanagement.Thismethodcanimprovestudentattendanceandthequalityofteaching.Andit'smoremodernthanaverbalrollcallKeywords:Database;BluetoothManagermentSystem;Clinet-sideSystem目錄61541前言 1TOC\o"1-3"\h\u61541.1本設計的目的、意義及應達到的技術要求 153231.2本設計在國內外的發(fā)展概況及存在的問題 1297351.3本設計應解決的主要問題 257362搭建環(huán)境及工具 257362.1關于AndroidStudio 2274172.1.1介紹 213722.1.2環(huán)境搭建 2198372.2關于MyEclipse 2206202.2.1介紹 252432.3關于Mysql 27772.3.1介紹 2254082.3.2環(huán)境搭建 3281992.4操作系統(tǒng)選擇 3320682.4.1關于Android 3269172.4.2Android架構 381352.4.3Andr應用程序oid開發(fā)的四個主要模塊 4315522.5語言JAVA 4246163設計原理 5110454用戶界面設計 5322594.1用戶界面設計的原則 5181994.1.1界面整潔 5202864.1.2通用性 5213324.1.3合理的界面布局 5239074.14界面設計使用到的布局屬性 6308335教師學生界面設計 10181805.1注冊界面 10229845.2歡迎界面 10197025.3查詢請假界面 10154085.4工具欄界面 11293485.5登錄界面 11265165.6關于系統(tǒng)界面 1145605.7左滑小菜單 11169345.8教師功能界面 1113975.9學生功能界面 12231036接口設計 12278227考勤簽到設計原理 13317878總結工作與展望 1319909參考文獻 147029謝辭 161前言在現(xiàn)代化信息管理的時代下,教育工作者可用藍牙考勤系統(tǒng)進行簽到。學生可以進行請假,進而更好安排自己的學習計劃。老師端不僅可以通過考勤檢查學生到勤狀況,還可以發(fā)布群消息。不僅節(jié)省了人工成本,還提高了效率。本設計的基于藍牙的考勤系統(tǒng)是基于app和服務端交互,藍牙之間連接。課題針對用戶界面設計,意在做出互動性強的界面。REF_Ref26720\r\h[1]1.1本設計的目的、意義及應達到的技術要求目前,考勤簽到多采占用時間長效率的口頭簽到,這樣易造成課堂學生學習時間減少,時間花在考勤。為了造就一個良好的教學環(huán)境,本設計易在完成一個先進高效的藍牙考勤系統(tǒng),并使用Android設計一個一致性高,受眾廣,易上手,界面切換迅速,字體顏色分布看著舒適的界面。選擇一個主要色調作為APP的主題色。讓操作達到簡單舒適的范疇,合理傳達視覺元素,達到信息對于用戶來說一目了然。1.2本設計在國內外的發(fā)展概況及存在的問題近年來隨著大學生數(shù)量增多,考勤任務變得越來越兼巨,拖延時間也長。教師也不可能每節(jié)必點名,這樣引起學生的僥幸心理,對學生的學習和發(fā)展無疑是種巨大的影響。而改變機制使得點名時間大幅度減少,效率變高。而用戶界面設計也是不可或缺的一環(huán),因為考勤的順利與否會影響積極性(用戶體驗),所以優(yōu)化用戶使用感受,盡量使用戶感受傻瓜式體驗。因為企業(yè)學習都是追求效率,時間就是金錢,在這種基礎上藍牙考勤系統(tǒng)越來越普及。無論國內還是國外,在不久的將來,口頭點名這類地效率低下的方式最終將被淘汰。REF_Ref28558\r\h[4]在國外,app的設計更加人性化,他們把用戶體驗作為最終目標,打造了許多讓人愛不釋手的app。那些app下載率都高居不下,見到有趣十分減壓,它由許多元素組成,譬如俏皮的文字,適宜的畫面,完美的組合成了這個app,多次使用視覺手法,引發(fā)人們的共鳴。所以一個好的用戶體驗是用戶對這個app的直觀感受,不夸張地說一個良好的互動的的確確能影響到用戶對其的使用積極性,從而引發(fā)一系列相關連鎖問題。本設計以安卓為平臺,以點名app為媒介,找到符合大眾視覺需求的界面樣式。以舒適簡潔好用出發(fā)。但是受限于某些限制,國內設計的操作系統(tǒng)在經(jīng)驗和性能上與國外還有一定差距,手機用戶界面沒有國外那么人性化,缺少良性互動,缺少實用性。所以應該想方設法增加客戶粘。1.3本設計應解決的主要問題打造用戶喜歡的用戶界面,根據(jù)用戶的使用習慣設計界面,如閱讀習慣,信息語言使用是否恰當,數(shù)據(jù)對齊排列,屏幕各類圖標擺放適宜。減少app中廣告植入,過多的廣告植入不在用戶的享受范圍內,而且app應該簡單好用,減少復雜的操作和過多的頁數(shù)。拉近app與客戶的距離,應該為了針對該app的專用人群添加該人群熟悉的元素。2.1關于AndroidStudio2.1.1介紹AndroidStudio是Google這家技術公司推出的,用于給Android這個需要合適工作環(huán)境的工具用于開發(fā)應用和調試的集成工具。2.1.2環(huán)境搭建下載安裝AndroidStudio。(可不選擇安裝VirtualDevice)。設定使用Custom,可按照自己的喜好設置。安裝路徑不能出現(xiàn)中文,因為AndroidStudio的默認語言中沒有中文。根據(jù)自己喜好選擇內存。第一次安裝會自動配置gradle。2.2關于MyEclipse2.2.1介紹MyEclipse是一個包含幾乎所有Java所學特殊功能于一體開發(fā)環(huán)境。是高效開發(fā)的選擇,從JavaSpring到RESTWeb服務再到Maven均可在MyEclipse中統(tǒng)一開發(fā)。它有著強大的JavaEE優(yōu)勢,也可在WebSphere、WebLogic、Tomcat、Glassfish這種使XE"有著強大的JavaEE優(yōu)勢,也可在WebSphere、WebLogic、Tomcat、Glassfish這種使"\t"請參閱"用各種應用系列服務器。該軟件沒有什么特殊之處。但自帶的tomcat并沒有那么好用,需自己安裝一個7x的,導入路即可。再啟動服務器, 下方Console可顯示內容與相關信息。2.3關于Mysql2.3.1介紹MYsql是一個數(shù)據(jù)存放的倉庫。為了方便管理和使用數(shù)據(jù)庫中的數(shù)據(jù),數(shù)據(jù)被按照早就編寫好的規(guī)律存放。在數(shù)據(jù)庫對數(shù)據(jù)的管理下,用戶日常的操作將更加有效且組織化,也更加易于管理。它由5部分組合成。數(shù)據(jù)庫服務器。數(shù)據(jù)庫,數(shù)據(jù)表,字段和行。SQL,結構化查詢與程序的應用設計語言,是一種有著不尋常目的編程語言,用于存取查詢,更新,管理數(shù)據(jù)庫系統(tǒng)。2.3.2環(huán)境搭建將Mysql的安裝路徑配置到Path環(huán)境變量中。安裝的時候避免中文路徑。設置端口為3306.。將字符集設置值為默認的字符其集。2.4操作系統(tǒng)選擇2.4.1關于Android2007年剛成立才22個月的Android公司被Google收購并在11月份被Google納入OHA(OpenHandestAilance),即是所謂的手機開放聯(lián)盟。它是在Linux系統(tǒng)上建立的,從開發(fā)到現(xiàn)在,Android操作系統(tǒng)一直保持著不可思議的進步速率,而它相對于其他操作系統(tǒng)的優(yōu)勢便是其完全開放的代碼。在2008年,第一臺基于Android的智能手機面向世人。在此次事件之后,Android以憑借著它的優(yōu)勢勢不可擋地進入了其他電子設備地開發(fā)領域,并在2011年地第一季度成為全球使用最多地操作系統(tǒng)。在2013年,Android成為了這領域當之無愧的霸主。2.4.2Android架構Android的架構可具體分為4部分。因為Android操作系統(tǒng)是基于Linux內核的基底上開發(fā)的,所以這層為LinuxKernel。在這一層中使用的是C語言開發(fā)的,都是一些設備的驅動程序,這些驅動程序均為最基礎且核心的功能,功能相對比較簡答。其進程和內存管理還有服務功能都需要linux來驅動,如顯示藍牙照相機音頻驅動。而在這層上面為LIibararies和虛擬機所構成。Library包含一些C++和C語言的程序包。有了這些程序包,許多功能各異的組件就可以被利用到,使開發(fā)者在開發(fā)過程中更加便捷方便。如因為大多程序要用到圖片和視頻,所以錄制功能和解碼有媒體文件功能要用到媒體庫。以及標準的系統(tǒng)都要用到的C語言庫。又因為Android使用Java編程語言,所以其擁有一個安卓核心系統(tǒng)運行庫。有對2D底層圖像處理的庫SGL。不同于SGL,Surface是用于子系統(tǒng)管理且對圖像處理上更有建樹。Dalvik虛擬機也是這部分的重要組成鵝部分之一,它對于移動的電子設備如平板和智能手機有著與其他設備得天獨厚的優(yōu)勢,比如說在有限的組裝空間里的芯片儲存空間和能快速響應的能力。在這些的上層是應用程序框架(ApplicationFramework),它作為連接程序和linux驅動層能在此基礎上開發(fā)應用程序,也就是說一個開發(fā)人員想要開發(fā)應用程序都必須基于開發(fā)應用程序框架。在Android程序框架中,而且這必須建立在保證框架是對整個結構沒有不良的影響下,為了方便開發(fā)人員對程序的訪問,一大部分核心重要代碼是開放的。因此開發(fā)人員在開發(fā)不同的應用程序時可以很便捷地互相使用或提供給其他人思路。重復的組件使用減少了,想要替換模塊中的組件也更加簡單。如內容提供器、通知管理器。最上層即為用戶直接接觸的程序層(Application),在我們的日常生活中有豐富且功能各異的應用程序。如最基礎的電話和短信功,備忘錄時間網(wǎng)頁瀏覽功能?;蚩蓮腉oogleplay上下載應用程序其中包括許多開發(fā)人員自己開發(fā)的程序。使用的語言為JAVA,程序比較靈活不會死板。著這很大程度上歸因于用戶個人開發(fā)和Android本身的核心為同一層次,即構建于安卓系統(tǒng)上的應用程序接口。2.4.3Android應用程序開發(fā)的四個主要模塊Activity屏幕組件Service服務組件BroadcastReceiver廣播接受組件ContentReceiver內容提供者。Activity它時一種包含用戶界面的組件,這是用戶唯一能看到的,也是進行交互的界面。一個應用程序包含著零個或以上的組件。而在活動組件內又包含多個控件。Textview是用來顯示文本的EditText顧名思義就是一個可給用戶在程序上編輯信息的組件。Button則用來給予用戶監(jiān)聽事件活動的功能。具體點理解Activity就是一個程序上的屏幕之一。Activity有四種活動模式,本設計采用默認standard模式。Service它不屬于一個獨立進程,屬于用戶看不見的界面,它讓Android實現(xiàn)了后臺運行的方案,比較適用于那些一直長時間運行但又不用用戶進行交互的任務。有點類似于電腦的后臺進程。它不需要任何用戶界面的幫助,且當用戶打開或切換應用程序時并不會對它造成影響。BroadcasterReceiver用來接收系統(tǒng)或者自身應用程序的廣播。比如注冊軟件時的短信提醒,來電提醒功能,鬧鈴提醒功能等。在Android的廣泛選擇中你可以選擇自己更加感興趣的程序進行廣播。廣播分為有序廣播和標準廣播。標準廣播為完全異步,所有接收器幾乎同時接收,效率高,但是不能被攔截。有序廣播只有等邏輯執(zhí)行完才有下一步,有先后順序,優(yōu)先級高的先接受且它可攔截廣播。ContentProvider應用程序通常只能訪問應用內儲存的數(shù)據(jù),共享的數(shù)據(jù)則不能對外提供。內容提供者則實現(xiàn)了跨程序間的數(shù)據(jù)共享。它有一整套完健全的機制去給權限一個程序去訪問另一個程序中的屬數(shù)據(jù),與此同時還能保證數(shù)據(jù)在操創(chuàng)建一個供給于數(shù)據(jù)的訪問接口2.5語言JAVA目前Java主要應用于中間件的開發(fā)--明,Java不適合pc應用程序的開發(fā),其發(fā)展逐漸變成在開發(fā)手持設備,互聯(lián)網(wǎng)信息站,及車載計算機的開發(fā).Java的語法與C++語法類似,而且Java是完全的徹底的面向對象的,其中提出了很好的GC(GarbageCollector)垃圾處理機制,防止內存溢出。優(yōu)點:JAVA語言健壯且安全,使用servlet機制使得編程更加高效不易崩潰。它時多線程工作模式且可移植性好。3設計原理老師與學生之間傳遞信息使用藍牙為媒介。服務端則利用Servlet這個用來處置服務器的響應的程序,它是輕量級框架進行HTTP請求和響應的的。響應從教師端或學生端發(fā)起到服務端進行處理,再返回到學生或教師端。藍牙作為每個設備獨有地址中的模塊是一種載體。4用戶界面設計本設計研究內容基于Android這個比較方便使用的系統(tǒng)。設計出來界面內容以XML的格式存儲。在研發(fā)過程中只需解析這些XML文件,然后再將其中信息補充進相對的界面中。由于本人負責的是用戶使用各項功能的見界面設計和界面接口設計。所以本位會著重講Activity及相關組件。4.1用戶界面設計的原則它存在的意義在于它是人與機器交互如進行信息交互對話的中間體。隨著高科技的發(fā)展,人機交互的方式方法也更加多樣化。它有很多種元素構成,比如視覺上和聽覺上的交互,用戶使用時的操作邏輯。因此界面設計可以說時是一款軟件的門面。一個好的人性化設計應該涵蓋一下幾個方面。REF_Ref26720\r\h[1]4.1.1界面整潔保持界面整齊簡潔,一個好的界面一定能讓用戶輕松地掌握它地使用方法,盡量達到用戶感覺不到很復雜地界面存在但能快速區(qū)分信息地重要性。4.1.2通用性無論是在此應用內還是與其他app比較起來,大體地布局都應該相似。在整體的界面中應該高度一致,特別是在字體的應用上還有對方塊的顏色和放置的位置。這樣用戶的使用才會更加的舒適整潔。用戶熟悉界面后能效率更高的工作或轉戰(zhàn)于其他app。4.1.3合理的界面布局Android中的各種組件位置的放置是非常有講究的。為了讓的界面看起來舒適,排版應均勻,元素放置不應該全聚集于一處或又過于稀疏??梢院侠磉\用顏色,紋理,對比度和光效來制造美感或引導用戶的注意力到重點的事物上。文字在某種意義上是傳達文化符號的一種信息,所以可對文字進行藝術效果處理,增強聯(lián)系結構。在重點想描述部分可是用加粗或者黑體下劃線來特別說明。應認真思考重點文字的字體和所放置位置,提高可讀性和舒適性。除非想打造一種別樣的風格,增加視覺感,不然還是以閱讀舒適性為主。為了主流大眾符合閱讀習慣,大多使用左對齊,也可使文字和圖片搭配使用,但是還是要以文字為主圖片為輔。圖形是比較多用到的一種素材。常用于傳達信息的用戶頭像,代表方向的箭頭。在一定程度上減少文字的表達,使得app更加多樣化且有趣。同時還要注意對應分辨率的大小。在不同情況下,app要按照嚴格的設計規(guī)定。有時候空間有限,應適當剪裁留下重要部分。顏色選用高辨識度。REF_Ref28872\r\h[2]在進行排版設計中,不僅要靠慮到用戶的實際需求還要將想表達的主題信息和視覺要素以適合融洽的方法聯(lián)系到一起。來自巴塞盧羅那龐培法布拉大學的心理學教授葛思達在研究人類的視覺規(guī)律時曾經(jīng)提到過“最佳視域”這個概念。在一個版面中,它的左和上部分是讓人最輕松且容易接收信息的部分,所以設計的時候要注意這兩部分的構造。要強調重復性,因為重復的元素不僅可以吸引用戶的注意力還能著重強調某種特殊的信息,一般是在用類似和或近似的圖片來搭建,可以在律動和放置的位置或者方位上有細微的調整,比只是單一枯燥的重復要好。在構建界面時要注意平衡性,兩個有聯(lián)系的元素上保持視覺的平衡,平衡不一定要完全一樣,而是在某些微小特真上改動,大體還是要保持平衡聯(lián)系性。因為用戶對色彩是十分敏感的,選擇正確的顏色能影響客戶的心理程序,比如本設計為與學習相關的app,所以使用讓人冷靜的墨綠色。而如,消防栓,和滅火器這種能讓用戶十分敏感,刺激視覺能讓人馬上注意啊到的顏色。文化的不同對顏色和文字使用不一樣,如西方13被代表惡魔,和中國忌諱諧音。色調統(tǒng)一,能代表開發(fā)者對本app的主旨,符合設計心靈學。REF_Ref28271\r\h[5]4.14界面設計使用到的布局屬性線性布局:Android操作系統(tǒng)布局中比較常用到且簡易的布局方式。在這種布局里,它的子布局按照橫線或者豎線排布。并可分配權重。1其中可用orientation設置為水平或者豎直的排列方式。2gravity里面的控件或者字體的對齊方式,子容器相對于父容器的布局,如左對齊或者底部對齊。而layout_gravity指的是該元素本身的布局。同理width控制控件內文本寬度,layout_width控制控制該元素本身的寬度。height和layout_height一樣。layout_weight指布局所占比重,可通過更改屬性調整屏幕占比。3在Android中有些組件需要一個int值,表示只接收int該類型的值,按照格式必須以@開頭。而如果s是@+則表示修改完某些布局后要在文件中生成相應int值,例@+id/bzzb。變量名為/后面的值。但如果文件中已經(jīng)存在相同名字的變量則會直接使用已經(jīng)存在的值。常用在一些輸入文本上,比如輸入id或者密碼。4background,為你的組件生成一個背景圖也可以全用別的顏色。5divider,分割線??梢杂胐rawable中的圖片,也可以shape定義一個。也可以用showDividers來設置分割線所在位置,有none(無分割線)middle(在兩控件中間設置分割線)begining(在頂端設置)end(在末端設置分割線)。6fill_parent,wrap_content,match_parent,這三個屬性都是用來將視圖內容或尺寸的大小及布局作調整的。fill_parent用來強制性的使組件的尺寸填滿該布局內的空間.wrap_content用來完整顯示整個布局。match_parent與fill_parent一樣。7drawable圖片資源,通過@drawable可獲取已放置在里面的圖片資源。許多app自定義的圖標和背景圖及其開發(fā)者要使用的圖片轉為xml文件里放在drawable中儲存。8values。values存放了colors常用默認的顏色值,使用時可調用,每個顏色有專用的代碼。Dimen是屏幕中像素的大小,本設計主要用到的是dp。Strings是字符串,提前寫好,使用使直接調用即可。Stylenames是本設計的某些控件主要風格??偟膩碚f就是一個已經(jīng)整合好的資源庫隨時可以拿出來調用。9layout_margin,指距離父控件的各距離。Padding控制的內容距離四邊界的距離。Visibility可設置控件是否可見,可設置為不可見及可見,但不可見仍占據(jù)布局。Scrollbar用來設置滾動條,用法很多,可設置為是否可見,滾動方向,背景色,是否有軌道,褪色方向。10Edittext文本編輯。Hint可輸入提示信息。在輸入賬號或者密碼的時候經(jīng)常用到。numeric=integer/decimal當有特殊需求只能輸入整數(shù)或者小數(shù)的時候用到。singleLine=true則為設置只能輸入單行。TextColour字體顏色。Textstyle字體。TextColourHint默認字體顏色。Typeface=monospace字體間距。Background背景,可設置為null默認沒有。MaxLengtht限制文本長度。CusorVisivle設置光標是否可見。Capitalize設置英文字母大小寫類型??稍O置為AutoText自動糾正文本錯誤。Editable是否可編輯。Elipise,TextScaleX=1.5控制字與字之間距離。設置當文字過長時,該控件該如何顯示。有如下值設置:”start”—?省略號顯示在開頭;”end”——省略號顯示在結尾;”middle”—-省略號顯示在中間;”marquee”——以跑馬燈的方式顯示(動畫橫向移動)。11Textview:android:text設置顯示文本。android:textappearan設置文字外觀。android:textcolor設置文本顏色。android:textcolorhighligh被選中文字的底色,默認為藍色。android:textcolorhint設置提示信息文字的顏色,默認為灰色。android:textcolorlink文字鏈接的顏色textscalex設置文字之間間隔,默認為1.0f。android:textsize設置文字大小,推薦度量單位”。textstyle設置字形。android:autolin設置是否當文本為:url鏈接/email/電話號碼/map時,文本顯示為可點擊的鏈接??蛇x值(none/web/email/phone/map/all)android:autotext設置,將自動執(zhí)行輸入值的拼寫糾正。此時是無效果的,只在顯示輸入法并輸入的時候起作用。android:buffertyp指定gettext()方式取得的文本類別。android:capitalize設置英文字母大寫類型。需要彈出輸入法才能看得到。android:cursorvisible設定光標為顯示/隱藏,默認顯示。android:digits設置允許輸入哪些字符。如“1234567890.+-*/%()”android:drawablebottom在text的下方輸出一個drawable,如圖片。如果指定一個顏色的話會把text的背景設為該顏色,并且同時和background使用時覆蓋后者。android:drawableleft在text的左邊輸出一個drawable。android:ellipsize設置當文字過長時,該控件該如何顯示。有如下值設置:”start”—-省略號顯示在開頭;”end”——省略號顯示在結尾;”middle”—-省略號顯示在中間;”marquee”——以跑馬燈的方式顯示(動畫橫向移動)android:freezestext設置保存文本的內容以及光標的位置。android:gravity設置文本位置,如設置成“center”,文本將居中顯示。android:hinttex為空時顯示的文字提示信息,可通過textcolorhint設置提示信息的顏色。android:impositions附加功能,設置右下角ime動作與編輯框相關的動作,如actiondone右下角將顯示一個“完成”,而不設置默認是一個回車符號。android:includefontpadding設置文本是否包含頂部和底部額外空白。inputmethod為文本指定輸入法,需要完全限定名(完整的包名)。android:inputtype設置文本的類型,用于幫助輸入法顯示合適的鍵盤類型。android:linksclickable設置鏈接是否點擊連接,即使設置了autolink。android:ems設置textview的寬度為n個字符的寬度。這里測試為一個漢字字符寬度。12ListView是一個能將數(shù)據(jù)集合起來以動態(tài)滾動方式展示到用戶界面View。將具體內容以列表的形式展示并且能夠自適應數(shù)據(jù)內容,然后通過適配器加載到屏幕。如此說來Adapter是用來在View和數(shù)據(jù)之間傳遞的。13Button普通按鈕ImageButton為圖像按鈕,為Textview字類,所以它的很多屬性可以應用到Button上,通過drawable里的資源StateListDrawable可以將按鈕設置成按下去為一個顏色彈起來又為一個顏色。drawable:引用的Drawable位圖,我們可以把他放到最前面,就表示組件的正常狀態(tài)。state_focused:是否獲得焦點。state_window_focused:是否獲得窗口焦。state_enabled:控件是否可用。state_checkable:控件可否被勾選,state_checked:控件是否被勾選,state_selected:控件是否被選擇,針對有滾輪的情況,state_pressed:控件是否被按下,state_active:控件是否處于活動狀態(tài)。state_single:控件包含多個子控件時,確定是否只顯示一個子控件。state_first:控件包含多個子控件時,確定第一個子控件是否處于顯示狀態(tài)。state_middle:控件包含多個子控件時,確定中間一個子控件是否處于顯示狀態(tài)。state_last:控件包含多個子控件時,確定最后一個子控件是否處于顯示狀態(tài)。14ImageView為圖像視圖,就是用來顯示圖像的一個組件。值得注意的是background背景通常是為了填充屏幕而進行拉伸。而圖像試圖屬于內容,不會進行拉伸而是按照原圖片直接進行填充。且在調整縮放的時候要配合maxWIdth最大寬度和maxHeight最大長度這兩個屬性一起使用,它才會成功調整。fitXY:對圖像的橫向與縱向進行獨立縮放,使得該圖片完全適應ImageView,但是圖片的橫縱比可能會發(fā)生改變。fitStart:保持縱橫比縮放圖片,知道較長的邊與Image的編程相等,縮放完成后將圖片放在ImageView的左上角。fitCenter:同上,縮放后放于中間;fitEnd:同上,縮放后放于右下角。center:保持原圖的大小,顯示在ImageView的中心。當原圖的size大于ImageView的size,超過部分裁剪處理。centerCrop:保持橫縱比縮放圖片,知道完全覆蓋ImageView,可能會出現(xiàn)圖片的顯示不完全。centerInside:保持橫縱比縮放圖片,直到ImageView能夠完全地顯示圖片matrix:默認值,不改變原圖的大小,從ImageView的左上角開始繪制原圖,原圖超過ImageView的部分作裁剪處理15fragment可看作一個小型Activity,組件多管理過于麻煩,此時就要用到fragment進行模塊化管理,但fragment不可單獨使用,會收到宿主Activity的生命周期影響。Fragment的生命周期和Activity有點類似:三種狀態(tài):Resumed:在允許中的Fragment可見,Paused:所在Activity可見,但是得不到焦點,Stoped:①調用addToBackStack(),Fragment被添加到Bcak棧②該Activity轉向后臺,或者該Fragment被替換/刪除,但是停止狀態(tài)的fragment仍然活著不過對用戶不可見。16progressbar是安卓下的進度條,當使用到加載畫面的時候或者在看視頻的時候進場用到。相對布局:也是Android界面設計里常用到的一種布局。顧名思義就是相對父元素或者兄弟組件來有參照的布置子元素。5教師學生界面設計這次設計的教師主要功能:登錄、注冊、藍牙設置、藍牙連接、分享至第三方、查看考勤、查看請假、發(fā)布通知以及打開校園官網(wǎng)、關于和退出系統(tǒng)。本次設計學生主要功能:登錄、注冊、藍牙設置、藍牙連接、分享至第三方、藍牙簽到、藍牙請假、吊起qq聯(lián)系老師、接收通知、關于系統(tǒng)、退出系統(tǒng)。本設計建立的Activity主要有介紹本APP應用,添加通知界面,登錄界面,查看請假和查看簽到界面,注冊和加載界面。學生老師操作的界面則為了方便管理使用fragment。5.1注冊界面當學生或者老師使用本app時首先應注冊一個賬號,那么就來到了RegisteActivity。采用了線性布局,界面垂直排布,界面占滿整個屏幕,調用了drawable里的背景圖作為背景,調用了放在layout里面的考勤簽到注冊布局.整體讓這個小長方形里的元素采用豎直線性結構,具體里面采用相關布局因為元素比較多。包含了工具欄toolbar。使用顯目大框和bold字體還有符合主題的顏色作為題目。為了能讓用戶分清哪個框是填對應什么的,使用了hint提示文字并配上對應圖標使左對齊。為了能更清晰的讓用戶看清填的東西將背景色設置為null。并所有文本左對齊layout_marginLeft。使各布局central_vertical垂直居中。服務器地址需要限制輸入文本Digits =0,1,2,3,4,5,6,7,8,9,0,.。最下方是提交BUTTON,button放塊設置為比其他輸入按鍵稍大。5.2歡迎界面背景布局為全綠色。有開場動畫,先彈出string里面第一串字符串考勤簽到app然后再彈出第二串字符串畢設作品。然后就進入主界面。5.3查詢請假界面先設置好每個item即每個小項目的的規(guī)格。比如查詢請假時每個學生的請假信息。然后用ListView加載。如果沒有項目將用TestView顯示暫無數(shù)據(jù)記錄。查詢簽到界面項目界面與查詢簽到界面一樣。5.4工具欄界面Toolbar在界面的最上端,為了方便用戶使用,存在于每一個界面最上端。采用了相對布局,在每一個界面的最上方都存在工具欄。5.5登錄界面將整體設置為好打理的相對布局。在主要界面的上方有加載圖標ImageView,在用戶填寫完賬戶后彈出。在左上方設置了一個半圓的圖標提示用戶現(xiàn)在使用的是學生端或教師端。在最下方用Textview設置2020畢業(yè)設計作品提示字樣。然后include登錄表格布局與注冊中一樣。不過在最下方添加了注冊和登錄的Button。發(fā)布通知界面:最上方是背景圖為學校縮略圖。往下為三個EditText,分別為發(fā)布內容姓名時間。其中發(fā)布內容占據(jù)板塊較大并且都帶有hint提示字符。最下方為發(fā)布提交Button。5.6關于系統(tǒng)界面有關于系統(tǒng)的介紹和使用的工具,app所擁有功能,開發(fā)團隊及版本號均使用TextView展示。5.7左滑小菜單在學生或老師主要功能界面有fragment展示學校背景和兩個TextView,分別是學校官網(wǎng)和退出系統(tǒng)。在現(xiàn)有的移動用戶端中,大多都采用這種形式,不僅與大眾群體的習慣有關,這還能整個操作過程變的更加平滑,讓用戶的操作更加具有流暢性。而且還能再擁擠的屏幕上節(jié)省了時間,用戶整潔度提高。5.8教師功能界面使用fragment.在登陸界面左上角有可切換為學生端按鍵。中間有深色底白色字體顯示界面的標題。從上到下為符合行業(yè)標準的藍牙地址,賬號,密碼。并且每個圖標必須有特色,不需要字體也可快速分辨出對應圖標。登錄成功過后下次可記憶最近一次的賬號密碼。最下面兩個功能為注冊和登錄。最下方字體標明產(chǎn)品來源。登錄界面的背景圖選用跟app主題顏色相互搭配的圖片。在點擊登錄之后,在教師端打開藍牙期間可現(xiàn)實加載圖案。最上方像許多常規(guī)app一樣顯示當前界面,方便用戶查明所在界面。下方為教師可發(fā)布的公告。公告需放置于僅大標題下,但字體放小可滾動的提醒作用。顯示藍牙狀態(tài),因為此為重要狀態(tài)顯示功能,用生活種紅色代表失去連接,綠色代表已連接的狀態(tài)顯示,并且消息窗口可現(xiàn)實與哪位學生連接,并且顯示藍牙地址,連接成功后有灰底黑字小框提示。登陸界面的切換學生端改為顯示教師名字。并且可發(fā)布Tips。由于該頁面功能較多,有藍牙設置,考勤簽到,查看簽到,查看請假,發(fā)布通知,及關于系統(tǒng)的介紹。所以排版不可過于緊湊,流出舒適空間。因此,功能均采用圓形圖標。圖標要符合審美比例,字體要與界面大小和相應功能圖標和界面比例要符合用審美。在做到這些的基礎上盡量簡潔。一個良好的用戶界面設計應與用戶的顯示世界感官相貼近。在學生進行請假時,會有白底黑字彈窗提示,下方可選擇拒絕或同意。同時操作后會有通知更新。關于系統(tǒng)介紹北京采用北理珠圖片。有作品介紹及使用了哪些工具。下方為主要涵蓋功能,如教師學生端均有的登陸注冊,藍牙設置,藍牙連接,分享至第三方,查看考勤,查看請加發(fā)通知,校園官網(wǎng),關于系統(tǒng),通出系統(tǒng)。而學生端有藍牙簽到請假,接收通知。主要開發(fā)工具為AndroidStudio,MyEclipse,My'Sql,Tomcat,NavicatforMySQL等開發(fā)工具,還有開發(fā)人員和版本號。這些都是為了使用者能更好了解本功能。并且在此界面右上角為第三方分享,方便使用。5.9學生功能界面同樣使用fragment除了開啟考勤換成了學生的開連接。除了學生端界面改了上面的注釋標,發(fā)布通知換成了聯(lián)系老師,查看簽到和查到請假換成對應的查看和請假,其他均與教師端基本相同。提示界面:因為提示界面轉瞬即逝,所以通常使用fragment。加載界面由TextView顯示正在加載和Progressbar進度條即可。分別顯示的是在有網(wǎng)絡延遲正在加載的“正在玩命加載”界面來提示用戶現(xiàn)在的情況和“沒有更多了”來提示用戶瀏覽界面已經(jīng)到頭了還有最后出現(xiàn)錯誤的“出錯了”界面,后面還加上貓表情拉近開發(fā)者與用戶的距離。6接口設計界面接口設計指的就是人機的交互形式。因為雖然我們可以用控件做一個精美的界面,但它僅僅只是界面而已,無法與用戶進行互動。所以就要用到Android使用最頻繁的監(jiān)聽機制。比如用戶填寫完了基本信之后點擊注冊按鈕,這時候開始向服務器發(fā)送登錄請求。其實就是在屏幕的后面,當用戶交互時看不見的一些動作。流程:一開始先為事件源注冊監(jiān)聽器,一般是組件。然后用戶外部的動作觸發(fā)然后觸發(fā)事件源的事件。事件源受到影響后會生成對應事件,此時事件監(jiān)聽器將會把事件的參數(shù)記錄下來,從而對不同的數(shù)據(jù)進行數(shù)據(jù)分析,分析后得到事件的處理方法。事件源,事件,事件監(jiān)聽器。主要方法:1直接使用匿名內部類,通常只是用一次,復用性不高,是本設計使用最多的監(jiān)聽方法。2使用內部類,好處是可在該類中進行復用并可直接訪問所有界面的組件。3使用外部類,這種形式比較少見,即為創(chuàng)建另一個JAVA文件,但通常會導致代碼不夠簡潔好用。4將Activity作為事件的監(jiān)聽器。5直接綁定到標簽,即為在layout布局的文件中將對應的Activity中可以定義一個事件的處理方法 ,相對應組件觸發(fā)事件的組件即可。7考勤簽到設計原理老師與學生之間傳遞信息使用藍牙為媒介。服務端則利用Servlet這個用來處置服務器的響應的程序,它是輕量級框架進行HTTP請求和響應的的。響應從教師端或學生端發(fā)起到服務端進行處理,再返回到學生或教師端。藍牙作為每個設備獨有地址中的模塊是一種載體。8總結工作與展望本文主要針對設計的考勤簽到系統(tǒng)和交互界面設計的優(yōu)點和一些不足進行總結。優(yōu)點:必要功能健全,使用操作方便,Android系統(tǒng)比較靈活。人和UI界面互動良好,教師可從發(fā)布通知,查看考勤情況,也可與學生進行互動。缺點:雖然手機端操作方便,但電腦端還要打開服務器,用戶界面比較擁擠,而且接口項目有限,多個學生同時連接可能存在丟失情況,展望:可以拓展更多功能,如簽到排名,學生可發(fā)彈幕,增加學生與學生及學生和老師之間的良性互動。藍牙考勤的系統(tǒng)普及關系一定越來越高,app已經(jīng)廣為社會使用。隨著技術的更新?lián)Q代,人機交互的形式也必然更加讓用戶感同身受。參考文獻王鵬飛,移動設備應用軟件交互界面設計[D].工業(yè)設計工程,2013王延盼,基于安卓的App界面視覺藝術元素的分析與探究[D].藝術與設計學院,2013葛會會,基于藍牙考勤系統(tǒng)的設計與實現(xiàn)[D].電子與通信工程,2016向小瓊,李敏,蒲昱霖,劉海燕,基于藍牙通信的高校課堂手機考勤管理系統(tǒng)[R],長沙醫(yī)學院,2018王曦,有關軟件中用戶界面設計的探討[N].山東工業(yè)技術,2018-10-25(10).謝辭為時一個學期的畢業(yè)設計即將結束了,這也意味者我在北京理工大學珠海學院的大學生涯也即將結束。在畢業(yè)設計這段時間里,我得到了很大的自身提高,其中包含了對藍牙,服務端,數(shù)據(jù)庫,用戶界面設計的理解、還有對有關這方面書籍的認識等等,這些都得益于老師和同學的大力幫助,…….附錄MyEclipse所用到代碼://Food.javapackagecom.bs.bean;//功能說明:publicclassFood{ publicStringid; publicStringuuid; publicStringname; publicStringstate; publicStringtime;}//Like.javapackagecom.bs.bean;publicclassLike{ publicStringid;// publicStringnum;// publicStringname;// publicStringlike;//}//NotifyInfo.javapackagecom.bs.bean;publicclassNotifyInfo{ //通知 publicStringid;// publicStringname;//姓名 publicStringcontent;//內空 publicStringtype;//類型 publicStringtime;//時間 publicNotifyInfo(Stringname,Stringcontent){ super(); =name; this.content=content; }}//RatingBar.javapackagecom.bs.bean;/****功能說明:**/publicclassRatingBar{ publicStringid; publicStringuuid; publicStringname; publicStringstate; publicStringtime;}//Suggestion.javapackagecom.bs.bean;/****功能說明:**/publicclassSuggestion{ publicStringid; publicStringuuid; publicStringname; publicStringstate; publicStringtime;}//User.javapackagecom.bs.bean;publicclassUser{ publicStringuuid;// publicStringname;// publicStringpsd;// publicStringtype;// publicStringlogourl;// publicStringchineseName;//中文名字}//===============================//FunctionServlet.javapackagecom.bs.servlet;importjava.io.BufferedWriter;importjava.io.IOException;importjava.io.OutputStream;importjava.io.OutputStreamWriter;importjava.io.PrintWriter;importjava.util.List;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.alibaba.fastjson.JSONArray;importcom.alibaba.fastjson.JSONObject;importcom.bs.bean.NotifyInfo;importcom.bs.util.DBUtil;importcom.bs.util.ReqType;importcom.bs.util.RspType;importcom.bs.util.T;/***項目名稱:bs002功能說明:多功能管理類*/@SuppressWarnings("serial")publicclassFunctionServletextendsHttpServlet{ privateStringtag="FunctionServlet:"; privateHttpServletResponseresponse; privatebooleanresult; privateListdatalist; privateStringrequestType;//請求參數(shù)集 @Override protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp) throwsServletException,IOException{ doPost(req,resp); } @Override protectedvoiddoPost(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ this.response=response; request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/plain;charset=utf-8"); response.setHeader("Pragma","No-Cache"); response.setDateHeader("Expires",0); requestType=newString(request.getParameter("param").getBytes( "iso-8859-1"),"utf-8"); if(!requestType.contains("QueryNotify")){ System.out.println(T.getDateTime()+"====="+tag +"======正在請求獲?。?+requestType); } if(requestType.startsWith("Add")||requestType.startsWith("Remove")){ addTypeRequest(requestType); }elseif(requestType.startsWith("Query")){ queryTypeRequest(requestType); }elseif(requestType.startsWith("Delete")){ deleteTypeRequest(requestType); } } /** *新增數(shù)據(jù)接口 */ privatevoidaddTypeRequest(StringrequestType){ if(requestType.startsWith(ReqType.Add_Notify)){//發(fā)布通知 String[]params=requestType.split(":"); NotifyInfonotify=newNotifyInfo(params[1],params[2]); result=DBUtil.addNotify(notify); }else{ return; } if(result){ returnResponseStringData(RspType.SUCC); }else{ returnResponseStringData(RspType.FAIL); } System.out.println("addresult:"+result); } /** *查詢數(shù)據(jù)接口 */ privatevoidqueryTypeRequest(StringrequestType){ if(requestType.startsWith(ReqType.Query_Notify)){ List<NotifyInfo>notify=DBUtil.getFirstNotify(); returnResponseListData(notify,"notify"); } } /** *刪除數(shù)據(jù)接口 */ privatevoiddeleteTypeRequest(StringrequestType){ } privatevoidreturnResponseStringData(Stringresult){ PrintWriterout; try{ out=response.getWriter(); out.print(result); out.flush(); out.close(); }catch(IOExceptione){ e.printStackTrace(); } } privatevoidreturnResponseListData(Listdatalist,Stringtype){ try{ JSONObjectobject=newJSONObject(); JSONArrayarray=newJSONArray(datalist); object.put(type,array); OutputStreamos; os=response.getOutputStream(); OutputStreamWriterosw=newOutputStreamWriter(os,"utf-8"); BufferedWriterbw=newBufferedWriter(osw); bw.write(newString(object.toJSONString().getBytes())); bw.flush(); }catch(IOExceptione){ e.printStackTrace(); } }}//LoginServlet.javapackagecom.bs.servlet;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.bs.bean.User;importcom.bs.util.DBUtil;/****功能說明:登錄校驗**創(chuàng)建時間:2018-6-1下午3:35:29*/@SuppressWarnings("serial")publicclassLoginServletextendsHttpServlet{ privateStringTag="LoginServlet:"; privateUseruser; @Override protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp) throwsServletException,IOException{ doPost(req,resp); } @Override protectedvoiddoPost(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/plain;charset=utf-8"); response.setHeader("Pragma","No-Cache"); response.setDateHeader("Expires",0); Stringparam=newString(request.getParameter("param").getBytes( "iso-8859-1"),"utf-8"); String[]reqArray=param.split(":"); user=newUser(); =reqArray[0]; user.psd=reqArray[1]; Stringresult=DBUtil.checkUser(user); String[]reStrings=result.split(":"); response.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/plain;charset=utf-8"); response.setHeader("Pragma","No-Cache"); response.setDateHeader("Expires",0); PrintWriterout=response.getWriter(); out.print(result); out.flush(); out.close(); switch(Integer.parseInt(reStrings[0])){ case-1: //用戶名不存在 response.getWriter().print("用戶名不存在"); System.out.println(Tag+"用戶名不存在:"+); break; case0://登錄成功 response.getWriter().print("登錄成功"); System.out.println(Tag+"登錄成功:"+); break; case1://密碼錯誤 response.getWriter().print("密碼錯誤"); System.out.println(Tag+"密碼錯誤:"+); break; case2://查詢異常 response.getWriter().print("查詢異常"); System.out.println(Tag+"查詢異常:"+); break; } }}//RegisteServlet.javapackagecom.bs.servlet;importjava.io.IOException;importjava.io.PrintWriter;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importcom.bs.bean.User;importcom.bs.util.DBUtil;/****功能說明:注冊**創(chuàng)建時間:2018-6-1下午3:35:29*/@SuppressWarnings("serial")publicclassRegisteServletextendsHttpServlet{ privateStringTag="RegisteServlet:"; privateUseruser; @Override protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp) throwsServletException,IOException{ doPost(req,resp); } @Override protectedvoiddoPost(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/plain;charset=utf-8"); response.setHeader("Pragma","No-Cache"); response.setDateHeader("Expires",0); Stringparam=newString(request.getParameter("param").getBytes( "iso-8859-1"),"utf-8"); System.out.println(Tag+"收到請求:"+param); String[]reqArray=param.split(":"); user=newUser(); =reqArray[0]; user.psd=reqArray[1]; user.chineseName=reqArray[2]; booleanresult=DBUtil.addUser(user); response.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/plain;charset=utf-8"); response.setHeader("Pragma","No-Cache"); response.setDateHeader("Expires",0); PrintWriterout=response.getWriter(); if(result){ System.out.println(Tag+"注冊成功:"+); out.print("0:"+user.chineseName); }else{ System.out.println(Tag+"用戶名已存在:"+); out.print("-1"); } out.flush(); out.close(); }}//DBUtil.javapackagecom.bs.util;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.util.ArrayList;importjava.util.List;importjava.util.UUID;importcom.bs.bean.NotifyInfo;importcom.bs.bean.User;/****數(shù)據(jù)庫連接工具*/publicclassDBUtil{ privatestaticConnectioncon; privatestaticPreparedStatementps; privatestaticResultSetrs; static{ try{ Class.forName("com.mysql.jdbc.Driver"); con=DriverManager .getConnection( "jdbc:mysql://localhost:3306/bs002elm?characterEncoding=utf-8", "root","123"); }catch(ClassNotFoundExceptione){ e.printStackTrace(); }catch(SQLExceptione){ e.printStackTrace(); } } /** *用戶注冊 * *@paramname *@parampsd *@return */ publicstaticBooleanaddUser(Useru){//TODO Booleanresult=null; List<User>list=DBUtil.getAllUsers(); for(Useruser:list){ if(.equals()){ returnfalse; } } Stringsql="insertintouser(uuid,name,psd,chinese_name)values(?,?,?,?)"; try{ ps=con.prepareStatement(sql); ps.setString(1,UUID.randomUUID().toString()); ps.setString(2,); ps.setString(3,u.psd)

溫馨提示

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

評論

0/150

提交評論