軟件工程畢業(yè)論文-汽車銷售系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-庫存管理模塊_第1頁
已閱讀1頁,還剩27頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  本科畢業(yè)論文</b></p><p><b>  (20 屆)</b></p><p>  汽車銷售系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-庫存管理模塊</p><p><b>  摘要</b></p><p>  隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,網(wǎng)絡(luò)技術(shù)的成熟,僅僅靠使用PC

2、端進(jìn)行互聯(lián)網(wǎng)活動已經(jīng)無法滿足人們?nèi)找媾蛎浀男枨蟆R苿踊ヂ?lián)網(wǎng)在這時(shí)應(yīng)運(yùn)而生,我們越來越依賴與移動互聯(lián)網(wǎng)的同時(shí),手機(jī)也隨之發(fā)展,手機(jī)并不再僅僅作為一個(gè)普通的通訊工具而出現(xiàn)在我們的生活中了。為了滿足工作的需要,針對汽車銷售系統(tǒng)的庫存管理模塊特別設(shè)計(jì)了庫存管理App,有了此款A(yù)pp,管理人員可以方便的從移動終端隨時(shí)獲取實(shí)時(shí)數(shù)據(jù)。省去了繁復(fù)的表格,使人們從傳統(tǒng)的實(shí)地查詢和電話查詢的繁瑣步驟中解放了出來。</p><p> 

3、 本論文是基于iOS系統(tǒng)的庫存管理客戶端,使用Objective—C語言作為開發(fā)語言開發(fā)工具為Xcode5.0,其數(shù)據(jù)存儲在本地的SQLite3數(shù)據(jù)庫中。本系統(tǒng)采用了C/S 結(jié)構(gòu), 采取了MVC框架進(jìn)行開發(fā),通過運(yùn)用Objective-C,cocoa touch,Xcode,SQLite3數(shù)據(jù)庫等軟件技術(shù)和眾多的第三方庫完成了系統(tǒng)中庫存管理模塊的設(shè)計(jì)。[1]</p><p>  本文主要介紹汽車銷售系統(tǒng)中的車輛管

4、理模塊的相關(guān)內(nèi)容。分析了系統(tǒng)該部分實(shí)現(xiàn)的相關(guān)技術(shù)原理,可行性,介紹了車輛管理的系統(tǒng)實(shí)現(xiàn)的系統(tǒng)架構(gòu),并在對系統(tǒng)這兩個(gè)模塊分析后進(jìn)行了相應(yīng)的劃分及設(shè)計(jì)。本應(yīng)用主要實(shí)現(xiàn)了:不同人員的管理,庫存的管理,出入庫信息的查詢等功能。。</p><p>  關(guān)鍵詞:Objective-C,iOS,Cocoa Touch,SQLite3,庫存管理系統(tǒng)</p><p><b>  Abstract

5、</b></p><p>  With the development of Internet technology, network technology matures, just by using the PC end Internet activities have been unable to meet the expanding needs of the people . Mobile I

6、nternet came into being at this time , we are increasingly dependent on the mobile Internet , while also developing mobile phone , mobile phone and no longer just as a general communication tool out of our lives now . To

7、 meet the needs of their work for car sales inventory management system inventory management </p><p>  This thesis is based on the iOS client inventory management system , using the Objective-C language as a

8、 development language development tools for Xcode5.0, SQLite3 database stores its data in a local 's . The system uses the C / S structure, take a MVC framework for development , through the use of Objective-C, cocoa

9、 touch, Xcode, SQLite3 databases and other software technologies and numerous third-party libraries to complete the design of the system inventory management module.</p><p>  This paper describes the relevan

10、t content in automotive vehicle sales system management module . Analysis of the technical principles related to that part of the system implementation , feasibility, describes the system architecture of the vehicle mana

11、gement system implementation , and after these two modules of the system analysis and design of the corresponding division . The main achievement of this application : different personnel management , inventory managemen

12、t, query and other functions</p><p>  Keywords: Objective-C, iOS, Cocoa Touch, SQLite3, inventory management system</p><p><b>  目錄</b></p><p><b>  目錄3</b>&l

13、t;/p><p><b>  1 概述1</b></p><p><b>  1.1開發(fā)背景1</b></p><p>  1.2設(shè)計(jì)目的及內(nèi)容1</p><p>  1.2.1設(shè)計(jì)目的1</p><p>  1.2.2設(shè)計(jì)內(nèi)容2</p><p&g

14、t;  1.3 技術(shù)概述2</p><p>  1.3.1 SQLite3簡介2</p><p>  1.3.2 MVC模式簡介2</p><p>  1.4硬件和軟件要求3</p><p>  1.4.1硬件要求3</p><p>  1.4.2軟件要求3</p><p><

15、;b>  1.5基本環(huán)境4</b></p><p>  1.6系統(tǒng)開發(fā)命名規(guī)則4</p><p><b>  2 系統(tǒng)分析5</b></p><p>  2.1可行性分析5</p><p><b>  2.2需求分析5</b></p><p> 

16、 2.2.1系統(tǒng)需求分析5</p><p>  2.2.2系統(tǒng)功能結(jié)構(gòu)5</p><p>  2.2.3系統(tǒng)主要設(shè)計(jì)類6</p><p><b>  2.3功能分析6</b></p><p>  2.3.1用戶登錄6</p><p>  2.3.2管理員管理7</p>&

17、lt;p>  2.3.3入庫管理8</p><p>  2.3.3.1產(chǎn)品入庫9</p><p>  2.3.4出庫管理9</p><p>  2.3.4.1產(chǎn)品出庫9</p><p>  2.3.4.2出庫單管理9</p><p>  2.3.5產(chǎn)品管理10</p><p>

18、  2.3.5.1查詢產(chǎn)品信息10</p><p>  2.3.5.2添加產(chǎn)品信息11</p><p>  2.3.5.3刪除產(chǎn)品11</p><p>  3.1數(shù)據(jù)庫概要結(jié)構(gòu)設(shè)計(jì)12</p><p>  3.2數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)12</p><p>  4 系統(tǒng)界面設(shè)計(jì)13</p>&l

19、t;p>  4.1系統(tǒng)界面設(shè)計(jì)13</p><p>  5 主要代碼15</p><p>  5.1數(shù)據(jù)庫各個(gè)表創(chuàng)建代碼15</p><p>  5.2部分功能代碼15</p><p>  5.2.2添加庫存:16</p><p>  5.2.3刪除用戶:16</p><p&g

20、t;  5.2.4 數(shù)據(jù)庫操作函數(shù)(部分代碼)16</p><p>  5.2.5 登錄界面主要處理函數(shù)17</p><p><b>  結(jié)論19</b></p><p><b>  致謝20</b></p><p><b>  參考文獻(xiàn)21</b></p>

21、;<p><b>  1 概述</b></p><p><b>  1.1開發(fā)背景</b></p><p>  隨著寬帶無線接入技術(shù)和移動終端技術(shù)的飛速發(fā)展,人們迫切希望能夠隨時(shí)隨地乃至在移動過程中都能方便地從互聯(lián)網(wǎng)獲取信息和服務(wù),移動互聯(lián)網(wǎng)應(yīng)運(yùn)而生并迅猛發(fā)展。雖然,移動互聯(lián)網(wǎng)在移動終端、接入網(wǎng)絡(luò)、應(yīng)用服務(wù)、安全與隱私保護(hù)等方面還

22、面臨著一系列的挑戰(zhàn),但它已經(jīng)為我們的生活帶來了巨大的變革。隨著4G時(shí)代的開啟以及移動終端設(shè)備的凸顯為移動互聯(lián)網(wǎng)的發(fā)展注入巨大的能量,移動互聯(lián)網(wǎng)所能觸及的范圍越來越廣,移動互聯(lián)網(wǎng)產(chǎn)業(yè)必將帶來前所未有的飛躍。</p><p>  在這樣的大背景之下,移動終端應(yīng)用的發(fā)展歷經(jīng)了由緩慢到迅猛、從粗略到專精的過程。越來越多的垂直細(xì)分領(lǐng)域被開發(fā)者們發(fā)掘出來,每一個(gè)領(lǐng)域都極大的改變了我們的生活,移動終端已經(jīng)進(jìn)入了我們生活的方方面

23、面。伴著4G網(wǎng)絡(luò)的起步和移動聯(lián)網(wǎng)設(shè)備的激增,為移動操作系統(tǒng)iOS下的終端持有者設(shè)計(jì)并實(shí)現(xiàn)應(yīng)用,是具有極大的價(jià)值和發(fā)展前途的。</p><p>  伴隨著我國國民經(jīng)濟(jì)的發(fā)展,汽車已經(jīng)走進(jìn)每個(gè)人的家中。傳統(tǒng)的汽車銷售模式略顯滯后,不適應(yīng)當(dāng)今飛速發(fā)展的社會,為了提高效率,所以針對汽車銷售行業(yè)的移動應(yīng)用應(yīng)運(yùn)而生。實(shí)現(xiàn)了對銷售鏈的便捷查詢。</p><p>  1.2設(shè)計(jì)目的及內(nèi)容</p>

24、;<p><b>  1.2.1設(shè)計(jì)目的</b></p><p>  庫存管理系統(tǒng)出入庫模塊即對倉庫管理。物流倉庫管理系統(tǒng)主要針對于日常庫存信息的管理,它針對倉庫日常發(fā)生的業(yè)務(wù),分為兩大類,即入庫和出庫,用戶通過相應(yīng)的模塊,對倉庫里的物品的基本情況進(jìn)行操作,實(shí)現(xiàn)入庫、出庫即對庫存進(jìn)行查詢,用戶通過簡單的操作即可輕松的管理倉庫。</p><p>  庫存管

25、理App是針對日常庫存信息的管理,使得管理人員可以不在現(xiàn)場就獲得最新庫存信息,其主要功能是對庫存的查看,和相關(guān)人員的管理。管理人員通過相應(yīng)的模塊,可以實(shí)現(xiàn)對庫存物品的基本出入庫操作,方便了查詢和管理,更是把人們從傳統(tǒng)的查詢流程中釋放出來。在iOS智能移動操作系統(tǒng)上開發(fā)的一款應(yīng)用。抓住了國內(nèi)消費(fèi)者智能手機(jī)中iPhone系列手機(jī)占有率極高的鮮明特點(diǎn),為消費(fèi)者和管理人員提供便利的服務(wù)。以上便是開發(fā)庫存管理App的目的所在。</p>

26、<p><b>  1.2.2設(shè)計(jì)內(nèi)容</b></p><p>  實(shí)現(xiàn)庫存管理模塊的出入庫和查詢功能。入庫操作就是對新入庫的信息管理(包括修改和添加操作),出庫操作就是主要包括倉庫的修改和刪除操作。超級管理員可以對其他工作人員進(jìn)行添加和刪除操作??头K可以根據(jù)顧客查詢該顧客的購買記錄。倉庫管理員可以對倉庫具體條目進(jìn)行修改。以上所有操作均保存在關(guān)系型數(shù)據(jù)庫中。</p&g

27、t;<p><b>  1.3 技術(shù)概述</b></p><p>  1.3.1 SQLite3簡介</p><p>  SQLite是遵守ACID的關(guān)系數(shù)據(jù)庫管理系統(tǒng),它包含在一個(gè)相對小的C程序庫中。它是D.RichardHipp創(chuàng)建的公有領(lǐng)域項(xiàng)目。</p><p>  不像常見的客戶端/服務(wù)器結(jié)構(gòu)范例,SQLite引擎不是個(gè)

28、程序與之通信的獨(dú)立進(jìn)程,而是鏈接到程序中成為它的一個(gè)主要部分。所以主要的通信協(xié)議是在編程語言內(nèi)的直接API調(diào)用。這在消耗總量、延遲時(shí)間和整體簡單性上有積極的作用。整個(gè)數(shù)據(jù)庫(定義、表、索引和數(shù)據(jù)本身)都存儲在主機(jī)端上單一個(gè)文件中。此種簡潔的設(shè)計(jì)是通過寫入時(shí)鎖定整個(gè)數(shù)據(jù)文件而完成的[1]。</p><p>  程序庫實(shí)現(xiàn)了多數(shù)的SQL-92標(biāo)準(zhǔn),包括事務(wù),就是代表原子性、一致性、隔離性和持久性的(ACID),觸發(fā)器

29、和多數(shù)的復(fù)雜查詢。不進(jìn)行類型檢查。你可以把字符串插入到整數(shù)列中。例如,某些用戶發(fā)現(xiàn)這是使數(shù)據(jù)庫更加有用的創(chuàng)新,特別是與無類型的腳本語言一起使用的時(shí)候。其他用戶認(rèn)為這是主要的缺點(diǎn)。</p><p>  多個(gè)進(jìn)程或線程可以同時(shí)訪問同一個(gè)數(shù)據(jù)而沒有問題??梢酝瑫r(shí)平行讀取同一個(gè)數(shù)據(jù)庫。但同一時(shí)間只能有一個(gè)進(jìn)程或線程進(jìn)行數(shù)據(jù)寫入;否則會寫入失敗并得到一個(gè)錯(cuò)誤信息[2](或者會自動重試一段時(shí)間,而這重試時(shí)間的長短是可以設(shè)置的

30、)。</p><p>  程序設(shè)計(jì)者還提供了一個(gè)叫做sqlite3的獨(dú)立程序用來查詢和管理SQLite數(shù)據(jù)庫文件。SQLite的用戶可以把這個(gè)程序當(dāng)作如何寫SQLite應(yīng)用程序的示例。</p><p>  1.3.2 MVC模式簡介</p><p>  MVC模式(Model-View-Controller)是軟件工程中的一種軟件架構(gòu)模式,把軟件系統(tǒng)分為三個(gè)基本部分

31、:模型(Model)、視圖(View)和控制器(Controller)。</p><p>  MVC模式最早由Trygve Reenskaug在1978年提出 ,是施樂帕羅奧多研究中心(Xerox PARC)在20世紀(jì)80年代為程序語言Smalltalk發(fā)明的一種軟件設(shè)計(jì)模式。MVC模式的目的是實(shí)現(xiàn)一種動態(tài)的程序設(shè)計(jì),使后續(xù)對程序的修改和擴(kuò)展簡化,并且使程序某一部分的重復(fù)利用成為可能。除此之外,此模式通過對復(fù)雜度

32、的簡化,使程序結(jié)構(gòu)更加直觀。軟件系統(tǒng)通過對自身基本部分分離的同時(shí)也賦予了各個(gè)基本部分應(yīng)有的功能。專業(yè)人員可以通過自身的專長分組:</p><p> ?。刂破鰿ontroller)- 負(fù)責(zé)轉(zhuǎn)發(fā)請求,對請求進(jìn)行處理。</p><p>  (視圖View) - 界面設(shè)計(jì)人員進(jìn)行圖形界面設(shè)計(jì)。</p><p>  (模型Model) - 程序員編寫程序應(yīng)有的功能(實(shí)現(xiàn)算法

33、等等)、數(shù)據(jù)庫專家進(jìn)行數(shù)據(jù)管理和數(shù)據(jù)庫設(shè)計(jì)(可以實(shí)現(xiàn)具體的功能)。</p><p>  MVC設(shè)計(jì)思想:MVC英文即Model-View-Controller,即把一個(gè)應(yīng)用的輸入、處理、輸出流程按照Model、View、Controller的方式進(jìn)行分離,這樣一個(gè)應(yīng)用被分成三個(gè)層——模型層、視圖層、控制層。 </p><p>  MVC的優(yōu)點(diǎn):首先,多個(gè)視圖能共享一個(gè)模型。如今,同一個(gè)We

34、b應(yīng)用程序會提供多種用戶界面,例如用戶希望既能夠通過瀏覽器來收發(fā)電子郵件,還希望通過手機(jī)來訪問電子郵箱,這就要求Web網(wǎng)站同時(shí)能提供Internet界面和WAP界面。在MVC設(shè)計(jì)模式中,模型響應(yīng)用戶請求并返回響應(yīng)數(shù)據(jù),視圖負(fù)責(zé)格式化數(shù)據(jù)并把它們呈現(xiàn)給用戶,業(yè)務(wù)邏輯和表示層分離,同一個(gè)模型可以被不同的視圖重用,所以大大提高了代碼的可重用性。</p><p>  其次,控制器是自包含(self-contained)指

35、高獨(dú)立內(nèi)聚的對象,與模型和視圖保持相對獨(dú)立,所以可以方便的改變應(yīng)用程序的數(shù)據(jù)層和業(yè)務(wù)規(guī)則[3]。例如,把數(shù)據(jù)庫從MySQL移植到Oracle,或者把RDBMS數(shù)據(jù)源改變成LDAP數(shù)據(jù)源,只需改變模型即可。一旦正確地實(shí)現(xiàn)了控制器,不管數(shù)據(jù)來自數(shù)據(jù)庫還是LDAP服務(wù)器,視圖都會正確地顯示它們。由于MVC模式的三個(gè)模塊相互獨(dú)立,改變其中一個(gè)不會影響其他兩個(gè),所以依據(jù)這種設(shè)計(jì)思想能構(gòu)造良好的少互擾性的構(gòu)件。</p><p&g

36、t;  此外,控制器提高了應(yīng)用程序的靈活性和可配置性。控制器可以用來連接不同的模型和視圖去完成用戶的需求,也可以構(gòu)造應(yīng)用程序提供強(qiáng)有力的手段。給定一些可重用的模型和視圖,控制器可以根據(jù)用戶的需求選擇適當(dāng)?shù)哪P瓦M(jìn)行處理,然后選擇適當(dāng)?shù)牡囊晥D將處理結(jié)果顯示給用戶。</p><p>  1.4硬件和軟件要求</p><p><b>  1.4.1硬件要求</b></p

37、><p>  本應(yīng)用程序可以廣泛運(yùn)在 iPhone,iPad,iPod運(yùn)行要求如下:</p><p>  開發(fā)環(huán)境:Xcode5.0 + iOS SDK 。</p><p>  數(shù)據(jù)庫連接第三方庫:采用FMDB[4]。</p><p><b>  1.4.2軟件要求</b></p><p>  操作

38、系統(tǒng):iOS5(及以上)</p><p>  數(shù)據(jù)庫:SQLite3。</p><p>  開發(fā)工具:Xcode5.0。</p><p><b>  1.5基本環(huán)境</b></p><p>  以O(shè)bjective-C語言為基本開發(fā)語言,通過運(yùn)用集成開發(fā)環(huán)境Xcode5.0,SQL等相關(guān)知識,利用Objective-C語

39、言的面向?qū)ο蟮奶匦约癕VC設(shè)計(jì)思想,設(shè)計(jì)一個(gè)庫存管理模塊[5],模擬一個(gè)倉庫庫存管理系統(tǒng)的出入庫及查詢管理模塊。</p><p>  1.6系統(tǒng)開發(fā)命名規(guī)則</p><p> ?。?)項(xiàng)目中命名規(guī)則</p><p>  項(xiàng)目中各個(gè)子項(xiàng)的命名均以其功能名稱的英文組合,類名以其具體的含義命名,類名的所有單詞的首字母大寫;類中的方法依據(jù)功能而定,且方法命名首單詞的首字母小

40、寫,其他單詞首字母均大寫;項(xiàng)目中的頁面命名是根據(jù)其具體含義命名的。[6]</p><p>  (2)數(shù)據(jù)庫命名規(guī)則</p><p>  數(shù)據(jù)庫名稱與項(xiàng)目所存儲內(nèi)容相同,數(shù)據(jù)庫中表命名規(guī)則是表名稱英文意思的單詞或多個(gè)單詞的組合;表中字段名是相應(yīng)字段的英文單詞或多個(gè)單詞的組合。[7]</p><p><b>  2 系統(tǒng)分析</b></p&

41、gt;<p><b>  2.1可行性分析</b></p><p>  當(dāng)今時(shí)代,手機(jī)APP的發(fā)展趨勢可謂風(fēng)起云涌、數(shù)量猛增,競爭越來越激烈,盈利方向也變得撲朔迷離,在越來越兇猛的勢頭之下,更多高質(zhì)量的手機(jī)APP應(yīng)運(yùn)而生。</p><p>  移動應(yīng)用是一種便捷的方式,專家預(yù)測發(fā)現(xiàn)手機(jī)APP市場容量是PC市場的幾十倍,這是因?yàn)槭謾C(jī)用戶的數(shù)量規(guī)模遠(yuǎn)遠(yuǎn)大于P

42、C。在庫存管理方面,管理人員不可能隨時(shí)在場,而PC端的查詢信息繁雜,干擾信息過多,操作也不甚簡單,而手機(jī)端界面設(shè)計(jì)簡單大方,回饋迅速,沒有過多的垃圾信息干擾,能快速完成庫存的查詢和管理[8]。</p><p>  未來可能提出的需求:隨著用戶日益增長的需求以及為了給用戶帶來更好的體驗(yàn),將來可能需要增加更多接口來實(shí)現(xiàn)相應(yīng)的功能,保留部分空間以便功能擴(kuò)展[9]。</p><p><b&g

43、t;  2.2需求分析</b></p><p>  2.2.1系統(tǒng)需求分析</p><p> ?。?)系統(tǒng)功能包括:產(chǎn)品入出庫登記、確認(rèn)入出庫信息、保存刪除入出庫信息、添加修改刪除產(chǎn)品信息。</p><p> ?。?)系統(tǒng)管理員功能:添加刪除用戶(超級管理員權(quán)限)、查詢?nèi)藛T信息。</p><p>  2.2.2系統(tǒng)功能結(jié)構(gòu)<

44、/p><p>  圖 2 - 1 系統(tǒng)功能結(jié)構(gòu)圖</p><p>  2.2.3系統(tǒng)主要設(shè)計(jì)類</p><p><b>  數(shù)據(jù)庫模塊:</b></p><p>  DBManager shareManager:該類實(shí)現(xiàn)連接數(shù)據(jù)庫,打開數(shù)據(jù)庫,創(chuàng)建Connection連接,及關(guān)閉數(shù)據(jù)庫和增、刪、改、查的功能。該類設(shè)計(jì)為單例模

45、式[10]。</p><p><b>  服務(wù)模塊:</b></p><p>  DBManager :該接口提供現(xiàn)有系統(tǒng)中的需要的功能(相關(guān)數(shù)據(jù)庫操作)函數(shù)的接口。</p><p><b>  超級管理員模塊:</b></p><p>  AdminManageViewController:該類顯

46、示超級管理員管理界面。</p><p><b>  客服模塊:</b></p><p>  ServiceViewController:該類用來實(shí)現(xiàn)客服登錄并查詢顧客購買記錄。</p><p><b>  倉庫管理員模塊:</b></p><p>  WarehouseAdminViewContro

47、ller:該類實(shí)現(xiàn)添加、刪除庫存功能。</p><p><b>  產(chǎn)品信息管理模塊:</b></p><p>  ItemDataModel:該類表示倉庫的信息。</p><p>  NSString * carName:該屬性表示汽車名稱信息。</p><p>  NSString * num:該屬性表示庫存量的信息

48、。</p><p>  NSString * price:該屬性表示汽車單價(jià)的信息。</p><p>  NSString * admin:該屬性表示入庫操作人員。</p><p><b>  用戶信息管理模塊:</b></p><p>  CustomerViewController:該類表示公司顧客信息。</p

49、><p><b>  2.3功能分析</b></p><p><b>  2.3.1用戶登錄</b></p><p>  登錄頁面要求用戶輸入用戶帳戶、密碼。在輸入用戶帳戶、密碼之后,系統(tǒng)將驗(yàn)證用戶帳戶和密碼和數(shù)據(jù)庫中的進(jìn)行匹配查看是否正確,如果驗(yàn)證成功,就使用戶處于登錄狀態(tài)。否則,系統(tǒng)顯示用戶帳戶或密碼錯(cuò)誤的提示信息。如下圖

50、2-2,登錄。</p><p>  2.3.2管理員管理</p><p>  系統(tǒng)的這項(xiàng)功能只有超級管理員有權(quán)限執(zhí)行,其他人員沒有此項(xiàng)權(quán)限。</p><p>  單擊“庫管管理”,可以顯示所有倉庫管理員的相應(yīng)信息。</p><p><b>  如下圖2-3</b></p><p>  圖 2 -

51、3顯示管理員管理界面</p><p>  該模塊可為倉庫添加倉庫管理員及客服。添加管理員需要查找需要添加成為管理員的員工的信息。如下圖2-4,添加管理員.</p><p>  該功能可以刪除某個(gè)倉庫的管理員。刪除管理員需要查找需要刪除的管理員的信息,查詢所有員工的信息,直接點(diǎn)擊“刪除”,完成刪除管理員的操作。如下圖2-5,刪除人員。</p><p>  圖 2 -

52、5 刪除人員</p><p><b>  2.3.3入庫管理</b></p><p>  入庫管理中,超級管理員和倉庫管理員都有權(quán)限進(jìn)行操作。</p><p>  2.3.3.1產(chǎn)品入庫</p><p>  實(shí)現(xiàn)產(chǎn)品的入庫操作。如下圖2-6,產(chǎn)品入庫。</p><p>  需要管理員填寫入庫單,包

53、括待入庫產(chǎn)品的各項(xiàng)信息及入庫單的各項(xiàng)信息。入庫時(shí),如果沒有這種產(chǎn)品 ,可以選擇直接在數(shù)據(jù)庫中添加這項(xiàng)產(chǎn)品;如果存在則在原有數(shù)量的基礎(chǔ)上增加待入庫產(chǎn)品的數(shù)量。</p><p><b>  2.3.4出庫管理</b></p><p>  2.3.4.1產(chǎn)品出庫</p><p>  實(shí)現(xiàn)產(chǎn)品的出庫操作。如下圖2-7,產(chǎn)品出庫.</p>

54、<p>  需要一個(gè)顧客選擇車型并選擇數(shù)量出庫。出庫時(shí),如果沒有這種產(chǎn)品或庫存小于提取數(shù)量,提示“庫存不足”;如果沒有產(chǎn)品不存在或數(shù)量不足的情況則在原有數(shù)量的基礎(chǔ)上減少待出庫產(chǎn)品的數(shù)量。</p><p>  2.3.4.2出庫單管理</p><p>  實(shí)現(xiàn)出庫產(chǎn)品的出庫單記錄操作。</p><p>  產(chǎn)品出庫時(shí),將出庫信息,主要是購買客戶信息保存下來,

55、方便售后時(shí)查找。如下圖2-8,出庫單記錄.</p><p><b>  2.3.5產(chǎn)品管理</b></p><p>  管理倉庫中的產(chǎn)品信息的刪除修改,包括查詢產(chǎn)品信息、添加產(chǎn)品信息,刪除產(chǎn)品信息,修改產(chǎn)品信息。</p><p>  2.3.5.1查詢產(chǎn)品信息</p><p>  顯示所有產(chǎn)品息。如下圖2-9,產(chǎn)品信息。

56、</p><p>  2.3.5.2添加產(chǎn)品信息</p><p>  向倉庫中添加產(chǎn)品。如圖:圖2-10,添加產(chǎn)品.</p><p>  2.3.5.3刪除產(chǎn)品</p><p>  刪除倉庫中的信息,如下圖2-11,刪除產(chǎn)品.</p><p><b>  3 數(shù)據(jù)庫設(shè)計(jì)</b></p&g

57、t;<p>  3.1數(shù)據(jù)庫概要結(jié)構(gòu)設(shè)計(jì)</p><p>  本系統(tǒng)數(shù)據(jù)庫采用SQLite3數(shù)據(jù)庫,系統(tǒng)數(shù)據(jù)庫名稱為user.db。數(shù)據(jù)庫中包含3張表。其他數(shù)據(jù)均用數(shù)據(jù)模型保存在數(shù)據(jù)庫中,按需求獲取。</p><p>  員工信息,包括的數(shù)據(jù)項(xiàng)有:員工ID、姓名、密碼、帳戶類型、性別、聯(lián)系電話、家庭住址。</p><p>  產(chǎn)品信息,包括的數(shù)據(jù)項(xiàng)有:

58、產(chǎn)品名稱、庫存、價(jià)格、入庫人員、顏色、。出廠日期。</p><p>  出庫信息,包括的數(shù)據(jù)項(xiàng)有: 表序號、操作員姓名、汽車型號、購買日期。</p><p>  3.2數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)</p><p>  根據(jù)上述數(shù)據(jù)庫的需求分析和概念結(jié)構(gòu)設(shè)計(jì),設(shè)計(jì)了名稱為user.db的數(shù)據(jù)庫。</p><p>  數(shù)據(jù)庫由下面多個(gè)表格組成,各個(gè)表的命名

59、及字段命名都是以相應(yīng)的含義作為名稱,各個(gè)表格的設(shè)計(jì)結(jié)果如下表所示,每個(gè)表格表示在數(shù)據(jù)庫中相對應(yīng)的一個(gè)表。</p><p> ?。?)員工表,如:表3-1 員工 。</p><p>  表 3 - 1 員工</p><p>  庫存信息表,如:表3-2 庫存。</p><p>  表 3 - 2 庫存</p><p> 

60、?。?)庫存變更表,如:表3-3變更表</p><p>  表 3 - 3 變更表</p><p>  4 系統(tǒng)界面設(shè)計(jì)</p><p><b>  4.1系統(tǒng)界面設(shè)計(jì)</b></p><p>  登陸時(shí)的界面如下圖4-1,超級管理員登陸后界面如圖4-2。</p><p>  圖 4 - 1

61、超級管理員登錄界面</p><p>  圖 4 - 2 超級管理員登錄界面</p><p>  系統(tǒng)后臺共主要分為5個(gè)模塊:</p><p>  第一部分:超級管理員的權(quán)限:查看倉庫管理員信息、添加倉庫管理員、刪除倉庫管理員。</p><p>  第二部分:產(chǎn)品入庫模塊。</p><p>  第三部分:產(chǎn)品出庫模塊。&

62、lt;/p><p>  第四部分:產(chǎn)品管理模塊,包括查看產(chǎn)品信息、產(chǎn)品添加、刪除、修改產(chǎn)品信息。</p><p>  第五部分:庫存信息管理模塊,包括查看庫存信息,添加庫存信息,修改庫存信息。</p><p><b>  5 主要代碼</b></p><p>  5.1數(shù)據(jù)庫各個(gè)表創(chuàng)建代碼</p><

63、p>  NSString * dbPath = [NSHomeDirectory() stringByAppendingFormat:@"/Documents/user.db"];</p><p>  _database = [[FMDatabase alloc]initWithPath:dbPath];</p><p>  if ([_database open

64、])</p><p><b>  {</b></p><p><b>  //創(chuàng)建人員記錄表</b></p><p>  NSString * createUserSQL = @"create table if not exists UserInfo(name varchar(256) primary key,p

65、asswd varchar(256),type varchar(256))";</p><p>  BOOL _isScuessed = [_database executeUpdate:createUserSQL];</p><p>  if (!_isScuessed) {</p><p>  NSLog(@"create table err

66、or:%@",_database.lastErrorMessage);</p><p><b>  }</b></p><p><b>  //創(chuàng)建出庫記錄表</b></p><p>  NSString * createSoldSQL = @"create table if not exists So

67、ldInfo(id integer primary key autoincrement,name varchar(256),carName varchar(256),date varchar(256))";</p><p>  if (![_database executeUpdate:createSoldSQL]) {</p><p>  NSLog(@"create

68、 table error:%@",_database.lastErrorMessage);</p><p><b>  }</b></p><p><b>  //創(chuàng)建庫存記錄表</b></p><p>  NSString * createWarehouseSQL = @"create table i

69、f not exists WarehouseInfo(carName varchar(256) primary key,num ingeter , price varchar(256),admin varchar(256))";</p><p>  _isScuessed = [_database executeUpdate:createWarehouseSQL];</p><p&g

70、t;  if (!_isScuessed) {</p><p>  NSLog(@"create table error:%@",_database.lastErrorMessage);</p><p><b>  }</b></p><p><b>  5.2部分功能代碼</b></p>

71、<p>  5.2.1查詢角色信息:</p><p>  NSString * selectSql = @"select * from UserInfo where type=?" ;</p><p>  //根據(jù)用戶類型查詢角色信息</p><p>  FMResultSet *set = [_database executeQue

72、ry:selectSql,@"Admin"];</p><p>  NSMutableArray * array = [NSMutableArray array];</p><p>  while ([set next]) {</p><p>  AdminDataModel * model = [[AdminDataModel alloc]in

73、it];</p><p>  model.userName = [set stringForColumn:@"name"];</p><p>  model.passwd = [set stringForColumn:@"passwd"];</p><p>  [array addObject:model];</p>

74、;<p>  [model release];}</p><p>  return array;</p><p>  5.2.2添加庫存:</p><p>  //將對應(yīng)數(shù)據(jù)添加到WarehouseInfo表中,若添加失敗,提示錯(cuò)誤信息。</p><p>  NSString * insertSql = @"inser

75、t into WarehouseInfo (carName,num,price,admin) values(?,?,?,?)";</p><p>  if (![_database executeUpdate:insertSql,model.carName,model.num,model.price,model.admin]) {</p><p>  return _datab

76、ase.lastErrorMessage;</p><p><b>  }</b></p><p><b>  else</b></p><p>  return Nil;</p><p>  5.2.3刪除用戶:</p><p>  //將對應(yīng)數(shù)據(jù)添加到UserInfo表中

77、,若添加失敗,提示錯(cuò)誤信息。</p><p>  NSString * deleteSql = @"delete from UserInfo where name = ?";</p><p>  BOOL isSc = [_database executeUpdate:deleteSql,name];</p><p>  if (!isSc) {

78、</p><p>  NSLog(@"delete:%@",_database.lastErrorMessage);</p><p><b>  }</b></p><p>  5.2.4 數(shù)據(jù)庫操作函數(shù)(部分代碼)</p><p>  -(NSArray *)fetchDataWithUserTyp

79、e:(UserType)type;//根據(jù)角色獲取信息</p><p>  -(void)insertWith:(RegisterModel *)model;//注冊接口</p><p>  -(NSArray *)fetchItems;//獲取庫存信息</p><p>  -(void)deleteDataWithUserName:(NSString*)name;

80、//根據(jù)姓名刪除角色</p><p>  -(void)deleteItemWithCarName:(NSString *)carName;//根據(jù)車名刪除條目</p><p>  -(NSString *)whoami:(NSString *)name passwd:(NSString *)passwd;//驗(yàn)證角色信息</p><p>  -(NSString

81、*)insertItem:(ItemDataModel *)model;//插入庫存信息</p><p>  -(NSString *)updateItem:(ItemDataModel *)model;//更新庫存信息</p><p>  -(NSString *)insertSoldItemWithBuyerName:(NSString *)name carName:(NSString

82、 *)carName date:(NSString *)date;//添加到出庫表</p><p>  -(NSArray *)fetchSoldItems;//獲取出庫信息</p><p>  5.2.5 登錄界面主要處理函數(shù)</p><p>  - (IBAction)LoginClicked:(id)sender {</p><p> 

83、 NSString *type = [[DBManager shareManager] whoami:_nameTextField.text passwd:_passwdTextField.text];</p><p>  UIApplication * app = [UIApplication sharedApplication];</p><p>  AppDelegate * del

84、egate = app.delegate;</p><p>  if ([type isEqualToString:@"Admin"]) {</p><p>  UIAlertView * alert= [[UIAlertView alloc]initWithTitle:@"提示" message:@"管理員賬號登陸成功" del

85、egate:self cancelButtonTitle:@"確定" otherButtonTitles:nil, nil];</p><p>  [alert show];</p><p>  AdminManageViewController * admin = [[AdminManageViewController alloc]init];</p>

86、<p>  admin.user = _nameTextField.text;</p><p>  delegate.loginName = _nameTextField.text;</p><p>  [self.navigationController pushViewController:admin animated:YES];</p><p>&l

87、t;b>  }</b></p><p>  else if([type isEqualToString:@"Customer"])</p><p><b>  {</b></p><p>  UIAlertView * alert= [[UIAlertView alloc]initWithTitle:@&q

88、uot;提示" message:@"顧客賬號登陸成功" delegate:self cancelButtonTitle:@"確定" otherButtonTitles:nil, nil];</p><p>  [alert show];</p><p>  CustomerViewController * vc = [[CustomerVi

89、ewController alloc]init];</p><p>  vc.user = _nameTextField.text;</p><p>  delegate.loginName = _nameTextField.text;</p><p>  [self.navigationController pushViewController:vc animat

90、ed:YES];</p><p><b>  }</b></p><p>  else if ([type isEqualToString:@"Service"])</p><p><b>  {</b></p><p>  UIAlertView * alert= [[UIAl

91、ertView alloc]initWithTitle:@"提示" message:@"客服賬號登陸成功" delegate:self cancelButtonTitle:@"確定" otherButtonTitles:nil, nil];</p><p>  [alert show];</p><p>  ServiceView

92、Controller * svc = [[ServiceViewController alloc]init];</p><p>  [self.navigationController pushViewController:svc animated:YES];</p><p>  // * vc = [[CustomerViewController alloc]init];

93、</p><p>  // [self.navigationController pushViewController:vc animated:YES];</p><p><b>  }</b></p><p>  else if ([type isEqualToString:@"WarehouseAdmin"

94、])</p><p><b>  {</b></p><p>  UIAlertView * alert= [[UIAlertView alloc]initWithTitle:@"提示" message:@"庫管賬號登陸成功" delegate:self cancelButtonTitle:@"確定" oth

95、erButtonTitles:nil, nil];</p><p>  WarehouseAdminViewController * svc = [[WarehouseAdminViewController alloc]init];</p><p>  svc.user = _nameTextField.text;</p><p>  delegate.loginN

96、ame = _nameTextField.text;</p><p>  [alert show];</p><p>  [self.navigationController pushViewController:svc animated:YES];</p><p><b>  }</b></p><p><b&g

97、t;  else</b></p><p><b>  {</b></p><p>  UIAlertView * alert= [[UIAlertView alloc]initWithTitle:@"提示" message:@"用戶名或密碼錯(cuò)誤" delegate:self cancelButtonTitle:@&q

98、uot;確定" otherButtonTitles:nil, nil];</p><p>  [alert show];</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  結(jié)論</b></p>&

99、lt;p>  在實(shí)現(xiàn)畢業(yè)設(shè)計(jì)的過程中,深刻理解了原來學(xué)的很多知識,比如對MVC框架的理解,熟悉了單例的使用,學(xué)習(xí)了Objective-C語言和SQLite3數(shù)據(jù)庫的用法,能夠從GitHub尋找更加方便的第三方庫,初步掌握了移動終端開發(fā)的技術(shù)。SQL語句的使用使我對關(guān)系型數(shù)據(jù)庫更加了解。這些都為我今后的工作奠定了堅(jiān)實(shí)的基礎(chǔ)。</p><p>  本次的畢業(yè)設(shè)計(jì)已經(jīng)結(jié)束,我鍛煉了編碼能力,邏輯思維能力也鍛煉了品

100、質(zhì)通過這次畢業(yè)設(shè)計(jì),我對待問題將會更加認(rèn)真且有耐心,我很感激這個(gè)機(jī)會,在實(shí)現(xiàn)的過程中感謝老師的指導(dǎo)和同學(xué)的幫助。</p><p>  畢業(yè)設(shè)計(jì)是結(jié)束也是開始,在今后的工作生活中,我會不斷學(xué)習(xí)新的知識,我將會運(yùn)用所學(xué)的知識運(yùn)用于實(shí)踐,并在實(shí)踐中鍛煉自己的專業(yè)能力,最終成為一名優(yōu)秀的軟件工程師。</p><p><b>  致謝</b></p><p&

101、gt;  本篇論文的順利完成,首先要感謝我的指導(dǎo)老師李閱歷老師,他淵博的知識和開闊的視野給我深深的啟迪,以及所有在我遇到問題時(shí)幫助我的人,感謝他們對我的支持,他們提出的寶貴意見和建議我也十分感激。</p><p>  感謝電氣1009班和軟件1002班所有的同學(xué)。四年來我們互幫互助,和睦共處。正是有你們我的求學(xué)生涯才不會感到孤獨(dú),馬上就要各奔前程了,希望你們有好的前途。</p><p> 

102、 感謝河北農(nóng)業(yè)大學(xué)科學(xué)信息與技術(shù)學(xué)院的老師這四年對我的教育和培養(yǎng),你們是我在專業(yè)道路上的引路人,是你們的悉心教導(dǎo)使我有了良好的專業(yè)基礎(chǔ),這也是本篇論文得以完成的基礎(chǔ),在此我向你們表示衷心的感謝。</p><p>  謹(jǐn)以此致謝最后,我要向百忙之中抽時(shí)間對本文進(jìn)行審閱的各位老師表示衷心的感謝。</p><p><b>  參考文獻(xiàn)</b></p><

103、p>  [1]內(nèi)皮爾,馬庫爾.IOS6編程實(shí)戰(zhàn)[D].北京:人民郵電出版社,2013,04,1</p><p>  [2] http://zh.wikipedia.org/wiki/SQLite</p><p>  [3] http://zh.wikipedia.org/wiki/Mvc</p><p>  [4] https://github.com/ccg

104、us/fmdb</p><p>  [5] C Chung, J Bucanek Pro Objective-C Design Patterns for iOS O'Reilly 2012-9-1</p><p>  [6] JD Davidson Learning Cocoa with Objective-C O'Reilly 2003-9-1</p>

105、<p>  [7] Conway J, Hillegass A, 夏偉頻. iOS 編程[M]. 華中科技大學(xué)出版社, 2013.</p><p>  [8] 和凌志,王方.iPhone 開發(fā)入門與實(shí)戰(zhàn)[M]. 電子工業(yè)出版社, 2010.</p><p>  [9] 李柏嵐,谷大武,李卷孺,孫明. iOS備份機(jī)制中隱私威脅問題的分析[J]. 通信技術(shù). 2012</p&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論