




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
蘭州交通大學畢業(yè)設計(論文)PAGEIII摘要現(xiàn)如今因為經(jīng)濟全球化,社會文明的進步,互聯(lián)網(wǎng)得到空前的發(fā)展,計算機的高效性也給人們的生活和工作帶來了極大的便利;信息化、電子化已經(jīng)成為了節(jié)約運營成本,提高工作效率的首選。但是由于現(xiàn)在中國大量企業(yè)還處于發(fā)展狀態(tài),很多企業(yè)員工管理尚處于手工作業(yè)階段,這不僅效率低,而且容易出現(xiàn)紕漏。因此很多企業(yè)為了能夠整合員工、記錄生產(chǎn)狀況等信息,以提高自己的經(jīng)營實力,也根據(jù)某企業(yè)提供的需求,設計此企業(yè)員工管理系統(tǒng),以幫助企業(yè)達到員工管理辦公自動化、節(jié)約管理成本,從而提高工作效率的目的。通過其公司以及員工管理需求的特點,提出了基于企業(yè)員工管理系統(tǒng)的設計和解決方案。該系統(tǒng)是用客戶端和服務器即B/S模式,采用SQLlite3數(shù)據(jù)庫、boa/cgi服務器、GCC、VI以及GDB調(diào)試等作為主要的開發(fā)工具進行開發(fā)。系統(tǒng)的組成主要由登錄模塊和員工管理模塊。該論文主要闡述了各個模塊頁面功能的實現(xiàn)、數(shù)據(jù)庫設計運用等組成的企業(yè)員工管理系統(tǒng),根據(jù)系統(tǒng)的實現(xiàn)功能和使用環(huán)境對系統(tǒng)作總體的規(guī)劃,最后完成了模塊的劃分和數(shù)據(jù)庫的設計,以及對系統(tǒng)功能及使用進行測試與完善。關鍵字:模塊;數(shù)據(jù)庫;服務器AbstractIntoday'ssociety,becauseoftheeconomicglobalization,theprogressofsocialcivilization,theInternetgotunprecedenteddevelopment,thecomputer'sefficiencyistopeople'slifeandworkhasbroughtgreatconvenience、informationize、electronicandbecomesaveoperatingcosts,improvetheworkefficiencyofchoice.ButbecauseChina'slargeenterprisesisstillinthestateofdevelopment,nowalotofenterprisestaffmanagementsarestillinthestageofmanualwork,itisnotonlylowefficiency,butalsoeasytoslip.Somanyenterprisesischangingthisinordertobeabletointegrateemployees,recordinformationsuchastheproductionstatus,toimprovetheirbusinesscapacity,andaccordingtothedemandsofanenterprisetoprovidetheenterprisestaffmanagementsystemdesign,inordertohelpenterprisetoenterprisestaffmanagementofficeautomation,savingmanagementcosts,andthusimprovetheworkefficiency.Throughthecharacteristicsofthecompanyandtheemployeemanagementdemandwasproposedbasedontheenterprisestaffmanagementsystemdesignandsolutions.ThesystemiswiththeclientandtheserverthatB/Smode,usingSQLlite3database,boa/cgiserver,GCC,VI,andtheGDBdebugging,etcasthemaindevelopmenttoolsfordevelopment.Thecompositionofsystemismainlycomposedoftheloginmoduleandemployeemanagementmodule.Thepapermainlyexpoundstherealizationofthefunctionofeachmodulepage,databasedesign,useofenterprisestaffmanagementsystem,accordingtotherealizationofthesystemfunctionanduseoftheenvironmentonthesystemofoverallplanning,andfinallycompletedthemoduledivisionanddatabasedesign,aswellastotestandimprovethesystemfunctionanduse.Keywords:Module;Database;Server目錄TOC\o"1-3"\h\u19601.緒論 1138291.1研究目的 1141891.2研究現(xiàn)狀 1128432.企業(yè)員工管理系統(tǒng)分析 360812.1工具分析 3116442.1.1Linux平臺 32642.1.2SQLite數(shù)據(jù)庫 4203862.1.3Boa服務器 4127422.2需求分析 5257102.2.1功能需求 5144442.2.2數(shù)據(jù)需求 5212542.3技術選擇 6287132.3.1CGI的選擇及特點 6327292.3.2cJSON的選用及特點 6209122.3.3JavaScript的使用及特點 7304332.4技術可行性 878992.4.1可靠性 8269332.4.2可行性 8267533.企業(yè)員工管理系統(tǒng)設計 981923.1系統(tǒng)設計主流程圖 9102483.2系統(tǒng)功能模塊設計 9226133.2.1身份模塊 9129153.2.2主要頁面模塊顯示 10221353.3數(shù)據(jù)庫表的設計 13145933.3.1登錄表 13134553.3.2人員管理表 13275413.3.3管理員操作記錄表 14204544.企業(yè)員工管理系統(tǒng)的實現(xiàn) 15131784.1WEB頁面實現(xiàn) 1543804.1.1頁面登錄 15290004.1.2頁面添加、刪除及編輯人員 16284104.1.3個人中心 17161174.1.4日志審計 17186254.1.5人員管理 18325934.2后臺功能實現(xiàn) 18236064.2.1數(shù)據(jù)庫的應用 1937104.2.2管理員登錄 20319194.2.3人員管理 21171964.2.4頁碼 2471554.2.5JSON數(shù)據(jù)傳送 25119295.系統(tǒng)測試 26314015.1頁面測試 26147555.2功能測試 26178295.3性能測試 27285376.總結 2820068致謝 292720參考文獻 30PAGE29PAGE291.緒論現(xiàn)如今計算機科學技術也已日漸成熟,它強大的功能已逐漸為人們所熟知并應用于生活。作為計算機應用的一部分,使用計算機對企業(yè)員工信息進行系統(tǒng)管理,對于公司對員工信息管理是相當便捷的。不僅能夠極大地提高企業(yè)員工管理的效率,也是企業(yè)的科學化、正規(guī)化管理與世界接軌的重要條件。而網(wǎng)絡辦公自動化是計算機技術和網(wǎng)絡迅速發(fā)展的一個辦公應用解決方案,主要目的就是實現(xiàn)員工信息的管理來提高辦公效率,以此來解決一直以來人們使用傳統(tǒng)人工的方式管理文件檔案存在著的許多缺點,如:效率低、保密性差和安全性低等問題。隨著計算機在企業(yè)管理中應用的普及,利用計算實現(xiàn)企業(yè)企業(yè)員工檔案的管理勢在必行。企業(yè)員工管理系統(tǒng)是現(xiàn)代企業(yè)管理工作不可缺少的一部分,是適應現(xiàn)代企業(yè)制度要求、推動企業(yè)勞動企業(yè)員工管理走向科學化、規(guī)范化的必備條件。該企業(yè)員工信息管理系統(tǒng)具備以下基本功能:(1)企業(yè)員工管理數(shù)據(jù)庫及表的操作。實現(xiàn)對企業(yè)員工管理數(shù)據(jù)庫及表的創(chuàng)建與操作,還有表中數(shù)據(jù)的維護。(2)企業(yè)員工信息的管理。實現(xiàn)員工信息的添加、查詢、編輯和刪除等。(3)企業(yè)員工信息的審計。實現(xiàn)對企業(yè)員工信息的實時查詢、統(tǒng)計等。1.1研究目的現(xiàn)代信息技術的發(fā)展使傳統(tǒng)意義上的企業(yè)員工管理的形式和內(nèi)涵,都從本質性發(fā)生變化,企業(yè)員工管理系統(tǒng)已經(jīng)逐步在代替手工管理,而且不同的公司都有一套適合自己管理員工的系統(tǒng),其中引入了現(xiàn)代管理的思想,建立了一套可以面向企業(yè)單位的員工信息管理系統(tǒng)。本課題是基于某公司的現(xiàn)狀及實際工作中所遇到的問題所設計的一套方案,對員工管理在設計開發(fā)方面進行研究,重點研究系統(tǒng)開發(fā)中所采用的開發(fā)平臺、工具和技術的使用。目的是從技術手段的角度闡述如何實現(xiàn)該公司向信息化管理模式轉變的過程。1.2研究現(xiàn)狀目前,在國內(nèi)外各大企業(yè)單位中,企業(yè)員工信息管理系統(tǒng)的使用是非常廣泛的。同時,有很多的軟件開發(fā)商也開發(fā)了許多基于各種不同行業(yè)的企業(yè)員工管理系統(tǒng)。由于企業(yè)管理信息量大、操作繁瑣等原因,傳統(tǒng)的管理信息方式不再適應新的工作需要,從而開發(fā)研制適合企業(yè)的企業(yè)員工管理系統(tǒng),使其具有整體性強、流程簡單、操作方便、功能豐富和通用性強等特點,是加快企業(yè)人才信息管理工作辦公自動化、信息資源化和管理科學化建設進程必要過程。是促進企業(yè)信息高速公路的發(fā)展,為企業(yè)的可持續(xù)發(fā)展提供條件的重要條件。企業(yè)級信息管理涉及到眾多的項目、人員、數(shù)據(jù),如果沒有一個有效的信息管理系統(tǒng)來支持和提高工作效率,企業(yè)信息管理將會難以實現(xiàn)方便快捷的實施操作?,F(xiàn)在眾多的軟件公司都開發(fā)出了適合自己的企業(yè)信息管理信息系統(tǒng),包括微軟公司的MicrosoftProject2003;PRIMAVERA公司的P3、EXP等,這些都是相對比較優(yōu)秀的企業(yè)項目信息管理軟件,但軟件只是一個輔助工具,而且由于公司性質的決定,如果沒有首先建立一個科學的企業(yè)信息管理體系,則企業(yè)員工管理軟件將難以發(fā)揮作用。因此,研究如何設計一個精簡、有效的企業(yè)信息管理體系,使得該企業(yè)信息管理信息系統(tǒng)更有效、更便捷地支持企業(yè)項目管理體系,從而提高企業(yè)的自身項目管理能力,是具有重大的實際應用意義的。該課題就是基于某公司性質所精簡設計,也是更好的為管理員所方便操作設計。2.企業(yè)員工管理系統(tǒng)分析2.1工具分析2.1.1Linux平臺Linux是一套開源的Unix操作系統(tǒng),它是一個基于POSIX和Unix的多任務、多用戶、支持多線程和多CPU的操作系統(tǒng)。它可以運行主要的Unix工具軟件、應用程序和網(wǎng)絡協(xié)議。可以支持32位和64位硬件,繼承了以Unix網(wǎng)絡為主要的核心設計思想,是一個性能穩(wěn)定的多用戶網(wǎng)絡操作系統(tǒng)。其主要特性:(1)完全免費。Linux是一款免費且開源的操作系統(tǒng),用戶可以免費獲得資源并對其進行修改。也正是由于它是開源的,無數(shù)的程序員參與了對Linux系統(tǒng)的編寫及修改工作,使得其功能更強大、更好用,都能彼此兼容,可方便地實現(xiàn)互連。(2)完全兼容POSIX1.0標準。使得可以在Linux下通過相應的模擬器運行常見的DOS、Windows程序。(3)多用戶、多任務。Linux支持多用戶,各個用戶對自己的文件設備有自己特殊的權利,保證用戶之間互不干擾,互不影響。Linux也支持多任務,即多個程序同時并獨立運行??雌饋韱拥膽贸绦蚝孟裨诓⑿羞\行,而事實上,從處理器執(zhí)行一個應用程序中的一組指令到Linux調(diào)度微處理器再次運行這個程序之間,只有很短的時間延遲,對于用戶來說是感覺不出來的。(4)良好的界面用戶界面和系統(tǒng)調(diào)用。Linux的傳統(tǒng)用戶界面是基于文本的命令行界面,即shell。shell有很強的程序設計能力,用戶可方便地用它編制程序,從而為用戶擴充系統(tǒng)功能提供了更高級的手段??删幊蘏hell是指將多條命令組合在一起,形成一個Shell程序,這個程序可以單獨運行,也可以與其他程序同時運行,用戶可以在編程時直接使用系統(tǒng)調(diào)用命令。系統(tǒng)通過這個界面為用戶程序提供低級、高效率的服務。Linux還為用戶提供了圖形用戶界面,利用鼠標、窗口、菜單、滾動條等設施,為用戶呈現(xiàn)出一個直觀、交互性強、易操作的圖形化界面。(5)支持多種平臺。Linux可以運行在多種硬件平臺上,例如:X86、SPARC、Alpha等處理器的平臺。另外,Linux也還是一種嵌入式操作系統(tǒng),常被用于電腦、機頂盒或者游戲機上。同時,Linux也支持多處理器技術,多個處理器同時操作,使系統(tǒng)的性能得到大大的提高。(6)可靠的系統(tǒng)安全。Linux采取了許多安全技術措施,包括對讀、寫進行權限控制、帶保護的子系統(tǒng)、審計跟蹤、核心授權等,為各個用戶在網(wǎng)絡環(huán)境中提供了一種必要的安全保障。2.1.2SQLite數(shù)據(jù)庫SQLite是一款輕型的數(shù)據(jù)庫,是遵守ACID的關系型數(shù)據(jù)庫管理系統(tǒng),其包含在一個相對小的C庫中。它的設計目標是嵌入式的,目前在很多嵌入式產(chǎn)品中使用了它,它所占用資源非常低。而在嵌入式設備中,只需要幾百K的內(nèi)存就完全足夠了。除此之外,它還能支持Windows/Linux/Unix等主流的操作系統(tǒng),同時能夠跟很多種程序語言結合,如:C/C++/php/Java/C#等語言。它沒有數(shù)據(jù)庫服務器的概念,它的程序庫直接鏈接到應用程序中。SQLite主要特性:(1)零配置。即無需安裝和管理配置;(2)是存儲在單一磁盤文件中的一個完整的數(shù)據(jù)庫;(3)它的數(shù)據(jù)庫文件可以在不同字節(jié)順序的機器間自由共享;(4)SQLite足夠小,全部源碼只有三萬行C代碼,雖然只有250KB,卻可以支持數(shù)據(jù)庫大小至2TB;(5)比目前流行的大多數(shù)數(shù)據(jù)庫對數(shù)據(jù)的操作要快許多;一些能夠真正表現(xiàn)SQLite優(yōu)越性能的領域是WEB網(wǎng)頁站點,可以使用SQLite管理應用程序數(shù)據(jù)、快速應用程序原型制造和培訓工具。SQLite由于資源占用少、性能良好和零管理成本,嵌入式數(shù)據(jù)庫成了它的用武之地,它將為那些以前無法提供用作持久數(shù)據(jù)的后端的數(shù)據(jù)庫的應用程序提供了高效的性能。SQLite之類的嵌入式數(shù)據(jù)庫的易于使用性,可以加快應用程序的開發(fā),并使得小型應用程序能夠完全支持復雜的SQL。對于小型設備空間的應用程序來說顯得尤其重要。嵌入式數(shù)據(jù)庫對于加快應用程序開發(fā)也很重要,尤其是在用于數(shù)據(jù)庫抽象層,目前SQLite還在積極開發(fā)中,未來一定會有新的功能,會對開源社區(qū)更有用。2.1.3Boa服務器Boa是一個單任務的WEB服務器,類似管道一樣,只能按順序依次完成用戶的請求,而不會創(chuàng)建出新的進程處理并發(fā)連接請求。但Boa支持CGI,能夠為CGI程序fork出一個進程來執(zhí)行。Boa的設計目標就是速度和安全,在其站點公布的性能測試中,Boa的性能要好于apache服務器。另外它還是一個非常小巧的WEB服務器,其可執(zhí)行代碼只有60K左右。隨著網(wǎng)絡技術的發(fā)展,在嵌入式設備的管理和交互中,基于WEB方式的應用已成為主流,用戶可以直接通過遠程登錄的方式對設備進行相應的管理和維護,極大方便了其使用性。2.2需求分析2.2.1功能需求本課題設計的是由三個不同身份的管理員進行登錄,這三種分別是系統(tǒng)管理員、審計管理員、安全管理員。他們因為職責不同,相應的分工也是不同的,也是其分別在所在的主控頁面相應的進行一些不同的需求操作,以下是對各操作的介紹:(1)系統(tǒng)管理員。在設備管理頁面,主要修改IP及端口號,方便不同的服務器使用該系統(tǒng),讓管理員進行登錄;在個人中心可以修改自己的登錄密碼。(2)安全管理員。在人員管理頁面,可以進行對員工進行添加、刪除和編輯,也可以根據(jù)其需求進行先查詢,然后在進行刪改,在個人中心可以修改自己的登錄密碼。(3)審計管理員。頁面記錄了系統(tǒng)管理員和安全管理員對數(shù)據(jù)庫進行的操作,比如員工的一些信息的增刪改,在審計頁面也是一目了然,在個人中心可以修改自己的登錄密碼。2.2.2數(shù)據(jù)需求(1)數(shù)據(jù)錄入處理的準確性和實時性。數(shù)據(jù)的輸入是否準確會影響數(shù)據(jù)運用時是否可用還是不可用。由于數(shù)據(jù)的輸入是管理員進行手工輸入,而對于某些數(shù)據(jù)的輸入是要有容錯性和某些硬性要求的,比如手機號是11位,如果少于或者超出就會提示手機位數(shù)不正確等。有時候數(shù)據(jù)的輸入是很大量的,所以對系統(tǒng)的處理能力要求較高,以保證能夠迅速的處理數(shù)據(jù)。另外在運用該系統(tǒng)時,也需要對操作人員進行系統(tǒng)的簡單培訓,能夠讓其熟練運用。(2)數(shù)據(jù)的安全性。該系統(tǒng)是為某公司管理部門專門設計,因此只有給定身份并且擁有權限的管理者才能進入系統(tǒng),才可以對系統(tǒng)進行增刪查改等操作。2.3技術選擇2.3.1CGI的選擇及特點CGI(CommonGatewayInterface):公共網(wǎng)關接口。它是WWW技術中最重要的技術之一。CGI是外部應用程序(CGI程序)與WEB服務器之間的接口標準,是在CGI程序和WEB服務器之間傳遞信息的規(guī)程。CGI規(guī)范允許WEB服務器執(zhí)行外部程序,并將它們的輸出發(fā)送給WEB瀏覽器,CGI將WEB的一組簡單的靜態(tài)超媒體文檔變成一個完整的新的交互式媒體,以實現(xiàn)網(wǎng)頁前端和后臺的交互。它在物理上是一段程序,是運行在服務器上,提供同客戶端HTML頁面的接口。例如:現(xiàn)在的個人主頁上有著諸多按鈕和文本欄,需要有管理員先輸入一些信息或者點擊按鈕(到目前為止工作都在客戶端),瀏覽器把這些信息傳送到服務器的CGI目錄下特定的CGI程序中,于是CGI程序在服務器上按照預定的方法進行相應的處理。在本例中就是把用戶提交的信息存入指定的文件中或者執(zhí)行對應按鈕的操作實現(xiàn)。然后CGI程序給客戶端發(fā)送一個信息,表示請求的任務已經(jīng)結束。功能是處理來自表單的輸入信息,并在服務器產(chǎn)生相應的處理,或將相應的處理后的信息反饋給瀏覽器。因為任何的HTML均是靜態(tài)網(wǎng)頁,它無法實現(xiàn)一些復雜的功能,所以CGI可以為我們實現(xiàn)以下功能:(1)列出服務器上某個目錄的文件,對目錄中的文件進行操作;(2)通過CGI實現(xiàn)串口通訊;(3)實現(xiàn)數(shù)據(jù)庫接口;(4)CGI基于瀏覽器的內(nèi)容執(zhí)行相應的操作,把結果格式化為網(wǎng)絡服務器和瀏覽器能夠理解的文檔(html網(wǎng)頁);CGI運行環(huán)境最初在UNIX操作系統(tǒng)上,在以CERN或NCSA格式的服務器上運行,后來Windows的服務器上也廣泛使用CGI程序,同時它也適用于各種類型機器。2.3.2cJSON的選用及特點JSON(JavaScriptObjectNotation)是一種輕量級的數(shù)據(jù)交換格式,易于人閱讀和編寫,同時也易于機器解析和生成(網(wǎng)絡傳輸速度快)。它基于JavaScript(Java腳本)的一個子集。是一個輕巧,攜帶方便,單文件,可以作為ANSI-C標準的JSON解析器。JSON可以將JavaScript對象中表示的一組數(shù)據(jù)轉換為字符串,然后就可以在函數(shù)之間輕松地傳遞這個字符串,或者在異步應用程序中將字符串從WEB客戶機傳遞給服務器端程序。雖然這些字符串看起來有點兒奇怪,但是JavaScript卻很容易解釋它,而且JSON可以表示比"名稱/值對"更復雜的結構。例如,可以表示數(shù)組和復雜的對象,而不僅僅是鍵和值的簡單列表。另外,JSON是JavaScript原生格式,這意味著在JavaScript中處理JSON數(shù)據(jù)不需要任何特殊的API或工具包。可以輕松地將數(shù)據(jù)轉換為可以在請求中發(fā)送給服務器端程序的格式。它的具體形式編輯:(1)對象是一個無序的“‘名稱/值’鍵值對”(key/value)的集合。a.一個對象以“{”(左括號)開始,“}”(右括號)結束。b.每個“名稱”后跟一個“:”(冒號);c.“‘名稱/值’對”之間使用“,”(逗號)分隔。{ “姓名”:“李明”, “年齡”:23 }(2)數(shù)組是值(value)的有序集合。a.一個數(shù)組以“[”(左中括號)開始,“]”(右中括號)結束。b.值之間使用“,”(逗號)分隔。 {“學生”: [ {“姓名”:“李明”,“年齡”:23}, {“姓名”:“小張”,“年齡”:22} ] }2.3.3JavaScript的使用及特點JavaScript是世界上最流行的編程語言,可廣泛用于HTML和WEB,也廣泛用于PC、筆記本電腦、智能手機、平板服務器等設備。JavaScript也是常被用于客戶端的腳本語言,是一種輕量級的編程語言。它常用于WEB應用開發(fā),可以插入HTML頁面的編程代碼,用來給網(wǎng)頁增加一些動態(tài)功能。JavaScript提供了四種基本的數(shù)據(jù)類型和兩種特殊數(shù)據(jù)類型用來處理數(shù)據(jù)和文字。而變量提供存放信息的地方,表達式則可以完成較復雜的信息處理。通常JavaScript腳本是通過嵌入在HTML中來實現(xiàn)自身功能的。它的特點有:(1)JavaScript是一種解釋性腳本語言(代碼不進行預編譯)。(2)主要用來向HTML頁面添加交互行為。(3)可以直接嵌入HTML頁面,但寫成單獨的js文件有利于結構和行為的分離。(4)跨平臺特性,在絕大多數(shù)瀏覽器的支持下,可以在多種平臺下運行,如Windows、Linux、Android、IOS等。不同于服務器語言,如PHP和ASP,JavaScript主要被用作客戶端腳本語言在用戶瀏覽器上運行,不需要服務器的支持,所以相比較而言更具有安全性,而它也逐漸被用來編寫服務端程序。作為一種腳本語言。JavaScript是一種解釋型的腳本語言,C、C++等語言先編譯后執(zhí)行,而JavaScript是在程序的運行過程中逐行進行解釋。所以在早期程序員比較青睞于JavaScript以減少對服務器的負擔,當然也帶來另一個問題:安全性。然而隨著服務器的健壯,雖然程序員更喜歡運行于服務端的腳本以保證安全,隨著引擎如V8和框架如Node.js的發(fā)展,及其事件驅動及異步IO等特性,JavaScript逐漸被用來編寫服務器端程序。2.4技術可行性2.4.1可靠性由于必須為企業(yè)提供安全的服務,尤其是保證在有外網(wǎng)接入時,Internet上訪問到的該系統(tǒng)的安全。通過使用cookie方法,使其在網(wǎng)頁端顯示不會在未登錄時就能進入系統(tǒng),這樣做的目的是防止系統(tǒng)和數(shù)據(jù)庫里面的數(shù)據(jù)被篡改。無論是以什么身份登陸的系統(tǒng),其操作只是在網(wǎng)頁前端對數(shù)據(jù)庫進行操作,決不允許直接進入庫進行操作,其目的就是防止別人直接對庫進行操作后,會產(chǎn)生一些不必要的麻煩,甚至對系統(tǒng)產(chǎn)生不可預見的錯誤。2.4.2可行性經(jīng)過仔細設計和測試之后的系統(tǒng)具有操作簡單,方便靈活等優(yōu)點,方便了公司的內(nèi)部管理。只要管理人員有著對計算機的一些基本了解,一定會在短時間內(nèi)掌握并熟練使用。只要動一動鼠標鍵盤就可以達到想要的效果。鍵盤輸入也相對簡單明了。在進行相應的操作時更方便靈活。3.企業(yè)員工管理系統(tǒng)設計3.1系統(tǒng)設計主流程圖圖3.1員工管理系統(tǒng)流程圖如圖3.1所示,該流程圖是對整個系統(tǒng)整體框架的一個解釋,主要的有三大模塊即三位不同身份的非管理員登陸后進行相應的操作,每個模塊都是獨立存在的,但是又互相關聯(lián),例如個人中心對用戶信息的修改,三個管理員的信息只有在安全管理員進入后才可以對他們的信息進行修改。3.2系統(tǒng)功能模塊設計3.2.1身份模塊該系統(tǒng)中為了滿足該企業(yè)的需求,在登錄進入系統(tǒng)時,設置了三個不同身份的管理員進行登錄,進入系統(tǒng)后所執(zhí)行的操作也是不盡相同,該三種登錄身份如下:(1)系統(tǒng)管理員。由于在不同的系統(tǒng)下所持有的IP和端口號是不同的,為了系統(tǒng)有可移植性,需要系統(tǒng)管理員在設備管理頁面修改IP及端口號,方便不同的平臺下進行登錄;而該系統(tǒng)管理員也可以在自己的頁面,即個人中心可以修改自己的登錄密碼。(2)安全管理員。由于公司員工的不確定性和考慮到人員的流動性,在人員管理頁面,安全管理員在進入該界面,進行對員工信息的錄入,實現(xiàn)員工信息的添加以及對已有員工信息的修改即編輯,在編輯的同時,注意唯一不可修改的是員工號,這是在錄入信息后是唯一不變的;如果某位員工已離職,可以對該員工信息進行刪除,方便管理員統(tǒng)計。而該安全管理員也可以在自己的頁面,即個人中心可以修改自己的登錄密碼。(3)審計管理員。在審計管理員登陸后,可以實時查看其他兩位管理員對該系統(tǒng)登陸后進行操作的統(tǒng)計,例如安全管理員對員工的添加、刪除和編輯,以及系統(tǒng)管理員對該設備的管理;還有審計管理員可以根據(jù)修改的時間、或者具體的管理員類型以及操作類型對系統(tǒng)操作進行查看,方便后續(xù)出現(xiàn)問題能夠責任到人。而該審計管理員也可以在自己的頁面,即個人中心可以修改自己的登錄密碼。3.2.2主要頁面模塊顯示(1)設備管理模塊。在系統(tǒng)管理員登陸后,可以對IP和端口號進行修改,以方便在不同的平臺設備中設置登陸需要的環(huán)境條件(此功能有bug),如圖3.2所示。圖3.2網(wǎng)頁顯示設備管理(2)人員管理。安全管理員登陸系統(tǒng)化后,可以實現(xiàn)人員的添加、刪除、編輯以及根據(jù)證件號對員工進行查詢后刪改,如圖3.3所示。圖3.3網(wǎng)頁顯示人員管理(3)日志審計。該功能是對系統(tǒng)管理員和安全管理員登錄后執(zhí)行的一些操作記錄的統(tǒng)計,方便在審計管理員不定時或者按照時間等操作內(nèi)容等條件進行查看,如圖3.4所示。圖3.4網(wǎng)頁顯示日志審計(4)添加、編輯員工信息。在這個頁面安全管理員可以對員工信息進行增刪改,如圖3.5所示。圖3.5網(wǎng)頁顯示頁面員工添加編輯(5)個人中心。不論是哪一位管理員登錄,在進入個人中心頁面時,都可以查看自己的信息,也可以修改自己登錄密碼,如圖3.6所示。圖3.6網(wǎng)頁顯示個人中心注:在個人中心頁面會顯示出用戶信息,顯示的有用戶名、電話、郵箱、等證件號之類的,除了用戶名和證件號是唯一不變的,其他都可以在安全管理員的人員管理頁面進行修改,當然也是只有安全管理員才有權限修改三個管理員的信息。3.3數(shù)據(jù)庫表的設計根據(jù)該公司的需求,對于數(shù)據(jù)庫需要事先設計幾張數(shù)據(jù)表,其中包括對員工信息保存的表,對員工操作的表,另外還有一些經(jīng)過查詢后間接通過保存的表,其功能如下:3.3.1登錄表存儲用戶信息并在用戶登錄需要進行調(diào)用及驗證登陸是否成功,如表3.1。表3.1登陸表(role)角色id用戶名證件號郵箱電話號碼密碼創(chuàng)建時間備注UseridUsernameCertificateMailPhonePasswordCreatetimecommentadminadmin1208xxx@163.com138888888880000000sqfersafer1209xxx@137777777770000000AuditorAuditor1210xxx@1864671888100000003.3.2人員管理表管理員進入系統(tǒng)可以對用戶信息表進行增刪改查等相應操作,如表3.2。表3.2人員管理表(userinfo)角色id用戶名證件號郵箱電話號碼密碼創(chuàng)建時間備注UseridUsernameCertificateMailPhonePasswordCreatetimecommentadminadmin1208xxx@163.com138888888880000000sqfersafer1209xxx@163.com137777777770000000AuditorAuditor1210xxx@163.com186467188810000000Pchy海文1504xxx@163.com130219077532015-05-2819:11:520Zhangsan張三1211xxx@163.com131201211232015-05-2819:21:1103.3.3管理員操作記錄表由于不同的管理員進入系統(tǒng)后可能會執(zhí)行不同的操作,該表就是記錄他們的登錄以及一些實時操作,如表3.3:表3.3管理員操作記錄表(operatelog)useridtimeoperatetypewhatoperateresultcomment用戶id操作時間操作內(nèi)容具體操作操作結果備注安全管理員2015-05-1419:10:26登錄系統(tǒng)登錄系統(tǒng)成功安全管理員2015-05-1419:11:52添加員工添加員工小明成功安全管理員2015-05-1419:12:01修改員工修改員工:小明職位成功審計管理員2015-05-1610:12:09登錄系統(tǒng)登錄系統(tǒng)成功注:由于系統(tǒng)是要對顯示信息進行查找操作,所以為方便將查詢后的數(shù)據(jù)存儲,在數(shù)據(jù)庫里面重建新表(newoperate),即復制從查詢的表中的類型。然后在顯示時,直接將新表中查詢到的數(shù)據(jù)在頁面顯示。在每次執(zhí)行完查詢后都將對該新建的表的內(nèi)容進行刪除,以保證下次再進行查詢插入時,不會出現(xiàn)信息的追加,造成錯誤。例如:根據(jù)userid是安全管理員和operatetype是修改員工,這一條件進行查詢后的結果顯示,如表3.4:表3.4查詢后存放的表(newoperate)useridtimeoperatetypewhatoperateresultcomment安全管理員2015-05-1719:10:26修改員工修改員工:admin電話成功安全管理員2015-05-1719:11:26修改員工添加員工小明成功安全管理員2015-05-1719:12:01修改員工修改員工:小明職位成功安全管理員2015-05-1819:10:26修改員工編輯員工海文成功4.企業(yè)員工管理系統(tǒng)的實現(xiàn)4.1WEB頁面實現(xiàn)WEB作為圖形界面,讓不了解計算機深層運行的一些管理員,更方便的直接對該系統(tǒng)操作,頁面一目了然,方便各位管理員在自己登錄后顯示的頁面上進行直接的操作,而不必擔心其他問題,以下是一些主要界面的顯示:4.1.1頁面登錄圖4.1頁面登陸如上圖4.1所示,實現(xiàn)的部分代碼:(1)密碼校驗:<tr><td><inputid="psw"type="text"class="fontcolor"value="密碼"/><inputid="pwd"type="password"class="userFocused"style="display:none"/></td></tr>(2)管理員登錄<tr><td><inputtype="button"id="loginbutton"value="登錄"/></td></tr>(3)下拉列表<td><selectid="user"><optionvalue="admin">系統(tǒng)管理員</option><optionvalue="safer">安全管理員</option><optionvalue="auditor">審計管理員</option</select></td>4.1.2頁面添加、刪除及編輯人員圖4.2添加、編輯人員如上圖4.2所示,實現(xiàn)的部分代碼:<divclass="overlay_head"><spanid="headfont"> 添加人員</span></div><tr><tdclass="panel">用戶名:</td><td><inputtype="text"id="add_id"class="input_text"/><spanclass="required">*</span></td></tr>……<divid="overlay_footer"><inputtype="button"class="overlay_btn"id="btn_send"value="提交"/><inputtype="button"class="overlay_btn"id="btn_close"value="取消"/></div>4.1.3個人中心(1)用戶信息的顯示<liid="data_audit"class="first_menu_sty1"><ahref="equip_manage.htm">設備管理</a></li><liid="user_set"class="first_menu_sty2"><ahref="#">個人中心</a></li><tr><td>電話:<spanid="info_Tel"></span></td><td>證件號:<spanid="info_Id"></span></td>(2)管理員密碼的修改及顯示</tr><tdclass="txt_right">原密碼:</td><td><inputtype="password"id="old_pwd"class="pwd_change"/><tdclass="txt_right">新密碼:</td><td><inputtype="password"id="new_pwd"class="pwd_change"/></td>4.1.4日志審計(1)主體部分:管理員類型:<selectid="admin_type"><optionvalue="系統(tǒng)管理員">系統(tǒng)管理員</option><optionvalue="安全管理員">安全管理員</option><optionvalue="審計管理員">審計管理員</option></select>操作類型:<inputid="operate_type"class="log_input_txt"type="text"/>操作內(nèi)容:<inputid="operate_info"class="log_input_txt"type="text"/>操作時間:<inputtype="text"id="startDate"class="Wdate"(2)查詢條件顯示:<tableclass="list_table"><tr><th>管理員</th><th>操作時間</th><th>操作類型</th><th>操作內(nèi)容</th><th>結果</th></tr>(3)頁碼顯示:<divid="content_foot"><span>共<spanid="log_count"></span>條記錄!</span><inputtype="button"id="pre"onclick="pre_()"/><inputtype="text"readonly="readonly"id="page_num"/>/<spanid="all_page"style="margin-right:0px;"></span><inputtype="button"id="next"onclick="next_()"/></div>4.1.5人員管理(1)正文顯示:<divid="content_title"><span>人員管理>全員顯示</span></div><divid="btn"><inputtype="button"id="btn_add"class="button"value="添加"/><inputtype="button"id="btn_del"class="button"value="刪除"/><inputtype="button"id="btn_edit"class="button"value="編輯"/><inputtype="text"id="name_txt"placeholder="請輸入證件號"/><imgsrc="../images/btn_searchUser.png"alt="select"id="search_name"/></div>(2)添加員工信息<tr><tdclass="panel">用戶名:</td><td><inputtype="text"id="add_id"class="input_text"/><spanclass="required">*</span></td></tr>(3)按鈕<divid="overlay_footer"><inputtype="button"class="overlay_btn"id="btn_send"value="提交"/><inputtype="button"class="overlay_btn"id="btn_close"value="取消"/></div>4.2后臺功能實現(xiàn)在系統(tǒng)登錄和進行增刪改查時,就需要對數(shù)據(jù)庫SQLite3進行操作,在設計的時候就是將每一個員工的所有信息,通過WEB端進行打包(即封裝為結構體)然后通過boa服務器發(fā)送給后臺,然后在后臺進行分別解析,分別存儲在相應的位置,將需要的信息拿出給頁面顯示。例人員管理的結構體如下:typedefstruct{charuserid[1024];charusername[1024];charposition[1024];charcertificate[1024];charphonenum[1024];charmail[1024];charpassword[1024];}staff;staticstaffstaff_info;4.2.1數(shù)據(jù)庫的應用因為各個頁面均需要對數(shù)據(jù)庫SQLite3進行訪問,所以就需要對其進行操作。對數(shù)據(jù)庫的操作無非就是數(shù)據(jù)的增刪改查。當然在數(shù)據(jù)庫進行操作前需要打開數(shù)據(jù)庫,而在操作完數(shù)據(jù)庫后要進行關閉。對數(shù)據(jù)庫操作運用如下:(1)數(shù)據(jù)庫的打開: intsqlite3_open(char*path,sqlite3**db);path:需要打開的數(shù)據(jù)庫文件路徑;db:指向sqlite句柄的指針;(2)使用回調(diào)函數(shù)執(zhí)行sql語句:intsqlite3_exec(sqlite3*db,constchar*sql,sqlite3_callbackcallback,char**errmsg);callback:回掉函數(shù);errmsg:錯誤信息指針的地址;intsql_callback(void*para,intf_num,char**f_value,char**f_name);para:傳遞給回掉函數(shù)的參數(shù);f_num:記錄中包含的字段數(shù)目;f_value:包含每個字段名稱的指針數(shù)組;f_name:包含每個字段名稱的指針數(shù)組;(3)不使用回調(diào)函數(shù)執(zhí)行sql語句:intsqlite3_get_table(sqlite3*db,constchar*sql,char***resultp,int*ncolumn,char**errmsg);resultp:用來指向sql執(zhí)行結果的指針;nrow:滿足條件的記錄的數(shù)目;ncolumn:每條記錄包含的字段數(shù)目;(4)關閉數(shù)據(jù)庫:sqlite3_close(mydb)4.2.2管理員登錄(1)密碼校驗。系統(tǒng)登錄時需要判斷管理員與其密碼是否匹配,只有用戶名與密碼匹配成功后方可進入系統(tǒng)。每次登陸系統(tǒng),每個管理員會有5次登陸機會,如果在這5次密碼輸入都是錯誤的則會提示會在半小時后重新登陸。//登陸管理員類型與密碼匹配實現(xiàn)代碼:sql=sqlite3_mprintf("select*fromuserinfowhereuserid='%q'andpassword='%q'",uid,pword);//校驗管理員類型和密碼匹配成功后還有幾次機會提示if(!strcmp(status_info.status,"2")){sql_2=sqlite3_mprintf("updateuserinfosetstatus='1'whereuserid='%q'",uid);//校驗密碼輸入錯誤還有幾次機會,往頁面?zhèn)魉蛿?shù)據(jù)case2:cJSON_AddStringToObject(fld,"msg","test1");cgiHeaderContentType("text/html"); out=cJSON_Print(root); fprintf(cgiOut,out);free(out); cJSON_Delete(root);break;(2)密碼修改。登錄系統(tǒng)后,每個管理員都可以在各自的個人中心中進行密碼的修改,也是為了各自帳號信息安全。修改后的密碼將會重新保存在數(shù)據(jù)庫里。實現(xiàn)代碼:sql_5=sqlite3_mprintf("updateuserinfosetpassword='%q'whereuserid='%q'",npass_word,user);if(SQLITE_OK!=sqlite3_exec(mydb,sql_5,NULL,NULL,&errmsg)){printf("failtoexec:%s\n",errmsg);sqlite3_free(errmsg);}注:在修改密碼時,也是應某公司要求,為增強密碼的安全性,如果需要修改密碼則會要求密碼至少有8位,包含數(shù)字、字母(含大小寫),如圖4.3。圖4.3修改密碼錯誤提示//pass_word是修改后的密碼,是比較兩次輸入是否一致;if(0==user_login(user_id,pass_word)){if(!strcmp(pass_new,pass_reset)){update_password(user_id,pass_new);cJSON_AddStringToObject(fld,"msg",ss);out=cJSON_Print(root);cgiHeaderContentType("text/html");fprintf(cgiOut,out);}}else{cJSON_AddStringToObject(fld,"msg",“兩次輸入密碼不匹配,請重新輸入”);out=cJSON_Print(root);cgiHeaderContentType("text/html");fprintf(cgiOut,out);}4.2.3人員管理人員添加編輯和刪除。安全管理員要對該企業(yè)人員的管理進行整合需要進行增刪改查,在人員管理頁面有需要添加人員。(1)人員添加。分別對輸入的信息對應相應的結構體的對象,打包后再數(shù)據(jù)表里面存儲。sql=sqlite3_mprintf("insertintouserinfovalues('%q','%q','%q','%q','%q','','%q',datetime('now','+8hour'),'','','%q','','','')",staff_info.userid,staff_info.username,staff_info.certificate,staff_info.mail,staff_info.phonenum,staff_info.password,staff_info.position);(2)人員編輯:對已經(jīng)存在的人員信息修改,是根據(jù)證件號修改,因為證件號是唯一不變的,所以通過證件號匹配,然后找到需要修改的員工信息。sql=sqlite3_mprintf("select*fromuserinfowherecertificate='%q'",staff_info.certificate);(3)人員刪除:對于員工的刪除,雖然在網(wǎng)頁上是勾選前面對應的方框,其實在后臺設計的同時,就是根據(jù)其證件號進行刪除,因為每一個id對應著唯一的證件號,所以在刪除員工時,就是利用證件號刪除員工。sql=sqlite3_mprintf("deletefromuserinfowherecertificate='%q'",staff_info.certificate);(4)人員查詢:由于在查詢的過程中,用戶不知道具體是按照什么條件進行查詢,所以就需要對管理員所給的條件進行整合,在此使用了標志位,分別對這需要查詢的五項設置標志位,如果需要通過此查詢就設置為1,不需要則為0,然后將需要按照哪些條件進行合并以此完成查詢。實現(xiàn)主要部分代碼:intid_flag=0,ot_flag=0,wo_flag=0,st_flag=0,et_flag=0;//通過判斷輸入框中有無數(shù)據(jù)進行置位。if(strlen(operate_info.userid)!=0){ id_flag=1; sprintf(sql_id,"userid='%s'",operate_info.userid);}if(strlen(operate_info.password)!=0){ id_flag=1; sprintf(sql_id,"userid='%s'",operate_info.password);}……注:如果用戶按照操作時間進行查詢時,則是按模糊查詢方式進行數(shù)據(jù)查詢。將獲得的條件進行整合,然后再從原表里面查詢,然后將查詢后得到的數(shù)據(jù)插入到另外一張新表,即newoperate,最后將newoperate表中的數(shù)據(jù)傳送至頁面顯示。sprintf(sql_ot,"opertatetypelike%s",operate_info.operateid);//標志位進行整合,完成對數(shù)據(jù)庫操作前的最后一步if((id_flag||ot_flag||wo_flag||st_flag||et_flag)!=0) strcat(sql,"insertintonewoperateselect*fromoperatelogwhere");else{strcat(sql,"select*fromoperatelog");flag=1;}……if(wo_flag==1){ strcat(sql,"and");strcat(sql,sql_wo); if(st_flag==1){ strcat(sql,"and");strcat(sql,sql_st); if(et_flag==1){ strcat(sql,"and");strcat(sql,sql_et); } }else{ if(et_flag==1){ strcat(sql,"and");strcat(sql,sql_et); }} }else{ if(st_flag==1){ strcat(sql,"and");strcat(sql,sql_st); if(et_flag==1){ strcat(sql,"and");strcat(sql,sql_et); } }else{ if(et_flag==1){ strcat(sql,"and");strcat(sql,sql_et); }}}if((id_flag||ot_flag||wo_flag||st_flag||et_flag)!=0)//判斷條件成立strcat(sql,"insertintonewoperateselect*fromoperatelogwhere");strcat(sql,sql_et); sql_3=sqlite3_mprintf("select*fromnewoperateorderbyrowidlimit'%d'offset'0'",i);//顯示時需要執(zhí)行的sql語句;這是最終在表operatelog中查詢的數(shù)據(jù)插入到新表newoperate中,然后在頁面顯示查詢后的結果;4.2.4頁碼隨著系統(tǒng)的不斷運行,插入到表里的數(shù)據(jù)也會不斷增多,所以為方便對已有數(shù)據(jù)的管理和操作,所以在每一頁下面有頁碼標識,每一頁要顯示多少行信息可以對宏定義NPAGE所代表的數(shù)字進行改變,下面是以每頁8行的數(shù)據(jù)顯示,實現(xiàn)代碼:#defineNPAGE8//設置每一頁顯示的數(shù)據(jù)為8條 //判斷每頁是否打印滿,如果不是則循環(huán)次數(shù)是不一樣的if((nrow-page*NPAGE)>0){ret=NPAGE;}elseif((nrow-(1)*NPAGE>=0)&&(nrow-(1)*NPAGE)<=NPAGE){ ret=nrow-((1)*NPAGE);}else exit(0);if((nrow%NPAGE)==0){ pagetoa=(nrow/NPAGE);//pagetoa是返回網(wǎng)頁端顯示當前為第幾頁}else{ pagetoa=(nrow/NPAGE)+1;}4.2.5JSON數(shù)據(jù)傳送JSON作為一種數(shù)據(jù)轉換格式,與XML有著不可比擬的優(yōu)勢。從編碼的可讀性,xml與人類語言相貼近,而機器則更容易閱讀JSON合適的數(shù)據(jù),所以選用JSON作為我們所需要傳輸數(shù)據(jù)格式。實現(xiàn)代碼:cJSON*root,*fld,*img;root=cJSON_CreateObject();cJSON_AddItemToObject(root,"data",img=cJSON_CreateArray());cJSON_AddItemToArray(img,fld=cJSON_CreateObject());//數(shù)據(jù)交互格式cJSON_AddStringToObject(fld,"userid",“admin”);cJSON_AddStringToObject(fld,"userid",“safer”);……cJSON_Delete(root);數(shù)據(jù)樣本:{“data”:[{“userid”:“admin”,“username”:“admin”,“certificate”:1208,……},{“userid”:“safer”,“username”:“safer”,“certificate”:1209,……},{“userid”:“auditor”,“username”:“auditor”,“certificate”:1210,……}]}5.系統(tǒng)測試5.1頁面測試(1)錯別字。頁面中的標題、文本內(nèi)容中出現(xiàn)錯別字。這設計好的定義等一些規(guī)則進行調(diào)用。而這種小錯誤因為簡單和細小測試時如果不細心,一目而過,可能會出現(xiàn)在提示信息或頁面中。(2)格式。有些格式也是特別留心的,雖然感覺沒問題,但是與頁面設計的標準有沖突,這種情況一般是我們在使用一些專業(yè)術語時,混雜了自己的理解出現(xiàn)所出現(xiàn)的不應由的錯誤,也是由于在設計之初沒有統(tǒng)一規(guī)范用語所導致的。(3)頁面顯示。在明顯有字體、字號不同的情況,使頁面整體風格看上去很別扭,這種
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五司機擔保書
- 物業(yè)委托協(xié)議書
- 公司分紅股東合同樣本
- 鄉(xiāng)村垃圾場清理合同樣本
- 陜西省第二商貿(mào)學校校企合作實施方案
- 便民貨車出售合同樣本
- 八一路租房合同樣本
- 教師送教下鄉(xiāng)活動方案
- 標準版房屋租賃合同范本
- TFTP協(xié)議的SDL設計與C實現(xiàn)
- 日語N5試題完整版
- 2023年鄭州黃河文化旅游發(fā)展有限公司招聘考試真題
- 重大火災隱患判定方法
- 中國發(fā)作性睡病診斷與治療指南(2022版)
- 2023-2024學年北京市通州區(qū)高一下學期期中物理試卷(解析版)
- (完整版)設備吊裝施工方案
- 重慶市高2025屆高三第二次質量檢測 數(shù)學試卷(含答案)
- 無人機創(chuàng)客實驗室方案
- 2024年四川省樂山市中考地理·生物合卷試卷真題(含答案)
- JT-T-155-2021汽車舉升機行業(yè)標準
- QCT457-2023救護車技術規(guī)范
評論
0/150
提交評論