版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
蘭州交通大學(xué)畢業(yè)設(shè)計(jì)(論文)PAGEIII摘要現(xiàn)如今因?yàn)榻?jīng)濟(jì)全球化,社會(huì)文明的進(jìn)步,互聯(lián)網(wǎng)得到空前的發(fā)展,計(jì)算機(jī)的高效性也給人們的生活和工作帶來了極大的便利;信息化、電子化已經(jīng)成為了節(jié)約運(yùn)營(yíng)成本,提高工作效率的首選。但是由于現(xiàn)在中國(guó)大量企業(yè)還處于發(fā)展?fàn)顟B(tài),很多企業(yè)員工管理尚處于手工作業(yè)階段,這不僅效率低,而且容易出現(xiàn)紕漏。因此很多企業(yè)為了能夠整合員工、記錄生產(chǎn)狀況等信息,以提高自己的經(jīng)營(yíng)實(shí)力,也根據(jù)某企業(yè)提供的需求,設(shè)計(jì)此企業(yè)員工管理系統(tǒng),以幫助企業(yè)達(dá)到員工管理辦公自動(dòng)化、節(jié)約管理成本,從而提高工作效率的目的。通過其公司以及員工管理需求的特點(diǎn),提出了基于企業(yè)員工管理系統(tǒng)的設(shè)計(jì)和解決方案。該系統(tǒng)是用客戶端和服務(wù)器即B/S模式,采用SQLlite3數(shù)據(jù)庫(kù)、boa/cgi服務(wù)器、GCC、VI以及GDB調(diào)試等作為主要的開發(fā)工具進(jìn)行開發(fā)。系統(tǒng)的組成主要由登錄模塊和員工管理模塊。該論文主要闡述了各個(gè)模塊頁(yè)面功能的實(shí)現(xiàn)、數(shù)據(jù)庫(kù)設(shè)計(jì)運(yùn)用等組成的企業(yè)員工管理系統(tǒng),根據(jù)系統(tǒng)的實(shí)現(xiàn)功能和使用環(huán)境對(duì)系統(tǒng)作總體的規(guī)劃,最后完成了模塊的劃分和數(shù)據(jù)庫(kù)的設(shè)計(jì),以及對(duì)系統(tǒng)功能及使用進(jìn)行測(cè)試與完善。關(guān)鍵字:模塊;數(shù)據(jù)庫(kù);服務(wù)器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平臺(tái) 32642.1.2SQLite數(shù)據(jù)庫(kù) 4203862.1.3Boa服務(wù)器 4127422.2需求分析 5257102.2.1功能需求 5144442.2.2數(shù)據(jù)需求 5212542.3技術(shù)選擇 6287132.3.1CGI的選擇及特點(diǎn) 6327292.3.2cJSON的選用及特點(diǎn) 6209122.3.3JavaScript的使用及特點(diǎn) 7304332.4技術(shù)可行性 878992.4.1可靠性 8269332.4.2可行性 8267533.企業(yè)員工管理系統(tǒng)設(shè)計(jì) 981923.1系統(tǒng)設(shè)計(jì)主流程圖 9102483.2系統(tǒng)功能模塊設(shè)計(jì) 9226133.2.1身份模塊 9129153.2.2主要頁(yè)面模塊顯示 10221353.3數(shù)據(jù)庫(kù)表的設(shè)計(jì) 13145933.3.1登錄表 13134553.3.2人員管理表 13275413.3.3管理員操作記錄表 14204544.企業(yè)員工管理系統(tǒng)的實(shí)現(xiàn) 15131784.1WEB頁(yè)面實(shí)現(xiàn) 1543804.1.1頁(yè)面登錄 15290004.1.2頁(yè)面添加、刪除及編輯人員 16284104.1.3個(gè)人中心 17161174.1.4日志審計(jì) 17186254.1.5人員管理 18325934.2后臺(tái)功能實(shí)現(xiàn) 18236064.2.1數(shù)據(jù)庫(kù)的應(yīng)用 1937104.2.2管理員登錄 20319194.2.3人員管理 21171964.2.4頁(yè)碼 2471554.2.5JSON數(shù)據(jù)傳送 25119295.系統(tǒng)測(cè)試 26314015.1頁(yè)面測(cè)試 26147555.2功能測(cè)試 26178295.3性能測(cè)試 27285376.總結(jié) 2820068致謝 292720參考文獻(xiàn) 30PAGE29PAGE291.緒論現(xiàn)如今計(jì)算機(jī)科學(xué)技術(shù)也已日漸成熟,它強(qiáng)大的功能已逐漸為人們所熟知并應(yīng)用于生活。作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)企業(yè)員工信息進(jìn)行系統(tǒng)管理,對(duì)于公司對(duì)員工信息管理是相當(dāng)便捷的。不僅能夠極大地提高企業(yè)員工管理的效率,也是企業(yè)的科學(xué)化、正規(guī)化管理與世界接軌的重要條件。而網(wǎng)絡(luò)辦公自動(dòng)化是計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)迅速發(fā)展的一個(gè)辦公應(yīng)用解決方案,主要目的就是實(shí)現(xiàn)員工信息的管理來提高辦公效率,以此來解決一直以來人們使用傳統(tǒng)人工的方式管理文件檔案存在著的許多缺點(diǎn),如:效率低、保密性差和安全性低等問題。隨著計(jì)算機(jī)在企業(yè)管理中應(yīng)用的普及,利用計(jì)算實(shí)現(xiàn)企業(yè)企業(yè)員工檔案的管理勢(shì)在必行。企業(yè)員工管理系統(tǒng)是現(xiàn)代企業(yè)管理工作不可缺少的一部分,是適應(yīng)現(xiàn)代企業(yè)制度要求、推動(dòng)企業(yè)勞動(dòng)企業(yè)員工管理走向科學(xué)化、規(guī)范化的必備條件。該企業(yè)員工信息管理系統(tǒng)具備以下基本功能:(1)企業(yè)員工管理數(shù)據(jù)庫(kù)及表的操作。實(shí)現(xiàn)對(duì)企業(yè)員工管理數(shù)據(jù)庫(kù)及表的創(chuàng)建與操作,還有表中數(shù)據(jù)的維護(hù)。(2)企業(yè)員工信息的管理。實(shí)現(xiàn)員工信息的添加、查詢、編輯和刪除等。(3)企業(yè)員工信息的審計(jì)。實(shí)現(xiàn)對(duì)企業(yè)員工信息的實(shí)時(shí)查詢、統(tǒng)計(jì)等。1.1研究目的現(xiàn)代信息技術(shù)的發(fā)展使傳統(tǒng)意義上的企業(yè)員工管理的形式和內(nèi)涵,都從本質(zhì)性發(fā)生變化,企業(yè)員工管理系統(tǒng)已經(jīng)逐步在代替手工管理,而且不同的公司都有一套適合自己管理員工的系統(tǒng),其中引入了現(xiàn)代管理的思想,建立了一套可以面向企業(yè)單位的員工信息管理系統(tǒng)。本課題是基于某公司的現(xiàn)狀及實(shí)際工作中所遇到的問題所設(shè)計(jì)的一套方案,對(duì)員工管理在設(shè)計(jì)開發(fā)方面進(jìn)行研究,重點(diǎn)研究系統(tǒng)開發(fā)中所采用的開發(fā)平臺(tái)、工具和技術(shù)的使用。目的是從技術(shù)手段的角度闡述如何實(shí)現(xiàn)該公司向信息化管理模式轉(zhuǎn)變的過程。1.2研究現(xiàn)狀目前,在國(guó)內(nèi)外各大企業(yè)單位中,企業(yè)員工信息管理系統(tǒng)的使用是非常廣泛的。同時(shí),有很多的軟件開發(fā)商也開發(fā)了許多基于各種不同行業(yè)的企業(yè)員工管理系統(tǒng)。由于企業(yè)管理信息量大、操作繁瑣等原因,傳統(tǒng)的管理信息方式不再適應(yīng)新的工作需要,從而開發(fā)研制適合企業(yè)的企業(yè)員工管理系統(tǒng),使其具有整體性強(qiáng)、流程簡(jiǎn)單、操作方便、功能豐富和通用性強(qiáng)等特點(diǎn),是加快企業(yè)人才信息管理工作辦公自動(dòng)化、信息資源化和管理科學(xué)化建設(shè)進(jìn)程必要過程。是促進(jìn)企業(yè)信息高速公路的發(fā)展,為企業(yè)的可持續(xù)發(fā)展提供條件的重要條件。企業(yè)級(jí)信息管理涉及到眾多的項(xiàng)目、人員、數(shù)據(jù),如果沒有一個(gè)有效的信息管理系統(tǒng)來支持和提高工作效率,企業(yè)信息管理將會(huì)難以實(shí)現(xiàn)方便快捷的實(shí)施操作?,F(xiàn)在眾多的軟件公司都開發(fā)出了適合自己的企業(yè)信息管理信息系統(tǒng),包括微軟公司的MicrosoftProject2003;PRIMAVERA公司的P3、EXP等,這些都是相對(duì)比較優(yōu)秀的企業(yè)項(xiàng)目信息管理軟件,但軟件只是一個(gè)輔助工具,而且由于公司性質(zhì)的決定,如果沒有首先建立一個(gè)科學(xué)的企業(yè)信息管理體系,則企業(yè)員工管理軟件將難以發(fā)揮作用。因此,研究如何設(shè)計(jì)一個(gè)精簡(jiǎn)、有效的企業(yè)信息管理體系,使得該企業(yè)信息管理信息系統(tǒng)更有效、更便捷地支持企業(yè)項(xiàng)目管理體系,從而提高企業(yè)的自身項(xiàng)目管理能力,是具有重大的實(shí)際應(yīng)用意義的。該課題就是基于某公司性質(zhì)所精簡(jiǎn)設(shè)計(jì),也是更好的為管理員所方便操作設(shè)計(jì)。2.企業(yè)員工管理系統(tǒng)分析2.1工具分析2.1.1Linux平臺(tái)Linux是一套開源的Unix操作系統(tǒng),它是一個(gè)基于POSIX和Unix的多任務(wù)、多用戶、支持多線程和多CPU的操作系統(tǒng)。它可以運(yùn)行主要的Unix工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。可以支持32位和64位硬件,繼承了以Unix網(wǎng)絡(luò)為主要的核心設(shè)計(jì)思想,是一個(gè)性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。其主要特性:(1)完全免費(fèi)。Linux是一款免費(fèi)且開源的操作系統(tǒng),用戶可以免費(fèi)獲得資源并對(duì)其進(jìn)行修改。也正是由于它是開源的,無數(shù)的程序員參與了對(duì)Linux系統(tǒng)的編寫及修改工作,使得其功能更強(qiáng)大、更好用,都能彼此兼容,可方便地實(shí)現(xiàn)互連。(2)完全兼容POSIX1.0標(biāo)準(zhǔn)。使得可以在Linux下通過相應(yīng)的模擬器運(yùn)行常見的DOS、Windows程序。(3)多用戶、多任務(wù)。Linux支持多用戶,各個(gè)用戶對(duì)自己的文件設(shè)備有自己特殊的權(quán)利,保證用戶之間互不干擾,互不影響。Linux也支持多任務(wù),即多個(gè)程序同時(shí)并獨(dú)立運(yùn)行??雌饋韱?dòng)的應(yīng)用程序好像在并行運(yùn)行,而事實(shí)上,從處理器執(zhí)行一個(gè)應(yīng)用程序中的一組指令到Linux調(diào)度微處理器再次運(yùn)行這個(gè)程序之間,只有很短的時(shí)間延遲,對(duì)于用戶來說是感覺不出來的。(4)良好的界面用戶界面和系統(tǒng)調(diào)用。Linux的傳統(tǒng)用戶界面是基于文本的命令行界面,即shell。shell有很強(qiáng)的程序設(shè)計(jì)能力,用戶可方便地用它編制程序,從而為用戶擴(kuò)充系統(tǒng)功能提供了更高級(jí)的手段??删幊蘏hell是指將多條命令組合在一起,形成一個(gè)Shell程序,這個(gè)程序可以單獨(dú)運(yùn)行,也可以與其他程序同時(shí)運(yùn)行,用戶可以在編程時(shí)直接使用系統(tǒng)調(diào)用命令。系統(tǒng)通過這個(gè)界面為用戶程序提供低級(jí)、高效率的服務(wù)。Linux還為用戶提供了圖形用戶界面,利用鼠標(biāo)、窗口、菜單、滾動(dòng)條等設(shè)施,為用戶呈現(xiàn)出一個(gè)直觀、交互性強(qiáng)、易操作的圖形化界面。(5)支持多種平臺(tái)。Linux可以運(yùn)行在多種硬件平臺(tái)上,例如:X86、SPARC、Alpha等處理器的平臺(tái)。另外,Linux也還是一種嵌入式操作系統(tǒng),常被用于電腦、機(jī)頂盒或者游戲機(jī)上。同時(shí),Linux也支持多處理器技術(shù),多個(gè)處理器同時(shí)操作,使系統(tǒng)的性能得到大大的提高。(6)可靠的系統(tǒng)安全。Linux采取了許多安全技術(shù)措施,包括對(duì)讀、寫進(jìn)行權(quán)限控制、帶保護(hù)的子系統(tǒng)、審計(jì)跟蹤、核心授權(quán)等,為各個(gè)用戶在網(wǎng)絡(luò)環(huán)境中提供了一種必要的安全保障。2.1.2SQLite數(shù)據(jù)庫(kù)SQLite是一款輕型的數(shù)據(jù)庫(kù),是遵守ACID的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),其包含在一個(gè)相對(duì)小的C庫(kù)中。它的設(shè)計(jì)目標(biāo)是嵌入式的,目前在很多嵌入式產(chǎn)品中使用了它,它所占用資源非常低。而在嵌入式設(shè)備中,只需要幾百K的內(nèi)存就完全足夠了。除此之外,它還能支持Windows/Linux/Unix等主流的操作系統(tǒng),同時(shí)能夠跟很多種程序語(yǔ)言結(jié)合,如:C/C++/php/Java/C#等語(yǔ)言。它沒有數(shù)據(jù)庫(kù)服務(wù)器的概念,它的程序庫(kù)直接鏈接到應(yīng)用程序中。SQLite主要特性:(1)零配置。即無需安裝和管理配置;(2)是存儲(chǔ)在單一磁盤文件中的一個(gè)完整的數(shù)據(jù)庫(kù);(3)它的數(shù)據(jù)庫(kù)文件可以在不同字節(jié)順序的機(jī)器間自由共享;(4)SQLite足夠小,全部源碼只有三萬行C代碼,雖然只有250KB,卻可以支持?jǐn)?shù)據(jù)庫(kù)大小至2TB;(5)比目前流行的大多數(shù)數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)的操作要快許多;一些能夠真正表現(xiàn)SQLite優(yōu)越性能的領(lǐng)域是WEB網(wǎng)頁(yè)站點(diǎn),可以使用SQLite管理應(yīng)用程序數(shù)據(jù)、快速應(yīng)用程序原型制造和培訓(xùn)工具。SQLite由于資源占用少、性能良好和零管理成本,嵌入式數(shù)據(jù)庫(kù)成了它的用武之地,它將為那些以前無法提供用作持久數(shù)據(jù)的后端的數(shù)據(jù)庫(kù)的應(yīng)用程序提供了高效的性能。SQLite之類的嵌入式數(shù)據(jù)庫(kù)的易于使用性,可以加快應(yīng)用程序的開發(fā),并使得小型應(yīng)用程序能夠完全支持復(fù)雜的SQL。對(duì)于小型設(shè)備空間的應(yīng)用程序來說顯得尤其重要。嵌入式數(shù)據(jù)庫(kù)對(duì)于加快應(yīng)用程序開發(fā)也很重要,尤其是在用于數(shù)據(jù)庫(kù)抽象層,目前SQLite還在積極開發(fā)中,未來一定會(huì)有新的功能,會(huì)對(duì)開源社區(qū)更有用。2.1.3Boa服務(wù)器Boa是一個(gè)單任務(wù)的WEB服務(wù)器,類似管道一樣,只能按順序依次完成用戶的請(qǐng)求,而不會(huì)創(chuàng)建出新的進(jìn)程處理并發(fā)連接請(qǐng)求。但Boa支持CGI,能夠?yàn)镃GI程序fork出一個(gè)進(jìn)程來執(zhí)行。Boa的設(shè)計(jì)目標(biāo)就是速度和安全,在其站點(diǎn)公布的性能測(cè)試中,Boa的性能要好于apache服務(wù)器。另外它還是一個(gè)非常小巧的WEB服務(wù)器,其可執(zhí)行代碼只有60K左右。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,在嵌入式設(shè)備的管理和交互中,基于WEB方式的應(yīng)用已成為主流,用戶可以直接通過遠(yuǎn)程登錄的方式對(duì)設(shè)備進(jìn)行相應(yīng)的管理和維護(hù),極大方便了其使用性。2.2需求分析2.2.1功能需求本課題設(shè)計(jì)的是由三個(gè)不同身份的管理員進(jìn)行登錄,這三種分別是系統(tǒng)管理員、審計(jì)管理員、安全管理員。他們因?yàn)槁氊?zé)不同,相應(yīng)的分工也是不同的,也是其分別在所在的主控頁(yè)面相應(yīng)的進(jìn)行一些不同的需求操作,以下是對(duì)各操作的介紹:(1)系統(tǒng)管理員。在設(shè)備管理頁(yè)面,主要修改IP及端口號(hào),方便不同的服務(wù)器使用該系統(tǒng),讓管理員進(jìn)行登錄;在個(gè)人中心可以修改自己的登錄密碼。(2)安全管理員。在人員管理頁(yè)面,可以進(jìn)行對(duì)員工進(jìn)行添加、刪除和編輯,也可以根據(jù)其需求進(jìn)行先查詢,然后在進(jìn)行刪改,在個(gè)人中心可以修改自己的登錄密碼。(3)審計(jì)管理員。頁(yè)面記錄了系統(tǒng)管理員和安全管理員對(duì)數(shù)據(jù)庫(kù)進(jìn)行的操作,比如員工的一些信息的增刪改,在審計(jì)頁(yè)面也是一目了然,在個(gè)人中心可以修改自己的登錄密碼。2.2.2數(shù)據(jù)需求(1)數(shù)據(jù)錄入處理的準(zhǔn)確性和實(shí)時(shí)性。數(shù)據(jù)的輸入是否準(zhǔn)確會(huì)影響數(shù)據(jù)運(yùn)用時(shí)是否可用還是不可用。由于數(shù)據(jù)的輸入是管理員進(jìn)行手工輸入,而對(duì)于某些數(shù)據(jù)的輸入是要有容錯(cuò)性和某些硬性要求的,比如手機(jī)號(hào)是11位,如果少于或者超出就會(huì)提示手機(jī)位數(shù)不正確等。有時(shí)候數(shù)據(jù)的輸入是很大量的,所以對(duì)系統(tǒng)的處理能力要求較高,以保證能夠迅速的處理數(shù)據(jù)。另外在運(yùn)用該系統(tǒng)時(shí),也需要對(duì)操作人員進(jìn)行系統(tǒng)的簡(jiǎn)單培訓(xùn),能夠讓其熟練運(yùn)用。(2)數(shù)據(jù)的安全性。該系統(tǒng)是為某公司管理部門專門設(shè)計(jì),因此只有給定身份并且擁有權(quán)限的管理者才能進(jìn)入系統(tǒng),才可以對(duì)系統(tǒng)進(jìn)行增刪查改等操作。2.3技術(shù)選擇2.3.1CGI的選擇及特點(diǎn)CGI(CommonGatewayInterface):公共網(wǎng)關(guān)接口。它是WWW技術(shù)中最重要的技術(shù)之一。CGI是外部應(yīng)用程序(CGI程序)與WEB服務(wù)器之間的接口標(biāo)準(zhǔn),是在CGI程序和WEB服務(wù)器之間傳遞信息的規(guī)程。CGI規(guī)范允許WEB服務(wù)器執(zhí)行外部程序,并將它們的輸出發(fā)送給WEB瀏覽器,CGI將WEB的一組簡(jiǎn)單的靜態(tài)超媒體文檔變成一個(gè)完整的新的交互式媒體,以實(shí)現(xiàn)網(wǎng)頁(yè)前端和后臺(tái)的交互。它在物理上是一段程序,是運(yùn)行在服務(wù)器上,提供同客戶端HTML頁(yè)面的接口。例如:現(xiàn)在的個(gè)人主頁(yè)上有著諸多按鈕和文本欄,需要有管理員先輸入一些信息或者點(diǎn)擊按鈕(到目前為止工作都在客戶端),瀏覽器把這些信息傳送到服務(wù)器的CGI目錄下特定的CGI程序中,于是CGI程序在服務(wù)器上按照預(yù)定的方法進(jìn)行相應(yīng)的處理。在本例中就是把用戶提交的信息存入指定的文件中或者執(zhí)行對(duì)應(yīng)按鈕的操作實(shí)現(xiàn)。然后CGI程序給客戶端發(fā)送一個(gè)信息,表示請(qǐng)求的任務(wù)已經(jīng)結(jié)束。功能是處理來自表單的輸入信息,并在服務(wù)器產(chǎn)生相應(yīng)的處理,或?qū)⑾鄳?yīng)的處理后的信息反饋給瀏覽器。因?yàn)槿魏蔚腍TML均是靜態(tài)網(wǎng)頁(yè),它無法實(shí)現(xiàn)一些復(fù)雜的功能,所以CGI可以為我們實(shí)現(xiàn)以下功能:(1)列出服務(wù)器上某個(gè)目錄的文件,對(duì)目錄中的文件進(jìn)行操作;(2)通過CGI實(shí)現(xiàn)串口通訊;(3)實(shí)現(xiàn)數(shù)據(jù)庫(kù)接口;(4)CGI基于瀏覽器的內(nèi)容執(zhí)行相應(yīng)的操作,把結(jié)果格式化為網(wǎng)絡(luò)服務(wù)器和瀏覽器能夠理解的文檔(html網(wǎng)頁(yè));CGI運(yùn)行環(huán)境最初在UNIX操作系統(tǒng)上,在以CERN或NCSA格式的服務(wù)器上運(yùn)行,后來Windows的服務(wù)器上也廣泛使用CGI程序,同時(shí)它也適用于各種類型機(jī)器。2.3.2cJSON的選用及特點(diǎn)JSON(JavaScriptObjectNotation)是一種輕量級(jí)的數(shù)據(jù)交換格式,易于人閱讀和編寫,同時(shí)也易于機(jī)器解析和生成(網(wǎng)絡(luò)傳輸速度快)。它基于JavaScript(Java腳本)的一個(gè)子集。是一個(gè)輕巧,攜帶方便,單文件,可以作為ANSI-C標(biāo)準(zhǔn)的JSON解析器。JSON可以將JavaScript對(duì)象中表示的一組數(shù)據(jù)轉(zhuǎn)換為字符串,然后就可以在函數(shù)之間輕松地傳遞這個(gè)字符串,或者在異步應(yīng)用程序中將字符串從WEB客戶機(jī)傳遞給服務(wù)器端程序。雖然這些字符串看起來有點(diǎn)兒奇怪,但是JavaScript卻很容易解釋它,而且JSON可以表示比"名稱/值對(duì)"更復(fù)雜的結(jié)構(gòu)。例如,可以表示數(shù)組和復(fù)雜的對(duì)象,而不僅僅是鍵和值的簡(jiǎn)單列表。另外,JSON是JavaScript原生格式,這意味著在JavaScript中處理JSON數(shù)據(jù)不需要任何特殊的API或工具包??梢暂p松地將數(shù)據(jù)轉(zhuǎn)換為可以在請(qǐng)求中發(fā)送給服務(wù)器端程序的格式。它的具體形式編輯:(1)對(duì)象是一個(gè)無序的“‘名稱/值’鍵值對(duì)”(key/value)的集合。a.一個(gè)對(duì)象以“{”(左括號(hào))開始,“}”(右括號(hào))結(jié)束。b.每個(gè)“名稱”后跟一個(gè)“:”(冒號(hào));c.“‘名稱/值’對(duì)”之間使用“,”(逗號(hào))分隔。{ “姓名”:“李明”, “年齡”:23 }(2)數(shù)組是值(value)的有序集合。a.一個(gè)數(shù)組以“[”(左中括號(hào))開始,“]”(右中括號(hào))結(jié)束。b.值之間使用“,”(逗號(hào))分隔。 {“學(xué)生”: [ {“姓名”:“李明”,“年齡”:23}, {“姓名”:“小張”,“年齡”:22} ] }2.3.3JavaScript的使用及特點(diǎn)JavaScript是世界上最流行的編程語(yǔ)言,可廣泛用于HTML和WEB,也廣泛用于PC、筆記本電腦、智能手機(jī)、平板服務(wù)器等設(shè)備。JavaScript也是常被用于客戶端的腳本語(yǔ)言,是一種輕量級(jí)的編程語(yǔ)言。它常用于WEB應(yīng)用開發(fā),可以插入HTML頁(yè)面的編程代碼,用來給網(wǎng)頁(yè)增加一些動(dòng)態(tài)功能。JavaScript提供了四種基本的數(shù)據(jù)類型和兩種特殊數(shù)據(jù)類型用來處理數(shù)據(jù)和文字。而變量提供存放信息的地方,表達(dá)式則可以完成較復(fù)雜的信息處理。通常JavaScript腳本是通過嵌入在HTML中來實(shí)現(xiàn)自身功能的。它的特點(diǎn)有:(1)JavaScript是一種解釋性腳本語(yǔ)言(代碼不進(jìn)行預(yù)編譯)。(2)主要用來向HTML頁(yè)面添加交互行為。(3)可以直接嵌入HTML頁(yè)面,但寫成單獨(dú)的js文件有利于結(jié)構(gòu)和行為的分離。(4)跨平臺(tái)特性,在絕大多數(shù)瀏覽器的支持下,可以在多種平臺(tái)下運(yùn)行,如Windows、Linux、Android、IOS等。不同于服務(wù)器語(yǔ)言,如PHP和ASP,JavaScript主要被用作客戶端腳本語(yǔ)言在用戶瀏覽器上運(yùn)行,不需要服務(wù)器的支持,所以相比較而言更具有安全性,而它也逐漸被用來編寫服務(wù)端程序。作為一種腳本語(yǔ)言。JavaScript是一種解釋型的腳本語(yǔ)言,C、C++等語(yǔ)言先編譯后執(zhí)行,而JavaScript是在程序的運(yùn)行過程中逐行進(jìn)行解釋。所以在早期程序員比較青睞于JavaScript以減少對(duì)服務(wù)器的負(fù)擔(dān),當(dāng)然也帶來另一個(gè)問題:安全性。然而隨著服務(wù)器的健壯,雖然程序員更喜歡運(yùn)行于服務(wù)端的腳本以保證安全,隨著引擎如V8和框架如Node.js的發(fā)展,及其事件驅(qū)動(dòng)及異步IO等特性,JavaScript逐漸被用來編寫服務(wù)器端程序。2.4技術(shù)可行性2.4.1可靠性由于必須為企業(yè)提供安全的服務(wù),尤其是保證在有外網(wǎng)接入時(shí),Internet上訪問到的該系統(tǒng)的安全。通過使用cookie方法,使其在網(wǎng)頁(yè)端顯示不會(huì)在未登錄時(shí)就能進(jìn)入系統(tǒng),這樣做的目的是防止系統(tǒng)和數(shù)據(jù)庫(kù)里面的數(shù)據(jù)被篡改。無論是以什么身份登陸的系統(tǒng),其操作只是在網(wǎng)頁(yè)前端對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,決不允許直接進(jìn)入庫(kù)進(jìn)行操作,其目的就是防止別人直接對(duì)庫(kù)進(jìn)行操作后,會(huì)產(chǎn)生一些不必要的麻煩,甚至對(duì)系統(tǒng)產(chǎn)生不可預(yù)見的錯(cuò)誤。2.4.2可行性經(jīng)過仔細(xì)設(shè)計(jì)和測(cè)試之后的系統(tǒng)具有操作簡(jiǎn)單,方便靈活等優(yōu)點(diǎn),方便了公司的內(nèi)部管理。只要管理人員有著對(duì)計(jì)算機(jī)的一些基本了解,一定會(huì)在短時(shí)間內(nèi)掌握并熟練使用。只要?jiǎng)右粍?dòng)鼠標(biāo)鍵盤就可以達(dá)到想要的效果。鍵盤輸入也相對(duì)簡(jiǎn)單明了。在進(jìn)行相應(yīng)的操作時(shí)更方便靈活。3.企業(yè)員工管理系統(tǒng)設(shè)計(jì)3.1系統(tǒng)設(shè)計(jì)主流程圖圖3.1員工管理系統(tǒng)流程圖如圖3.1所示,該流程圖是對(duì)整個(gè)系統(tǒng)整體框架的一個(gè)解釋,主要的有三大模塊即三位不同身份的非管理員登陸后進(jìn)行相應(yīng)的操作,每個(gè)模塊都是獨(dú)立存在的,但是又互相關(guān)聯(lián),例如個(gè)人中心對(duì)用戶信息的修改,三個(gè)管理員的信息只有在安全管理員進(jìn)入后才可以對(duì)他們的信息進(jìn)行修改。3.2系統(tǒng)功能模塊設(shè)計(jì)3.2.1身份模塊該系統(tǒng)中為了滿足該企業(yè)的需求,在登錄進(jìn)入系統(tǒng)時(shí),設(shè)置了三個(gè)不同身份的管理員進(jìn)行登錄,進(jìn)入系統(tǒng)后所執(zhí)行的操作也是不盡相同,該三種登錄身份如下:(1)系統(tǒng)管理員。由于在不同的系統(tǒng)下所持有的IP和端口號(hào)是不同的,為了系統(tǒng)有可移植性,需要系統(tǒng)管理員在設(shè)備管理頁(yè)面修改IP及端口號(hào),方便不同的平臺(tái)下進(jìn)行登錄;而該系統(tǒng)管理員也可以在自己的頁(yè)面,即個(gè)人中心可以修改自己的登錄密碼。(2)安全管理員。由于公司員工的不確定性和考慮到人員的流動(dòng)性,在人員管理頁(yè)面,安全管理員在進(jìn)入該界面,進(jìn)行對(duì)員工信息的錄入,實(shí)現(xiàn)員工信息的添加以及對(duì)已有員工信息的修改即編輯,在編輯的同時(shí),注意唯一不可修改的是員工號(hào),這是在錄入信息后是唯一不變的;如果某位員工已離職,可以對(duì)該員工信息進(jìn)行刪除,方便管理員統(tǒng)計(jì)。而該安全管理員也可以在自己的頁(yè)面,即個(gè)人中心可以修改自己的登錄密碼。(3)審計(jì)管理員。在審計(jì)管理員登陸后,可以實(shí)時(shí)查看其他兩位管理員對(duì)該系統(tǒng)登陸后進(jìn)行操作的統(tǒng)計(jì),例如安全管理員對(duì)員工的添加、刪除和編輯,以及系統(tǒng)管理員對(duì)該設(shè)備的管理;還有審計(jì)管理員可以根據(jù)修改的時(shí)間、或者具體的管理員類型以及操作類型對(duì)系統(tǒng)操作進(jìn)行查看,方便后續(xù)出現(xiàn)問題能夠責(zé)任到人。而該審計(jì)管理員也可以在自己的頁(yè)面,即個(gè)人中心可以修改自己的登錄密碼。3.2.2主要頁(yè)面模塊顯示(1)設(shè)備管理模塊。在系統(tǒng)管理員登陸后,可以對(duì)IP和端口號(hào)進(jìn)行修改,以方便在不同的平臺(tái)設(shè)備中設(shè)置登陸需要的環(huán)境條件(此功能有bug),如圖3.2所示。圖3.2網(wǎng)頁(yè)顯示設(shè)備管理(2)人員管理。安全管理員登陸系統(tǒng)化后,可以實(shí)現(xiàn)人員的添加、刪除、編輯以及根據(jù)證件號(hào)對(duì)員工進(jìn)行查詢后刪改,如圖3.3所示。圖3.3網(wǎng)頁(yè)顯示人員管理(3)日志審計(jì)。該功能是對(duì)系統(tǒng)管理員和安全管理員登錄后執(zhí)行的一些操作記錄的統(tǒng)計(jì),方便在審計(jì)管理員不定時(shí)或者按照時(shí)間等操作內(nèi)容等條件進(jìn)行查看,如圖3.4所示。圖3.4網(wǎng)頁(yè)顯示日志審計(jì)(4)添加、編輯員工信息。在這個(gè)頁(yè)面安全管理員可以對(duì)員工信息進(jìn)行增刪改,如圖3.5所示。圖3.5網(wǎng)頁(yè)顯示頁(yè)面員工添加編輯(5)個(gè)人中心。不論是哪一位管理員登錄,在進(jìn)入個(gè)人中心頁(yè)面時(shí),都可以查看自己的信息,也可以修改自己登錄密碼,如圖3.6所示。圖3.6網(wǎng)頁(yè)顯示個(gè)人中心注:在個(gè)人中心頁(yè)面會(huì)顯示出用戶信息,顯示的有用戶名、電話、郵箱、等證件號(hào)之類的,除了用戶名和證件號(hào)是唯一不變的,其他都可以在安全管理員的人員管理頁(yè)面進(jìn)行修改,當(dāng)然也是只有安全管理員才有權(quán)限修改三個(gè)管理員的信息。3.3數(shù)據(jù)庫(kù)表的設(shè)計(jì)根據(jù)該公司的需求,對(duì)于數(shù)據(jù)庫(kù)需要事先設(shè)計(jì)幾張數(shù)據(jù)表,其中包括對(duì)員工信息保存的表,對(duì)員工操作的表,另外還有一些經(jīng)過查詢后間接通過保存的表,其功能如下:3.3.1登錄表存儲(chǔ)用戶信息并在用戶登錄需要進(jìn)行調(diào)用及驗(yàn)證登陸是否成功,如表3.1。表3.1登陸表(role)角色id用戶名證件號(hào)郵箱電話號(hào)碼密碼創(chuàng)建時(shí)間備注UseridUsernameCertificateMailPhonePasswordCreatetimecommentadminadmin1208xxx@163.com138888888880000000sqfersafer1209xxx@137777777770000000AuditorAuditor1210xxx@1864671888100000003.3.2人員管理表管理員進(jìn)入系統(tǒng)可以對(duì)用戶信息表進(jìn)行增刪改查等相應(yīng)操作,如表3.2。表3.2人員管理表(userinfo)角色id用戶名證件號(hào)郵箱電話號(hào)碼密碼創(chuàng)建時(shí)間備注UseridUsernameCertificateMailPhonePasswordCreatetimecommentadminadmin1208xxx@163.com138888888880000000sqfersafer1209xxx@163.com137777777770000000AuditorAuditor1210xxx@163.com186467188810000000Pchy海文1504xxx@163.com130219077532015-05-2819:11:520Zhangsan張三1211xxx@163.com131201211232015-05-2819:21:1103.3.3管理員操作記錄表由于不同的管理員進(jìn)入系統(tǒng)后可能會(huì)執(zhí)行不同的操作,該表就是記錄他們的登錄以及一些實(shí)時(shí)操作,如表3.3:表3.3管理員操作記錄表(operatelog)useridtimeoperatetypewhatoperateresultcomment用戶id操作時(shí)間操作內(nèi)容具體操作操作結(jié)果備注安全管理員2015-05-1419:10:26登錄系統(tǒng)登錄系統(tǒng)成功安全管理員2015-05-1419:11:52添加員工添加員工小明成功安全管理員2015-05-1419:12:01修改員工修改員工:小明職位成功審計(jì)管理員2015-05-1610:12:09登錄系統(tǒng)登錄系統(tǒng)成功注:由于系統(tǒng)是要對(duì)顯示信息進(jìn)行查找操作,所以為方便將查詢后的數(shù)據(jù)存儲(chǔ),在數(shù)據(jù)庫(kù)里面重建新表(newoperate),即復(fù)制從查詢的表中的類型。然后在顯示時(shí),直接將新表中查詢到的數(shù)據(jù)在頁(yè)面顯示。在每次執(zhí)行完查詢后都將對(duì)該新建的表的內(nèi)容進(jìn)行刪除,以保證下次再進(jìn)行查詢插入時(shí),不會(huì)出現(xiàn)信息的追加,造成錯(cuò)誤。例如:根據(jù)userid是安全管理員和operatetype是修改員工,這一條件進(jìn)行查詢后的結(jié)果顯示,如表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)的實(shí)現(xiàn)4.1WEB頁(yè)面實(shí)現(xiàn)WEB作為圖形界面,讓不了解計(jì)算機(jī)深層運(yùn)行的一些管理員,更方便的直接對(duì)該系統(tǒng)操作,頁(yè)面一目了然,方便各位管理員在自己登錄后顯示的頁(yè)面上進(jìn)行直接的操作,而不必?fù)?dān)心其他問題,以下是一些主要界面的顯示:4.1.1頁(yè)面登錄圖4.1頁(yè)面登陸如上圖4.1所示,實(shí)現(xiàn)的部分代碼:(1)密碼校驗(yàn):<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">審計(jì)管理員</option</select></td>4.1.2頁(yè)面添加、刪除及編輯人員圖4.2添加、編輯人員如上圖4.2所示,實(shí)現(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個(gè)人中心(1)用戶信息的顯示<liid="data_audit"class="first_menu_sty1"><ahref="equip_manage.htm">設(shè)備管理</a></li><liid="user_set"class="first_menu_sty2"><ahref="#">個(gè)人中心</a></li><tr><td>電話:<spanid="info_Tel"></span></td><td>證件號(hào):<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日志審計(jì)(1)主體部分:管理員類型:<selectid="admin_type"><optionvalue="系統(tǒng)管理員">系統(tǒng)管理員</option><optionvalue="安全管理員">安全管理員</option><optionvalue="審計(jì)管理員">審計(jì)管理員</option></select>操作類型:<inputid="operate_type"class="log_input_txt"type="text"/>操作內(nèi)容:<inputid="operate_info"class="log_input_txt"type="text"/>操作時(shí)間:<inputtype="text"id="startDate"class="Wdate"(2)查詢條件顯示:<tableclass="list_table"><tr><th>管理員</th><th>操作時(shí)間</th><th>操作類型</th><th>操作內(nèi)容</th><th>結(jié)果</th></tr>(3)頁(yè)碼顯示:<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="請(qǐng)輸入證件號(hào)"/><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后臺(tái)功能實(shí)現(xiàn)在系統(tǒng)登錄和進(jìn)行增刪改查時(shí),就需要對(duì)數(shù)據(jù)庫(kù)SQLite3進(jìn)行操作,在設(shè)計(jì)的時(shí)候就是將每一個(gè)員工的所有信息,通過WEB端進(jìn)行打包(即封裝為結(jié)構(gòu)體)然后通過boa服務(wù)器發(fā)送給后臺(tái),然后在后臺(tái)進(jìn)行分別解析,分別存儲(chǔ)在相應(yīng)的位置,將需要的信息拿出給頁(yè)面顯示。例人員管理的結(jié)構(gòu)體如下:typedefstruct{charuserid[1024];charusername[1024];charposition[1024];charcertificate[1024];charphonenum[1024];charmail[1024];charpassword[1024];}staff;staticstaffstaff_info;4.2.1數(shù)據(jù)庫(kù)的應(yīng)用因?yàn)楦鱾€(gè)頁(yè)面均需要對(duì)數(shù)據(jù)庫(kù)SQLite3進(jìn)行訪問,所以就需要對(duì)其進(jìn)行操作。對(duì)數(shù)據(jù)庫(kù)的操作無非就是數(shù)據(jù)的增刪改查。當(dāng)然在數(shù)據(jù)庫(kù)進(jìn)行操作前需要打開數(shù)據(jù)庫(kù),而在操作完數(shù)據(jù)庫(kù)后要進(jìn)行關(guān)閉。對(duì)數(shù)據(jù)庫(kù)操作運(yùn)用如下:(1)數(shù)據(jù)庫(kù)的打開: intsqlite3_open(char*path,sqlite3**db);path:需要打開的數(shù)據(jù)庫(kù)文件路徑;db:指向sqlite句柄的指針;(2)使用回調(diào)函數(shù)執(zhí)行sql語(yǔ)句:intsqlite3_exec(sqlite3*db,constchar*sql,sqlite3_callbackcallback,char**errmsg);callback:回掉函數(shù);errmsg:錯(cuò)誤信息指針的地址;intsql_callback(void*para,intf_num,char**f_value,char**f_name);para:傳遞給回掉函數(shù)的參數(shù);f_num:記錄中包含的字段數(shù)目;f_value:包含每個(gè)字段名稱的指針數(shù)組;f_name:包含每個(gè)字段名稱的指針數(shù)組;(3)不使用回調(diào)函數(shù)執(zhí)行sql語(yǔ)句:intsqlite3_get_table(sqlite3*db,constchar*sql,char***resultp,int*ncolumn,char**errmsg);resultp:用來指向sql執(zhí)行結(jié)果的指針;nrow:滿足條件的記錄的數(shù)目;ncolumn:每條記錄包含的字段數(shù)目;(4)關(guān)閉數(shù)據(jù)庫(kù):sqlite3_close(mydb)4.2.2管理員登錄(1)密碼校驗(yàn)。系統(tǒng)登錄時(shí)需要判斷管理員與其密碼是否匹配,只有用戶名與密碼匹配成功后方可進(jìn)入系統(tǒng)。每次登陸系統(tǒng),每個(gè)管理員會(huì)有5次登陸機(jī)會(huì),如果在這5次密碼輸入都是錯(cuò)誤的則會(huì)提示會(huì)在半小時(shí)后重新登陸。//登陸管理員類型與密碼匹配實(shí)現(xiàn)代碼:sql=sqlite3_mprintf("select*fromuserinfowhereuserid='%q'andpassword='%q'",uid,pword);//校驗(yàn)管理員類型和密碼匹配成功后還有幾次機(jī)會(huì)提示if(!strcmp(status_info.status,"2")){sql_2=sqlite3_mprintf("updateuserinfosetstatus='1'whereuserid='%q'",uid);//校驗(yàn)密碼輸入錯(cuò)誤還有幾次機(jī)會(huì),往頁(yè)面?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)后,每個(gè)管理員都可以在各自的個(gè)人中心中進(jìn)行密碼的修改,也是為了各自帳號(hào)信息安全。修改后的密碼將會(huì)重新保存在數(shù)據(jù)庫(kù)里。實(shí)現(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);}注:在修改密碼時(shí),也是應(yīng)某公司要求,為增強(qiáng)密碼的安全性,如果需要修改密碼則會(huì)要求密碼至少有8位,包含數(shù)字、字母(含大小寫),如圖4.3。圖4.3修改密碼錯(cuò)誤提示//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",“兩次輸入密碼不匹配,請(qǐng)重新輸入”);out=cJSON_Print(root);cgiHeaderContentType("text/html");fprintf(cgiOut,out);}4.2.3人員管理人員添加編輯和刪除。安全管理員要對(duì)該企業(yè)人員的管理進(jìn)行整合需要進(jìn)行增刪改查,在人員管理頁(yè)面有需要添加人員。(1)人員添加。分別對(duì)輸入的信息對(duì)應(yīng)相應(yīng)的結(jié)構(gòu)體的對(duì)象,打包后再數(shù)據(jù)表里面存儲(chǔ)。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)人員編輯:對(duì)已經(jīng)存在的人員信息修改,是根據(jù)證件號(hào)修改,因?yàn)樽C件號(hào)是唯一不變的,所以通過證件號(hào)匹配,然后找到需要修改的員工信息。sql=sqlite3_mprintf("select*fromuserinfowherecertificate='%q'",staff_info.certificate);(3)人員刪除:對(duì)于員工的刪除,雖然在網(wǎng)頁(yè)上是勾選前面對(duì)應(yīng)的方框,其實(shí)在后臺(tái)設(shè)計(jì)的同時(shí),就是根據(jù)其證件號(hào)進(jìn)行刪除,因?yàn)槊恳粋€(gè)id對(duì)應(yīng)著唯一的證件號(hào),所以在刪除員工時(shí),就是利用證件號(hào)刪除員工。sql=sqlite3_mprintf("deletefromuserinfowherecertificate='%q'",staff_info.certificate);(4)人員查詢:由于在查詢的過程中,用戶不知道具體是按照什么條件進(jìn)行查詢,所以就需要對(duì)管理員所給的條件進(jìn)行整合,在此使用了標(biāo)志位,分別對(duì)這需要查詢的五項(xiàng)設(shè)置標(biāo)志位,如果需要通過此查詢就設(shè)置為1,不需要?jiǎng)t為0,然后將需要按照哪些條件進(jìn)行合并以此完成查詢。實(shí)現(xiàn)主要部分代碼:intid_flag=0,ot_flag=0,wo_flag=0,st_flag=0,et_flag=0;//通過判斷輸入框中有無數(shù)據(jù)進(jìn)行置位。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ìn)行查詢時(shí),則是按模糊查詢方式進(jìn)行數(shù)據(jù)查詢。將獲得的條件進(jìn)行整合,然后再?gòu)脑砝锩娌樵?,然后將查詢后得到的?shù)據(jù)插入到另外一張新表,即newoperate,最后將newoperate表中的數(shù)據(jù)傳送至頁(yè)面顯示。sprintf(sql_ot,"opertatetypelike%s",operate_info.operateid);//標(biāo)志位進(jìn)行整合,完成對(duì)數(shù)據(jù)庫(kù)操作前的最后一步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);//顯示時(shí)需要執(zhí)行的sql語(yǔ)句;這是最終在表operatelog中查詢的數(shù)據(jù)插入到新表newoperate中,然后在頁(yè)面顯示查詢后的結(jié)果;4.2.4頁(yè)碼隨著系統(tǒng)的不斷運(yùn)行,插入到表里的數(shù)據(jù)也會(huì)不斷增多,所以為方便對(duì)已有數(shù)據(jù)的管理和操作,所以在每一頁(yè)下面有頁(yè)碼標(biāo)識(shí),每一頁(yè)要顯示多少行信息可以對(duì)宏定義NPAGE所代表的數(shù)字進(jìn)行改變,下面是以每頁(yè)8行的數(shù)據(jù)顯示,實(shí)現(xiàn)代碼:#defineNPAGE8//設(shè)置每一頁(yè)顯示的數(shù)據(jù)為8條 //判斷每頁(yè)是否打印滿,如果不是則循環(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)頁(yè)端顯示當(dāng)前為第幾頁(yè)}else{ pagetoa=(nrow/NPAGE)+1;}4.2.5JSON數(shù)據(jù)傳送JSON作為一種數(shù)據(jù)轉(zhuǎn)換格式,與XML有著不可比擬的優(yōu)勢(shì)。從編碼的可讀性,xml與人類語(yǔ)言相貼近,而機(jī)器則更容易閱讀JSON合適的數(shù)據(jù),所以選用JSON作為我們所需要傳輸數(shù)據(jù)格式。實(shí)現(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)測(cè)試5.1頁(yè)面測(cè)試(1)錯(cuò)別字。頁(yè)面中的標(biāo)題、文本內(nèi)容中出現(xiàn)錯(cuò)別字。這設(shè)計(jì)好的定義等一些規(guī)則進(jìn)行調(diào)用。而這種小錯(cuò)誤因?yàn)楹?jiǎn)單和細(xì)小測(cè)試時(shí)如果不細(xì)心,一目而過,可能會(huì)出現(xiàn)在提示信息或頁(yè)面中。(2)格式。有些格式也是特別留心的,雖然感覺沒問題,但是與頁(yè)面設(shè)計(jì)的標(biāo)準(zhǔn)有沖突,這種情況一般是我們?cè)谑褂靡恍I(yè)術(shù)語(yǔ)時(shí),混雜了自己的理解出現(xiàn)所出現(xiàn)的不應(yīng)由的錯(cuò)誤,也是由于在設(shè)計(jì)之初沒有統(tǒng)一規(guī)范用語(yǔ)所導(dǎo)致的。(3)頁(yè)面顯示。在明顯有字體、字號(hào)不同的情況,使頁(yè)面整體風(fēng)格看上去很別扭,這種
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 生態(tài)旅游度假區(qū)招投標(biāo)申請(qǐng)表
- 社會(huì)保險(xiǎn)管理與城市規(guī)劃
- 石油化工設(shè)備使用與管理
- 水上樂園水電布線施工合同
- 農(nóng)村燃?xì)鈧€(gè)人承包施工合同
- 2024年跨國(guó)醫(yī)療設(shè)備采購(gòu)與技術(shù)支持合同
- 2024年河南漯河事業(yè)單位選拔100位人才3篇
- 2024年鏟車安全巡查記錄表3篇
- 2025年度跨境電商擔(dān)保抵押合同范本2篇
- 2025版物流園區(qū)土地及建筑物租賃承包協(xié)議3篇
- 采購(gòu)合同范例壁布
- 公司員工出差車輛免責(zé)協(xié)議書
- 2024年陜西榆林市神木市公共服務(wù)輔助人員招聘775人歷年管理單位遴選500模擬題附帶答案詳解
- 2024年度抖音短視頻拍攝制作服務(wù)合同范本3篇
- 2024-2025學(xué)年高二上學(xué)期期末數(shù)學(xué)試卷(提高篇)(含答案)
- 安全生產(chǎn)事故案例分析
- 2024年07月22208政治學(xué)原理期末試題答案
- 期末檢測(cè)卷(一)(試卷)-2024-2025學(xué)年外研版(三起)英語(yǔ)六年級(jí)上冊(cè)(含答案含聽力原文無音頻)
- 《客戶開發(fā)技巧》課件
- 《防范于心反詐于行》中小學(xué)防范電信網(wǎng)絡(luò)詐騙知識(shí)宣傳課件
- 口腔執(zhí)業(yè)醫(yī)師定期考核試題(資料)帶答案
評(píng)論
0/150
提交評(píng)論