版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
摘要□此在社會高速發(fā)展與信息技術不斷迭代的良性循環(huán)下,信息量的激增也必然存在著利與弊;當信息量達到一定程度的時候,如果不能利用好這些數(shù)據(jù),會給工作效率帶來極大的麻煩,但如果能夠好好利用這數(shù)據(jù),可以從數(shù)據(jù)中提取有用的信息,并針對性去解決問題或者提升效率,員工績效考核系統(tǒng)可高效地管理員工績效及信息。廣東東軟學院暫時沒有一個較為合適的員工績效考核系統(tǒng),出自于這個真實的需求項目組決定來設計一款適用于廣東東軟學院的員工績效考核系統(tǒng),能夠提供員工自行登記績效,并實現(xiàn)按照年或月為單位對全體教職工績效進行匯總統(tǒng)計,來提供學院對教職工的績效及信息更加高效地利用及管理。主要針對教職工每年的績效考核登記與匯總,根據(jù)每月或每年匯總結果可看出,哪些比較低,針對性進行通知預警。系統(tǒng)基于B_S模型的web應用開發(fā),采用express+react開發(fā)框架,使用JavaScript語言,mysql數(shù)據(jù)庫,完成了一個完整的績效考核系統(tǒng),實現(xiàn)了事項登記與統(tǒng)計匯總。關鍵詞:JavaScript,Node.js,Express,React,Mysql,Web開發(fā)AbstractWiththerapiddevelopmentofsocietyandthecontinuousiterationofinformationtechnology,thereareadvantagesanddisadvantagesintherapidgrowthofinformation.Whentheamountofinformationreachesacertainlevel,ifwecan'tmakegooduseofthesedata,itwillbringgreattroubletoworkefficiency.Butifwecanmakegooduseofthesedata,wecanextractusefulinformationfromthedataandsolvetheproblempertinentlyOrimproveefficiency,employeeperformanceappraisalsystemcaneffectivelymanageemployeeperformanceandinformation.GuangdongNeusoftuniversitydoesnothaveamoresuitableemployeeperformanceappraisalsystemforthetimebeing.TheprojectteamdecidedtodesignanemployeeperformanceappraisalsystemsuitableforGuangdongNeusoftuniversitybasedonthisrealdemand,whichcanprovideemployeeswithselfregistrationperformance,andrealizethesummaryandstatisticsoftheperformanceofallstaffaccordingtotheyearormonth,soastoprovidetheperformanceofthefacultyAndmoreefficientuseandmanagementofinformation.Itismainlyaimedattheregistrationandsummaryoftheannualperformanceappraisaloftheteachingstaff.Accordingtothemonthlyorannualsummaryresults,itcanbeseenwhicharerelativelylow,andthetargetednoticeandearlywarningshouldbegiven.ThesystemisbasedonthewebapplicationdevelopmentofB﹣smodel,usingexpress+reactdevelopmentframework,usingJavaScriptlanguage,MySQLdatabase,completedacompleteperformanceappraisalsystem,andachievedeventregistrationandstatisticalsummary.□□Keywords:JavaScript,Nodejs,Express,React,Mysql,WebDevelopment廣東東軟學院本科生畢業(yè)設計(論文)目錄第一章緒論 第一章緒論開發(fā)背景1.1.1系統(tǒng)市場現(xiàn)況隨著互聯(lián)網(wǎng)技術與社會的不斷發(fā)展與進步,信息量有了爆炸性的增長,如何管理好數(shù)據(jù),并且對數(shù)據(jù)價值進一步提取是大數(shù)據(jù)時代的一個趨勢。技術在不斷的更新迭代,但是依然存在部分方面并沒有很好的利用技術更新迭代帶來的好處,例如管理模式的運用,傳統(tǒng)的管理模式,已慢慢不適用在這個信息爆炸的時代了,由于科學技術發(fā)展過于快速,相應的管理模式?jīng)]有得到升級,導致的效率差,進一步的降低了工作的效率。因此科技在不斷的發(fā)展,相應的管理模式也應該得到升級,市場上的員工績效考核其實已經(jīng)非常的普遍了,企業(yè)達到一定的體量不引進一些更為先進的管理系統(tǒng)跟技術,不僅會增加巨大的工作量,且會造成巨大的成本。使用新的管理系統(tǒng)不僅可以增加企業(yè)的工作效率,更可以成為企業(yè)的一個門面,證明企業(yè)的各個方面都隨著科技發(fā)展,全方面的提升,更能在企業(yè)競爭在展現(xiàn)出優(yōu)勢。系統(tǒng)意義及目的根據(jù)廣東東軟學院2017年3月學校最新信息顯示,學院校園占地約為630余畝,校舍總建筑面積約24萬平方米,圖書館藏紙質圖書約70萬冊,電子圖書約為31萬冊;開設有多個系部,如計算機科學與技術系、信息管理與工程系、商務管理系、數(shù)字藝術系、國際教育學院、國際合作部,各個系部總共開設有16個本科專業(yè)及17個專科專業(yè);擁有教職工500余名,全日制在校生約為9000余人。廣東東軟學院作為一個IT高校,教職工也達到了一定的規(guī)模,但現(xiàn)今教師績效考核依然是部分使用系統(tǒng)統(tǒng)計,部分使用excel登記匯總,甚至部分職工會到年末再填報,總體效率不高,且比較混亂,而且數(shù)據(jù)也不利于保存,每年年末的績效統(tǒng)計,需要結合多個統(tǒng)計結果再進行匯總,相對比較麻煩,且無形中給學院管理層造成了極大的工作量,此外如此原始的績效考核方式,不適合于廣東東軟學院的教職工管理,為了提供工作效率,減少工作量,因此開發(fā)此系統(tǒng)。項目內(nèi)容與成果本人在此系統(tǒng)中主要負責:1.對系統(tǒng)的整體功能及整體業(yè)務開展了需求分析,并從中細化出數(shù)據(jù)庫的功能及業(yè)務需求,從而形成了前期的系統(tǒng)需求及數(shù)據(jù)庫設計文檔,并逐步完善文檔;2.通過項目成員的討論,確定系統(tǒng)整體樣式風格并確定初步系統(tǒng)原型,進而完成制度管理與制度細則頁面的設計與實現(xiàn),3.通過前期完成的數(shù)據(jù)庫設計文檔,很快便完成了數(shù)據(jù)庫設計與后期的逐漸完善;通過以上的工作內(nèi)容,收獲到的項目成果有:例如:1.完成了系統(tǒng)需求文檔與數(shù)據(jù)庫設計文檔,奠定了系統(tǒng)開發(fā)的基礎與前提,給系統(tǒng)開發(fā)明確了方向;2.運用了JavaScript語言及react框架,實現(xiàn)了前后端的數(shù)據(jù)交互;3.設計了mysql數(shù)據(jù)庫,通過函數(shù)、游標、觸發(fā)器等的運用,實現(xiàn)了數(shù)據(jù)庫表的多表增刪查改與績效統(tǒng)計。
第二章開發(fā)語言與框架簡介2.2系統(tǒng)開發(fā)工具簡介2.2.1硬件環(huán)境環(huán)境硬件配置開發(fā)環(huán)境Win1064位Intel(R)Core(TM)i5-7300HQCPU@2.50GHz(4CPUs),~2.2GHz8G內(nèi)存開發(fā)工具Vscode,navicat2.2.2開發(fā)語言(1)JavaScript基本特點。JavaScript是一種非常常見的網(wǎng)絡腳本語言,已經(jīng)被廣泛用于Web應用開發(fā),常常用于網(wǎng)頁添加各式各樣的動態(tài)功能,以提供用戶更流暢和美觀的視覺效果。通常情況下JavaScript腳本是通過嵌入到HTML中來實現(xiàn)自身的功能的REF_Ref38792830\r\h[2]。JavaScript腳本語言于其他語言一樣,擁有著它獨特的基本數(shù)據(jù)類型、程序的基本程序框架、表達式及算術運算符。JavaScript提供有四種基本的數(shù)據(jù)類型及兩種特殊數(shù)據(jù)類型用于處理數(shù)據(jù)與字符。而變量則提供存放信息的位置,表達式則可以完成較為復雜的數(shù)據(jù)處理,可以實現(xiàn)web頁面的各種交互。REF_Ref38792875\r\h[10]此系統(tǒng)中前端的樣式設計有JavaScript與css語言搭配完成,并且JavaScript還參與數(shù)據(jù)的預處理,將用戶輸入的數(shù)據(jù),做簡單處理后提交后端;當與后端交互時也要獲取數(shù)據(jù)后并對數(shù)據(jù)進行預處理再展示到前端。(2)Node.js基本特點: ①單線程REF_Ref38792891\r\h[4]Node.js就不為每個客戶連接創(chuàng)建一個新線程,而是只使用單個線程。當出現(xiàn)新用戶連接了,便觸發(fā)一個內(nèi)部事件,這是一個內(nèi)部機制,也是Node.js強大之處。然后通過非阻塞I/O和事件驅動機制,讓Node.js程序宏觀上看起來像是并行的。因此使用Node.js,一個8GB內(nèi)存的服務器,可以承擔同時最大連接用戶數(shù)超過4000個,比原本的4000個提高了數(shù)量。此外,單線程的帶來的好處,就是還有操作系統(tǒng)完全消除了線程創(chuàng)建、銷毀的時間開銷。缺點也是比較明顯的,就是當一個用戶出現(xiàn)了線程的崩潰,整個服務也都跟著崩潰了。多線程、單線程的一個對比。 ②非阻塞I/OREF_Ref38792912\r\h[11]由于Node.js中采用了非阻塞型I/O機制,即使執(zhí)行了數(shù)據(jù)庫訪問的指令后,也能立即轉而執(zhí)行其他的代碼,將數(shù)據(jù)庫返回結果的處理代碼暫時存放于回調(diào)函數(shù)中,由此來提高程序的執(zhí)行效率。當某一個I/O執(zhí)行結束時,便以事件的形式告知執(zhí)行I/O操作的線程,線程就會去調(diào)用這個事件的回調(diào)函數(shù)。為了處理異步I/O,線程必定要有事件循環(huán),不斷的刷新查看有沒有未處理的事件,依次執(zhí)行。③事件驅動event-driven在Node中,客戶端請求創(chuàng)建連接或提交數(shù)據(jù)等請求,就會觸發(fā)相應的事件。在Node中,在單一時刻,一個線程只能調(diào)用一個事件回調(diào)函數(shù),但是在調(diào)用一個事件回調(diào)函數(shù)的過程中,也可以轉向處理其他事件,例如:創(chuàng)建新用戶連接,然后返回繼續(xù)執(zhí)行原事件的回調(diào)函數(shù),這種處理機制,稱之為“事件環(huán)”機制。 2.2.3開發(fā)框架軟件框架是軟件開發(fā)中的基石,完善的軟件框架不僅可以加快軟件開發(fā)速度、提高軟件質量、還可以降低軟件開發(fā)成本。傳統(tǒng)的基于JavaScript語言開發(fā)的Web應用框架,使用前后端高度耦合的開發(fā)方式,且在服務端編程方式以及部署方案上的低效嚴重制約了Web應用的性能提升與開發(fā)效率,而依托于GoogleV8引擎的Node.js由于其事件驅動以及非阻塞I/O的特性使其在Web應用開發(fā)中有極其重大的地位,特此開發(fā)一套新型的Web應用框架以提高軟件開發(fā)的效率則顯得極為重要。因此在項目組多次談論與指導老師的溝通下,確定了這種基于Node.js的Web應用開發(fā)框架REF_Ref38793453\r\h[6](1)Express基本特點:①Express是基于Node.js平臺,快速、開放、極簡的Web開發(fā)框架,提供一系列強大特性,支持各種Web應用的創(chuàng)建。Express是在Node.js上進行了擴展Web應用所需的功能,而不是對node.js所擁有的特性進行二次抽象。Express的強大在于:豐富的HTTP工具、Connect框架的中間件,創(chuàng)建強大以及友好的API。REF_Ref38793054\r\h[5]②Express框架核心特性:可以通過設置中間件來響應HTTP請求。通過定義路由表來響應各種的HTTP請求。HTML頁面的動態(tài)渲染通過向模板傳遞參數(shù)。(2)React基本特點JavaScript庫的用戶界面是由React構建的,Web應用程序的視圖層也是React構建的。React全部的應用程序的核心就是組件,即Component。組件是一個子包含的模塊,組件可提供一些輸出,因此類似按鈕或輸入框等元素均可作為React組件,組件和組件之間可以相互嵌套組合,一個或多個其他的組件之間也可以是相互包含的。REF_Ref38496817\r\h[7].React采用聲明范式,因此可以非常便捷地描述應用,即聲明式設計。.React通過地減少與DOM的交互,即對DOM的模擬(虛擬),即React的高效性。.React與絕大部分已知的庫或框架都可以實現(xiàn)非常友好地配合,即React地靈活性。.JSX是JavaScript語法上的一個擴展。React開發(fā)不一定需要使用JSX,但推薦使用JSX。.通過React構建的組件,使得代碼得到重復使用,非常適合應用于大項目的開發(fā)中。.React實現(xiàn)了單向響應的數(shù)據(jù)流,從而精簡了代碼,這也是它為什么比傳統(tǒng)數(shù)據(jù)綁定更簡單的原因之一。REF_Ref38496825\r\h[8](3)Mysql基本特點:MySQL是瑞典的MySQLAB公司開發(fā)的一個開放源碼的關系型數(shù)據(jù)庫管理系統(tǒng),但該公司在2008年被昇陽微系統(tǒng)(SunMicrosystems)收購。有趣的是昇陽微系統(tǒng)公司在2009年,甲骨文公司(Oracle)收購了,可謂是“螳螂捕蟬黃雀在后”。MySQL最終成為Oracle旗下的一個產(chǎn)品。MySQL在過去以高性能、低成本、可靠性好等特點,已經(jīng)成為最流行的開源數(shù)據(jù)庫,因此被廣泛地應用于互聯(lián)網(wǎng)上的各種中小型網(wǎng)站中。隨著MySQL的不斷發(fā)展,更多大規(guī)模網(wǎng)站和應用也都開始使用MySQL數(shù)據(jù)庫。REF_Ref38793081\r\h[3]MySQL的特點:為了保證源代碼的可移植性,使?C和C++進行編寫,并使?了多種編譯器進?測試。?持多種操作系統(tǒng),跨平臺性強,如Linux、Windows、AIX、FreeBSD、HP-UXMacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris等系統(tǒng)均可使用?持多線程,進而提高CPU資源利用率提供多語??持,適用于各種常用的字符集編碼如GB2312、BIG5、UTF8提供多種數(shù)據(jù)庫連接途,適用于TCP/IP、ODBC和JDBC等?持多種存儲引擎,可以處理擁有上千萬條記錄的?型數(shù)據(jù)庫,適用于?型的數(shù)據(jù)庫。Mysql具有定制功能,采?了GPL協(xié)議,可以通過修改源碼來定制??的Mysql系統(tǒng)另外最重要的原因就是:不僅使?范圍?、跨平臺?持性好,拓展性極強,提供了多種語?的調(diào)?的API,而且開源。REF_Ref38496849\r\h[10](4)Mysql用于哪些處理根據(jù)需求文檔此系統(tǒng)采用的是mysql5.7的版本數(shù)據(jù)庫,該數(shù)據(jù)庫設計有8個數(shù)據(jù)表,用于存儲各種各樣的數(shù)據(jù),其中有職位,活動,事項圖片,事項制度細則,制度細則等五個關系表,主要用于關聯(lián)部分存在多于多關系的表。有多個觸發(fā)器與存儲過程,用于多個表之間的增刪查改。各個表的字段字符集都統(tǒng)一使用UTF-8,避免在前端交互時出現(xiàn)亂碼等情況
第三章系統(tǒng)分析與設計3.1需求分析3.1.1功能需求廣東東軟學院日常業(yè)務數(shù)據(jù)以及針對用戶群體進行調(diào)研分析發(fā)現(xiàn),本系統(tǒng)的使用人群年齡段為22-60歲,該年齡階段客戶人群年紀差距較大,因此web端設計不能過于簡約,同時也不能過于繁雜,功能模塊關鍵詞要盡量清晰,盡量讓用戶一眼明了該功能模塊的作用。以下為系統(tǒng)主要功能結構及各個模塊的E-R圖。REF_Ref38793114\r\h[1](1)系統(tǒng)功能結構圖教師功能模塊概要描述表:序號功能名稱功能需求標識優(yōu)先級簡要描述A1注冊登錄A1高用戶賬號的注冊登錄A2個人中心A2高用戶對個人信息等進行管理操作A3績效登記A3高填寫績效考核事項A4查看歷史績效A4高展示用戶已登記績效事項,但不可更改績效。管理后臺功能概要描述表:序號功能名稱功能需求標識優(yōu)先級簡要描述B1注冊登錄B1高管理賬號的注冊登錄B2績效管理B2高對歷史績效進行增刪查改操作B3審核提交重要事項B3高對重大事項審核提交B4教師用戶管理B4高管理教師用戶的信息,下個月并且可以實現(xiàn)增刪查改用戶個人中心功能圖3.1.1-1個人中心流程圖個人中心表功能編號A2功能名稱用戶個人中心所屬部分用戶模塊功能描述用戶通過個人中心界面設置性別、生日等個人信息,同時對績效事項進行登記進行操作輸入項個人信息:性別varchar[3]、生日date;地址管理:手機號int[13]、姓名varchar[50]、任教課程名,varchar[50],任教班級varchar[50],入職時間date處理描述判斷用戶修改字段是否符合規(guī)范,不符合規(guī)范的返回提示輸入錯誤,符合規(guī)范的,則保存并提交數(shù)據(jù)庫輸出項輸入不合法提示新增/修改成功提示界面要求簡潔、明了、輔助提示績效登記展示功能圖3.1.1-2績效登記流程圖績效登記表功能編號A3功能名稱績效登記所屬部分用戶模塊功能描述用戶可通過績效登記,將績效事項填寫并提交,常規(guī)事項,默認自動通過審核,重大事項,提交并等待審核。輸入項填寫績效事項信息處理描述判斷各個輸入是否符合規(guī)范,如全部都符合規(guī)范,則根據(jù)績效標簽劃分等級,常規(guī)事項默認通過,直接提交數(shù)據(jù)庫并保存,重大事件需要審核提交到學院管理人員賬號上,等待審核通過。輸出項常規(guī)事項,提交后輸出績效登記完成,并且返回登記首頁;重大事項,提交后輸出等待審核通過。界面要求標簽明確,便于劃分等級一級類目【重大事項】二級類目【常規(guī)事項】查看歷史提交績效功能圖3.1.1-3查看歷史績效流程圖查看歷史績效表功能編號A4功能名稱查看歷史績效所屬部分用戶模塊功能描述用戶可以通過該模塊查看歷史提交的績效,并檢查是否有誤,有錯誤的可以申訴。輸入項無輸入處理描述根據(jù)時間判斷,并檢索個人歷史績效記錄。輸出項輸出個人歷史績效登記記錄界面要求展示歷史績效記錄。管理員注冊登錄功能圖3.1.1-4管理員注冊登錄功能流程圖管理員注冊登錄功能表功能編號B1功能名稱管理員注冊登錄所屬部分管理端功能描述管理員通過授權碼進行賬號注冊,設置登錄名和登錄密碼。注冊成功后跳轉到登錄頁面,輸入已有賬號及對應密碼進行登錄進入管理后臺,如忘記密碼可通過驗證進行密碼重設輸入項注冊界面:授權碼varchar(50)、管理員名稱varchar(50)、管理員密碼varchar(50);登錄界面:管理員名稱varchar(50)、圖形驗證碼char[4]、管理員密碼varchar(50);忘記密碼:原登錄密碼varchar(50)、新登錄密碼varchar(50)、圖形驗證碼char[4];處理描述注冊頁面判斷管理員輸入的授權碼是否有效、登錄賬號和密碼是否符合規(guī)范;登錄頁面判斷管理員輸入登錄名及登錄密碼是否存在及相對應,圖形驗證碼是否與圖形對應正確;修改密碼頁面判斷用戶輸入原登錄密碼是否正確,驗證碼是否正確,登錄密碼是否符合規(guī)范;輸出項各種為空或錯誤提示注冊/登錄成功提示界面要求簡潔、明了、輔助提示管理全體教師歷史績效功能圖3.1.1-5查看全體教師歷史績效流程圖查看全體教師歷史績效表功能編號B2功能名稱管理全體教師歷史績效功能所屬部分后臺管理端功能描述管理員通過查看歷史績效記錄,可以對歷史績效記錄進行核實,虛假多次登記的可進行刪除操作,并返回用戶刪除原因。輸入項輸入時間段,數(shù)據(jù)庫數(shù)據(jù)文件按照時間分區(qū)處理描述判斷管理員是否有修改分類信息,進行數(shù)據(jù)保存輸出項更改成功/失敗提示并返回用戶操作原因界面要求簡潔、明了、輔助提示查看審核功能圖3.1.1-6查看審核流程圖查看審核功能表功能編號B3功能名稱查看審核功能所屬部分管理端功能描述該功能用于管理員對提交待審核事項進行查看核實,如符合提交給予提交通過,不符合提交,可駁回。輸入項如需要駁回提交審核,輸入駁回原因。處理描述保存并提交通過審核的事項;如駁回審核,則返回駁回原因給用戶。輸出項審核事項;駁回原因。界面要求模塊清晰,操作符合邏輯,界面簡潔明了管理用戶賬號密碼功能圖3.1.1-7管理賬戶密碼流程圖管理賬戶密碼功能表功能編號B4功能名稱管理用戶賬號密碼所屬部分管理端功能描述該功能用于用戶賬號密碼忘記時,可通過后臺更改。輸入項輸入個人信息,查看用戶信息處理描述根據(jù)輸入信息進行檢索并輸出結果。輸出項輸入無誤則輸入結果輸入錯誤是返回錯誤提示。界面要求模塊清晰,操作符合邏輯,界面簡潔明了3.2系統(tǒng)設計3.2.1總計設計該系統(tǒng)的核心功能是教職工能通過web端進行績效的線上填報,而且為了節(jié)省系主任等領導的工作量一般事項會設置默認通過,通過不同事項的標簽來分類,系統(tǒng)的主要業(yè)務流如下圖所示:REF_Ref38793231\r\h[9]] 2.2.1-1圖系統(tǒng)有超級管理員賬號,主任級別賬號,教職工賬號等不同賬號;每個賬號有不同的角色,不同角色有不同的權。超級管理員賬號擁有數(shù)據(jù)庫及系統(tǒng)的全部權限,主要負責系統(tǒng)及數(shù)據(jù)庫的安全與數(shù)據(jù)傳輸問題;系主任賬號可查看該系全部教職工績效考核情況及各個教職工的事項內(nèi)容,審核重大事項申請?zhí)砑觿h除新職工賬號,添加刪除新的事項規(guī)則;教職工賬號可以申報個人績效事項,修改個人信息,查看個人事項記錄。具體用例圖如下:超級管理員賬戶用例圖:系主任賬戶用例圖教職工賬戶用例圖3.2.2數(shù)據(jù)庫設計廣東東軟學院擁有教職工約500人,因此數(shù)據(jù)量對于數(shù)據(jù)庫來說不會太大,而且也不存在多數(shù)人在同一時段訪問系統(tǒng),對數(shù)據(jù)庫及服務器壓力沒有很大,所以選用mysql,因為不存在高并發(fā)所以不用設置多節(jié)點,因此數(shù)據(jù)庫的壓力其實沒有很大,根據(jù)數(shù)據(jù)庫設計文檔,數(shù)據(jù)庫采用mysql5.7,端口使用3306,字符集編碼統(tǒng)一使用UTF-8,避免產(chǎn)生亂碼,express服務器端口為3001,react服務器端口為3002,數(shù)據(jù)庫名為performance_db。REF_Ref38793277\r\h[7]數(shù)據(jù)庫表E-R圖圖3.2.2-1(2)數(shù)據(jù)字典用戶表(users)用于存儲各個用戶的字段信息,用戶編號為自動生成,無需手動輸入。字段描述字段名稱字段類型字段長度備注用戶編號u_idinteger主鍵、非空職工號u_idsvarchar127職工名稱u_namevarchar50非空用戶密碼u_passwordvarchar50非空職工性別u_sexchar10職工電話u_phonevarchar20職工郵箱u_emailvarchar50職工住址u_addressvarchar255職工職位ps_idinteger外鍵、非空出生日期u_birthdaydate入職時間u_onboardingdate事項表(performance)主要用于存儲各個事項中所需填報的信息,其中事項編號與事項狀態(tài)不用手動輸入,由系統(tǒng)自動生成。字段描述字段名稱字段類型字段長度備注事項編號p_idinteger主鍵、非空事項標題p_topicvarchar1024非空活動時間p_starttimetimestamp非空活動時長p_timelengthfloat(單位:小時)活動地點p_addressvarchar1024非空事項內(nèi)容p_texttext非空事項狀態(tài)p_statusinteger非空制度細則r_d_idinteger外鍵、非空駁回理由p_turndownvarchar1024其他條目p_othertext系部表(department)用于存儲各個系部的信息,其中系部編號同樣由系統(tǒng)生成。字段描述字段名稱字段類型字段長度備注系部編號d_idinteger主鍵、非空系部名稱d_namevarchar1024非空事項默認狀態(tài)d_statusinteger非空制度表(rules)用于儲存各種績效加分制度,制度編號同樣自動生成。字段描述字段名稱字段類型字段長度備注制度編號r_idinteger主鍵、非空制度名稱r_typevarchar1024非空制度內(nèi)容r_texttext非空制度細則表(r_detail)用于儲存各個加分績效制度的詳細信息。字段描述字段名稱字段類型字段長度備注細則編號r_d_idinteger主鍵、非空細則名稱r_d_namevarchar1024非空主辦人得分r_d_u_scoresinteger非空細則得分r_d_p_socresinteger非空細則內(nèi)容r_d_p_wordstext非空制度編號r_idinteger外鍵、非空其他條目r_d_othertext文件表(files)用于存放各個事項的相關文件。字段描述字段名稱字段類型字段長度備注文件編號f_idinteger主鍵、非空文件名稱f_namevarchar1024非空文件地址f_pathvarchar1024非空事項編號p_idinteger外鍵、非空職位關系表(positions)用戶存儲各個用戶的職位信息。字段描述字段名稱字段類型字段長度備注職位編號p_idinteger主鍵、非空職位名稱p_namevarchar1024非空系部編號d_idinteger外鍵、非空職位等級p_levelinteger非空活動關系表(activity)用于用戶表與事項表的關系表,因為用戶表存在多對多的關系,不能直接關聯(lián),因此使用活動表來實現(xiàn)間接管理。字段描述字段名稱字段類型字段長度備注用戶編號u_idinteger主鍵、外鍵、非空事項編號p_idinteger主鍵、外鍵、非空用戶編號(舉辦人)p_applicantinteger外鍵、非空獲得分數(shù)a_scorefloat非空(3)觸發(fā)器E-R圖刪除部門時,刪除該部門下的全部職位刪除規(guī)則時,刪除該規(guī)則對應的細則。刪除用戶時,刪除該用戶對應的活動。刪除事項時,刪除對應的文件,刪除對應的活動。
第四章系統(tǒng)功能實現(xiàn)4.1業(yè)務流程 賬戶登錄頁面,該頁面沒有設置注冊功能,因為打算采用每個教職工的工號進行登錄就好,整理好每個教職工的賬號密碼后,統(tǒng)一用文件導入到數(shù)據(jù)庫中去,這樣每個職工就都能使用自己的職工號進行登錄了。界面如下圖所示: 通過系統(tǒng)主頁可以看到系統(tǒng)的全部功能模塊,有主頁、員工管理、事項列表、事項審核、事項申請、績效統(tǒng)計、制度管理、制度列表等組成,系統(tǒng)主頁如圖所示: 系主任可通過員工管理頁面對員工帳號信息進行修改,如添加新的職工帳號或刪除賬號,當添加員工時,會將添加的員工信息存到數(shù)據(jù)庫中區(qū),具體員工管理頁面如圖所示: 通過事項列表可查看個人事項記錄,系主任可通過事項列表查看本系下的全部教職工提交的事項記錄,并且可以通過事項記錄查看事項內(nèi)容,事項列表如圖所示: 事項審核頁面,可以查看提交的事項狀態(tài),有待審核,通過審核,駁回等三個狀態(tài),系主任賬號有權限審核教職工提交的事項,可駁回,可通過,教職工只能查看事項狀態(tài)及詳情,具體由下圖可知:通過事項申請有三個頁面,第一個活動登記,第二個論文發(fā)表,第三個獲獎評比,暫時將全部的事項類型分為這三部分;第一個圖為活動登記,登記信息有活動名稱、活動類別、開始時間、時長、地點、成員、個人得分、組員得分、活動信息,并且可上傳文件材料作為作證材料。 此圖為教職工發(fā)表論文可作為績效申報,提交論文發(fā)表績效需要填報,論文標題,論文種類,論文其他作者,論文發(fā)表時間,個人的得分(不同論文期刊有不同的分值權重),可以添加論文文件,跟期刊文件。 教職工在論文或者各種比賽中獲獎也是能夠作為績效加分的,申請獲獎加分,需要填寫獲獎名稱,獲獎類別,申請分數(shù),獲獎簡介(作為獎品的介紹),添加文件(可為獲獎通知或證書等獲獎作證材料) 事項統(tǒng)計頁面,用于根據(jù)不同賬戶級別統(tǒng)計個人或全系教職工的的績效情況,如教職工賬號就可以統(tǒng)計匯總個人按月度排名或者按年度排名在全系中總分數(shù)為多少及排名情況,如系主任賬號,可統(tǒng)計匯總年度全息教職工績效排名情況,直接可以找到績效比較低的教職工,做及時的提醒。具體如下圖所示: 制度管理頁面,可通過制度管理頁面對現(xiàn)有的制度進行刪除或修改,也可通過添加制度來新增新的績效制度,具體如下圖所示。 制度列表,可展示現(xiàn)有的制度規(guī)則,如果對現(xiàn)有規(guī)則需要修改可通過制度管理頁面來進行修改或者刪減。4.2核心代碼實現(xiàn)(1)數(shù)據(jù)庫表代碼:①制度表--
--
Table
structure
for
rules
制度表
--
DROP
TABLE
IF
EXISTS
`rules`;
CREATE
TABLE
`rules`
(
`r_id`
int(11)
NOT
NULL
AUTO_INCREMENT,
`r_type`
varchar(1024)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL,
`r_text`
text
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL,
PRIMARY
KEY
(`r_id`)
USING
BTREE
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
2
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Dynamic;
②部門表--
--
Table
structure
for
department
部門表
--
DROP
TABLE
IF
EXISTS
`department`;
CREATE
TABLE
`department`
(
`d_id`
int(11)
NOT
NULL
AUTO_INCREMENT,
`d_name`
varchar(1024)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL,
`d_status`
int(11)
NOT
NULL,
PRIMARY
KEY
(`d_id`)
USING
BTREE
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
6
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Dynamic;
③職位表--
--
Table
structure
for
positions
職位表
--
DROP
TABLE
IF
EXISTS
`positions`;
CREATE
TABLE
`positions`
(
`p_id`
int(11)
NOT
NULL,
`p_name`
varchar(1024)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL,
`p_level`
int(11)
NOT
NULL,
`d_id`
int(11)
NOT
NULL,
PRIMARY
KEY
(`p_id`)
USING
BTREE,
INDEX
`fk_p_d_id`(`d_id`)
USING
BTREE,
CONSTRAINT
`fk_p_d_id`
FOREIGN
KEY
(`d_id`)
REFERENCES
`department`
(`d_id`)
ON
DELETE
RESTRICT
ON
UPDATE
RESTRICT
)
ENGINE
=
InnoDB
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Dynamic;=
6
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Dynamic;
④細則表--
--
Table
structure
for
r_detail
細則表
--
DROP
TABLE
IF
EXISTS
`r_detail`;
CREATE
TABLE
`r_detail`
(
`r_d_id`
int(11)
NOT
NULL
AUTO_INCREMENT,
`r_d_name`
varchar(100)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL,
`r_d_u_socres`
int(11)
NOT
NULL,
`r_d_p_socres`
int(11)
NOT
NULL,
`r_d_p_words`
text
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL,
`r_id`
int(11)
NULL
DEFAULT
NULL,
`r_d_other`
text
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL,
PRIMARY
KEY
(`r_d_id`)
USING
BTREE,
INDEX
`fk_rd_r_id`(`r_id`)
USING
BTREE,
CONSTRAINT
`fk_rd_r_id`
FOREIGN
KEY
(`r_id`)
REFERENCES
`rules`
(`r_id`)
ON
DELETE
RESTRICT
ON
UPDATE
RESTRICT
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
2
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Dynamic;
⑤用戶表--
--
Table
structure
for
users
用戶表
--
DROP
TABLE
IF
EXISTS
`users`;
CREATE
TABLE
`users`
(
`u_id`
int(11)
NOT
NULL
AUTO_INCREMENT,
`u_ids`
varchar(127)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL,
`u_name`
varchar(50)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL,
`u_password`
varchar(50)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL,
`u_sex`
char(10)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL,
`u_phone`
varchar(20)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL,
`u_address`
varchar(255)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL,
`u_email`
varchar(50)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL,
`ps_id`
int(11)
NOT
NULL,
`u_brithday`
date
NULL
DEFAULT
NULL,
`u_onboarding`
date
NULL
DEFAULT
NULL,
PRIMARY
KEY
(`u_id`)
USING
BTREE,
INDEX
`fk_user_position`(`ps_id`)
USING
BTREE,
CONSTRAINT
`fk_user_position`
FOREIGN
KEY
(`ps_id`)
REFERENCES
`positions`
(`p_id`)
ON
DELETE
RESTRICT
ON
UPDATE
RESTRICT
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
3
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Dynamic;
⑥事項表--
--
Table
structure
for
performance
事項表
--
DROP
TABLE
IF
EXISTS
`performance`;
CREATE
TABLE
`performance`
(
`p_id`
int(11)
NOT
NULL
AUTO_INCREMENT,
`p_topic`
varchar(1024)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL,
`p_applytime`
timestamp(0)
NOT
NULL
DEFAULT
CURRENT_TIMESTAMP
ON
UPDATE
CURRENT_TIMESTAMP(0),
`p_timelength`
float
NULL
DEFAULT
NULL,
`p_address`
varchar(1024)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL,
`p_status`
int(11)
NOT
NULL,
`p_text`
text
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL,
`r_d_id`
int(11)
NULL
DEFAULT
NULL,
`p_turndown`
varchar(1024)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL
DEFAULT
NULL,
`p_other`
text
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NULL,
`p_starttime`
timestamp(6)
NULL
DEFAULT
NULL
ON
UPDATE
CURRENT_TIMESTAMP(6),
PRIMARY
KEY
(`p_id`)
USING
BTREE,
INDEX
`fk_p_rd_id`(`r_d_id`)
USING
BTREE,
CONSTRAINT
`fk_p_rd_id`
FOREIGN
KEY
(`r_d_id`)
REFERENCES
`r_detail`
(`r_d_id`)
ON
DELETE
RESTRICT
ON
UPDATE
RESTRICT
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
2
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Dynamic;
⑦文件表--
--
Table
structure
for
files
文件表
--
DROP
TABLE
IF
EXISTS
`files`;
CREATE
TABLE
`files`
(
`f_id`
int(11)
NOT
NULL
AUTO_INCREMENT,
`f_name`
varchar(1024)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL,
`f_path`
varchar(1024)
CHARACTER
SET
utf8
COLLATE
utf8_general_ci
NOT
NULL,
`p_id`
int(11)
NOT
NULL,
PRIMARY
KEY
(`f_id`)
USING
BTREE,
INDEX
`fk_p_f_id`(`p_id`)
USING
BTREE,
CONSTRAINT
`fk_p_f_id`
FOREIGN
KEY
(`p_id`)
REFERENCES
`performance`
(`p_id`)
ON
DELETE
RESTRICT
ON
UPDATE
RESTRICT
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
1
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Dynamic;
⑧活動表--
--
Table
structure
for
activity
--
DROP
TABLE
IF
EXISTS
`activity`;
CREATE
TABLE
`activity`
(
`p_id`
int(11)
NOT
NULL,
`u_id`
int(11)
NOT
NULL,
`p_applicant`
int(255)
NOT
NULL,
`a_score`
float
NOT
NULL,
PRIMARY
KEY
(`u_id`,
`p_id`)
USING
BTREE,
INDEX
`fk_a_u_id`(`p_id`)
USING
BTREE,
INDEX
`fk_a_p_id`(`p_applicant`)
USING
BTREE,
CONSTRAINT
`fk_a_p_id`
FOREIGN
KEY
(`p_applicant`)
REFERENCES
`users`
(`u_id`)
ON
DELETE
RESTRICT
ON
UPDATE
RESTRICT,
CONSTRAINT
`fk_a_u_id`
FOREIGN
KEY
(`p_id`)
REFERENCES
`performance`
(`p_id`)
ON
DELETE
RESTRICT
ON
UPDATE
RESTRICT,
CONSTRAINT
`fk_a_uid`
FOREIGN
KEY
(`u_id`)
REFERENCES
`users`
(`u_id`)
ON
DELETE
RESTRICT
ON
UPDATE
RESTRICT
)
ENGINE
=
InnoDB
CHARACTER
SET
=
utf8
COLLATE
=
utf8_general_ci
ROW_FORMAT
=
Dynamic;
(2)觸發(fā)器代碼①刪除部門時,刪除該部門下的全部職位--
--
Triggers
structure
for
table
department
--
DROP
TRIGGER
IF
EXISTS
`trigger_d_p`;
delimiter
;;
CREATE
TRIGGER
`trigger_d_p`
BEFORE
DELETE
ON
`department`
FOR
EACH
ROW
Begin
delete
from
positions
where
d_id
=
old.d_id;
end
;;
delimiter
;
②刪除事項時,刪除改使用對應的文件--
--
Triggers
structure
for
table
performance
--
DROP
TRIGGER
IF
EXISTS
`trigger_p_f`;
delimiter
;;
CREATE
TRIGGER
`trigger_p_f`
BEFORE
DELETE
ON
`performance`
FOR
EACH
ROW
Begin
delete
from
files
where
p_id
=
old.p_id;
delete
from
activity
where
p_id
=old.p_id;end
;;
delimiter
;
③刪除規(guī)則時,刪除該規(guī)則對應的細則。--
--
Triggers
structure
for
table
rules
--
DROP
TRIGGER
IF
EXISTS
`trigger_r_rd`;
delimiter
;;
CREATE
TRIGGER
`trigger_r_rd`
BEFORE
DELETE
ON
`rules`
FOR
EACH
ROW
Begin
delete
from
r_detail
where
r_id
=
old.r_id;end
;;
delimiter
;
④刪除用戶時,刪除該用戶對應的活動。--
--
Triggers
structure
for
table
users
--
DROP
TRIGGER
IF
EXISTS
`trigger_u_a`;
delimiter
;;
CREATE
TRIGGER
`trigger_u_a`
BEFORE
DELETE
ON
`users`
FOR
EACH
ROW
Begin
delete
from
activity
where
u_id
=
old.u_id;end
;;
delimiter
;
(4)制度管理頁面①獲取制度詳情,將獲取的制度細則存入數(shù)組arr,再將數(shù)組arr的數(shù)據(jù)取出,展示到前端。var
it
=
ps.rulelist;
var
arr
=
[];
let
k
=
0;
for
(let
i
=
0;
i
<
it.length;
i++)
{
for
(let
j
=
0;
j
<
it[i]["detail"].length;
j++)
{
let
detail
=
it[i]["detail"][j];
var
r
=
{};
r["key"]
=
k++;
r["activities"]
=
detail.r_type;
r["category"]
=
detail.r_d_name;
r["head_score"]
=
detail.r_d_u_scores;
r["num_score"]
=
detail.r_d_p_scores;
r["r_id"]
=
detail.r_id;
r["rd_id"]
=
detail.r_d_id;
r["r_d_p_words"]
=
detail.r_d_p_words;
arr.push(r);
}
}
const
dataSource
=
arr;
②通過生命周期函數(shù)來調(diào)用數(shù)據(jù)const
mapStateToProps
=
(state)
=>
{
return
{
userData:
state.userData,//獲取用戶信息
rulelist:
state.rulelist,//獲取制度細則信息
};
③通過調(diào)用getRuleListAction函數(shù)和getdeleteRuleList函數(shù)來獲取數(shù)據(jù)const
mapDispatchToProps
=
(dispatch)
=>
{
return
{
reqRulelist()
{
const
action
=
getRuleListAction();
dispatch(action);
},
reqdeleteRulelist(rid)
{
const
action
=
getdeleteRuleList(rid);
dispatch(action);
window.location.reload(true);
},
};
};
④添加制度<Descriptions.Item
label="主辦人得分"><Input
style={{
width:
'270px'
}}
name="h_score"
onChange={e
=>
this._onInputChange(e)}/></Descriptions.Item>
<Descriptions.Item
label="成員得分"><Input
style={{
width:
'280px'
}}
name="l_score"
onChange={e
=>
this._onInputChange(e)}/></Descriptions.Item>
<Descriptions.Item
label=""></Descriptions.Item>
⑤修改制度,與添加制度不同的是,需要通過defaultValue來獲取原本事項的信息。<Descriptions.Item
label="主辦人得分"><Input
style={{
width:
'270px'
}}
name="h_score"
defaultValue={it.head_score}
onChange={e
=>
this._onInputChange(e)}/></Descriptions.Item>
<Descriptions.Item
label="成員得分"><Input
style={{
width:
'280px'
}}
name="l_score"
defaultValue={it.num_score}
onChange={e
=>
this._onInputChange(e)}/></Descriptions.Item>
<Descriptions.Item
label=""></Descriptions.Item>
(4)制度細則頁面①對數(shù)據(jù)進行處理,先將數(shù)據(jù)存入數(shù)組arr,再將數(shù)據(jù)從數(shù)組中取出。
var
it
=
ps.rulelist
var
arr
=
[];
let
k
=
0;
for
(let
i
=
0;
i
<
it.length;
i++)
{
for
(let
j
=
0;
j
<
it[i]['detail'].length;
j++)
{
let
detail
=
it[i]['detail'][j];
var
r
=
{};
r['key']
=
k++;
r['activities']
=
detail.r_type;
r['category']
=
detail.r_d_name;
r['head_score']
=
detail.r_d_u_scores;
r['num_score']
=
detail.r_d_p_scores;
r['r_id']
=
detail.r_id;
r['rd_id']
=
detail.r_d_id;
r['r_d_p_words']
=
detail.r_d_p_words;
arr.push(r)
}
}
const
data
=arr//
獲取上面函數(shù)處理后的數(shù)據(jù)
return
(
<div>
<Table
columns={columns}
dataSource={data}
/>
</div>
)
②調(diào)用數(shù)據(jù)const
mapStateToProps
=
(state)
=>
{
return
{
userData:
state.userData,
rulelist:
state.rulelist,
}
③獲取數(shù)據(jù)const
mapDispatchToProps
=
(dispatch)
=>
{
return
{
reqRulelist()
{
const
action
=
getRuleListAction();
dispatch(action);
},
第五章總結與展望5.1總結本人在此項目中,主要負責的工作內(nèi)容是:1.通過對系統(tǒng)整體業(yè)務及需求的多次調(diào)研,完成了前期的系統(tǒng)需求文檔的整理與編寫,數(shù)據(jù)庫設計文檔的整理與編寫。2.通過前期的系統(tǒng)需求文檔,與項目組成員確定了系統(tǒng)原型,并根據(jù)原型完成了績效統(tǒng)計的設計與實現(xiàn)。3.通過數(shù)據(jù)庫設計文檔,完成了前期數(shù)據(jù)庫的設計與實現(xiàn)并在后期逐步增加功能完善數(shù)據(jù)庫。此項目獲得的項目成果有:1.通過前期需求調(diào)研,與文檔的整理,雖然存在很多不足與缺陷,但學習到了需求文檔的結構,也明白了需求調(diào)研與文檔的重要性,給項目組明確了開發(fā)的方向,也更加明確了各自的分工。2.通過模塊的設計與開發(fā)學習到了JavaScript語言,react框架的內(nèi)容,雖然暫時都比較基礎,但是也學習到了最熱門的前端開發(fā)框架之一。3.通過數(shù)據(jù)庫的設計與實現(xiàn),這個相對來說比較簡單,根據(jù)數(shù)據(jù)庫的設計文檔就能很快做好,但是后期將:觸發(fā)器,游標,函數(shù)等得到了實際的運用,減少了后端的一些工作,也掌握了這些數(shù)據(jù)庫的真實運用場景。5.2展望 本人通過此次系統(tǒng)的開發(fā)與設計,對一個軟件的生命周期有了一個更加明確的認識,并對系統(tǒng)開發(fā)的每個階段都有了更深刻的認識。并且根據(jù)廣東東軟學院的教職工數(shù)量與對系統(tǒng)的需求情況,不存在高并發(fā)的情況,所以系統(tǒng)暫時沒有做高并發(fā)的一些技術上的研究,后續(xù)會增加這方面對系統(tǒng)進行升級;系統(tǒng)對績效可按照年或月為單位匯總,可增加預警值,當存在教職工績效分值過低時,系統(tǒng)自動發(fā)送短信提醒該教職工,績效分數(shù)過低,并且顯示績效總分;可再對個人中心進行拓展,增加調(diào)課,請假,辭職等功能。參考文獻曹芳唐鳴翊康月熙.每日一薦網(wǎng)站的設計與實現(xiàn)[J].科技視界,2018(34):119-120.徐曉.DivCSSJavascrip技術在電子商務技能競賽平臺中的應用研究[J].電腦與信息技術,2015(05):38-40.鄧興劉冬詠.運維播控機房計算機管理系統(tǒng)的應用性開發(fā)[J].中國有線電視,2016(12):5-5.陳亮劉太君尚愛民葉焱.基于NodeJS的漏纜入侵系統(tǒng)服務端及其WEB客戶端的研發(fā)[J].無線通信技術,2018(1):6-6.陳振娟鄭靖玉李明蘭韓娟吳麗麗.復習資料共享平臺的搭建[J].電腦知識與技術,2019(01):78-80.王宗宇.遠方集中抄表系統(tǒng)在福建省金湖電力公司的實現(xiàn)與應用[J].中國科技博覽,2012(26):1-1.張福峰劉振名.利用ADODB實現(xiàn)SQLSERVER數(shù)據(jù)庫訪問[J].農(nóng)業(yè)網(wǎng)絡信息,2015(09):104-105.李佩佩.基于船聯(lián)網(wǎng)的跨域智能身份認證體系研究[J].中國優(yōu)秀碩士學位論文全文數(shù)據(jù)庫,2016(02):64-64.張麗黃晨怡.基于MVC設計模式的軟件開發(fā)論壇的設計與實現(xiàn)[J].電腦知識與技術,2018(27):64-67.謝靜波吳亞昊.JavaScript教學方法的探索[J].信息與電腦(理論版),2015(20):180-181.吳春玲劉廣偉程淑偉柯佩佩馮蕾吳亞斌.基于Nodejs的河道排污監(jiān)測管理平臺的設計與實現(xiàn)[J].工業(yè)控制計算機,2018(10):124-125.
致謝 在本次的系統(tǒng)開發(fā)中,我要首先感謝我們的指導老師葉常春老師。在我煩惱可以找哪位指導老師時,葉老師來問我是否需要指導老師,解決了我的燃煤之急,在項目開始時給我們分了小組,確定了開發(fā)框架,開發(fā)語言,并且定期給我們開會做項目指導,相比其他的人的導師,真心覺得自己很幸運。 其次我需要感謝一下我的組員,在大家都不熟悉新的開發(fā)框架,新的開發(fā)語言時,我們?yōu)榱烁斓耐瓿身椖?,根?jù)自身的能力去分配各自的部分,并且每次遇到問題都非常的積極參與會議,商討如何解決,即使在后期我找到了實習比較忙,組員也沒有嫌棄我,時間精力不足。 最后我需要感謝學校提供這么一個平臺,在這里認識了很多的良師益友,感謝所有在生活上,學習上等幫助過我的人。最后感謝一下,各位老師對我的論文已經(jīng)審批跟查閱,希望各位老師給我提出寶貴的意見,以供我繼續(xù)改進跟努力。
怎樣提高電腦系統(tǒng)運行速度WindowsXP的啟動速度比Windows2000要快30%左右,但相對于Windows98仍然要慢了不少,不過,我們可以通過優(yōu)化設置,來大大提高WindowsXP的啟動速度。加快系統(tǒng)啟動速度主要有以下方法:盡量減少系統(tǒng)在啟動時加載的程序與服務;對磁盤及CPU等硬件進行優(yōu)化設置;修改默認設置,減少啟動等待時間等。這些方法大部分既可減少系統(tǒng)啟動的時間,又可以節(jié)省系統(tǒng)資源,加快電腦運行速度。1.加快系統(tǒng)啟動速度WindowsXP的啟動速度比Windows2000要快30%左右,但相對于Windows98仍然要慢了不少,不過,我們可以通過優(yōu)化設置,來大大提高WindowsXP的啟動速度。加快系統(tǒng)啟動速度主要有以下方法:盡量減少系統(tǒng)在啟動時加載的程序與服務;對磁盤及CPU等硬件進行優(yōu)化設置;修改默認設置,減少啟動等待時間等。這些方法大部分既可減少系統(tǒng)啟動的時間,又可以節(jié)省系統(tǒng)資源,加快電腦運行速度。(1)MsconfigWindowsXP的啟動速度在系統(tǒng)安裝初期還比較快,但隨著安裝的軟件不斷增多,系統(tǒng)的啟動速度會越來越慢,這是由于許多軟件把自己加在了啟動程序中,這樣開機即需運行,大大降低了啟動速度,而且也占用了大量的系統(tǒng)資源。對于這樣一些程序,我們可以通過系統(tǒng)配置實用程序Msconfig將它們從啟動組中排除出去。選擇“開始”菜單中的“運行”命令,在“運行”對話框中鍵入“Msconfig”,回車后會彈出“系統(tǒng)配置實用程序”對話框,選擇其中的“啟動”選項卡(如圖1),該選項卡中列出了系統(tǒng)啟動時加載的項目及來源,仔細查看每個項目是否需要自動加載,否則清除項目前的復選框,加載的項目越少,啟動的速度就越快。設置完成后需要重新啟動方能生效。(2)BootvisBootvis是微軟提供的一個啟動優(yōu)化工具,可提高WindowsXP的啟動速度。用BootVis提升WindowsXP的啟動速度必須按照正確的順序進行操作,否則將不會起到提速的效果。其正確的操作方法如下:啟動Bootvis,從其主窗口(如圖2)中選擇“工具”菜單下的“選項”命令,在“符號路徑”處鍵入Bootvis的安裝路徑,如“C:\ProgramFiles\Bootvis”,單擊“保存”退出。從“跟蹤”菜單中選擇“下次引導”命令,會彈出“重復跟蹤”對話框,單擊“確定”按鈕,BootVis將引導WindowsXP重新啟動,默認的重新啟動時間是10秒。系統(tǒng)重新啟動后,BootVis自動開始運行并記錄啟動進程,生成啟動進程的相關BIN文件,并把這個記錄文件自動命名為TRACE_BOOT_1_1。程序記錄完啟動進程文件后,會重新啟動BootVis主界面,在“文件”菜單中選擇剛剛生成的啟動進程文件“TRACE_BOOT_1_1”。窗口中即會出現(xiàn)“CPU>使用”、“磁盤I/O”、“磁盤使用”、“驅動程序延遲”等幾項具體圖例供我們分析,不過最好還是讓BootVis程序來自動進行分析:從“跟蹤”菜單中選擇“系統(tǒng)優(yōu)化”命令,程序會再次重新啟動計算機,并分析啟動進程文件,從而使計算機啟動得更快。(3)禁用多余的服務WindowsXP在啟動時會有眾多程序或服務被調(diào)入到系統(tǒng)的內(nèi)存中,它們往往用來控制Windows系統(tǒng)的硬件設備、內(nèi)存、文件管理或者其他重要的系統(tǒng)功能。但這些服務有很多對我們用途不大甚至根本沒有用,它們的存在會占用內(nèi)存和系統(tǒng)資源,所以應該將它們禁用,這樣最多可以節(jié)省70MB的內(nèi)存空間,系統(tǒng)速度自然也會有很大的提高。選擇“開始”菜單中的“運行”命令,在“運行”對話框鍵入“services.msc”后回車,即可打開“服務”窗口。窗口的服務列表中列出了系統(tǒng)提供的所有服務的名稱、狀態(tài)及啟動類型。要修改某個服務,可從列表雙擊它,會彈出它的屬性對話框(如圖3),你可從“常規(guī)”選項卡對服務進行修改,通過單擊“啟動”、“停止”、“暫停”、“恢復”四個按鈕來修改服務的狀態(tài),并可從“啟動類型”下拉列表中修改啟動類型,啟動類型有“自動”、“手動”、“已禁用”三種。如果要禁止某個服務在啟動自動加載,可將其啟動類型改為“已禁用”。WindowsXP提供的所有服務有36個默認是自動啟動的,實際上,其中只有8個是必須保留的(見下表),其他的則可根據(jù)自己的需要進行設置,每種服務的作用在軟件中有提示。4)修改注冊表來減少預讀取,減少進度條等待時間WindowsXP在啟動過程中會出現(xiàn)一個進度條,我們可以通過修改注冊表,讓進度條只跑一圈就進入登錄畫面。選擇“開始”菜單中的“運行”命令,在“運行”對話框鍵入“regedit”命令后回車,即可啟動注冊表編輯器,在注冊表中找HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\PrefetchParameters,選擇其下的EnablePrefetcher鍵,把它的鍵值改為“1”即可。(5)減少開機磁盤掃描等待時間當Windows日志中記錄有非正常關機、死機引起的重新啟動,系統(tǒng)就會自動在啟動的時候運行磁盤掃描程序。在默認情況下,掃描每個分區(qū)前會等待10秒鐘,如果每個分區(qū)都要等上10秒才能開始進行掃描,再加上掃描本身需要的時間,會耗費相當長的時間才能完成啟動過程。對于這種情況我們可以設置取消磁盤掃描的等待時間,甚至禁止對某個磁盤分區(qū)進行掃描。選擇“開始→運行”,在運行對話框中鍵入“chkntfs/t:0”,即可將磁盤掃描等待時間設置為0;如果要在計算機啟動時忽略掃描某個分區(qū),比如C盤,可以輸入“chkntfs/xc:”命令;如果要恢復對C盤的掃描,可使用“chkntfs/dc:”命令,即可還原所有chkntfs默認設置,除了自動文件檢查的倒計時之外。2.提高系統(tǒng)運行速度提升系統(tǒng)運行速度的思路與加快啟動的速度類似:盡量優(yōu)化軟硬件設置,減輕系統(tǒng)負擔。以下是一些常用的優(yōu)化手段。(1)設置處理器二級緩存容量WindowsXP無法自動檢測處理器的二級緩存容量,需要我們自己在注冊表中手動設置,首先打開注冊表,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\”,選擇其下的“SecondLevelDataCache”,根據(jù)自己所用的處理器設置即可,例如PIIICoppermine/P4Willamette是“256”,AthlonXP是“384”,P4Northwood是“512”。(2)提升系統(tǒng)緩存同樣也是在“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\”位置,把其下的“LargeSystemCache”鍵值從0改為1,WindowsXP就會把除了4M之外的系統(tǒng)內(nèi)存全部分配到文件系統(tǒng)緩存中,這樣XP的內(nèi)核能夠在內(nèi)存中運行,大大提高系統(tǒng)速度。通常來說,該優(yōu)化會使系統(tǒng)性能得到相當?shù)奶嵘?,但也有可能會使某些應用程序性能降低。需要注意的是必須?56M以上的內(nèi)存,激活LargeSystemCache才可起到正面的作用,否則不要輕易改動它。(3)改進輸入/輸出性能這個優(yōu)化能夠提升系統(tǒng)進行大容量文件傳輸時的性能,不過這只對服務器用戶才有實在意義。我們可在中新建一個DWORD(雙字節(jié)值)鍵值,命名為IOPageLockLimit。一般情況下把數(shù)據(jù)設置8~16MB之間性能最好,要記住這個值是用字節(jié)來計算的,例如你要分配10MB的話,就是10×?
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45076-2024再生資源交易平臺建設規(guī)范
- GA/T 761-2024停車庫(場)安全管理系統(tǒng)技術要求
- 工作總結之黨校進修總結處級干部黨校培訓總結
- 電工電子技術(第3版) 課件 1.5 電容
- 2024年固體分散載體材料項目資金籌措計劃書代可行性研究報告
- 銀行員工薪酬體系制度
- 銀行客戶關系管理規(guī)范制度
- 重慶市豐都縣2023-2024學年八年級上學期期末考試數(shù)學試卷(含答案)
- 《講Scilab基本操作》課件
- 2011世界頂級名車品時尚盛宴
- 2024-2025學年語文二年級上冊 部編版期末測試卷 (含答案)
- 語文修改語病-三年(2022-2024)高考病句試題真題分析及 備考建議(課件)
- 中國抗癌協(xié)會胰腺癌患者科普指南2024(完整版)
- 齊魯名家談方論藥 知到智慧樹網(wǎng)課答案
- 2023人工智能基礎知識考試題庫(含答案)
- cecs31-2017鋼制電纜橋架工程設計規(guī)范
- 小學語文跨學科學習任務群的設計
- 《敬廉崇潔》的主題班會
- 國家開放大學電大《計算機應用基礎(本)》終結性考試試題答案(格式已排好)任務一
- 增值稅預繳稅款表電子版
- 學生學習評價量表模板
評論
0/150
提交評論