版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本科畢業(yè)設(shè)計(jì)〔論文〕題目:基于安卓平臺(tái)的簽到管理系統(tǒng)設(shè)計(jì)學(xué)生姓名:學(xué)號(hào):專業(yè)班級(jí):指導(dǎo)教師:2021年6月15日基于安卓平臺(tái)的簽到管理系統(tǒng)設(shè)計(jì)摘要同中小學(xué)相比,由于教學(xué)模式的改變,高校師生之間交流時(shí)間有限,熟悉程度不夠。為提升教學(xué)質(zhì)量,本文設(shè)計(jì)實(shí)現(xiàn)一款基于安卓平臺(tái)的簽到管理系統(tǒng),通過系統(tǒng)客戶端與效勞器通信,到達(dá)省時(shí)省力完成考勤的目的。本文系統(tǒng)的介紹了基于安卓平臺(tái)的簽到管理系統(tǒng)的需求分析,系統(tǒng)功能設(shè)計(jì),系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)和系統(tǒng)測(cè)試與分析的各個(gè)過程。本次簽到系統(tǒng)的總體設(shè)計(jì)思路是,學(xué)生使用教務(wù)系統(tǒng)賬號(hào),利用安卓進(jìn)行系統(tǒng)登錄,并在對(duì)應(yīng)的課程上課前進(jìn)行簽到,簽到信息通過網(wǎng)絡(luò)傳輸給后臺(tái)效勞器,由效勞器將對(duì)應(yīng)的簽到信息寫入數(shù)據(jù)庫(kù)中;教師使用自己的工號(hào)登錄系統(tǒng),查詢對(duì)應(yīng)課程的相關(guān)出勤信息,以列表的形式呈現(xiàn)。本簽到管理系統(tǒng)的開發(fā)采用了市面上流行的Android移動(dòng)開發(fā)技術(shù),效勞器端采用MySQL數(shù)據(jù)庫(kù)技術(shù)。系統(tǒng)的實(shí)現(xiàn)那么采用了Eclipse作為開發(fā)工具,完成了系統(tǒng)的代碼設(shè)計(jì)。關(guān)鍵詞:安卓;簽到;MySQL;Eclipse
SigninmanagementsystemdesignbasedonandroidAbstractComparedwithprimaryandsecondaryschools,duetothechangeofteachingmode,theexchangetimebetweenteachersandstudentsislimitedandthedegreeoffamiliarityisnotenough.Toimprovethequalityofteaching,thisthesisdesignsandimplementsacheck-inmanagementsystembasedonAndroidplatform.Thesystemcancompletetheattendanceusinglesstimeandenergythroughthecommunicationbetweenthesystemclientandtheserver.Thisthesissystematicallyintroducesfouraspectsofthecheck-inmanagementsystembasedonAndroidplatform,includingtherequirementsanalysis,systemfunctiondesign,systemdatabasedesignandsystemtestingandanalysis.Theoveralldesignofthesign-insystemisthatstudentsloginthesystemusingtheireducationalsystemaccountonAndroidmobilephone,andsigninofthecorrespondingcoursebeforetheschoolattendance.Thenthesigninformationistransmittedthroughthenetworktothebackgroundserver,andtheserverwritesthecorrespondinginformationintothedatabase.Teachersusetheirownnumbertologinthesystemandquerythecorrespondingcourseattendanceinformationintheformofalist.Theexploitationofthischeck-inmanagementsystemusesthepopularAndroidmobileexploitationtechnology.TheserverusestheMySQLdatabasetechnology.Systemimplement-ationusestheEclipseasadevelopmenttooltocompletethesystemcodedesign.Keywords:Android;Signin;MySQL;Eclipse
目錄第1章緒論 11.1研究背景 11.2國(guó)內(nèi)外研究現(xiàn)狀 11.3論文結(jié)構(gòu) 1第2章開發(fā)工具概述 22.1Android概述 22.1.1Android體系結(jié)構(gòu) 22.1.2Android組件 32.2MySQL概述 42.3Android開發(fā)環(huán)境搭建 42.4本章小結(jié) 4第3章系統(tǒng)需求分析 63.1可行性分析 63.2需求分析 63.2.1功能需求分析 63.2.2界面需求分析 73.2.3性能需求分析 73.3本章小結(jié) 7第4章系統(tǒng)設(shè)計(jì) 84.1系統(tǒng)總體架構(gòu) 84.2功能模塊設(shè)計(jì) 84.3數(shù)據(jù)庫(kù)設(shè)計(jì) 114.3.1學(xué)生信息表 114.3.2教師信息表 124.3.3課程信息表 124.3.4簽到記錄表 134.4本章小結(jié) 13第5章系統(tǒng)實(shí)現(xiàn) 145.1效勞器端功能實(shí)現(xiàn) 145.2客戶端功能實(shí)現(xiàn) 145.2.1登錄功能實(shí)現(xiàn) 145.2.2課表功能實(shí)現(xiàn) 185.2.3簽到功能實(shí)現(xiàn) 215.2.4考勤統(tǒng)計(jì)實(shí)現(xiàn) 215.3本章小結(jié) 23第6章系統(tǒng)測(cè)試與分析 246.1系統(tǒng)測(cè)試流程與原那么 246.1.1系統(tǒng)測(cè)試流程 246.1.2系統(tǒng)測(cè)試原那么 246.2測(cè)試結(jié)果分析 256.2.1登錄功能測(cè)試結(jié)果分析 256.2.2簽到功能測(cè)試結(jié)果分析 256.3本章小結(jié) 26致謝 27參考文獻(xiàn) 28第1章緒論1.1研究背景 2021年全球智能銷量直線上升,保持著快速增長(zhǎng)的勢(shì)頭,移動(dòng)通信在不斷開展中愈加成熟。在移動(dòng)通信領(lǐng)域,Google公司的Android操作系統(tǒng)和Apple公司的IOS操作系統(tǒng)占據(jù)了市場(chǎng)主要份額。與IOS相比,Android操作系統(tǒng)憑借其包容的開放平臺(tái)收到了廣闊消費(fèi)者的喜愛。 隨著科技得不斷開展,智能價(jià)格越來越親民化。著名的國(guó)產(chǎn)機(jī)品牌如小米、華為、酷派等紛紛推出千元機(jī),使得在校大學(xué)生能夠輕易擁有一部高性價(jià)比的Android。目前,高校在針對(duì)學(xué)生課堂考勤方面存在著許多問題。在高校中,一位老師可能需要給多個(gè)不同的班級(jí)上課,也可能一次性給很大的學(xué)生群體上課,老師與學(xué)生之間處理課堂之外根本沒有任何交流,課堂教學(xué)時(shí)間彌足珍貴。傳統(tǒng)的點(diǎn)名考勤費(fèi)時(shí)費(fèi)力,占用了大量珍貴的的課堂教學(xué)時(shí)間,考勤效率大打折扣[[]葛會(huì)會(huì).基于Android藍(lán)牙考勤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].東華理工大學(xué),2021.],同時(shí)[]葛會(huì)會(huì).基于Android藍(lán)牙考勤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].東華理工大學(xué),2021.1.2國(guó)內(nèi)外研究現(xiàn)狀 目前市面上有不少基于移動(dòng)終端開發(fā)的簽到軟件,例如釘釘、叮咚簽到等,但是這些軟件根本都是針對(duì)辦公通訊的,不適用于高校簽到考勤,到目前為止,市場(chǎng)上還沒有一款專門針對(duì)大學(xué)生課堂考勤的軟件。1.3論文結(jié)構(gòu) 本文介紹了一個(gè)基于安卓平臺(tái)的簽到管理系統(tǒng)。本文結(jié)構(gòu)如下: 第1章緒論簡(jiǎn)單介紹了課題任務(wù)的研究背景、國(guó)內(nèi)外研究現(xiàn)狀以及需要完成的目標(biāo)。 第2章介紹了本系統(tǒng)開發(fā)需要用到的技術(shù),包括安卓應(yīng)用開發(fā)技術(shù)和數(shù)據(jù)庫(kù)技術(shù)。 第3章對(duì)本系統(tǒng)進(jìn)行了需求分析,包括可行性分析和需求分析。 第4章根據(jù)第3章的需求分析對(duì)系統(tǒng)進(jìn)行了設(shè)計(jì),包括系統(tǒng)架構(gòu)設(shè)計(jì)、各功能模塊的設(shè)計(jì)以及數(shù)據(jù)庫(kù)的設(shè)計(jì)。 第5章講述了如何實(shí)現(xiàn)系統(tǒng)的各個(gè)功能模塊。 第6章講述了對(duì)系統(tǒng)的測(cè)試,提供了測(cè)試方法、流程及測(cè)試的結(jié)果。第2章開發(fā)工具概述2.1Android概述2.1.1Android體系結(jié)構(gòu)Android[[]鄧凡平.深入理解Android[M].機(jī)械工業(yè)出版社,2021.][[]〔韓〕金泰延,〔韓〕宋亨周,〔韓〕樸知?jiǎng)?,?Android架構(gòu)揭秘[M].人民郵電出版社,2021.][[]ChinE,FeltAP,GreenwoodK,etal.Analyzinginter-applicationcommunicationinAndroid[C].Proceedingsofthe9thinternationalconferenceonMobilesystems,applications,andservices.ACM,2021:239-252.][]鄧凡平.深入理解Android[M].機(jī)械工業(yè)出版社,2021.[]〔韓〕金泰延,〔韓〕宋亨周,〔韓〕樸知?jiǎng)祝?Android架構(gòu)揭秘[M].人民郵電出版社,2021.[]ChinE,FeltAP,GreenwoodK,etal.Analyzinginter-applicationcommunicationinAndroid[C].Proceedingsofthe9thinternationalconferenceonMobilesystems,applications,andservices.ACM,2021:239-252.Android由四層體系結(jié)構(gòu)組成,這四層結(jié)構(gòu)分別是:應(yīng)用層〔Application〕、應(yīng)用框架層〔ApplicationFramework〕、系統(tǒng)運(yùn)行庫(kù)層〔Libraries〕以及Linux內(nèi)核層〔LinuxKernel〕[[]朱長(zhǎng)江,楊一平.Android操作系統(tǒng)的平安機(jī)制研究[J].電腦知識(shí)與技術(shù)[]朱長(zhǎng)江,楊一平.Android操作系統(tǒng)的平安機(jī)制研究[J].電腦知識(shí)與技術(shù),2021,(25):5628-5629.圖2-1Android的體系結(jié)構(gòu)〔1〕應(yīng)用層〔Application〕應(yīng)用層是用來用戶交互的。在Android應(yīng)用中,應(yīng)用層是用戶能夠看見的,用戶可以對(duì)其進(jìn)行操作?!?〕應(yīng)用框架層〔ApplicationFramework〕Android應(yīng)用程序的開發(fā)是基于框架和組件的,開發(fā)人員可以使用Android系統(tǒng)API以及android應(yīng)用框架中的各個(gè)組件?!?〕系統(tǒng)運(yùn)行庫(kù)層〔Libraries〕Android應(yīng)用程序框架之下是一套C/C++函數(shù)庫(kù),它們效勞于Android應(yīng)用程序組件,其功能通過組件間接提供應(yīng)開發(fā)者[[][]李楊,馮剛,李亮,羅擁華.基于Android的多媒體應(yīng)用開發(fā)與研究[J].計(jì)算機(jī)與現(xiàn)代化,2021,(04):149-152.〔4〕Linux內(nèi)核層〔LinuxKernel〕Android的核心系統(tǒng)效勞依賴于Linux2.6內(nèi)核,操作系統(tǒng)為Android提供的效勞包括:1〕平安性(Security)。2〕內(nèi)存管理(MemoryManagement)3〕進(jìn)程管理(ProcessManagement)4〕網(wǎng)絡(luò)堆棧(NetworkStack)5〕驅(qū)動(dòng)程序模型(DriverModel)2.1.2Android組件Android有四大組件,分別是:Activity、Service、BroadcastReciever、ContentProvider。〔1〕ActivityActivity是展現(xiàn)給用戶的界面。應(yīng)用程序需要能夠和用戶交互,這就需要一個(gè)可供用戶操作的界面,在Android應(yīng)用程序中,Activity就是用來實(shí)現(xiàn)該功能的。Activity一般是由很多組件構(gòu)成的,例如TextView、Button、EditText等。Android提供了豐富的API,在開發(fā)應(yīng)用時(shí),開發(fā)人員只需要調(diào)用響應(yīng)的函數(shù)就能完成相應(yīng)的功能?!?〕ServiceService是運(yùn)行在程序后臺(tái)的,用戶是看不到的。與JavaWeb中的Service相似,Android中的Service和用戶界面也是分開的,Service用來處理Activity的一些操作。例如當(dāng)我們退出微信時(shí)依然能夠接收到消息,Service此時(shí)一直在后臺(tái)運(yùn)行著,但是用戶是看不到的?!?〕BroadcastRecieverBroadcastReciever翻譯成中文是播送接收器的意思。播送接收器要想工作首先得有播送消息,有了播送消息后才能接收。播送接收器是為了方便開發(fā)人員準(zhǔn)備的,例如魔偶個(gè)工程需要在完成某個(gè)操作后讓鬧鐘響,此時(shí)開發(fā)人員可在該操作完成后發(fā)出一個(gè)播送消息,鬧鐘接收到以后就會(huì)響?!?〕ContentProviderContentProvider在Android中起到存儲(chǔ)數(shù)據(jù)的作用。ContentProvider能夠?qū)崿F(xiàn)在多個(gè)應(yīng)用間傳遞數(shù)據(jù),例如QQ能夠訪問聯(lián)系人,就是利用了ContentProvider來實(shí)現(xiàn)的。2.2MySQL概述 MySQL[[]孫輝.MySQL查詢優(yōu)化的研究和改良[D].華中科技大學(xué),2007.]是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQLAB公司開發(fā),目前屬于Oracle旗下產(chǎn)品。MySQL是最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)之一,在WEB應(yīng)用方面,MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng))應(yīng)用軟件之一。MySQL所使用的SQL語(yǔ)言是用于訪問數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語(yǔ)言。MySQL軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有本錢低,尤其是開放源碼這一特點(diǎn),一般中小型網(wǎng)站的開發(fā)都選擇MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)[[]孫輝.MySQL查詢優(yōu)化的研究和改良[D].華中科技大學(xué),2007.[]張杰.Android平臺(tái)EPUB電子書閱讀器的設(shè)計(jì)與實(shí)現(xiàn)[D].南京大學(xué),2021.2.3Android開發(fā)環(huán)境搭建 常用的Android開發(fā)平臺(tái)有AndroidStudio和Eclipse+ADT兩種,本系統(tǒng)使用第二種方式進(jìn)行開發(fā)。其中,Eclipse版本為3.9.2,ADT版本為ADT-23.0.7,編程語(yǔ)言使用Java語(yǔ)言,編譯環(huán)境為jdk7?!?〕下載安裝JDK〔2〕配置JDK的變量環(huán)境〔3〕下載安裝EclipseEclipse的版本有多個(gè),本系統(tǒng)采用EclipseIDEforJavaEEDevelopers這個(gè)版本?!?〕下載安裝AndroidSDK〔5〕安裝ADT插件2.4本章小結(jié) 本章主要介紹了Android應(yīng)用開發(fā)過程中需要用到的一些工具。首先講述了Android平臺(tái)的一些相關(guān)知識(shí),接著講述了開發(fā)過程中需要用到的數(shù)據(jù)庫(kù)MySQL,最后講述了如何搭建一個(gè)完整的Android開發(fā)環(huán)境。搭建好開發(fā)環(huán)境以后,接下來我們將討論如何利用該平臺(tái)完本錢系統(tǒng)。第3章系統(tǒng)需求分析3.1可行性分析隨著科技的高速開展,智能已經(jīng)成為了大學(xué)生必不可少的工具,智能的廣泛使用以及互聯(lián)網(wǎng)的無(wú)處不在,打破了人們交往,信息傳輸?shù)臅r(shí)空限制,讓資源、信息隨處可取。本文基于安卓平臺(tái)開發(fā)的簽到管理系統(tǒng)能夠輕松的實(shí)現(xiàn)課堂簽到,考勤統(tǒng)計(jì),有效地提高了課堂考勤的工作效率。系統(tǒng)客戶端采用安卓開發(fā)技術(shù),效勞端采用Servlet技術(shù)實(shí)現(xiàn),數(shù)據(jù)層采用MySQL管理數(shù)據(jù)。安卓系統(tǒng)應(yīng)用是采用Java語(yǔ)言開發(fā)的,具備一定Java根底的開發(fā)人員可以開發(fā)相關(guān)的安卓應(yīng)用,并且由于安卓平臺(tái)的開源性,很多功能對(duì)應(yīng)的實(shí)現(xiàn)代碼都有現(xiàn)成的,代碼的可重用度非常高,提高了程序開發(fā)的效率。Servlet運(yùn)行于支持Java的應(yīng)用效勞器中[[]李凌,代如剛.基于Android系統(tǒng)的iLibrary圖書館應(yīng)用——圖書館生態(tài)系統(tǒng)中移動(dòng)圖書館應(yīng)用初探[J].圖書館雜志,2021,(01):61-65.[]李凌,代如剛.基于Android系統(tǒng)的iLibrary圖書館應(yīng)用——圖書館生態(tài)系統(tǒng)中移動(dòng)圖書館應(yīng)用初探[J].圖書館雜志,2021,(01):61-65.從可操作性方面來說,本系統(tǒng)界面友好,容易操作,適用于所有會(huì)使用安卓的學(xué)生以及教師。3.2需求分析3.2.1功能需求分析通過簽到管理系統(tǒng),用戶可以查看本學(xué)期的課程表。學(xué)生可以在對(duì)應(yīng)的課程中進(jìn)行簽到操作,同時(shí)還可以查看自己該課程的簽到記錄;教師可以查看學(xué)生每周出勤的情況統(tǒng)計(jì)以及每個(gè)學(xué)生的全部出勤記錄。本系統(tǒng)是面向?qū)W生和教師的。學(xué)生需使用學(xué)號(hào)和密碼進(jìn)行登錄,教師需使用工號(hào)和密碼進(jìn)行登錄。學(xué)生簽到時(shí),系統(tǒng)會(huì)根據(jù)學(xué)生簽到的時(shí)間給予不同的響應(yīng),學(xué)生對(duì)每一節(jié)課只能簽到一次,以免重復(fù)。系統(tǒng)對(duì)學(xué)生的簽到時(shí)間是有要求的,學(xué)生只能在該課程開始前十分鐘到該課程開始后十分鐘之內(nèi)的時(shí)間段內(nèi)進(jìn)行簽到,課程開始前十分鐘到上課為正常簽到,課程開始到上課十分鐘為遲到,其余時(shí)間不能進(jìn)行簽到。系統(tǒng)在統(tǒng)計(jì)學(xué)生出勤情況時(shí),會(huì)根據(jù)學(xué)生的簽到時(shí)間來判斷簽到狀態(tài)。簽到狀態(tài)可分為:正常簽到、遲到和曠課三種。正常簽到和遲到只需讀取簽到狀態(tài)即可,曠課需判斷學(xué)生有無(wú)簽到記錄。3.2.2界面需求分析 系統(tǒng)界面是用來和用戶交互的,系統(tǒng)界面的好壞直接影響用戶的使用體驗(yàn),因此有好的用戶界面設(shè)計(jì)顯得非常有必要。目前,界面風(fēng)格有著向簡(jiǎn)潔開展的趨勢(shì),界面的布局合理、色彩搭配協(xié)調(diào)決定了界面的美觀。為方便不同身份的用戶使用系統(tǒng),本系統(tǒng)將不同用戶的功能分別放置于不同的界面?!?〕學(xué)生客戶端學(xué)生客戶端界面包含所有適合學(xué)生完成的功能,包括:登錄、課程表、個(gè)人信息、課程信息、簽到記錄等?!?〕教師客戶端相比于學(xué)生客戶端,教師客戶端實(shí)現(xiàn)了更多的功能界面,例如:查看每周學(xué)生出勤情況統(tǒng)計(jì)頁(yè)面、每個(gè)學(xué)生的出勤記錄等。3.2.3性能需求分析 評(píng)價(jià)一個(gè)系統(tǒng)的質(zhì)量除了看其是否滿足用戶的功能需求外,系統(tǒng)的性能也有著重大關(guān)系,具體表達(dá)在:系統(tǒng)的響應(yīng)時(shí)間、并發(fā)性、穩(wěn)定性以及平安性等。系統(tǒng)性能好壞直接影響用戶對(duì)軟件的體驗(yàn)效果?!?〕并發(fā)性。學(xué)生在進(jìn)行簽到時(shí),有可能會(huì)出現(xiàn)多個(gè)學(xué)生同時(shí)訪問系統(tǒng)的情況,這時(shí)需要系統(tǒng)能夠并發(fā)處理多個(gè)用戶請(qǐng)求,防止效勞器崩潰?!?〕穩(wěn)定性。本系統(tǒng)能夠提供學(xué)生查看課表的功能,因此需要做到用戶可隨時(shí)隨地使用系統(tǒng),所以系統(tǒng)需要有非常強(qiáng)的穩(wěn)定性?!?〕平安性。目前系統(tǒng)對(duì)平安性方面沒有太高的要求。3.3本章小結(jié) 本章主要通過對(duì)目前課堂考勤現(xiàn)狀的分析,分析明確了基于安卓平臺(tái)的簽到管理系統(tǒng)的需求目標(biāo),從用戶的角度,詳細(xì)分析了系統(tǒng)的功能、界面、性能需求。這些工作為下一步系統(tǒng)設(shè)計(jì)工作提供了有力的支持。第4章系統(tǒng)設(shè)計(jì)經(jīng)過前面的需求分析,我們已經(jīng)明白了本文需要實(shí)現(xiàn)完成什么功能,而在設(shè)計(jì)階段的工作,就是考慮如何實(shí)現(xiàn)這些功能,也就是考慮整個(gè)系統(tǒng)是由哪些模塊組成以及這些模塊之間的相互關(guān)系。系統(tǒng)設(shè)計(jì)時(shí),采用由上到下的原那么進(jìn)行工作。首先設(shè)計(jì)出系統(tǒng)的總體架構(gòu),接著一層一層深入設(shè)計(jì),完成每個(gè)功能模塊。系統(tǒng)總體架構(gòu)的設(shè)計(jì)是在系統(tǒng)需求分析的前提下,將整個(gè)系統(tǒng)劃分成各個(gè)子系統(tǒng),合理安排各方面相關(guān)事宜的整個(gè)過程。包括數(shù)據(jù)的存儲(chǔ)設(shè)計(jì)、軟硬件設(shè)施的配置以及整個(gè)系統(tǒng)實(shí)現(xiàn)的規(guī)劃。4.1系統(tǒng)總體架構(gòu)基于安卓的簽到管理系統(tǒng)充分利用移動(dòng)互聯(lián)網(wǎng)的優(yōu)勢(shì),實(shí)現(xiàn)課堂考勤工作的網(wǎng)絡(luò)化,使原本繁瑣、低效的課堂考勤變得快捷高效,很大程度上提高了課堂教學(xué)效率。系統(tǒng)的總體架構(gòu)如下圖。整個(gè)系統(tǒng)由三層體系結(jié)構(gòu)構(gòu)成,分別為表示層〔用戶界面層〕,業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層〔持久層〕。如下圖:〔1〕表示層〔用戶界面層〕表示層為用戶提供交互操作界面,由一系列與用戶交互的界面組成。本系統(tǒng)針對(duì)不同的用戶類型提供了不同的用戶界面?!?〕業(yè)務(wù)邏輯層業(yè)務(wù)邏輯層在是三層架構(gòu)中最重要的一層,處于表示層和數(shù)據(jù)訪問層中間,在數(shù)據(jù)交換中起到了承上啟下的作用,系統(tǒng)所提供的全部功能都在這一層實(shí)現(xiàn)。〔3〕數(shù)據(jù)訪問層〔持久層〕數(shù)據(jù)訪問層主要負(fù)責(zé)數(shù)據(jù)庫(kù)的訪問[[]鐘萍,安占峰,溫敬朋.基于Android平臺(tái)的圖書效勞系統(tǒng)設(shè)計(jì)[J].中國(guó)現(xiàn)代教育裝備,2021,(15):79-81.[]鐘萍,安占峰,溫敬朋.基于Android平臺(tái)的圖書效勞系統(tǒng)設(shè)計(jì)[J].中國(guó)現(xiàn)代教育裝備,2021,(15):79-81.4.2功能模塊設(shè)計(jì)〔1〕登錄模塊 用戶輸入用戶名、密碼和用戶類型后,通過連接網(wǎng)絡(luò)將用戶名、密碼以及用戶類型發(fā)送到效勞器,效勞器根據(jù)用戶類型檢索對(duì)應(yīng)的數(shù)據(jù)庫(kù)中的用戶名和密碼,如果匹配成功,那么把效勞器端的數(shù)據(jù)通過網(wǎng)絡(luò)傳輸給客戶端,否那么返回錯(cuò)誤提示信息給客戶端。具體的實(shí)現(xiàn)流程如圖4-1所示。圖4-1登錄流程框圖〔2〕獲取課表模塊用戶首次登陸時(shí),系統(tǒng)通過網(wǎng)絡(luò)將用戶名和用戶類型發(fā)送到效勞器,效勞器根據(jù)用戶類型和用戶名檢索對(duì)應(yīng)的課程表。不同的用戶類型在檢索課程表時(shí)使用的檢索方式也不同,當(dāng)用戶類型為學(xué)生時(shí),需從選課表中檢索studentId與用戶名匹配的課程,當(dāng)用戶類型為教師時(shí),那么需從課程表中檢索teacherId與用戶名匹配的課程。用戶登陸以后每次翻開客戶端時(shí),系統(tǒng)都會(huì)自動(dòng)聯(lián)網(wǎng)從效勞器端更新課程信息。具體的實(shí)現(xiàn)流程如圖4-2所示。〔3〕簽到模塊進(jìn)入系統(tǒng)后,學(xué)生用戶可以對(duì)課程進(jìn)行簽到操作。學(xué)生點(diǎn)擊簽到按鈕后,系統(tǒng)效勞器端應(yīng)該根據(jù)簽到時(shí)間來判斷學(xué)生的簽到狀態(tài)。操作完成后系統(tǒng)將結(jié)果顯示在簽到信息界面。具體的實(shí)現(xiàn)流程如圖4-3所示?!?〕查看簽到記錄模塊 學(xué)生可通過該模塊查看自己的簽到記錄,教師可通過該模塊查看所有學(xué)生的簽到記錄。學(xué)生客戶端通過點(diǎn)擊按鈕獲取對(duì)應(yīng)課程的簽到記錄,當(dāng)用戶點(diǎn)擊按鈕后,學(xué)生客戶端將課程Id和學(xué)號(hào)發(fā)送給效勞器,效勞器查詢對(duì)應(yīng)的簽到記錄,最后返回給客戶端展示出來;教師客戶端首先通過效勞器獲取對(duì)應(yīng)的選課學(xué)生名單,然后再?gòu)男谄鳙@取對(duì)應(yīng)學(xué)生的簽到記錄。圖4-2獲取課表流程圖圖4-3簽到流程圖〔5〕統(tǒng)計(jì)分析模塊 通過統(tǒng)計(jì)分析模塊實(shí)現(xiàn)教師用戶統(tǒng)計(jì)每節(jié)課的學(xué)生出勤情況以及每個(gè)學(xué)生總的出勤記錄。教師客戶端在課程詳情頁(yè)面需展示每節(jié)課的學(xué)生出勤統(tǒng)計(jì),包括每一節(jié)課有多少學(xué)生正常上課、多少學(xué)生遲到以及多少學(xué)生曠課,并且還可統(tǒng)計(jì)對(duì)應(yīng)的學(xué)生名單。4.3數(shù)據(jù)庫(kù)設(shè)計(jì)4.3.1學(xué)生信息表學(xué)生表〔student_info〕的屬性有:學(xué)號(hào),姓名,密碼,性別,生日,和郵箱7個(gè)屬性字段。學(xué)生通過客戶端登錄系統(tǒng)時(shí),通過學(xué)號(hào)和密碼來查詢學(xué)生表,用于驗(yàn)證學(xué)生的登錄信息,并將請(qǐng)求的內(nèi)容通過Json返回到客戶端,實(shí)現(xiàn)登錄、查詢、簽到等功能。學(xué)生信息表如4-1所示。表4-1學(xué)生信息表字段名稱字段屬性字段類型字段長(zhǎng)度是否主鍵是否允許為空studentId學(xué)號(hào)int11是否name姓名varchar20否否password密碼varchar20否否gender性別char2否是birthdate生日date0否是phonechar11否是email郵箱varchar20否是4.3.2教師信息表教師表〔teacher_info〕的屬性有:工號(hào),姓名,密碼,性別,生日,和郵箱7個(gè)屬性字段。教師通過客戶端登錄系統(tǒng)時(shí),通過工號(hào)和密碼來查詢教師表,用于驗(yàn)證教師的登錄信息,并將請(qǐng)求的內(nèi)容通過Json返回到客戶端,實(shí)現(xiàn)登錄、查詢、統(tǒng)計(jì)等功能。教師信息表如表4-2所示。表4-2教師信息表字段名稱字段屬性字段類型字段長(zhǎng)度是否主鍵是否允許為空teacherId工號(hào)int11是否name姓名varchar20否否password密碼varchar20否否續(xù)表4-2字段名稱字段屬性字段類型字段長(zhǎng)度是否主鍵是否允許為空gender性別char2否是birthdate生日date0否是phonechar11否是email郵箱varchar20否是4.3.3課程信息表課程信息表〔course_info〕的屬性有:課程Id,課程名稱,教室,教師工號(hào),上課時(shí)間,開始周數(shù),結(jié)束周數(shù),開始節(jié)數(shù),結(jié)束節(jié)數(shù)和課程類型10個(gè)屬性字段。其中課程類型分為三種,分別為:全部、單周和雙周。課程信息如表4-3所示。表4-3課程信息表字段名稱字段屬性字段類型字段長(zhǎng)度是否主鍵是否允許為空courseId課程Idint11是否courseName課程名稱varchar20否否classRoom教室varchar50否否teacherId教師工號(hào)int20否否dayOfWeek上課時(shí)間int11否否beginWeek開始周數(shù)int11否否endWeek結(jié)束周數(shù)int11否否beginIndex開始節(jié)數(shù)int11否否endIndex結(jié)束節(jié)數(shù)int11否否courseType課程類型int11否否4.3.4簽到記錄表簽到記錄表〔sign_info〕有7個(gè)屬性,分別為:學(xué)號(hào),課程Id,簽到周數(shù),簽到日期,簽到節(jié)數(shù),簽到時(shí)間,簽到狀態(tài)。其中,簽到日期表示的是周幾簽到,簽到時(shí)間那么表示簽到時(shí)的具體日期時(shí)間。查詢?cè)摫砜色@得每個(gè)學(xué)生每節(jié)課的出勤情況。簽到記錄表如表4-4所示。表4-4簽到記錄表字段名稱字段屬性字段類型字段長(zhǎng)度是否主鍵是否允許為空stuId學(xué)號(hào)int11是否couId課程Idint11是否signWeek簽到周數(shù)int11否否signDay簽到日期int11否否signindex簽到節(jié)數(shù)int11否否signTime簽到時(shí)間datetime0是否signState簽到狀態(tài)int11否否4.4本章小結(jié) 本章講述了整個(gè)系統(tǒng)的設(shè)計(jì)過程,包括系統(tǒng)的總體結(jié)構(gòu),各個(gè)功能模塊的設(shè)計(jì)以及數(shù)據(jù)庫(kù)設(shè)計(jì)。系統(tǒng)設(shè)計(jì)完成后,接下來我們將依據(jù)系統(tǒng)設(shè)計(jì)目標(biāo)實(shí)現(xiàn)系統(tǒng)。第5章系統(tǒng)實(shí)現(xiàn)5.1效勞器端功能實(shí)現(xiàn) 效勞器端各個(gè)功能模塊框架大體相同,在本文中以簽到模塊為例進(jìn)行論述。效勞器端針對(duì)每一個(gè)功能模塊都有兩個(gè)類,一個(gè)是Servlet響應(yīng)請(qǐng)求,另一個(gè)是數(shù)據(jù)庫(kù)Manager。例如簽到模塊對(duì)應(yīng)的兩個(gè)類分別為SignInManager和SignInServlet。 效勞器端負(fù)責(zé)響應(yīng)客戶端的請(qǐng)求??蛻舳诵枰L問效勞器獲取數(shù)據(jù)時(shí),會(huì)通過post方式發(fā)出請(qǐng)求。在簽到模塊中,當(dāng)學(xué)生用戶點(diǎn)擊簽到按鈕時(shí),Android客戶端向效勞器發(fā)送post請(qǐng)求,效勞器接收到請(qǐng)求后,根據(jù)url響應(yīng)對(duì)應(yīng)的請(qǐng)求。簽到模塊響應(yīng)后綴為sign的請(qǐng)求,這個(gè)在效勞器Servlet中設(shè)定,代碼如下: @WebServlet("/sign")publicclassSignInServletextendsServlet{}效勞器接收到請(qǐng)求后,處理對(duì)應(yīng)的操作,具體過程如下: protectedvoiddoPost(ServletRequestrequest, ServletResponseresponse)throwsServletException,IOException{ response.setContentType("text/html;charset=UTF-8"); DataOutputStreamdos=newDataOutputStream(response.getOutputStream()); StringstudentId=request.getParameter("studentId"); StringcourseId=request.getParameter("courseId"); Stringresult=doSign(studentId,courseId); dos.writeUTF(result); } 其中,studentId和courseId是從客戶端接收到的數(shù)據(jù)。doSign就是效勞器需要進(jìn)行的操作,主要就是操作數(shù)據(jù)庫(kù),包括查詢,新增等。為了不讓代碼顯得很亂,所有操作數(shù)據(jù)庫(kù)的代碼全部都封裝在SignManager中。5.2客戶端功能實(shí)現(xiàn)5.2.1登錄功能實(shí)現(xiàn)登錄界面采用線性布局實(shí)現(xiàn),按照水平方向,本系統(tǒng)將登錄界面分為三個(gè)局部,最頂端為文本框控件,顯示“登錄〞,中間是登錄信息局部,包含用戶身份選擇下拉列表、用戶名輸入文本框和用戶密碼輸入文本框,最后是登錄按鈕。完成頁(yè)面布局后,需要對(duì)頁(yè)面的控件進(jìn)行綁定事件監(jiān)聽,其中用戶身份選擇文本框點(diǎn)擊后,需要顯示一個(gè)下拉列表,用戶可點(diǎn)擊對(duì)應(yīng)的身份進(jìn)行選擇,登錄按鈕點(diǎn)擊后需要獲取用戶身份、用戶名和密碼文本框中的內(nèi)容,系統(tǒng)將這些數(shù)據(jù)發(fā)送到效勞器,完成用戶的登錄驗(yàn)證。因?yàn)橄到y(tǒng)需要訪問網(wǎng)絡(luò),因此需要有訪問網(wǎng)絡(luò)的權(quán)限,在AndroidMainfest.xml中添加訪問網(wǎng)絡(luò)的權(quán)限。<uses-permissionandroid:name="android.permission.INTERNET"/>用戶在登錄時(shí),將獲取的身份、用戶名和密碼發(fā)送給url為“://:8080/signature_server/login/〞的網(wǎng)址。protectedvoidlogin(finalStringusername,finalStringpassword,finalStringserverUrl){ newThread(newRunnable(){ @Override publicvoidrun(){ Clientclient=newDefaultClient(); PostPost=newPost(serverUrl); List<NameValuePair>params=newArrayList<NameValuePair>(); params.add(newBasicNameValuePair("username",username)); params.add(newBasicNameValuePair("password",password)); try{ Responseresponse=client.execute(Post); if(response.getStatusLine().getStatusCode()==200){ Entityentity=response.getEntity(); StringentityString=EntityUtils.toString(entity); StringjsonString=entityString.substring(entityString .indexOf("{")); JSONObjectjson=newJSONObject(jsonString); sendMessage(MSG_LOGIN_RESULT,json); } }catch(ClientProtocolExceptione){ e.printStackTrace(); }catch(IOExceptione){ e.printStackTrace(); }catch(JSONExceptione){ e.printStackTrace(); } } }).start(); }效勞器接收到客戶端的請(qǐng)求數(shù)據(jù)后,根據(jù)接收到的數(shù)據(jù)來查詢對(duì)應(yīng)的數(shù)據(jù)庫(kù)。如果用戶名和密碼都正確,給客戶端返回0;如果與該用戶名匹配密碼不正確返回1;如果沒有找到對(duì)應(yīng)的用戶名返回2;遇到未知錯(cuò)誤那么返回-1。privateStringdoLogin(Stringusername,Stringpassword){ Stringsql="select*from"+StudentLoginManager.TABLE_NAME +"where"+StudentLoginManager.COLUMN_USERID+"="+"'" +username+"'"; System.out.println("url="+sql); StudentLoginManagerslm=newStudentLoginManager(); ResultSetrst=slm.query(sql); try{ rst.next(); Stringpwd=rst.getString(StudentLoginManager.COLUMN_PASSWORD); if(!password.equals(pwd)){ resultMap.put("result_code",1); }else{ resultMap.put("result_code",0); resultMap.put("userId", rst.getString(StudentLoginManager.COLUMN_USERID)); resultMap.put("name", rst.getString(StudentLoginManager.COLUMN_NAME)); resultMap.put("gender", rst.getString(StudentLoginManager.COLUMN_GENDER)); resultMap.put("birthdate", rst.getInt(StudentLoginManager.COLUMN_BIRTHDATE)); resultMap.put("phone", rst.getString(StudentLoginManager.COLUMN_PHONE)); resultMap.put("email", rst.getString(StudentLoginManager.COLUMN_EMAIL)); } }catch(SQLExceptione){ resultMap.put("result_code",2); e.printStackTrace(); } return(newGson()).toJson(resultMap); }客戶端接收到效勞器返回的數(shù)據(jù)后,根據(jù)返回的數(shù)據(jù)來進(jìn)行相應(yīng)的操作。如果返回的是0,系統(tǒng)跳轉(zhuǎn)到主頁(yè)面;如果返回的是1,使用Toast提示用戶名或密碼錯(cuò)誤;如果返回的是2,使用Toast提示用戶名不存在;如果返回的是1,使用Toast提示遇到了未知錯(cuò)誤。privatevoidhandleLoginResult(JSONObjectjson){ intresultCode=-1; try{ resultCode=json.getInt("result_code"); }catch(JSONExceptione){ e.printStackTrace(); } switch(resultCode){ case0: onLoginSuccess(json); break; case1: show("用戶名或密碼錯(cuò)誤!"); break; case2: show("用戶名或密碼錯(cuò)誤!"); break; case-1: show("用戶名或密碼錯(cuò)誤!"); break; default: show("登陸失??!"); break; } }通過以上操作,客戶端的登錄功能就完全實(shí)現(xiàn)了。5.2.2課表功能實(shí)現(xiàn)作為一款課堂簽到管理系統(tǒng),課程表功能是必不可少的,而且友好的課程表界面非常重要。借鑒目前市面很火的超級(jí)課程表app,本系統(tǒng)實(shí)現(xiàn)了如圖5-1所示的課程表界面。圖5-1課程表界面界面整體采用線性布局實(shí)現(xiàn),從上到下分為兩局部,分別是星期導(dǎo)航欄和課程格子,其中課程格子界面嵌套一個(gè)水平線性布局,左側(cè)為上課節(jié)數(shù)索引,采用ListView實(shí)現(xiàn),右側(cè)是一個(gè)幀布局,底部的分隔線是采用GridView實(shí)現(xiàn)的,頂部課程按鈕是自定義的組件。其代碼為:publicclassCourseTableLayoutextendsViewGroup{ privateintitemCount; privateContextmContext; privateList<CourseBean>courseBeans; publicCourseTableLayout(Contextcontext){ this(context,null); } publicCourseTableLayout(Contextcontext,AttributeSetattrs){ this(context,attrs,0); } publicCourseTableLayout(Contextcontext,AttributeSetattrs,intdefStyleAttr){ super(context,attrs,defStyleAttr); this.mContext=context; courseBeans=newArrayList<>(); } @Override protectedvoidonLayout(booleanc,intlt,inttp,intrt,intbm){ intitemHeight=getMeasuredHeight()/itemCount; intitemWidth=getMeasuredWidth()/7;finalintcount=getChildCount(); for(inti=0;i<count;i++){ Viewchild=getChildAt(i); CourseBeancourseBean=courseBeans.get(i); intchildL=courseBean.getDayOfWeek()*itemWidth; intchildT=(courseBean.getBeginIndex()-1)*itemHeight; intchildR=(courseBean.getDayOfWeek()+1)*itemWidth; intchildB=courseBean.getEndIndex()*itemHeight; child.layout(childL+2,childT+2,childR-2,childB-3); } } publicvoidaddList(CourseBeancourseBean){ courseBeans.add(courseBean); } @Override publicvoidremoveAllViews(){ super.removeAllViews(); courseBeans.clear(); } publicvoidaddView(Viewchild,finalCourseBeancourseBean){ courseBeans.add(courseBean); super.addView(child); } publicintgetItemCount(){ returnitemCount; } publicvoidsetItemCount(intitemCount){ this.itemCount=itemCount; }}在課程展示時(shí),需要對(duì)課程表數(shù)據(jù)進(jìn)行處理,提取出當(dāng)前周的課程信息。該系統(tǒng)在處理課程信息時(shí),首先從效勞器獲取對(duì)應(yīng)的課程信息,將它們先寫進(jìn)本地?cái)?shù)據(jù)庫(kù),在需要展示課程表時(shí),從本地?cái)?shù)據(jù)庫(kù)獲取屬于本周的課程信息,然后將這些課程信息展示在課程表中。在提取當(dāng)前周課程信息時(shí),系統(tǒng)需先查找出全部開始周數(shù)小于等于當(dāng)前周并且結(jié)束周大于等于當(dāng)前周的課程,接著還需根據(jù)課程分類進(jìn)一步篩選。在本系統(tǒng)中,課程分為三類,分別是:奇數(shù)周、偶數(shù)周和全部周。系統(tǒng)經(jīng)過第一輪篩選后,還需判斷當(dāng)前周是奇數(shù)周還是偶數(shù)周,然后根據(jù)課程分類再進(jìn)一步篩選。5.2.3簽到功能實(shí)現(xiàn)學(xué)生可在課程詳情頁(yè)點(diǎn)擊簽到按鈕進(jìn)行簽到。簽到時(shí),客戶端向效勞器發(fā)送簽到請(qǐng)求,將學(xué)生學(xué)號(hào)和課程Id發(fā)送給效勞器,效勞器根據(jù)接收到的數(shù)據(jù)進(jìn)行相應(yīng)的操作后將結(jié)果返回給客戶端。在本系統(tǒng)中,效勞器會(huì)返回一個(gè)result_code給客戶端,result_code的值為-1時(shí)表示發(fā)生了未知錯(cuò)誤,當(dāng)result_code值為0時(shí)表示正常簽到,當(dāng)result_code值為1時(shí)表示已經(jīng)簽過到了,當(dāng)result_code值為2時(shí)表示遲到,當(dāng)result_code值為3時(shí)表示現(xiàn)在不是簽到時(shí)間,當(dāng)result_code值為4時(shí)表示該課程不在今天。效勞器接收到請(qǐng)求后,首先計(jì)算出今天是星期幾,第幾周,然后根據(jù)這些參數(shù)判斷該課程是否為今天的課程,如果不是直接返回4,如果是今天的課程那么進(jìn)行下一輪判斷。接下來系統(tǒng)會(huì)判斷當(dāng)前時(shí)間是否為簽到時(shí)間,本系統(tǒng)中簽到時(shí)間為上課前10分鐘到上課后10分鐘,如果當(dāng)前時(shí)間不屬于簽到時(shí)間直接返回3,否那么進(jìn)行下一輪判斷。判斷進(jìn)行到這里,已經(jīng)確定了現(xiàn)在是可以進(jìn)行簽到操作的,接著該判斷該課程是否已經(jīng)簽到過,防止重復(fù)簽到。判斷該課程是否簽到過,需要根據(jù)學(xué)生學(xué)號(hào)、課程Id、星期幾和第幾周這幾個(gè)參數(shù)在簽到表中查找記錄。具體表達(dá)為:有簽到記錄,說明已經(jīng)簽到過了,學(xué)生不需再進(jìn)行簽到,此時(shí)效勞器返回1給客戶端,否那么接下來進(jìn)行簽到操作。簽到時(shí)系統(tǒng)會(huì)根據(jù)當(dāng)前時(shí)間判斷是否遲到,上課前10分鐘簽到為正常簽到,上課后十分鐘簽到那么屬于遲到。簽到成功后,系統(tǒng)會(huì)向簽到表中寫入一條記錄,用于統(tǒng)計(jì)簽到記錄。5.2.4考勤統(tǒng)計(jì)實(shí)現(xiàn) 考勤統(tǒng)計(jì)分為學(xué)生版和教師版,學(xué)生版中用戶可通過點(diǎn)擊課程詳情頁(yè)面上方的統(tǒng)計(jì)按鈕查看該課程簽到記錄,教師版中用戶也可通過點(diǎn)擊課程詳情頁(yè)面上方的統(tǒng)計(jì)按鈕查看每個(gè)學(xué)生的全部簽到記錄,同時(shí)在課程詳情頁(yè)面下方還有一個(gè)展示每節(jié)課學(xué)生簽到詳情的列表,該列表展示了每節(jié)課正常簽到人數(shù)、遲到人數(shù)以及曠課人數(shù),并且點(diǎn)擊該列表還可查看具體名單。 當(dāng)查看某個(gè)學(xué)生對(duì)某個(gè)課程簽到記錄時(shí),用戶客戶端向效勞器發(fā)送查看請(qǐng)求,將學(xué)生學(xué)號(hào)和課程Id發(fā)送給效勞器,效勞器根據(jù)接收到的學(xué)號(hào)和課程Id進(jìn)行查找相對(duì)應(yīng)的簽到記錄。當(dāng)效勞器接收到請(qǐng)求時(shí),首先計(jì)算該課程到目前為止需要簽到幾次,然后根據(jù)條件查找每一次的簽到記錄,有記錄那么寫入對(duì)應(yīng)的簽到狀態(tài)〔正常簽到、遲到〕,無(wú)記錄那么為曠課。查找完成后,效勞器將查找結(jié)果放入Map中返回給客戶端,客戶端將返回的數(shù)據(jù)處理后計(jì)算出正常簽到次數(shù)、遲到次數(shù)和曠課次數(shù),同時(shí)將這些簽到記錄以列表的形式展現(xiàn)出來。for(inti=0;i<json.length();i++){try{ JSONObjectstatistics=newJSONObject(json.getString(i+"")); if(statistics.getString("result").equals("正常簽到")){ normalCount++; }elseif(statistics.getString("result").equals("遲到")){ lateCount++; }elseif(statistics.getString("result").equals("未簽到")){ truantCount++; } records.add(statistics.getString("result")); }catch(JSONExceptione){ e.printStackTrace(); }}當(dāng)查看每節(jié)課學(xué)生簽到詳情時(shí),用戶客戶端向效勞器發(fā)送查看請(qǐng)求,將課程Id發(fā)送給效勞器,效勞器接根據(jù)接收到的課程Id查找簽到詳情。當(dāng)效勞器接收到請(qǐng)求時(shí),首先根據(jù)課程Id查找出一共有多少學(xué)生選取了該課程,然后再查找出每一次正常簽到人數(shù)以及遲到人數(shù),最后用總的人數(shù)減去正常簽到人數(shù)和遲到人數(shù)即可得到曠課人數(shù)。查找完成后,效勞器將每一節(jié)課的查找結(jié)果放入Map中返回給客戶端,客戶端將返回的數(shù)據(jù)處理后以列表的形式將每一節(jié)課的簽到詳情展示出來。for(inti=0;i<json.length();i++){try{ Map<String,Integer>statisticsMap=newHashMap<>(); JSONObjectstatistics=newJSONObject(json.getString(i+"")); statisticsMap.put("normalCount",statistics.getInt("normalCount")); statisticsMap.put("lateCount",statistics.getInt("lateCount")); statisticsMap.put("truantCount",statistics.getInt("truantCount")); statisticses.add(statisticsMap); }catch(JSONExceptione){ e.printStac
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度VIP會(huì)員高端健身與美容服務(wù)協(xié)議3篇
- 二零二四天津住宅裝修工程安全文明施工合同3篇
- 2024版牛肉進(jìn)口商業(yè)交易協(xié)議細(xì)則版
- 2024老舊倉(cāng)庫(kù)創(chuàng)意產(chǎn)業(yè)園區(qū)開發(fā)協(xié)議
- 2025年度承兌匯票擔(dān)保與銀行間市場(chǎng)利率衍生品合同3篇
- 二零二五版9A文條款離婚協(xié)議律師代理服務(wù)合同3篇
- 基于2025年度需求的全息標(biāo)識(shí)牌制作與安裝合同3篇
- 二零二五年高端葡萄酒進(jìn)口與代理合同2篇
- 2025年度林木種質(zhì)資源保護(hù)與利用合同范本4篇
- 2025年度綠色建筑節(jié)能改造分包合同低碳環(huán)保2篇
- 國(guó)家自然科學(xué)基金項(xiàng)目申請(qǐng)書
- 電力電纜故障分析報(bào)告
- 中國(guó)電信網(wǎng)絡(luò)資源管理系統(tǒng)介紹
- 2024年浙江首考高考選考技術(shù)試卷試題真題(答案詳解)
- 《品牌形象設(shè)計(jì)》課件
- 倉(cāng)庫(kù)管理基礎(chǔ)知識(shí)培訓(xùn)課件1
- 藥品的收貨與驗(yàn)收培訓(xùn)課件
- GH-T 1388-2022 脫水大蒜標(biāo)準(zhǔn)規(guī)范
- 高中英語(yǔ)人教版必修第一二冊(cè)語(yǔ)境記單詞清單
- 政府機(jī)關(guān)保潔服務(wù)投標(biāo)方案(技術(shù)方案)
- HIV感染者合并慢性腎病的治療指南
評(píng)論
0/150
提交評(píng)論