版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
用于辦公室的自動(dòng)化印機(jī)的設(shè)計(jì)與開發(fā)-軟件設(shè)計(jì)摘要隨著工業(yè)的不斷發(fā)展,逐級(jí)深化,經(jīng)歷了工業(yè)1.0到工業(yè)3.0的轉(zhuǎn)變。從18世紀(jì)60年代至19世紀(jì)中期的機(jī)械設(shè)備制造時(shí)代,到如今的信息化時(shí)代,機(jī)械化設(shè)備的使用越發(fā)頻繁,發(fā)展速度也逐漸加快,人們在享受機(jī)器帶來便利的同時(shí),也對機(jī)器的操作和控制便捷性有更高的需求,如今,自動(dòng)化設(shè)備已經(jīng)普及家家戶戶,自動(dòng)化的機(jī)械產(chǎn)品也是層出不窮,但是在一些不引人注目的印章方面仍缺少自動(dòng)化設(shè)備的幫助。通過在大學(xué)四年里學(xué)習(xí)和生活上的耳聞目染,感受到在很多地方還是在使用手動(dòng)印章,例如學(xué)校教務(wù)處,需要在學(xué)生升學(xué),請假,畢業(yè)和就業(yè)指導(dǎo)等事件中進(jìn)行印章,而印章工作在校園里仍處于手動(dòng)印章的狀態(tài),這不僅會(huì)延緩辦事效率還很浪費(fèi)體力,本設(shè)計(jì)主要分析了國內(nèi)外自動(dòng)印章機(jī)的種類和發(fā)展趨勢,對已有的自動(dòng)印章機(jī)做出改進(jìn),著重面向辦公人群,使用戶解放雙手,提升辦事效率。所以,本小組結(jié)合大學(xué)四年所學(xué)的機(jī)械原理、機(jī)械設(shè)計(jì)、c#、氣壓與液壓傳動(dòng)等相關(guān)的專業(yè)知識(shí),經(jīng)過研究,設(shè)計(jì)出一款帶有權(quán)限識(shí)別的自動(dòng)化印章機(jī)。該后臺(tái)系統(tǒng)采用VisualStudio2017和sqlsever2014數(shù)據(jù)庫倆款軟件制作而成,通過C#里類庫中的類和數(shù)據(jù)庫之間的調(diào)用,實(shí)現(xiàn)了多用戶登錄,權(quán)限管理,出錯(cuò)提示,修改密碼,信息查詢和打印模塊的基礎(chǔ)功能,對每個(gè)模塊劃分清晰明確,在為用戶提供了一些基本的服務(wù)模塊的同時(shí),也很好的保證了印章的使用安全,是一個(gè)可以滿足基本服務(wù)需求的印章管理系統(tǒng)。關(guān)鍵詞:自動(dòng)化,sqlsever數(shù)據(jù)庫,VisualStudio,類庫,類Designanddevelopmentofautomaticprintingmachineforoffice-softwaredesignAbstractWiththecontinuousdevelopmentanddeepeningofindustry,ithasexperiencedindustryOneToindustryThreeChange.Fromthemechanicalequipmentmanufacturingerainthe1860stothemid-19thcenturytotheinformationagetoday,Theuseofmechanizedequipmentismoreandmorefrequent,andthedevelopmentspeedisgraduallyaccelerated.Peopleenjoytheconvenienceofthemachine,butalsohavehigherdemandfortheconvenienceoftheoperationandcontrolofthemachine.Nowadays,automationequipmenthasbeenwidelyusedineveryhousehold,andautomatedmechanicalproductsareemerginginanendlessstream,butthereisstillalackofhelpofautomationequipmentinsomeunobtrusiveseals。ThroughfouryearsoflearningandlivingintheUniversity,Ifeelthatmanualsealisstillusedinmanyplaces,suchastheAcademicAffairsOfficeoftheUniversity,whichneedstobeusedineventssuchasstudents'enrollment,leave,graduationandemploymentguidance,whilethesealworkisstillinthestateofmanualsealinthecampus,whichwillnotonlydelaytheworkefficiencybutalsowastephysicalstrength.ThisdesignmainlyincludesThispaperanalyzesthetypesanddevelopmenttrendoftheautomaticsealmachineathomeandabroad,improvestheexistingautomaticsealmachine,andfocusesontheofficecrowd,Tofreehandsandimproveefficiency.Therefore,basedonthefour-yearmechanicalprinciple,mechanicaldesign,C,airpressureandhydraulictransmissionandotherrelatedprofessionalknowledge,thisgrouphasdesignedanautomaticsealmachinewithauthorityidentificationafterresearch.Thebackgroundsystemadoptsvisualstudio2017andSQLSever2014databaseismadebytwokindsofsoftware.ThroughthecallbetweentheclassanddatabaseintheclasslibraryinC,thebasicfunctionsofmulti-userlogin,authoritymanagement,errorprompt,passwordmodification,informationqueryandprintingmodulesarerealized.Eachmoduleisdividedclearlyandclearly.Whileprovidingsomebasicservicemodulesforusers,italsoensurestheuseofsealsWithsecurity,itisasealmanagementsystemthatcanmeetthebasicservicerequirements.Keywords:automation,SQLSeverdatabase,visualstudio,classlibrary,class目錄TOC\o"1-3"\h\u1緒論 11.1全自動(dòng)印章機(jī)控制系統(tǒng)的概念 11.2全自動(dòng)印章機(jī)的現(xiàn)狀 11.3自動(dòng)印章機(jī)的優(yōu)點(diǎn) 21.4自動(dòng)印章機(jī)存在的問題 21.5選題的研究意義 21.6本文的主要工作 22全自動(dòng)印章機(jī)設(shè)計(jì)與開發(fā)總體方案設(shè)計(jì) 32.1設(shè)計(jì)概述 32.2全自動(dòng)印章機(jī)的設(shè)計(jì)要求 42.3全自動(dòng)印章機(jī)設(shè)計(jì)與開發(fā)總體方案 52.4本章小結(jié) 53系統(tǒng)開發(fā)工具介紹 53.1VisualStudio2017 53.2SQLSever2014數(shù)據(jù)庫 緒論全自動(dòng)印章機(jī)是自動(dòng)印章設(shè)備,是用機(jī)械代替人力,并通過系統(tǒng)對印章實(shí)行自動(dòng)化的管理,使辦公效率更加的高效化和智能化,我國雖然很早就出現(xiàn)了印章技術(shù),但對與印章的自動(dòng)化設(shè)計(jì)起步較晚,近年來也是在不斷發(fā)展這種自動(dòng)化的印章技術(shù)。本文將通過研究國內(nèi)外的自動(dòng)化打印設(shè)備,了解與學(xué)習(xí)自動(dòng)印章的原理,并且研究各種管理系統(tǒng)的設(shè)計(jì)開發(fā),從而根據(jù)本組設(shè)計(jì)產(chǎn)品的需求,來設(shè)計(jì)出一套印章權(quán)限管理功能。1.1全自動(dòng)印章機(jī)控制系統(tǒng)的概念全自動(dòng)印章機(jī)的軟件系統(tǒng)主要功能是對使用者的級(jí)別,印章的大小進(jìn)行識(shí)別和管理,而且可以實(shí)現(xiàn)歷史記錄查詢的功能,能查出什么身份的人在什么時(shí)間地點(diǎn)登陸使用了這個(gè)印章。1.2全自動(dòng)印章機(jī)的現(xiàn)狀(1)國外全自動(dòng)印章機(jī)發(fā)展現(xiàn)狀蓋章分為兩類,一類是蓋鋼印的。一類是蓋印泥的。在20世紀(jì)30~40年人們對鋼印印章有了需求,才慢慢出現(xiàn)了鋼印的印章機(jī)。隨著科技的進(jìn)步,鋼印的印章機(jī)也在不斷的變化,但是工作原理基本是一樣的,沒有太大的變化。到當(dāng)代出現(xiàn)了擊打打印機(jī),由于本身屬于專用的擊打打印機(jī),所以功能和使用范圍都受到了一定限制,沒有太大的變化。而蓋印泥章印的機(jī)器出現(xiàn)的很少。目前世界上有名的蓋章機(jī)有美國HEDMAN海德曼EDP-PLUSIN自動(dòng)連續(xù)蓋章機(jī)、德國Reiner自動(dòng)蓋章機(jī)等,這些都是擊打式蓋章機(jī)。SEAL-A型電子自動(dòng)蓋章機(jī),是印泥蓋章機(jī),是目前可以查到的銷售的蓋章機(jī)。鋼印蓋章機(jī)的種類也不是太多。(2)國內(nèi)自動(dòng)印章機(jī)發(fā)展現(xiàn)狀印章在國內(nèi)出現(xiàn)的很早,但在蓋章技術(shù)方面,技術(shù)比較單一,大多是人工手動(dòng)蓋章。目前市場上主要有兩種形式的自動(dòng)印章機(jī),自動(dòng)鋼印章機(jī)、擊打自動(dòng)印章機(jī)。這兩種自動(dòng)印章機(jī)的優(yōu)點(diǎn)是安全、智能化。共同的缺點(diǎn)是,功能單一,效率低,靈活性不夠高。1.3自動(dòng)印章機(jī)的優(yōu)點(diǎn)印章的安全管理:原先的手動(dòng)印章,在蓋章之后很難去查尋使用者在什么時(shí)候用的這個(gè)印章,是否可以使用這個(gè)印章,會(huì)存在跨權(quán)限使用而很難追查這個(gè)事情,如果自動(dòng)印章機(jī)因?yàn)榧尤氲陌踩到y(tǒng)的緣故,所以可以對使用者的級(jí)別進(jìn)行管理,也可以查詢詳細(xì)的歷史記錄,很好的解決了這個(gè)問題。(2)自動(dòng)印章機(jī)可以有效的代替人手蓋章,有效減少蓋章不均等問題,也可以讓方便蓋章者不再時(shí)無法蓋章等問題得到一個(gè)有效的解決辦法。也有效的提高了企業(yè)的勞動(dòng)效率。(3)可以移動(dòng)印章,本次的設(shè)計(jì)印章機(jī)可以活動(dòng)印章,解決里蓋章位置不同或者紙張放置不同所產(chǎn)生的錯(cuò)印問題。1.4自動(dòng)印章機(jī)存在的問題現(xiàn)階段的自動(dòng)印章機(jī)還存在無法多張紙張一次打印的問題,現(xiàn)階段的印章機(jī)由于無法放置很多紙張,所以只能讓使用者一次一張的放入紙張。1.5選題的研究意義根據(jù)身邊的環(huán)境選擇這個(gè)題目,現(xiàn)在很多地方政府或者國企,都在逐步的使用網(wǎng)絡(luò)印章,雖然還是會(huì)用手動(dòng)蓋章,但因網(wǎng)絡(luò)印章可以提高辦事效率,手動(dòng)印章正在逐漸變少,但在校園生活中,很多印章都得通過老師手印的方式來進(jìn)行蓋章,這樣其實(shí)在日常的請假等方面同樣也會(huì)造成一些小的影響,比如一次有很多同學(xué)來蓋章,而老師又急于忙于手頭的工作,這樣就可能會(huì)導(dǎo)致辦事效率的減弱,為了改善這種問題,提高蓋章效率,節(jié)省時(shí)間,因此選擇了全自動(dòng)印章機(jī)的設(shè)計(jì)與開發(fā)這項(xiàng)課題。1.6本文的主要工作主要是分為以下五個(gè)步驟對該印章管理系統(tǒng)進(jìn)行研究與開發(fā):(1)對智能印章機(jī)的系統(tǒng)進(jìn)行研究上網(wǎng)上查看一些智能印章機(jī)的系統(tǒng)和視頻進(jìn)行研究,了解這些系統(tǒng)大致需要的功能有哪些,選擇性的放入自動(dòng)印章機(jī)中。(2)對登陸界面和主界面,副頁面進(jìn)行設(shè)計(jì)研究查閱相關(guān)視頻和資料又結(jié)合一些圖書管理系統(tǒng)的頁面設(shè)計(jì),設(shè)計(jì)出自己需要的模型板塊,以及登陸界面和主界面的背景設(shè)計(jì),主界面的板塊功能有:身份識(shí)別,尺寸選擇,歷史記錄的和打印份數(shù)的選擇,副業(yè)也要注意尺寸的選擇。(3)連接數(shù)據(jù)庫,實(shí)現(xiàn)多用戶管理和身份識(shí)別通過c#和SQLsever數(shù)據(jù)庫的連接和對數(shù)據(jù)庫的調(diào)用,實(shí)現(xiàn)多用戶的登陸,以及身份識(shí)別和管理什么身份對應(yīng)可以使用的印章。(4)實(shí)現(xiàn)登陸日志的查詢同過對數(shù)據(jù)庫的調(diào)用,在數(shù)據(jù)庫中建立表以此記錄使用者的時(shí)間,在通過c#的編輯,將頁面登陸的用戶傳送進(jìn)數(shù)據(jù)庫中。在通過登錄查詢界面獲取表中信息進(jìn)行展示。各個(gè)功能模塊的開發(fā)除了以上基本的功能實(shí)施以外,還設(shè)計(jì)一些其他的模塊,在保證用戶有了基本的權(quán)限安全后的服務(wù)操作,如密碼修改,印章使用查詢等服務(wù)類功能。2全自動(dòng)印章機(jī)設(shè)計(jì)與開發(fā)總體方案設(shè)計(jì)針對全自動(dòng)印章機(jī)的運(yùn)作流程,設(shè)計(jì)出可以實(shí)現(xiàn)對印章使用權(quán)限進(jìn)行分類管控,實(shí)現(xiàn)印章機(jī)可以自由移動(dòng)印章位置及自動(dòng)按壓印章,以及印章機(jī)作為辦公用品,體積不宜過大為準(zhǔn)則的結(jié)構(gòu)設(shè)計(jì)與開發(fā)。本設(shè)計(jì)的控制系統(tǒng)使用氣動(dòng)控制為核心,首先了解整個(gè)氣動(dòng)系統(tǒng)元件的組成,再了解各個(gè)原件的原理和優(yōu)缺點(diǎn),進(jìn)行合適的元件種類和型號(hào)的選擇。使用IO模塊(工業(yè)級(jí)開關(guān)量模塊)進(jìn)行串口通信,使C#中的程序可以與印章機(jī)進(jìn)行適配。UI界面和后臺(tái)系統(tǒng)的設(shè)計(jì)中,通過了解各種管理系統(tǒng)的視頻,因?yàn)槭忻嫔虾芏嘤≌鹿芾硐到y(tǒng)較為復(fù)雜,除了觀看印章系統(tǒng)視頻以外也了解很多其他的管理系統(tǒng)的頁面布局及功能設(shè)計(jì),如圖書管理系統(tǒng),超市收銀系統(tǒng)等最后,將軟件部分設(shè)計(jì)大體分為倆個(gè)設(shè)計(jì)方面,頁面布局設(shè)計(jì)和功能設(shè)計(jì)。2.1設(shè)計(jì)概述考慮到很多自動(dòng)印章機(jī)的體積較大,系統(tǒng)也較為復(fù)雜,本次想設(shè)計(jì)一個(gè)小型便捷為目的的全自動(dòng)印章機(jī),計(jì)劃設(shè)計(jì)出一種可以放置在辦公桌面上的小型自動(dòng)印章機(jī),以小巧、移動(dòng)便捷、造型簡單為目的,通過氣缸與機(jī)械結(jié)構(gòu)相結(jié)合,利用滑桿等零件完成自動(dòng)蓋章的任務(wù),節(jié)約能量和成本。而在軟件系統(tǒng)方面的設(shè)計(jì)多以用戶的級(jí)別判定和安全考慮,當(dāng)然也會(huì)為用戶提供一些基本的服務(wù)。其次市面上的印章機(jī)多數(shù)都是用電路系統(tǒng)作為主要的控制系統(tǒng),電機(jī)和繼電器為核心元件,但是基于創(chuàng)新性,本設(shè)計(jì)采用氣動(dòng)系統(tǒng),供給兩個(gè)氣動(dòng)系統(tǒng)的方案進(jìn)行選擇。本設(shè)計(jì)采用的IO模塊正是比起沒有串口通信的印章機(jī)有很多優(yōu)點(diǎn)且更適合。IO0200作為繼電器輸出模塊,可以托負(fù)載,與軟件的程序的運(yùn)行更適配,起到開關(guān)的作用。為了更直觀的了解本次設(shè)計(jì)的流程,本小組的整體流程圖如圖2.1所示:圖2.1設(shè)計(jì)流程圖2.2全自動(dòng)印章機(jī)的設(shè)計(jì)要求針對全自動(dòng)印章機(jī)的設(shè)計(jì)要求,總體來說要求印章機(jī)體積較小適合辦公,有一個(gè)可以提供基礎(chǔ)服務(wù)的后臺(tái)系統(tǒng)和UI界面以及可以自動(dòng)化的控制印章,因此對每個(gè)要求進(jìn)行細(xì)化總結(jié)后得出以下四點(diǎn)要求:結(jié)構(gòu)設(shè)計(jì)要求:利用solidworks軟件對自動(dòng)印章機(jī)的結(jié)構(gòu)進(jìn)行設(shè)計(jì),首先確定自動(dòng)印章機(jī)的大致外觀造型,然后在考慮自動(dòng)印章機(jī)各部分零件大小、后續(xù)電子設(shè)備裝載空間等問題的基礎(chǔ)上,通過對各部分零部件的設(shè)計(jì),以及完成各零件的裝配,最后形成自動(dòng)印章機(jī)的完整結(jié)構(gòu),通過導(dǎo)出裝配圖和主要零部件工程圖,最終完成結(jié)構(gòu)的設(shè)計(jì)??刂圃O(shè)計(jì)要求:氣動(dòng)系統(tǒng)中的執(zhí)行元件——?dú)飧啄芨鶕?jù)軟件中的程序指令進(jìn)行運(yùn)作,要能使氣缸有足夠的力使印章實(shí)現(xiàn)張印,IO口串口通信的執(zhí)行程序能正常運(yùn)行,使設(shè)備能接收到程序指令。設(shè)計(jì)要求如下:(1)氣動(dòng)系統(tǒng)的氣壓能夠穩(wěn)定輸送,氣缸能夠穩(wěn)定進(jìn)行往復(fù)運(yùn)動(dòng)。串口通訊實(shí)現(xiàn)和設(shè)備的通訊,把C#的程序編程指令與設(shè)備進(jìn)行通信,實(shí)現(xiàn)使用權(quán)限和使用的記錄。保護(hù)電路確保在出現(xiàn)短路時(shí)能夠立刻斷開電路,保護(hù)電路和氣動(dòng)系統(tǒng)。頁面設(shè)計(jì)要求:因?yàn)轫撁娌季衷O(shè)計(jì)需要整體的美觀程度,所以不采用VisualStudiao軟件的原邊框,也將主也面的尺寸調(diào)為1143*660,并且在圖片的選擇也進(jìn)行了篩選,最終確定了倆張現(xiàn)代圓頭印章的圖片,并且將原有系統(tǒng)的主色調(diào)進(jìn)行了調(diào)整。同時(shí)主界面的布局設(shè)計(jì)為左邊為功能模塊,右邊為副界面展示窗口,在修改密碼界面需要對使用者的設(shè)置的新密碼長度密碼做出提示。功能設(shè)計(jì)要求:在登陸界面,需要做到多個(gè)用戶的登陸管理,并且對登陸用戶的級(jí)別做一個(gè)初步的判定,并且對用戶輸入的面貌進(jìn)行初步校驗(yàn),如用戶名是否為空,密碼是否大于6位,用戶名和密碼是否為空,在登陸成功后會(huì)彈出對級(jí)別判定后登陸成功的消息框,如歡迎學(xué)生使用。在登陸成功后,系統(tǒng)會(huì)將使用者的姓名,賬號(hào),使用時(shí)間和結(jié)束時(shí)間錄入數(shù)據(jù)庫的日志表中。在主界面會(huì)上方顯示登陸者的名稱還有登陸的時(shí)間,主界面也需要做到,第一可以最小化,第二點(diǎn)擊關(guān)閉時(shí)可以關(guān)閉整個(gè)程序,在修改密碼界面需要做到自動(dòng)是提取并顯示使用者名稱和賬號(hào)顯示,同時(shí)需要校驗(yàn)新舊密碼是否重復(fù),新密碼是否一樣,新密碼是否大于六位。在印章尺寸選擇按鈕的模塊,主要的功能是模擬打印時(shí)長,需要顯示打印中并且過10s以后會(huì)彈出答應(yīng)成功等字樣,在登陸日志界面,需要調(diào)出后臺(tái)系統(tǒng)登陸日志,展示在UI層的登陸查詢界面,需要做到1.展示所用的人登陸時(shí)間2.通過賬號(hào)和用戶查詢個(gè)人使用并且可以選擇年,月,日或者從幾號(hào)到幾號(hào)的方法查詢,印章系統(tǒng)查詢,通過對后臺(tái)印章系統(tǒng)的調(diào)入,可以查詢使用者的名稱級(jí)別和所用印章。2.3全自動(dòng)印章機(jī)設(shè)計(jì)與開發(fā)總體方案采用VisualStudiao2017版和SQLSever2014版數(shù)據(jù)庫來組建后臺(tái)系統(tǒng),控制系統(tǒng)由兩部分組成,一部分是氣動(dòng)控制系統(tǒng),方案一是由氣泵,調(diào)壓閥,氣動(dòng)電磁閥,氣缸組成,方案二是由空氣壓縮機(jī),氣源雙聯(lián)件,氣動(dòng)電磁閥,氣缸組成。另一部分是驅(qū)動(dòng)系統(tǒng),主要有IO串口通信,可添加保護(hù)電路。而在結(jié)構(gòu)方面主要由以下幾方面組成:機(jī)架、印章升降結(jié)構(gòu)、印章左右前后移動(dòng)工作平面、氣缸電磁閥等電子零件放置結(jié)構(gòu)。2.4本章小結(jié)本章主要是對全自動(dòng)印章機(jī)進(jìn)行一個(gè)總體方案的概述,介紹了本設(shè)計(jì)中印章機(jī)的主要的軟件組成和頁面設(shè)計(jì)要求及功能需求及總體思路,需要考慮和解決的問題。3系統(tǒng)開發(fā)工具介紹本章節(jié)主要是對于畢業(yè)設(shè)計(jì)中所用到的VisualStudio2017和SQLSever2014數(shù)據(jù)庫軟件進(jìn)行一個(gè)介紹,講解一下這個(gè)版本的軟件想比于其他版本所存在的優(yōu)勢。3.1VisualStudio2017VisualStudio2017是微軟于2017年3月8日正式推出的新版本,是迄今為止最具生產(chǎn)力的VisualStudio版本。其內(nèi)建工具整合了.NETCore、Azure應(yīng)用程序、微服務(wù)(microservices)、Docker容器等所有內(nèi)容。相較于其他版本的VisualStudio,2017版可以更快,更詳細(xì)的給出程序中所給的錯(cuò)誤,而其中的C#軟件中也更新了C#7.0的版本。在本次的設(shè)計(jì)工程中C#軟件主要負(fù)責(zé)頁面設(shè)計(jì)和連接以及數(shù)據(jù)庫的調(diào)用的一些基本編程。其模塊基本配置步驟如下(1)打開VisualStudio2017然后新建項(xiàng)目,選擇windows窗體應(yīng)用,如圖3.1所示:圖3.1新建項(xiàng)目頁面(2)除了窗體應(yīng)用,還需要建立幾個(gè)類庫,分別為Common(通用工具),DAL(數(shù)據(jù)訪問層),DBUitily(數(shù)據(jù)連接),models(數(shù)據(jù)表示層)。類庫選擇NETFramework這一類。如圖3.2所示:圖3.2建立類庫3.2SQLSever2014數(shù)據(jù)庫SQLServer系列軟件是Microsoft公司推出的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。2014年4月16日于舊金山召開的一場發(fā)布會(huì)上,微軟CEO薩蒂亞·納德拉宣布正式推出“SQLServer2014”。相較與原先的SQLSever2008或SQLSever2008R2版本,SQLServer2014可以是新手在建立數(shù)據(jù)庫或生成新的表的時(shí)候,可以通過鼠標(biāo)右鍵直接建立新的數(shù)據(jù)庫,在新數(shù)據(jù)數(shù)據(jù)庫下面的表這個(gè)文件中右鍵即可建立新的表,表中國每個(gè)列的類型和行數(shù)都可以通過鼠標(biāo)操作,而老版的數(shù)據(jù)庫只能通過代碼建立數(shù)據(jù)庫,當(dāng)然SQLServer2014只能和win10系統(tǒng)匹配。本次設(shè)計(jì)中SQLSever2014數(shù)據(jù)庫是用來存儲(chǔ)寫入的數(shù)據(jù)以及提供數(shù)據(jù)和接受C#系統(tǒng)更新后的數(shù)據(jù),下面是數(shù)據(jù)庫的配置過程。(1)打開軟件,用windows身份登陸數(shù)據(jù)庫,在建立的連接上選擇屬性,進(jìn)入服務(wù)器的屬性,將身份驗(yàn)證改為SQLSever和Windows身份驗(yàn)證模式(如圖3.3所示)然后點(diǎn)擊確定按鈕,做這步的原因是為了更好的讓數(shù)據(jù)庫和c#連接。圖3.3屬性頁面(2)點(diǎn)開安全性找到登陸名下的sa用戶,點(diǎn)開用戶修改密碼,并且進(jìn)入設(shè)置頁面啟用登陸和允許改用戶連接數(shù)據(jù)庫。如圖3.4,圖3.5,圖3.6所示:圖3.4登陸名頁面圖3.5Sa屬性頁面圖3.6狀態(tài)設(shè)置(3)單機(jī)數(shù)據(jù)庫點(diǎn)擊新建以后會(huì)彈出如下圖所示的頁面,填入數(shù)據(jù)庫的名稱然后點(diǎn)擊添加即可,如圖3.7,圖3.8所示:圖3.7建立新數(shù)據(jù)庫圖3.8數(shù)據(jù)庫建成以后視圖4印章系統(tǒng)的調(diào)試及運(yùn)行本章節(jié)主要分為三個(gè)部分來講:UI設(shè)計(jì)界面主要是展示每個(gè)模塊的頁面設(shè)計(jì)和功能的簡介,各類庫功能簡介主要是簡單概括各類庫在該設(shè)計(jì)中的結(jié)構(gòu)位置和作用,功能實(shí)現(xiàn)章節(jié)主要講述了如何在各個(gè)類庫及UI界面中編寫程序去調(diào)用數(shù)據(jù)庫,來實(shí)現(xiàn)一些基礎(chǔ)功能。4.1C#UI層界面展示設(shè)計(jì)本節(jié)主要簡要描述在C#軟件中所設(shè)計(jì)的各個(gè)頁面的布局和功能簡介倆個(gè)方面進(jìn)行介紹.4.1.1用戶登陸界面(1)用戶登錄界面基本的界面設(shè)計(jì)一個(gè)好的系統(tǒng)就需要好的登陸界面,所以需要設(shè)計(jì)出一個(gè)好看的頁面設(shè)計(jì),需要將窗體原有的邊框去掉,更改窗體的背景顏色,選擇符合窗體的圖片做整體背景等步驟,設(shè)計(jì)出印章系統(tǒng)的登陸界面。如圖4.1,圖4.2所示:(a)(b)圖4.1通過FormBorderStyle屬性欄把Sizable改為None去掉邊框圖4.2登陸頁面完成圖(2)登陸界面的功能設(shè)計(jì)實(shí)現(xiàn)多用戶的登陸管理,區(qū)分學(xué)生與老師身份,以及在用戶登錄的時(shí)候?qū)τ脩敉瓿苫镜男r?yàn),如用戶名不能為空,密碼必須大于六位,用戶名和密碼錯(cuò)誤等提示。如圖4.3所示:(a)(b)(c)圖4.3密碼校驗(yàn)功能展示三幅圖4.1.2主界面的設(shè)計(jì)(1)主界面頁面設(shè)計(jì)相對與登陸界面的設(shè)計(jì)不同的是,主界面的設(shè)計(jì)為了好看,參考了很多系統(tǒng)的主界面的設(shè)計(jì)和布局,最終把尺寸確定在去掉邊框以后尺寸為1366*768這個(gè)數(shù)值(如圖4.4所示:)并采用分頁式設(shè)計(jì),左邊放入模塊按鈕,右邊放入界面圖片,并將lable控件的屬性值改變,用來做大模塊區(qū)域名稱和模塊區(qū)域的劃分,其次主頁面之外的分頁面都采用1150*662的尺寸標(biāo)準(zhǔn)。如圖4.5所示:圖4.4尺寸選擇圖4.5主界面頁面設(shè)計(jì)(2)主界面的功能設(shè)計(jì)首要實(shí)現(xiàn)最小化按鈕和關(guān)閉按鈕的功能,當(dāng)點(diǎn)擊關(guān)閉按鈕時(shí)結(jié)束整個(gè)程序,點(diǎn)擊最小化是會(huì)將窗體最小化。其次在登陸時(shí),需要顯示用戶的登陸名稱和上次的登陸時(shí)間,并且設(shè)計(jì)了很多模塊按鈕,當(dāng)模塊按鈕被觸發(fā)時(shí)不會(huì)彈出窗體,而是將窗體展示在圖片區(qū)域。而且在學(xué)生登陸和老師登陸時(shí),學(xué)生是不可以用8cm和10cm的印章的,所以在學(xué)生登陸時(shí),8cm和10cm印章按鈕是無法被看見的。如圖4.6所示:圖4.6學(xué)生登陸界面4.1.3密碼修改模塊界面展(1)密碼修改模塊頁面設(shè)計(jì)在密碼修改界面需要設(shè)計(jì)倆個(gè)密碼長度的提示,還需要設(shè)計(jì)密碼修改的位置,在頂部會(huì)設(shè)計(jì)位置的標(biāo)識(shí),如圖所示,在當(dāng)前用戶的賬號(hào)和當(dāng)前用戶名稱這塊采用的是lable控件,將它的背景顏色和AutoSize屬性進(jìn)行更改,得到當(dāng)前的效果,這樣設(shè)置的目的是為了自動(dòng)獲取用戶名和密碼顯示。如圖4.7所示:圖4.7修改密碼頁面(2)功能說明密碼修改界面的功能其實(shí)是將原先寫入數(shù)據(jù)庫中的密碼提取,在輸入原密碼時(shí)進(jìn)行校驗(yàn),滿足校驗(yàn)的要求以后,UI層會(huì)將更改后的新密碼在導(dǎo)入數(shù)據(jù)庫中將原有密碼進(jìn)行替換。校驗(yàn)的需求有(原密碼是否正確,原密碼和新密碼是否相同,倆次新密碼是否一樣,新密碼是否大于六位)。4.1.4登陸日志建立登陸日志是為了記錄什么人在什么時(shí)間段使用了這個(gè)系統(tǒng),使用了多少分鐘,為了將UI層的數(shù)據(jù)傳到數(shù)據(jù)庫中,應(yīng)建立一個(gè)新的表,其中LogId的值需要設(shè)計(jì)成不斷自動(dòng)增加值,然后在建立其他的列,LoginId,UserName,LoginTime,EndTime,從原有的登陸的表中獲取賬號(hào),使用者名稱,開始時(shí)間,在點(diǎn)擊登陸按鈕時(shí),通過登陸按鈕去向表格中輸入所需要的賬號(hào),使用者名稱及時(shí)間,在關(guān)閉主界面時(shí)會(huì)想數(shù)據(jù)庫錄入退出時(shí)間,這樣每有人登陸一次系統(tǒng),表格中的數(shù)據(jù)就會(huì)自動(dòng)更新一次。4.1.5模擬打?。?)打印的頁面設(shè)計(jì)頁面需要提示使用者所在的當(dāng)前位置,自動(dòng)顯示賬號(hào)和姓名,以及自行顯示份數(shù)的選擇。如圖4.8所示:圖4.8打印頁面設(shè)計(jì)(2)功能設(shè)計(jì)在使用者選擇確定鍵以后,會(huì)彈出一個(gè)等待窗體來告訴使用者,正在打印中需要等待10s,10s過后會(huì)顯示打印成功的消息盒,之后會(huì)關(guān)閉等待窗體。4.1.6登陸查詢模塊登陸查詢的頁面設(shè)計(jì)在登陸查詢的界面除了基礎(chǔ)的去除邊框的設(shè)計(jì)以外,需要設(shè)計(jì)一個(gè)可以展示登陸日志的表格,也需要設(shè)計(jì)賬號(hào)以及用戶名查詢位置,并且要設(shè)計(jì)所用,年,月,日從幾幾年幾月到某某年某月這種時(shí)段查詢按鍵。登陸查詢的功能設(shè)計(jì)登陸查詢界面在主界面點(diǎn)擊彈出此界面的同時(shí)需要彈出所用的用戶登陸情況,并且可以做到通過,天,周,月,年等選擇鍵和賬號(hào)用戶名進(jìn)行精確的查找。4.1.7信息查詢模塊頁面設(shè)計(jì)這里分為老師信息表和學(xué)生信息表倆快,設(shè)計(jì)理念是在一些特定情況下使用者無法聯(lián)系老師或?qū)W生,使用者也可以通過該模塊查詢獲得老師或?qū)W生的基本信息,其中列名包含賬號(hào),姓名,教師工號(hào)(學(xué)號(hào))和聯(lián)系電話。同時(shí)還要設(shè)計(jì)賬號(hào)和用戶名進(jìn)行單個(gè)賬號(hào)的查詢的文本框。如圖4.9所示:圖4.9信息查詢模塊頁面設(shè)計(jì)功能設(shè)計(jì)同設(shè)計(jì)賬號(hào)和用戶名進(jìn)行單個(gè)賬號(hào)的查詢。這樣在可以方便使用者快速找出老師的聯(lián)系方式等基礎(chǔ)信息。4.2各類庫功能介紹本節(jié)主要介紹各個(gè)類庫在該系統(tǒng)設(shè)計(jì)中的結(jié)構(gòu)位置以及各個(gè)類庫所對應(yīng)的功能做一個(gè)簡單的概括。4.2.1DBuitily的概念在設(shè)計(jì)一款管理系統(tǒng)中,往往會(huì)在DBuitily層中建立數(shù)據(jù)庫通用訪問類SqlHelper.cs這一類庫,它主要的功能是對sql中調(diào)出調(diào)入的數(shù)據(jù)做出一個(gè)基本的運(yùn)算調(diào)整,主要分為倆種類型,一種類型為用標(biāo)準(zhǔn)的sql語句,另一種類型為使用帶參數(shù)的sql語句,主要的方法有三種,一是實(shí)現(xiàn)對數(shù)據(jù)庫的增刪改,二是獲取一個(gè)單一的結(jié)果,三是獲取一個(gè)表。以此獲取并對數(shù)據(jù)庫進(jìn)行修改。4.2.2models層介紹這類層設(shè)計(jì)起來比較簡單,以SysAdmins類為例,它主要是用來表示用戶的實(shí)體類model基本是數(shù)據(jù)庫中表的字段的集合,通過getset訪問器,可以從數(shù)據(jù)庫中獲得這個(gè)表中的列,只需在這個(gè)面的聲明屬性和數(shù)據(jù)庫中的字段一致,就可以接實(shí)例化model層的類給屬性賦值,然后就能向數(shù)據(jù)庫傳遞專這個(gè)類的實(shí)例了,之后就可以被讀取出來。如圖4.10所示:圖4.10models示例4.2.3DAL層介紹數(shù)據(jù)訪問層,這個(gè)層應(yīng)該是負(fù)責(zé)程序與數(shù)據(jù)中心(除了數(shù)據(jù)庫,還有存儲(chǔ)數(shù)據(jù)的文件等)的交互,也就是將數(shù)據(jù)的增刪改查的操作封裝起來供其它層直接使,這個(gè)層也是實(shí)現(xiàn)很多功能的基礎(chǔ)層面,這個(gè)層面創(chuàng)立類中,會(huì)用到很多sql語句來創(chuàng)建讀取或者更改數(shù)據(jù)的方法,所以在此處做一個(gè)簡單的模式講解,如圖所示,先創(chuàng)立這個(gè)方法和里面所需類型,創(chuàng)立規(guī)則是public+類型(圖中為布爾類型,此外還有靜態(tài)類等)+方法名稱+()中所獲取的數(shù)據(jù)類型如圖中獲取的是整形和字符類型,接下來是準(zhǔn)備sql語句,圖中的寫法為查找某列在數(shù)據(jù)庫的某個(gè)表中,并且獲取想要參數(shù),當(dāng)然還有別的寫法,之后填充sql語句中的參數(shù),通過調(diào)用SqlHelper類方法類型去進(jìn)行判斷,圖中就是獲取單一的數(shù)據(jù),最后將錯(cuò)誤拋出。如圖4.11所示:圖4.11創(chuàng)立方法示例4.2.4Common層這個(gè)層面的功能比較簡單,主要是對一些數(shù)據(jù)進(jìn)行輔助的驗(yàn)證。方法如圖4.12所示:圖4.12Common層數(shù)字驗(yàn)證示例4.3功能實(shí)現(xiàn)本節(jié)主要對各模塊功能的實(shí)現(xiàn)過程和實(shí)現(xiàn)的功能需求做出詳細(xì)的介紹。4.3.1.多用戶的登陸實(shí)現(xiàn)多個(gè)用戶的登陸管理,是諸多管理系統(tǒng)中的基礎(chǔ)部分,要想實(shí)現(xiàn)這個(gè)基礎(chǔ)的功能,需要步驟如下:在sql數(shù)據(jù)庫中建立登陸所用的表,在建立表的時(shí)候需要通過系統(tǒng)所需要的內(nèi)容去建立列,本章所需要的列名有,賬號(hào),密碼,使用者名稱,是否是學(xué)生,是否是老師,登陸的時(shí)間,當(dāng)然在建立表的時(shí)候?yàn)榱讼到y(tǒng)間不出錯(cuò)統(tǒng)一使用英文名稱,在建立列時(shí),需通過不同的需求去輸入不同的類型比如在賬號(hào)這個(gè)列中,如果需要參與數(shù)學(xué)運(yùn)算,就需要選擇整形,如果字符長度過大則需要選擇varchar類型,而如果字符長度是固定的可以選擇char類型,在本系統(tǒng)中,輸入的類型如下:賬號(hào)int型,密碼和使用者名稱vaechar(20),是否是學(xué)生、老師bit型,上次登陸時(shí)間SmallDateTime型,同時(shí)還要設(shè)置主鍵為賬號(hào)。建立完成后刷新圖表,可右鍵點(diǎn)擊創(chuàng)建的表,選擇編輯前200行,在表格中進(jìn)行數(shù)據(jù)輸入,也可在新建查詢中通過sql語句輸入數(shù)據(jù),本次輸入數(shù)據(jù)如表4.13所示:表4.13建立登陸用戶表(2)先生成一個(gè)實(shí)例化的鏈接,這個(gè)部分在DBuitily層中的SqlHelper.cs類庫中進(jìn)行操作,先在窗體下面的App中輸入如圖示的公式,其中Source等于對應(yīng)的數(shù)據(jù)庫的地址,這里使用的是本機(jī)地址,查詢方法是點(diǎn)開主機(jī)在點(diǎn)運(yùn)行寫入cmd進(jìn)入本機(jī)的查詢程序在輸入ipconfig,之后本地計(jì)算機(jī)上會(huì)顯示出該計(jì)算地址,復(fù)制粘貼即可,InitialCatalog這塊填寫在SqlSever中所填寫的數(shù)據(jù)庫,后面填寫在sqlsever身份驗(yàn)證下所創(chuàng)立的用戶名與密碼,在App寫完以后在SqlHelper生成鏈接字符串如圖示,其實(shí)可以直接在SqlHelper中填寫鏈接語句,但這樣會(huì)把數(shù)據(jù)寫死,直接封裝起來,換一臺(tái)機(jī)子以后很難使用原有代碼,但App.config是C#系統(tǒng)自帶的一個(gè)配置程序,不用進(jìn)行封裝,如果更換計(jì)算機(jī),只需在其中填寫新的鏈接數(shù)據(jù),以及新建的數(shù)據(jù)庫即可。注意在生成鏈接字符時(shí)需引用App.config的空間名System.Configuration(如圖4.14所示)。之后就是在SqlHelper中建立調(diào)用數(shù)據(jù)庫的倆種類型的增刪改的三種方法。注意需要引用名稱,如圖4.15所示:圖4.14APP中的鏈接語句圖4.15SqlHelper鏈接字符與引用確定登陸窗體與主窗體的先后順序,這個(gè)程序是在窗體應(yīng)用自帶的Program這個(gè)類里面寫的,先將窗體實(shí)例化,然后展示登陸窗體,在登陸驗(yàn)證用過以后才展示主界面,方法如圖4.16所示:圖4.16實(shí)例化并展示窗體在SysAdmins類中輸入數(shù)據(jù)庫中的列,以及需要的類型。在SysAdminsServices類中寫入進(jìn)行基本的身份驗(yàn)證(見附錄)和對用戶名和密碼的對錯(cuò)進(jìn)行初步判斷的含有sql語句的方法,如圖4.17所示:圖4.17判斷密碼正確的方法在完成前面的基礎(chǔ)步驟以后在頁面設(shè)計(jì)出點(diǎn)擊登陸按鈕,在觸發(fā)按鈕的框架內(nèi)完成對數(shù)據(jù)的校驗(yàn)封裝和基本的身份驗(yàn)證,如果成功就可以通過返回的值來判斷基本的密碼對錯(cuò)以此來進(jìn)行下一步,如果程序可以運(yùn)行但無法正常登時(shí)會(huì)彈出用戶驗(yàn)證時(shí)身份出錯(cuò),和具體系統(tǒng)的消息提示。方法如圖4.18所示:圖4.18數(shù)據(jù)分裝和校驗(yàn)(7)判斷學(xué)生和老師的身份在完成了基本的驗(yàn)證以后,需要對老師的和學(xué)生的身份進(jìn)行基本的判斷,并且顯示歡迎老師或歡迎學(xué)生登陸的字樣,想實(shí)現(xiàn)這個(gè)功能并不復(fù)雜,只需在下面添加判斷語句就好,先通過上一個(gè)步驟返回進(jìn)來的值去判斷密碼的對錯(cuò),后在判斷對錯(cuò)if語句下面在加入elseif的再次判斷的語句去判斷登陸用戶是否為學(xué)生,如果值中判斷顯示是學(xué)生則顯示歡迎學(xué)生使用,之后添加else語句對不是學(xué)生的用戶顯示歡迎老師登陸。方法如圖4.19所示:(a)(b)圖4.19添加判斷句識(shí)別身份和密碼對錯(cuò)4.3.2對用戶登陸的判斷提示和類型的優(yōu)化對于用戶來說基本的判斷對錯(cuò)是無法讓用戶感覺到這是一個(gè)良好的系統(tǒng),所以針對這個(gè)問題,在賬號(hào)下端拖入一個(gè)label,將它的屬性值A(chǔ)utoSize調(diào)為False,并更改Name,更改規(guī)則是lbl+想用的名稱,通過這個(gè)label的text文本框可以展示出對用戶的登陸驗(yàn)證細(xì)節(jié)進(jìn)行了三個(gè)方面的優(yōu)化。登陸賬號(hào)是否為空判斷賬號(hào)是否為空是優(yōu)化提示中最簡單的,先寫入一個(gè)布爾類型返回值的新方法,在里面添加判斷語句去判斷輸入ID賬號(hào)的文本框是否為空,如果是則提示文本框中就顯示登陸賬號(hào)不能為空的字樣,并且將這個(gè)值進(jìn)行反饋。方法如圖4.20所示:圖4.20密碼是否為空判斷登陸的id是否大于四位這個(gè)功能除了判斷語句以外,還需要添加正則表達(dá)式,所以去Common中新建立一個(gè)類在這個(gè)類中輸入一靜態(tài)類布爾個(gè)類型返回值的方法,在其中輸入正則表達(dá)式,圖中這個(gè)正則表達(dá)式是表示只能輸入數(shù)字的意思,很多的意思對應(yīng)的正則表達(dá)式可以通過百度查詢。然后在登陸窗體的程序設(shè)計(jì)中引用Common已經(jīng)創(chuàng)建的方法下面,寫入判斷語句去判斷文本框中輸入的是否為數(shù)字且數(shù)字的長度是否=4,如果二者當(dāng)中有一項(xiàng)不符合,則在提示文本框中顯示密碼必須是四位數(shù)字的字樣。然后反饋這個(gè)值。方法如圖4.21所示:圖4.21判斷id是否大于四密碼是否大于六位因?yàn)槊艽a不一定是純數(shù)字或者純字母,所以在這個(gè)功能中只需要在創(chuàng)建的方法下寫入語句判斷它輸入的密碼長度是否大于六位就可以l,之后在返回值。方法如圖4.22所示:圖4.22密碼長度判斷(4)細(xì)節(jié)優(yōu)化在以上判斷提示優(yōu)化完成以后點(diǎn)擊調(diào)試就會(huì)發(fā)現(xiàn),下面的提示文本框必須通過點(diǎn)擊登錄按鈕以后才可以發(fā)生變化,例如在賬號(hào)中輸入6位數(shù)字符直接點(diǎn)擊登錄,提示框會(huì)顯示出”密碼必須為四位“的字樣,之后在文本框中輸入一個(gè)正確的四位賬號(hào),下面的提示無法立刻消失,必須點(diǎn)擊登錄才能顯示下一個(gè)判斷,針對這個(gè)問題做出優(yōu)化,在登錄窗口的設(shè)計(jì)頁面選中賬號(hào)文本框,打開它的屬性事件,找到名為TextChanged的事件點(diǎn)擊后會(huì)自動(dòng)進(jìn)入程序界面系統(tǒng)會(huì)自動(dòng)創(chuàng)建一個(gè)方法,在方法下面輸入方法語句(如圖示)讓提示文本框跟隨變化。方法如圖4.23所示:圖4.23文本框變化4.3.3主界面模塊設(shè)計(jì)主界面其實(shí)更多的是外觀上的設(shè)計(jì),大體的功能其實(shí)只是在觸發(fā)特定的模塊按鈕時(shí)彈出特定頁面,但主窗體其實(shí)也有一些細(xì)節(jié)上的設(shè)計(jì),接下來將詳細(xì)介紹這些細(xì)節(jié)設(shè)計(jì)。在主界面的上展示使用者的名稱和上次登陸的時(shí)間想實(shí)現(xiàn)這個(gè)功能先在基本的SysAdminsServices類里面的身份驗(yàn)證中添加上登陸用戶表中的其他列,獲得列以后就需要調(diào)用,倆個(gè)窗體之間的調(diào)用有倆種,一種是一個(gè)窗體調(diào)用另一個(gè)窗體,另一種是建立全局變量,因?yàn)楸鞠到y(tǒng)使用Program進(jìn)行窗體調(diào)用的,所以采用第二種方式,在Program中定義一個(gè)全局變量。然后在登陸界面的程序中寫入觸發(fā)且驗(yàn)證通過以后,把值賦給全局變量,最后回到主界面,修改倆個(gè)label空間的Name右鍵后點(diǎn)擊查看程序,在程序展示過程下面寫入展示程序。方法如圖4.24,圖4.25所示:圖4.24補(bǔ)全數(shù)據(jù)列(a)(b)圖4.25賦值和展示所需名稱和上次登陸時(shí)間修改上次登陸使用時(shí)間因?yàn)樵跀?shù)據(jù)庫的用戶登陸表中寫入的時(shí)間不是實(shí)時(shí)更行的時(shí)間,因而主界面中展示的并不是一個(gè)隨時(shí)更新的時(shí)間,所以需要實(shí)時(shí)的更改一個(gè)新的時(shí)間,因?yàn)楂@取的時(shí)間是在登陸界面獲得的,所以應(yīng)在登陸按鈕下進(jìn)行程序的修改,獲取更改時(shí)間的方法,以及獲取數(shù)據(jù)庫中的時(shí)間,在SqlHelper中創(chuàng)建獲取的時(shí)間地點(diǎn)(方法如圖4.28所示)在DAL層中的SysAdminsServices類理用sql語句創(chuàng)建一個(gè)獲取更改時(shí)間方法(如圖4.26所示)在數(shù)據(jù)庫中找到賬號(hào)和上次登陸時(shí)間這一列,然后給它們重新賦值,之后在登陸界面的確定按鈕里面通過寫入try和catch語句,去更數(shù)據(jù)庫做交互(方法如圖4.27所示)從而完成對上次登陸時(shí)間的更改。圖4.26建立一個(gè)更改方法圖4.27與數(shù)據(jù)庫進(jìn)行交互圖4.28獲取數(shù)據(jù)庫時(shí)間身份功能的開放學(xué)生因?yàn)楹屠蠋煷嬖谥矸莸燃?jí)的差別,所以在登陸完成信息識(shí)別以后,需要禁用學(xué)生8cm印章和10cm印章的使用權(quán)限,為了實(shí)現(xiàn)這個(gè)功能,只需要在主界面程序設(shè)計(jì)的展示過程中添加if語句進(jìn)行判斷,如果用戶是學(xué)生則8cm和10cm印章模塊按鈕對其不可見即可。方法如圖4.29所示:圖4.29開放老師功能將副窗體展示于圖片區(qū)域?yàn)榱苏w的美觀效果,需要將副頁面與主頁面秩序給建立起來,應(yīng)為使用者在看到很多個(gè)文本框彈出的時(shí)候會(huì)覺得系統(tǒng)設(shè)計(jì)的很亂,因此將副頁面展示到主頁面的圖片區(qū)域,這樣給用戶的從使用開始到結(jié)束只會(huì)展示一個(gè)界面,實(shí)現(xiàn)這個(gè)功能,需在主界面程序中實(shí)例化相對應(yīng)的窗體(方法如圖4.31所示)在觸發(fā)相應(yīng)按鈕的程序下面寫入關(guān)閉Panel2中的圖片,并且展示相對應(yīng)的窗體即可。方法如圖4.30所示:圖4.30展示相應(yīng)窗體圖4.31窗體實(shí)例化語句4.3.4登陸日志的建立登陸日志,是數(shù)據(jù)庫的一個(gè)表,這張表格的數(shù)據(jù)不可以去人為的去輸入數(shù)據(jù),而是需要通過系統(tǒng)上面所反饋的值去自動(dòng)的建立一個(gè)數(shù)據(jù)實(shí)時(shí)動(dòng)態(tài)更新的表,要想完成這張表格需要以下幾個(gè)步驟;建立登陸日志表建立這個(gè)登陸日志的表,建議使用新建查詢因?yàn)檫@里涉及到一個(gè)叫l(wèi)ogId的序號(hào)列,這個(gè)列是從1開始依次遞增的變量類型,這種類型在右鍵新建表的頁面選擇中沒有,寫入類型如下:序號(hào)列是intIdentity(1,1),賬號(hào)列是int類型,使用者名字是varchar(20),登陸時(shí)間和結(jié)束時(shí)間都是SmallDateTime型,這里的主鍵是logId,但除了主鍵以外還要設(shè)立一個(gè)副鍵是loginId。在用戶登陸成功以后寫入使用者姓名,賬號(hào),登陸時(shí)間要想實(shí)現(xiàn)自動(dòng)錄入使用者姓名,賬號(hào),登陸時(shí)間這些數(shù)據(jù),需要在Program定義一個(gè)當(dāng)前登陸日期的Id來作為全局變量(方法如圖4.33所示),在models里面新建一個(gè)類用于讀取或?qū)懭脒@個(gè)表(如圖4.32所示)需要注意的是,在這里面輸入的數(shù)據(jù)類型應(yīng)該與表中類型相對應(yīng),序列號(hào)和賬號(hào)都為int類型,使用者的名稱是string類型,登陸和結(jié)束的時(shí)間都為Datetime類型。在SysAdminsServices類中寫入一個(gè)錄入數(shù)據(jù)的方法,因?yàn)槭窃诘顷懗晒σ院箐浫霐?shù)據(jù),所以回到登陸界面,在登陸界面中先寫入一條記錄然后給當(dāng)前的日志Id這個(gè)全局變量進(jìn)行賦值(方法如圖4.34所示)在寫入這個(gè)日志的時(shí)候也需要注意,在UI展示層無法直接連接數(shù)據(jù)庫通用訪問類,所以在SysAdminsServices類中寫入獲取sqlsever數(shù)據(jù)庫的時(shí)間,之后準(zhǔn)備日志并且對其進(jìn)行封裝,通過try和catch語句進(jìn)行判斷(如圖4.35所示:)判斷以后寫入數(shù)據(jù)庫,寫入完成后賦給全局變量值。圖4.32建立登陸日志類圖4.33定義變量圖4.34寫入日志方法圖4.35準(zhǔn)備日志類并進(jìn)行封裝判斷在用戶退出時(shí)寫入結(jié)束時(shí)間這個(gè)功能需要先在SysAdminsServices類中寫入一個(gè)結(jié)束時(shí)間的操作方法,因?yàn)橹皇菃我坏臄?shù)據(jù)輸入,所以直接點(diǎn)擊結(jié)束按鈕,在結(jié)束按鈕的程序中通過try和catch語句進(jìn)行判斷,如出錯(cuò)則拋出帶有寫入退出時(shí)間錯(cuò)誤+具體原因的消息框(如圖4.36所示)當(dāng)成功寫入結(jié)束時(shí)間后,就完成了登陸日志表的建設(shè)。如表4.37所示:圖4.36判斷寫入結(jié)束時(shí)間表4.37完成登陸日志4.3.5登陸查詢窗口應(yīng)用在完成登陸日志后,雖然可在sqlsever數(shù)據(jù)庫中查看到使用者的姓名,賬號(hào),登陸時(shí)間與結(jié)束時(shí)間,但sqlsever數(shù)據(jù)庫相當(dāng)于這個(gè)系統(tǒng)的后臺(tái)程序,所以使用本印章管理系統(tǒng)的用戶無法直觀的看見,所以需要設(shè)計(jì)出一個(gè)單獨(dú)的登陸查詢窗體來顯示在sqlsever數(shù)據(jù)庫中登陸日志表的數(shù)據(jù),并提供相應(yīng)的查詢功能,要實(shí)現(xiàn)這個(gè)窗體的應(yīng)用應(yīng)分為以下幾個(gè)步驟進(jìn)行:獲取登錄的日志表在建立登陸的日志表時(shí)已經(jīng)在models里寫好了日志類,所以直接在SysAdminsServices類中寫入獲取數(shù)據(jù)庫中登錄日志表的sql方法語句,這里需要注意的是,這里所獲取的類型是DateTable類型,所以需要在程序引用處引用SystemDate這個(gè)空間名,并且在()中填寫獲取數(shù)據(jù)類型時(shí),應(yīng)該用start和end去代替登陸時(shí)間和結(jié)束時(shí)間,并且用sql語句去判斷@end>登陸時(shí)間要>s@tart(如圖4.38所示)完成后回到查詢窗口頁面生成代碼下面,初始化UI界面的表格,并且獲取數(shù)據(jù)庫中的登錄日志表,在寫入獲取方法之前,需要重新引用DAL層和models層,并且實(shí)例化一個(gè)操作方法,定義一個(gè)DateTable,之后就可以寫入獲取并加載數(shù)這些數(shù)據(jù)的方法,里面需要填寫的數(shù)據(jù)需要和獲取日志表中的列名的個(gè)數(shù)相對應(yīng)。方法如圖4.39所示:圖4.38獲取登陸日志的方法圖4.39實(shí)例化、定義、加載日志通過使用者的姓名,賬號(hào)實(shí)現(xiàn)單獨(dú)查找想要實(shí)現(xiàn)通過賬號(hào)姓名進(jìn)行查找這個(gè)功能,先在SysAdminsServices類中用sql語句創(chuàng)建一個(gè)通過賬號(hào)獲得使用者的名稱的方法.回到登陸窗體頁面設(shè)計(jì)中將倆個(gè)輸入為本框的Name進(jìn)行重新命名,命名方法為txt+更換名稱。之后將名稱填入加載數(shù)據(jù)方法中即可。方法如圖4.40所示:圖4.40獲取并加載數(shù)這些數(shù)據(jù)的方法通過年月日天這些單選控件或者通過從一個(gè)日期到一個(gè)日期去進(jìn)行查找更改相對應(yīng)的控件的Name,更名方法為:單選控件是rb+更名,日期選擇控件是dtp+更名,之后創(chuàng)建一個(gè)獲取開始很結(jié)束時(shí)間的方法,在這個(gè)方法中先定義出一個(gè)時(shí)間數(shù)組,之后在下面添加if語句去寫入當(dāng)每個(gè)控件被觸發(fā)的時(shí)候所對應(yīng)的加載時(shí)間的方法,其[]中0表示開始1,表示結(jié)束。之后返回值,將數(shù)組的方法開始與結(jié)束名稱寫入加載數(shù)據(jù)的方法中去,之后綁定UI層表中的數(shù)據(jù)。這樣就完成了登陸查詢窗口應(yīng)用的設(shè)計(jì)。方法如圖4.41所示,詳細(xì)程序見附錄。圖4.41時(shí)間數(shù)組4.3.6修改密碼功能設(shè)計(jì)在給用戶提供了印章權(quán)限,保證了印章使用的級(jí)別安全以后,也想提供一些基礎(chǔ)的服務(wù)功能,比如一開始給用戶輸入初始密碼,用戶覺得密碼太過于簡單,想自行更改的話,需要聯(lián)系管理者,在后臺(tái)進(jìn)行密碼的更改,這樣會(huì)給使用者和管理者都帶來很多不便,為了節(jié)省時(shí)間,提高辦公效率,因此設(shè)計(jì)出這個(gè)修改密碼的模塊,想要實(shí)現(xiàn)UI層面修改密碼的功能,需要分以下三個(gè)部分進(jìn)行設(shè)計(jì):自動(dòng)獲取用戶的賬號(hào)和使用者名稱想要實(shí)現(xiàn)這個(gè)功能,在修改密碼的窗體頁面設(shè)計(jì)中將倆個(gè)lable控件的屬性名進(jìn)行更改,并在SysAdminsServices類中創(chuàng)建通過賬號(hào)獲取使用者姓名的方法(如圖4.42所示)之后在回到窗體的程序設(shè)計(jì)中,在它生成的程序下面填寫語句,讓文本框中顯示的能容等于之前以及定義過的賬號(hào)和密碼倆個(gè)變量即可。如圖4.43所示:圖4.42通過賬號(hào)獲取姓名圖4.43顯示密碼和姓名對用戶輸入的新密碼和原密碼進(jìn)行校驗(yàn)在設(shè)計(jì)這個(gè)功能部分時(shí),因?yàn)檫@個(gè)部分是修改密碼界面的主要功能,所以在設(shè)計(jì)的時(shí)候需要明確以下三點(diǎn)要求:1.新密碼不可與原密碼一樣。2.新密碼的長度必須大于等于6位。3.倆次輸入新密碼必須一樣。在明確了用戶基本需求以后,需要先更改輸入文本框的屬性名,其次對原有密碼進(jìn)行基本驗(yàn)證,在SysAdminsServices類中用sql語句創(chuàng)建一個(gè)布爾類型的判斷密碼是否正確的方法,回到當(dāng)前窗體程序設(shè)計(jì)中先實(shí)例化這個(gè)操作方法,在創(chuàng)建一個(gè)布爾類型更改方法,在下面輸入if語句進(jìn)行判斷,如果有錯(cuò)則拋出原密碼輸入錯(cuò)誤+系統(tǒng)消息,,在原密碼校驗(yàn)合格以后,輸入if進(jìn)行判斷,去判斷新密碼的文本框長度是否大于6位,如果不符合,則彈出輸入新密碼需要大于6位的字提示用戶,在前倆個(gè)檢驗(yàn)完成以后,在寫入一條if語句判斷原密碼文本框輸入內(nèi)容是否等于新密碼文本框1的輸入內(nèi)容,如果等于則彈出原密碼不能與新密碼相同的字樣,在完成這個(gè)校驗(yàn)以后,在寫入一個(gè)if語句判斷新密碼文本框1輸入內(nèi)容是否等于新密碼文本框2中的內(nèi)容,如果倆次內(nèi)容不同,則彈出倆次新密碼必須一致的字樣,然后返回所有if語句中的值,之后點(diǎn)擊確定按扭,進(jìn)入按鈕觸發(fā)事件的程序中判斷,是否通過了密碼校驗(yàn)過程,如果不通過,則停止程序運(yùn)行。方法如圖4.44所示:圖4.44密碼校驗(yàn):程序見附錄向sql數(shù)據(jù)庫輸入更改以后的密碼在達(dá)成更改條件以后,需要向數(shù)據(jù)庫輸入符合更改要求的新密碼,明確需求后,在SysAdminsServices類中用sql語句創(chuàng)建一個(gè)更換密碼的方法,回到確定按鈕的程序下在try和catch框架中輸入if語句去判斷,新的賬號(hào)和密碼的值是否等于一,如果等于則彈出密碼修改成功字樣,如果失敗,則拋出并顯示密碼修改異常+系統(tǒng)消息提示,完成這個(gè)步驟后,密碼修改模塊就完成。判斷方法如圖4.45所示:圖4.45判斷是否通過校驗(yàn)并賦值4.3.7打印功能設(shè)計(jì)打印模塊是全自動(dòng)印章管理系統(tǒng)的基礎(chǔ)部分,也是整個(gè)系統(tǒng)重要部分,為了方便級(jí)別的運(yùn)用管理,所以設(shè)置了三個(gè)尺寸按鈕和三個(gè)尺寸頁面,每個(gè)尺寸頁面的上方會(huì)標(biāo)明當(dāng)前所在的尺寸區(qū)域,對于每個(gè)區(qū)域功能的設(shè)計(jì)需要完成以下幾個(gè)需求:自動(dòng)顯示出打印者的名字和賬號(hào)以及份數(shù)實(shí)現(xiàn)這個(gè)功能比較簡單,因?yàn)樵谥懊艽a修改頁面,做過類似的功能需求,所以直接更改頁面的lable控件屬性名,并且給倆個(gè)屬性名賦值即可,份數(shù)字需要更改lable控件的文本框內(nèi)容即可。模擬打印過程為了滿足這個(gè)需求,需要新建一個(gè)等待頁面在頁面中放入計(jì)時(shí)控件,開啟并寫入程序進(jìn)行時(shí)間控制,控制完成后,彈出打印成功的消息盒之后關(guān)閉等待窗體即可。方法如圖4.46所示:圖4.46等待窗體頁面程序4.3.8信息模塊設(shè)計(jì)這個(gè)模塊部分是設(shè)計(jì)的最后一個(gè)部分,雖然建立了登陸查詢的窗口,但查詢窗口中無法顯示顯示老師或者學(xué)生的基本信息,這可能影響使用者的辦事效率,根據(jù)這個(gè)原因,單獨(dú)設(shè)計(jì)了倆塊頁面。顯示一張具有賬號(hào),使用者姓名,工號(hào)或?qū)W號(hào),聯(lián)系方式與登錄查詢窗體設(shè)計(jì)相似,先在models層中新建一個(gè)讀取寫入的類(方法如圖4.49所示)SysAdminsServices類中進(jìn)行獲取數(shù)據(jù)庫中印章使用表的sql方法語句(如圖4.47所示)在UI界面中重新引用DAL層和models層,并且實(shí)例化一個(gè)操作方法。(方法如圖4.48所示)獲取數(shù)據(jù)庫中的印章使用表,之后寫入獲取并加載數(shù)這些數(shù)據(jù)的方法。如圖所示,以下圖片是以學(xué)生信息表來舉例圖4.47獲取信息表的方法圖4.48UI界面調(diào)用信息表圖4.49models層中寫入列名可以通過賬號(hào)和使用者的名稱,進(jìn)行查詢先進(jìn)行屬性名稱的更改,賬號(hào)和使用者的名稱查詢與登錄查詢方法相似,之后在SysAdminsServices類中寫入查詢方法,之后在UI界面調(diào)用即可。5設(shè)計(jì)總結(jié)全自動(dòng)印章系統(tǒng)是基于c#軟件和sqlsever數(shù)據(jù)庫所設(shè)計(jì)出來的,該系統(tǒng)除了實(shí)現(xiàn)基本的多用戶登陸以外,還可以實(shí)現(xiàn)對不同用戶的身份級(jí)別做出判斷,同時(shí)對其級(jí)別對應(yīng)的印章實(shí)現(xiàn)權(quán)限管理,增加了用戶的安全性,同時(shí)在此基礎(chǔ)上也設(shè)計(jì)了一些基礎(chǔ)的服務(wù)模塊,如修改密碼,登陸查詢等服務(wù)模塊,同時(shí)在一些細(xì)節(jié)的優(yōu)化上面也可以體現(xiàn)本次設(shè)計(jì)出的全自動(dòng)印章系統(tǒng)的人性化服務(wù)的特點(diǎn)。5.1設(shè)計(jì)難點(diǎn)(1)在初次建立數(shù)據(jù)鏈接進(jìn)行基本的用戶驗(yàn)證時(shí),由于對軟件操作不熟悉,導(dǎo)致在C#中給與的sa用戶無法成功鏈接數(shù)據(jù)庫。(2)在展示登陸的時(shí)間時(shí),由于倆個(gè)系統(tǒng)存儲(chǔ)和讀取之間存在著字符差異,導(dǎo)致讀取時(shí)間數(shù)據(jù)時(shí)比較繁瑣。(3)由于該系統(tǒng)只用到了兩款軟件來進(jìn)行設(shè)計(jì)與開發(fā),這就會(huì)導(dǎo)致沒實(shí)現(xiàn)一個(gè)功能,會(huì)編寫大量程序,而且sql語句對于編寫格式要求嚴(yán)格,也會(huì)給編寫程序增加難度。(4)由于缺乏實(shí)物,需要模擬IO口的傳導(dǎo)過程,這會(huì)給錄入存儲(chǔ)數(shù)據(jù)帶來難度,而且會(huì)與實(shí)物調(diào)試存在一定的偏差。5.2設(shè)計(jì)創(chuàng)新點(diǎn)(1)基于C#和sqlsever數(shù)據(jù)庫的后臺(tái)權(quán)限操作系統(tǒng)。當(dāng)該后臺(tái)系統(tǒng)運(yùn)行時(shí),可以給使用該印章機(jī)的用戶一個(gè)使用安全權(quán)限上的保證,也能切實(shí)縮短辦事,辦公時(shí)間,提高工作效率,同時(shí)也會(huì)給用戶提供更改密碼等提高安全性能的基礎(chǔ)服務(wù)。(2)活動(dòng)印章,可根據(jù)需要蓋章的位置,去調(diào)整印章的結(jié)構(gòu)位置。5.3設(shè)計(jì)不足(1)服務(wù)功能不足:最開始設(shè)計(jì)這個(gè)系統(tǒng)的時(shí)候,是出于對使用該印章機(jī)的用戶的使用權(quán)限安全考慮作出來的,因此很多較為人性化的服務(wù)模塊并沒有被設(shè)計(jì)與開發(fā)。(2)出于對設(shè)計(jì)成本和軟件操控熟悉度,以及軟件本身的開發(fā)能力來考慮,并未能將這款印章機(jī)設(shè)計(jì)成可以自動(dòng)換章,以及識(shí)別印章打印是否清楚等高端功能。(3)在設(shè)計(jì)之初,本想做出一個(gè)類似登陸查詢的印章使用查詢的頁面,想做到由人查章,但因?yàn)閷?shí)物缺失,用C#軟件模擬該過程是無法很好的于原有登陸系統(tǒng)的信息進(jìn)行匹配,之后便棄用了該頁面。5.4展望我覺得全自動(dòng)印章機(jī)在校園以及很多中小型的企業(yè)中會(huì)有很大的發(fā)展空間,一個(gè)體積不大的印章機(jī),可以對公司貨者學(xué)校不同級(jí)別的公章進(jìn)行權(quán)限的管理,可以節(jié)省不少勞動(dòng)時(shí)間,提高蓋章辦事的效率,在此次設(shè)計(jì)的系統(tǒng)中,存在著很多無法解決的技術(shù)缺陷,雖然時(shí)間緊迫和疫情帶來的交流與指導(dǎo)上面的不便利會(huì)給與我這方面的壓力,但是更多的還是自己對軟件的操控程度和理解不夠,一開始甚至有考慮過自動(dòng)換章的這種高端操作,后來在自身設(shè)計(jì)和開發(fā)時(shí)才意識(shí)到其中所包含的困難,最后只能選擇放棄。雖然我們的設(shè)計(jì)存在著很多不足之處,但我們確實(shí)運(yùn)用到大學(xué)四年里所包含的知識(shí),除此之外還學(xué)到了大學(xué)四年里未曾接觸過的知識(shí),為了開發(fā)這個(gè)系統(tǒng),本人學(xué)習(xí)觀看了很多管理系統(tǒng)的設(shè)計(jì),同時(shí)也自學(xué)了很多C#與sqlsever數(shù)據(jù)庫中的鏈接語句,以及數(shù)據(jù)庫中表的類型和C#中管理系統(tǒng)開發(fā)的整體架構(gòu)以及各個(gè)層的作用關(guān)系與運(yùn)作。這也讓我感受到了畢業(yè)設(shè)計(jì)所需要付出的精力與時(shí)間還有難度,但同時(shí)也實(shí)際的提升了我的學(xué)習(xí)能力,以及自己對新學(xué)知識(shí)的運(yùn)用及探索過程。參考文獻(xiàn)[1]楊榆.自動(dòng)蓋章機(jī)的設(shè)計(jì)與制作[D].紅海學(xué)院,2008.[2]田曉健.中國公民出入境綜合信息管理系統(tǒng)的開發(fā)[D].天津大學(xué),2004[3]周濤,徐曉.基于SQLServer與C#的圖書管理系統(tǒng)的設(shè)計(jì)與開發(fā)[J].智能計(jì)算機(jī)與應(yīng)用,2018,8(04):199-202[4]司曉云,沈正,李偉,孫衛(wèi)紅,郭???鄭紅梅,鄧娜.基于SQLServer與C#患者信息管理系統(tǒng)的研究與實(shí)現(xiàn)[J].電腦與電信,2019(06):20-24+28[5]李茂川.后勤管理系統(tǒng)的設(shè)計(jì)與開發(fā)[D].電子科技大學(xué),2014.[6]張昆.學(xué)生信息管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].吉林大學(xué),2012.[7]余磊,聶純,馬暉,王毅,劉連照,徐宙.基于C#和SQLServer的信號(hào)接收機(jī)自動(dòng)校準(zhǔn)系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)測量與控制,2020,28(03):178-182.[8]張慶余,邵寧華,張?zhí)K林,靳志剛,徐發(fā)達(dá).基于C#的駕駛機(jī)器人上位機(jī)軟件開發(fā)[J].科技經(jīng)濟(jì)導(dǎo)刊,2019,27(33):7-9.[9]王東.基于C#的自動(dòng)上料機(jī)監(jiān)控軟件開發(fā)[J].數(shù)字技術(shù)與應(yīng)用,2019,37(10):8-9.[10]蔡毅.基于C#的羽毛球競賽抽簽軟件的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2019,15(30):85-86.[11]齊榮貴,余嵐嵐,來永偉,孔慶虎.基于C#開發(fā)的交通位置圖軟件[J].中國煤炭地質(zhì),2018,30(S2):74-78.[12]劉寧波.基于c#+SQLserver羊場管理軟件的開發(fā)與設(shè)計(jì)[C].中國畜牧獸醫(yī)學(xué)會(huì)養(yǎng)羊?qū)W分會(huì).2018年全國養(yǎng)羊生產(chǎn)與學(xué)術(shù)研討會(huì)論文集.中國畜牧獸醫(yī)學(xué)會(huì)養(yǎng)羊?qū)W分會(huì):中國畜牧獸醫(yī)學(xué)會(huì)養(yǎng)羊?qū)W分會(huì),2018:88-89.[13]莊美美.基于SQLSever的旅行社管理系統(tǒng)設(shè)計(jì)[J].閩西職業(yè)技術(shù)學(xué)報(bào),2017,19(02):113-115.[14]吳爽.基于VS+SQLSever減壓閥測試系統(tǒng)設(shè)計(jì)[J].黑龍江科技信息,2016(36):44.[15]解蕾,盧永紅,狄光智.基于C#/SQLSever的高校外事管理系統(tǒng)的設(shè)計(jì)與開發(fā)[J].山西大同大學(xué)學(xué)報(bào)(自然科學(xué)版),2016,32(04):13-15+50.[16]朱超.關(guān)于SQLSever數(shù)據(jù)庫安全機(jī)制的研究與探討[J].科學(xué)大眾(科學(xué)教育),2016(08):186.[17]張成鳳.水泥生產(chǎn)過程數(shù)據(jù)SQLServer存儲(chǔ)方法研究[D].濟(jì)南大學(xué),2016.[18]SQLServer2005數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)/啟明工作室編著,2007.7ISBN978-7-115-16200-7[19]ZhaiJianbo,LeiShasha,LiuLei,LiuYan,ZhangHongqin.[AutomaticDetectionSystemforCardiacPacemakersBasedonC].[J].Zhongguoyiliaoqixiezazhi=Chinesejournalofmedicalinstrumentation,2017,41(4).[20]Devraj,DeepakSingh,AdityaPratap.Onlinedatabaseandinformationsystemformungbeangermplasm.2016,39(3):349-354.[21]VipinKumarChoudhary,SunilKumar,LaxmanRamMeena,etal.DesignandImplementationofWeb-basedInformationSystemforRegion-SpecificSynthesisedIntegratedFarmingModelsinIndia.2019,10(1):9-19.[22]SiHaiZhao,WeiKangDong,GeGuo,etal.TheSoftwareDesignofUndergroundMinePersonnelManagementSystem.2013,2594:1763-1767.謝辭當(dāng)我寫入這個(gè)部分時(shí),就意味著大學(xué)四年的時(shí)光的終點(diǎn)離我不遠(yuǎn)了,也說明了我的畢業(yè)設(shè)計(jì)進(jìn)入了最后的階段,在大學(xué)時(shí)光馬上結(jié)束,即將要踏入社會(huì)的我來說,心中有很多感慨以及想要感謝的人,在這里向我這四年時(shí)光中各位敬愛的老師以及幫助過我的師兄師姐,同班同學(xué),獻(xiàn)上最誠摯的謝意,感謝你們在我困難時(shí)給與的建議與鼓勵(lì)。經(jīng)過了幾個(gè)月的學(xué)習(xí)與奮斗,我們的全自動(dòng)印章機(jī)設(shè)計(jì)與開發(fā)項(xiàng)目也基本完成,在這里首先我想感謝本次的畢設(shè)指導(dǎo)教師陳婷老師,受疫情的影響很多時(shí)候我們組的溝通和很多結(jié)構(gòu),頁面布局的想法無法進(jìn)行很好的交流,老師也無法面對面的指導(dǎo)學(xué)生,所以在此次畢設(shè)中,我們組遇到了很多困難,但陳婷老師非常有耐心的進(jìn)行線上指導(dǎo),了解每個(gè)人在設(shè)計(jì)過程中所產(chǎn)生的困難與疑惑,并進(jìn)行指導(dǎo)和提出意見,有時(shí)在很晚遇到問題問她,雖然時(shí)間很晚,但老師依然會(huì)在線指導(dǎo),其次很感謝在這次畢業(yè)設(shè)計(jì)時(shí)幫助過我的同學(xué)和師兄師姐,沒有你們的幫助,很多技術(shù)難題我可能會(huì)花費(fèi)更多時(shí)間才能解決,同時(shí)也感謝本文中所引用的參考文獻(xiàn)作者。最后,要感謝我的畢設(shè)的組員們,謝謝你們與我一同努力,以及非常積極的配合我的工作,原我們以后日子工作順利,生活繁花似錦。附錄附錄一各個(gè)窗體中的主要代碼登陸窗體publicpartialclassfrmLogin:Form{publicSysAdminsServicesobjSysAdminsServices=newSysAdminsServices();publicfrmLogin(){InitializeComponent();}privatevoidbtnLogin_Click(objectsender,EventArgse){///對數(shù)據(jù)進(jìn)行校驗(yàn)if(!CheckUserInput())return;///封裝用戶SysAdminsCurrentAdmins=newSysAdmins();CurrentAdmins.LoginId=Convert.ToInt32(txtLoginId.Text.Trim());CurrentAdmins.Loginpwd=txtLoginpwd.Text;///完成身份驗(yàn)證try{CurrentAdmins=objSysAdminsServices.Login(CurrentAdmins);}catch(Exceptionex){MessageBox.Show("用戶驗(yàn)證身份時(shí)出錯(cuò)!具體錯(cuò)誤;"+ex.Message,"系統(tǒng)消息",MessageBoxButtons.OK,MessageBoxIcon.Information);}///根據(jù)返回結(jié)果來判斷if(CurrentAdmins==null){lblLoginInfo.Text="用戶名或密碼錯(cuò)誤!";return;}elseif(CurrentAdmins.IsStudent){///把值付給全局變量Program.CurrentUser=CurrentAdmins;MessageBox.Show("歡迎學(xué)生使用");///更改當(dāng)前時(shí)間try{if(objSysAdminsServices.UpdatelastLoginTime(Convert.ToInt32(txtLoginId.Text.Trim()))==1){}}catch(Exceptionex){MessageBox.Show(ex.Message);}//準(zhǔn)備日志類LoginLogsobjLoginLogs=newLoginLogs(){LogInId=CurrentAdmins.LoginId,UserName=CurrentAdmins.UserName,LoginTime=objSysAdminsServices.GetServerTime(),};try{Program.CurrentLogId=objSysAdminsServices.WritingLoginLog(objLoginLogs);}catch(Exceptionex){MessageBox.Show("寫入登陸日志出錯(cuò)!具體錯(cuò)誤;"+ex.Message,"登陸消息",MessageBoxButtons.OK,MessageBoxIcon.Information);}this.DialogResult=DialogResult.OK;}else{Program.CurrentUser=CurrentAdmins;MessageBox.Show("歡迎老師使用");///更改當(dāng)前時(shí)間try{if(objSysAdminsServices.UpdatelastLoginTime(Convert.ToInt32(txtLoginId.Text.Trim()))==1){}}catch(Exceptionex){MessageBox.Show(ex.Message);}//準(zhǔn)備日志類LoginLogsobjLoginLogs=newLoginLogs(){LogInId=CurrentAdmins.LoginId,UserName=CurrentAdmins.UserName,LoginTime=objSysAdminsServices.GetServerTime(),};try{Program.CurrentLogId=objSysAdminsServices.WritingLoginLog(objLoginLogs);}catch(Exceptionex){MessageBox.Show("寫入登陸日志出錯(cuò)!具體錯(cuò)誤;"+ex.Message,"登陸消息",MessageBoxButtons.OK,MessageBoxIcon.Information);}this.DialogResult=DialogResult.OK;}}privatevoidbtncancel_Click(objectsender,EventArgse){Close();}privateboolCheckUserInput(){///登陸賬號(hào)是否為空,4位數(shù)字if(string.IsNullOrWhiteSpace(txtLoginId.Text)){lblLoginInfo.Text="登陸賬號(hào)不能為空";txtLoginId.Focus();returnfalse;}///判斷四位數(shù)字if(!ValidateInput.IsInteger(txtLoginId.Text.Trim())||txtLoginId.Text.Trim().Length!=4){lblLoginInfo.Text="登陸必須是四位數(shù)字";txtLoginId.Focus();returnfalse;}///不許為空,必須要是6位if(txtLoginpwd.Text.Length<6){lblLoginInfo.Text="登陸密碼必須要大于6位";txtLoginId.Focus();returnfalse;}returntrue;}privatevoidtxtLoginId_TextChanged(object
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 宣傳彩合同范例
- 家電合同采購合同模板
- 關(guān)于銷售返利合同范例
- 工程資料租賃合同范例
- 建設(shè)工程商務(wù)合同范例
- 幾人打火購車合同范例
- 三輪車二手車買賣合同范例
- 小型廠房臨街出售合同模板
- 店鋪學(xué)徒用人合同范例
- 加拿大與美國貿(mào)易合同模板
- 《生活中的度量衡》PPT課件.ppt
- 趣味數(shù)學(xué)推理小故事PPT精品文檔
- Excel支票打印模板2021
- 生物防火林帶建設(shè)檢查驗(yàn)收
- 《危險(xiǎn)游戲莫玩?!稰PT課件.ppt
- 自-銑削用量進(jìn)給量進(jìn)給速度(精編版)
- 技術(shù)標(biāo)書綜合說明
- 天氣學(xué)地面填圖與識(shí)圖
- 入行論(課堂PPT)
- 中國行政區(qū)劃空白圖
- 關(guān)于少先隊(duì)儀式教育的實(shí)踐研究初探
評論
0/150
提交評論