(精品)畢業(yè)精品畢業(yè)設計正文(2013年優(yōu)秀畢業(yè)設計)_第1頁
(精品)畢業(yè)精品畢業(yè)設計正文(2013年優(yōu)秀畢業(yè)設計)_第2頁
(精品)畢業(yè)精品畢業(yè)設計正文(2013年優(yōu)秀畢業(yè)設計)_第3頁
(精品)畢業(yè)精品畢業(yè)設計正文(2013年優(yōu)秀畢業(yè)設計)_第4頁
(精品)畢業(yè)精品畢業(yè)設計正文(2013年優(yōu)秀畢業(yè)設計)_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第一章 總論1.1 Delphi 7.0簡介Delphi7.0是著名的Borland(現在已和Inprise合并)公司開發(fā)的可視化軟件開發(fā)工具?!罢嬲某绦騿T用c,聰明的程序員用Delphi”,這句話是對Delphi最經典、最實在的描述。Delphi被稱為第四代編程語言,它具有簡單、高效、功能強大的特點。和VC相比,Delphi更簡單、更易于掌握,而在功能上卻絲毫不遜色;和VB相比,Delphi則功能更強大、更實用??梢哉fDelphi同時兼?zhèn)淞薞C功能強大和VB簡單易學的特點。它一直是程序員至愛的編程工具。Delphi具有以下的特性:基于窗體和面向對象的方法,高速的編譯器,強大的數據庫支持,與Windows編程緊密結合,強大而成熟的組件技術。但最重要的還是ObjectPascal語言,它才是一切的根本。ObjectPascal語言是在Pascal語言的基礎上發(fā)展起來的,簡單易學。Delphi提供了各種開發(fā)工具,包括集成環(huán)境、圖像編輯(ImageEditor),以及各種開發(fā)數據庫的應用程序,如DesktopDataBaseExpert等。除此之外,還允許用戶掛接其它的應用程序開發(fā)工具,如Borland公司的資源編輯器(ResourseWorkshop)。在Delphi眾多的優(yōu)勢當中,它在數據庫方面的特長顯得尤為突出:適應于多種數據庫結構,從客戶機服務器模式到多層數據結構模式;高效率的數據庫管理系統(tǒng)和新一代更先進的數據庫引擎;最新的數據分析手段和提供大量的企業(yè)組件111專業(yè)的客戶/服務器開發(fā)工具客戶/服務器是一種將任務進行分解,然后協(xié)同解決的計算模式??蛻舳说膽贸绦蜇撠熖岢鋈蝿招枨?,服務器端的應用程序則為客戶提供服務,例如數據查詢、打印等。用Delphi7.0開發(fā)出的應用程序能夠與數據庫服務器完美地協(xié)同工作,構成客戶/服務器計算模式。112 面向對象的編程在Delphi7.0中創(chuàng)建的窗口、菜單、數據窗口等都是對象。除了使用系統(tǒng)預先定義的對象外,開發(fā)人員可以自行構造新的對象,擴展系統(tǒng)的預定義對象,將各種對象有機地組合起來就構成了Delphi應用程序。113 Delphi和Object PascalObject Pascal是Delphi的語言基礎,Delphi是Object Pascal的加速引擎。軟件開發(fā)工具在任何發(fā)展階段都具有一個永遠不變的目標:提高軟件生產力。換句話說,就是最大程度為開發(fā)者提供方便,在最短時間內建立應用程序。例如,為了降低代碼編寫難度(對于近幾年來才入門的程序員,匯編語言是晦澀難懂的,更不要說去編寫代碼了),最早的C語言和Pascal語言出現了;為了提高代碼效率,面向對象技術應用到編程語言中;為了提高開發(fā)效率,可視化開發(fā)工具出現了;為了實現跨平臺應用,Delphi6和Kylix出現了。Delphi的精華是VCL。離開了VCL,開發(fā)者又回到了刀耕火種的年代。你可以試著將你編寫的單元中的uses子句中由Delphi自動添加的如SysUtils、Forms等單元名刪除,你會發(fā)現你編寫的代碼無法編譯。VCL封裝了Windows消息機制,因此開發(fā)者可以方便地通過屬性、事件、方法來控制對象;VCL封裝了數據庫游標機制(準確地說是BDE封裝的),因此用Delphi進行數據庫應用開發(fā)的開發(fā)者完全可以對關系數據庫的游標機制一無所知。Delphi已經充分提供了積木元件(組件、類、標準例程),而開發(fā)者只需要加以利用就能夠快速實現構想(應用程序)。可見,快速應用開發(fā)(RAD)對于Delphi來說是當之無愧的114 Delphi和SQLSQL語言作為關系數據庫管理系統(tǒng)中的一種通用的結構查詢語言, 已經被眾多的數據庫管理系統(tǒng)所采用,如ORACLE、Sybase、Informix等數據庫管理系統(tǒng),它們都支持SQL 語言。Delphi與使用SQL語言的數據庫管理系統(tǒng)兼容,在使用Delphi開發(fā)數據庫應用程序時,我們可以使用SQL語言編程,支持SQL編程是Delphi的一個重要特征,這也是體現Delphi作為一個強大的數據庫應用開發(fā)工具的一個重要標志。115 Delphi的數據庫特性及功能簡介直到目前為止,計算機軟件的開發(fā)分為兩個不同的體系,其中一個體系是使用傳統(tǒng)的程序設計語言(如Pascal、Basic和C等)開發(fā)數值控制、數值運算等軟件,圍繞它們的重點是算術、數據結構以及近年產生的面向對象技術。另一個體系則是通用的數據庫管理軟件領域(數據庫應用程序的開發(fā))。這兩個體系的發(fā)展都極為迅猛,但是二者并沒出現混合滲透跡象。如果使用數據庫語言進行傳統(tǒng)的算術編程,雖然也能完成相應的功能,但是其編程過程可能極為復雜。如果使用傳統(tǒng)的編程語言進行數據庫編程,通過調用專用的數據庫應用程序接口函數和過程,利用這些函數和過程提供的功能,可能也能做得比較完善,但這做起來大多是極其困難的。而Delphi結合了兩個體系的優(yōu)點,它結合了傳統(tǒng)的編程語言Object Pascal和數據庫語言的強大功能, 它即可以用于傳統(tǒng)的算術編程又可以用于數據庫編程,特別是Delphi具有強大的數據庫功能,利用Delphi的數據庫工具,我們根本不需要編寫任何Object Pascal代碼便可以創(chuàng)建一個簡單的數據庫應用。116 Delphi對多種數據庫管理系統(tǒng)的支持 Delphi在Window3.1以上版本的系統(tǒng)環(huán)境下運行,目前具有兩個版本:Delphi的標準版本和客戶/服務器版本。標準版本包含一個Borland Database Engine的局部拷貝,它允許用戶創(chuàng)建能訪問dBASE、Paradox和Local InterBase 服務器的數據庫應用, 它還支持具有 ODBC 接口的數據庫。Delphi的客戶/服務器版本包括Borland SQL Link, 它能直接訪問 ORACLE 、 SyBase 和Microsoft SQL Server,Informix以及InterBase數據庫服務器。Delphi可以訪問多種數據庫管理系統(tǒng)的數據庫,憑借窗體(Forms)和報表(Reports),BDE(Borland Database Engine)可以訪問諸如Paradox、dBASE、本地InterBase 服務器的數據庫,也可以訪問遠程數據庫服務器上的數據庫(如ORACLE、SyBase、Informix等客戶/服務器數據庫中的數據庫),或任何經ODBC(Open Database Connecticity) 可訪問的數據庫管理系統(tǒng)中的數據庫。117 異常處理與程序調試在應用程序開發(fā)中如何檢測、處理程序的運行錯誤是一個很重要的問題。在 Delphi 的集成開發(fā)環(huán)境( IDE )中提供了一個完善的內置調試器,可以幫助你發(fā)現大部分程序錯誤。但并不是所有的錯誤都可以被發(fā)現,而且當程序涉及到與外設的數據交換或操作外設,如要求用戶輸入、讀寫磁盤等時,錯誤的發(fā)生是程序無法控制的,如輸入非法字符、磁盤不能讀寫等。這些情況不僅會導致應用程序異常中止而且可能引起系統(tǒng)的崩潰。針對這些問題,Delphi同時提供了一套強大的異常處理機制。巧妙地利用它,可以使你的程序更為強健,使用更為友好。第二章 系統(tǒng)設計21 系統(tǒng)功能分析超市銷售系統(tǒng)目前國內外做得較多,比較成熟,這個系統(tǒng)是畢業(yè)生畢業(yè)前的最后一次模擬,對畢業(yè)生的軟件開發(fā)能力有很大幫助。本系統(tǒng)主要由以下幾個功能組成:商品入庫,用于將進來的商品錄入到庫里。商品銷售,用于售貨員銷售商品。商品信息管理,現有庫存、庫存警報、商品報表三部分。查詢,管理員根據自己的需要進行查詢,可按商品代號和商品名稱查詢??诹罡模糜趩T工更改自己的口令。員工信息維護,用于管理員修改員工的信息。22系統(tǒng)功能模塊設計 根據系統(tǒng)功能要求可以將系統(tǒng)分解成幾個子系統(tǒng)模塊來分別設計應用程序界面,超市銷售管理系統(tǒng)如圖所示:銷售子系統(tǒng)入庫子系統(tǒng)商品信息管理查詢子系統(tǒng)口令更改子系統(tǒng)員工信息維護子系統(tǒng)入庫子系統(tǒng)原庫存無原庫存有銷售子系統(tǒng)前臺銷售界面顧客清單商品信息管理現有庫存庫存警報商品信息報表查詢子系統(tǒng)顧客查詢管理員查詢23數據流程圖數據流程圖描繪了系統(tǒng)的邏輯模型,圖中沒有任何具體的物理元素,只是描繪信息在系統(tǒng)中的流動和處理情況。對數據流的分析,主要是整體數據流、單元模塊數據流。整體數據流概括為進入計算機操作員系統(tǒng)的操作過程和用戶(各部門或個人)進入系統(tǒng)的數據流向。 整體數據流:用戶通過密碼進入系統(tǒng),分別對上述幾大功能逐一實現,其中涉及到模塊數據流分析。 根據上一節(jié)業(yè)務流程的分析以及業(yè)務流程圖我們可以得出系統(tǒng)的數據流程。 數據流圖圖例表示:數據的源點/終點 變換數據的處理數據存儲 數據流本系統(tǒng)各功能模塊的數據流程圖如下圖所示:入庫模塊流程圖:庫存原有入庫記錄新進商品庫存原無庫存銷售模塊流程圖:銷 售銷售信息庫 存庫 存商品信息管理模塊流程圖:現有庫存報現有庫存庫存警報報庫存警報庫存進 貨進貨報表 查詢模塊流程圖:管理員查詢管理員查詢結果庫 存口令更改模塊流程圖:口令更改員工口令員工口令員工信息維護模塊流程圖:增加員工信息員工信息刪 除第三章 數據庫設計31 數據庫需求分析數據庫是信息管理的基礎。數據庫結構直接關系到各種功能的實現和程序運行的效率。進行數據庫設計首先必須準確了解與分析用戶需求(包括數據與處理)。需求分析是整個設計過程的基礎,是最困難、最耗費時間的一步。需求分析的結果是否準確地反映了用戶的實際要求,將直接影響到后面各個階段的設計,并影響到設計結果是否合理和實用。根據上一章的流程圖,可以列出以下各模塊記錄信息所需的數據項和數據結構:1入庫信息管理入庫記錄:商品編號(SPNO)、商品名稱(SPNAM)、經辦人員(JBREN)、進貨數量(JHNUM)、進貨小計(inprice)、備注(BEIZHU)2.銷售信息管理銷售記錄:商品編號(SPNO)、商品數量(SPNUM)、經辦人員(JBREN)、商品名稱(SPNAM)、標準價格(BZJG)、銷售小計(XSXJ)3.商品信息管理商品信息記錄:商品編號(SPNO)、商品名稱(SPNAM)、本店庫存量(BDKCL)、默認成本(MORCB)、供應商編號(GYSNO)、商品分類(SPKIN)、安全存量(SAFCL)、商品規(guī)格(SPGG)、庫存單位(KCDW)、商品顏色(SPCOL)、商品尺寸(SPSIZ)、標準價格(BEIZHU BZJG)、會員價格(HYJG)、批發(fā)價格(PFJG)、備注(BEIZHU)4.員工信息管理員工信息:用戶名(user)、口令(password)32數據庫概念結構設計概念模型是對信息世界的建模,所以概念模型應該能夠方便、準確的表示出信息世界中的常用概念。實體-關系模型(Entity-Relationship Module,簡稱E-R圖)是數據庫結構設計常用的方法。E-R圖提供了表示實體、屬性和聯系的方法。實體型:用矩形表示,矩形框內寫明實體名屬性:用橢圓型表示,并用無向邊與其相應實體連接起來聯系:用菱形表示,菱形框內寫明聯系名,并用無向邊與其有關實體連接起來,同時在邊旁邊標上聯系的類型(1:1,1:n或m:n)。對象類型的組成成份可以抽象為實體的屬性。組成成份與對象之間是“is part of”的關系。實際上實體與屬性是相對而言的,很難有截然劃分的界限。同一事物,在一種應用環(huán)境中作為“屬性”,在另一種環(huán)境中就必須作為“實體”。一般來說,在給定的應用環(huán)境中,屬性不能再具有需要描述的性質。即屬性必須是不可分的數據項,不能再由另一些屬性組成。屬性不能與其它實體具有聯系。聯系只發(fā)生在實體之間。本系統(tǒng)中部分E-R圖如圖所示:本店庫存量安全存量庫存 包含 1:m商品編號商品名稱 入庫價格入庫查詢1:m 管理員 1:m入庫信息商品入庫數量銷售供應商編號 1:m 銷售信息銷售價格銷售數量33數據庫結構實現 商品信息表(SPXXB)結構:銷售信息表(XSB)結構:進貨信息表(JHZB)結構:供應商信息表(GYSB)結構: 第四章 詳細設計41登錄界面 為了提高系統(tǒng)的安全性,我們完全有理由相信,設置用戶以及密碼是必要的。用戶登錄界面很簡單,首先在用戶輸入框輸入用戶名,再對應輸入密碼,程序將與用戶數據庫連接,確認用戶是其中一員,并輸入了正確的密碼,然后進入主界面,否則警告出錯,讓用戶重新輸入。界面設置如下:42主界面主窗口界面主要是完成系統(tǒng)功能模塊的劃分。超市銷售系統(tǒng)主窗口包括四個按紐,進貨作業(yè)按紐、商品信息按紐、供應商信息按紐、銷售作業(yè)按紐。界面設置如下:43入庫子系統(tǒng)商品入庫是將購進的商品進行入庫。在入庫時由入庫員將商品信息輸入到入庫信息表中,然后系統(tǒng)將入庫的商品的代號與庫存里的商品信息比較,如果能找到相同的代號,則說明庫存里有這種商品,只要相應增加這種商品的庫存量。如果找不到,則說明原來庫存里沒有這種商品,則要增加這種商品的一系列信息,如商品代號、商品名稱、進價等,界面設置如下:44銷售子系統(tǒng)商品銷售是將顧客購買的商品銷售出去。在銷售時,由銷售員將顧客購買的商品代號輸入到銷售窗口中,系統(tǒng)自動根據商品代號把這種商品的相應信息反饋到數據窗口中,每一種商品都有一個小計,最后算出總計。最后點擊“打印”便可打印出顧客清單了。銷售界面界面設置如下:45商品信息管理子系統(tǒng)商品信息管理子系統(tǒng)包括三個小的基本功能,即:1 現有庫存,本功能是統(tǒng)計現在庫存中所有的商品的信息,包括商品的代號,商品名,進價,售價,還有庫存量等,主要是要庫存量,因為后面的庫存警報和進貨報表都要建立在現在庫存量的基礎上。同樣,點擊“打印”按鈕便可打印現有商品的庫存信息了。2 庫存警報,本功能是根據現有商品的庫存量來判斷哪種商品的庫存量少于最小庫存量,這就能提示管理員哪些商品需要進貨。一開始打開窗口時,數據窗口內也是顯示所有的庫存商品信息,通過點擊“安存不足”按鈕便可查詢庫存量過少的商品信息了。3 進貨報表,本功能是顯示要進貨的商品的信息,它是建立在庫存警報窗口中的過少的商品的信息上的。點擊“打印安存不足”便可打印出進貨報表,供進貨員去進貨。其功能界面設置如下:46查詢子系統(tǒng)查詢功能實現管理員查詢所需的商品信息。在商品信息界面的快速查詢部分,管理員可以根據商品編號、商品名稱、供應商編號、商品分類來查詢相應的商品信息。界面設置同上。47口令更改子系統(tǒng)口令更改功能實現了員工更改自己的口令,在更改口令時,要求用戶輸入舊口令、新口令和確認新口令,用戶必須輸入正確的舊口令和兩次相同的新口令,如果輸入的舊口令不正確,則系統(tǒng)會彈出錯誤警告告訴用戶舊口令錯誤,請用戶重新輸入舊口令。兩樣,如果兩次新口令不一致,也會彈出警告窗口,提醒用戶兩次新口令不一樣,請重新輸入兩次新口令。最后,點擊“確認”就完成口令更改了。48員工信息維護子系統(tǒng)員工信息維護功能實現了管理員修改員工的信息。這也要求先用管理員用戶名和口令登錄,點擊“增加”后,數據窗口會自動插入新的一行,管理員在數據窗口中輸入員工的用戶名和口令后按“保存”就完成增加員工信息的功能了。同樣,要刪除一個員工的信息只要先選中這個員工的信息,按“刪除”后,這個員工的信息就在數據窗口中刪除了,再點擊“保存”就可以了。49幫助子系統(tǒng)任何一個系統(tǒng)都會有幫助系統(tǒng),它用來解決用戶的一些疑問,如用戶對系統(tǒng)的功能及一些功能的使用方面可能有疑問,這時,可參考幫助系統(tǒng)提供的信息,能有效的給用戶提供幫助。本系統(tǒng)的幫助系統(tǒng)對每一個子系統(tǒng)的功能及使用方法都有介紹,如用戶有疑問或參考。第五章 各功能模塊的部分源代碼主界面代碼:procedure TFMMAIN.BitBtn1Click(Sender: TObject);beginFMSPXXB.SHOW;end;當點擊商品信息按紐時調用show方法打開商品信息管理界面。procedure TFMMAIN.BitBtn2Click(Sender: TObject);beginFMGYSB.Show;end;當點擊供應商信息按紐時調用show方法打開供應商信息管理界面。procedure TFMMAIN.BitBtn3Click(Sender: TObject);beginFMJH.Show;end;當點擊進貨作業(yè)按紐時調用show方法打開進貨作業(yè)界面。procedure TFMMAIN.BitBtn4Click(Sender: TObject);begin FMXSB.SHOW;end;當點擊銷售作業(yè)按紐時調用show方法打開商品銷售界面。 1 入庫子系統(tǒng)procedure TFMJH.BitBtn2Click(Sender: TObject);VARLOC1:BOOLEAN;LOC2:BOOLEAN;N:REAL;Na:REAL;STR1:STRING;beginIF (EDIT1.Text=) OR (EDIT2.Text=) THEN BEGIN SHOWMESSAGE(請輸入商品編號和進貨數量!); ABORT; END;LOC1:=FMSPXXBD.TSPXXB.Locate(SPNO,EDIT1.Text,LOCASEINSENSITIVE);IF LOC1=TRUE THEN BEGIN FMSPXXBD.TSPXXB.Edit; FMSPXXBD.TSPXXB.FieldByName(BDKCL).Value:=FMSPXXBD.TSPXXB.FieldByName(BDKCL).Value+STRTOINT(EDIT2.Text); FMSPXXBD.TSPXXB.Post; SHOWMESSAGE(新增商品數量成功!); END;IF LOC1=FALSE THEN BEGIN IF (EDIT1.Text=) OR (EDIT2.Text=) OR (EDIT3.Text=) OR (EDIT4.Text=) OR (EDIT5.Text=) OR (EDIT6.Text=) OR (EDIT7.Text=) OR (EDIT8.Text=) OR (EDIT9.Text=) OR (EDIT10.Text=) OR (EDIT11.Text=) OR (EDIT12.Text=) THEN BEGIN SHOWMESSAGE(新商品!請輸入完全信息!); abort; END ELSE BEGIN FMSPXXBD.TSPXXB.InsertRecord(EDIT1.Text,STRTOINT(EDIT2.Text),EDIT3.Text,STRTOFLOAT(EDIT4.Text),Edit6.TEXT,EDIT7.Text,STRTOFLOAT(EDIT8.Text),EDIT9.Text,EDIT10.Text,EDIT11.Text,EDIT12.Text); SHOWMESSAGE(新增商品成功!); END; END;BEGINLOC2:=FMJHD.TJHZB.Locate(SPNO,EDIT1.Text,LOCASEINSENSITIVE);IF LOC2=FALSE THEN BEGIN FMJHD.TJHZB.Active:=TRUE; FMSPXXBD.TSPXXB.Active:=TRUE; FMJHD.TJHZB.InsertRecord(EDIT1.Text,STRTOINT(EDIT2.Text),EDIT3.Text,EDIT5.Text,Memo1.Text); FMSPXXBD.TSPXXB.FindKey(EDIT1.Text); N:=FMSPXXBD.TSPXXB.FieldByName(MORCB).AsFloat; STR1:=FMSPXXBD.TSPXXB.FieldByName(SPNAM).AsString; FMJHD.TJHZB.FindKey(EDIT1.Text); FMJHD.TJHZB.Edit; FMJHD.TJHZB.FieldByName(JHXJ).AsFloat:=STRTOFLOAT(Edit2.Text)*N; FMJHD.TJHZB.FieldByName(SPNAM).Value:=STR1; FMJHD.TJHZB.Post; END;IF LOC2=True THEN BEGIN FMJHD.TJHZB.Active:=TRUE; FMSPXXBD.TSPXXB.Active:=TRUE; FMSPXXBD.TSPXXB.FindKey(EDIT1.Text); Na:=FMSPXXBD.TSPXXB.FieldByName(MORCB).AsFloat; FMJHD.TJHZB.FindKey(EDIT1.Text); FMJHD.TJHZB.Edit; FMJHD.TJHZB.FieldByName(JHNUM).Value:=FMJHD.TJHZB.FieldByName(JHNUM).Value+STRTOINT(EDIT2.Text); FMJHD.TJHZB.FieldByName(JHXJ).AsFloat:=STRTOFLOAT(Edit2.Text)*Na+FMJHD.TJHZB.FieldByName(JHXJ).Value; END;END;當點擊存盤按紐時,先檢查商品編號和商品數量是否為空,為空就輸出消息請輸入商品編號和進貨數量!,不為空就檢查商品信息表中是否有記錄用的是Locate(),有就直接存盤增加庫存量,沒有就要求輸入完整的信息再存盤。2 銷售子系統(tǒng) procedure TFMXSB.BitBtn2Click(Sender: TObject);VARLOC3:BOOLEAN;LOC4:BOOLEAN;LOCOP:TLOCATEOPTIONS;Nb:REAL;Nc:REAL;STR2:STRING;beginIF (EDIT1.Text=) OR (EDIT2.Text=) THEN BEGIN SHOWMESSAGE(請輸入商品編號和數量!); ABORT; END; LOC3:=FMSPXXBD.TSPXXB.Locate(SPNO,EDIT1.Text,LOCOP);IF LOC3=TRUE THEN BEGIN FMSPXXBD.TSPXXB.Edit; FMSPXXBD.TSPXXB.FieldByName(BDKCL).Value:=FMSPXXBD.TSPXXB.FieldByName(BDKCL).Value-STRTOINT(EDIT2.Text); FMSPXXBD.TSPXXB.Post; END;IF LOC3=FALSE THEN BEGIN SHOWMESSAGE(無此商品!); abort; END;/LOC4:=FMXSBD.TXSB.Locate(SPNO,EDIT1.Text,LOCOP);BEGINIF LOC4=FALSE THEN BEGIN FMXSBD.TXSB.Active:=TRUE; FMSPXXBD.TSPXXB.Active:=TRUE; FMXSBD.TXSB.InsertRecord(EDIT1.Text,STRTOINT(EDIT2.Text),EDIT3.Text); FMSPXXBD.TSPXXB.FindKey(EDIT1.Text); STR2:=FMSPXXBD.TSPXXB.FieldByName(SPNAM).AsString; Nb:=FMSPXXBD.TSPXXB.FieldByName(MORCB).AsFloat; FMXSBD.TXSB.FindKey(EDIT1.Text); FMXSBD.TXSB.Edit; FMXSBD.TXSB.FieldByName(XSXJ).AsFloat:=STRTOFLOAT(Edit2.Text)*Nb; FMXSBD.TXSB.FieldByName(SPNAM).Value:=STR2; FMXSBD.TXSB.FieldByName(BZJG).Value:=Nb; FMXSBD.TXSB.Post; END;IF LOC4=True THEN BEGIN FMXSBD.TXSB.Active:=TRUE; FMSPXXBD.TSPXXB.Active:=TRUE; FMSPXXBD.TSPXXB.FindKey(EDIT1.Text); Nc:=FMSPXXBD.TSPXXB.FieldByName(MORCB).AsFloat; FMXSBD.TXSB.FindKey(EDIT1.Text); FMXSBD.TXSB.Edit; FMXSBD.TXSB.FieldByName(SPNUM).Value:=FMXSBD.TXSB.FieldByName(SPNUM).Value+STRTOINT(EDIT2.Text); FMXSBD.TXSB.FieldByName(XSXJ).AsFloat:=STRTOFLOAT(Edit2.Text)*Nc+FMXSBD.TXSB.FieldByName(XSXJ).Value; END;END;在點擊存盤按紐后,將該商品的庫存量減少。3查詢子系統(tǒng)procedure TFMSPXXB.BitBtn2Click(Sender: TObject);beginWITH FMSPXXBD.QSPXXB DO BEGIN CLOSE; SQL.Clear; SQL.Add(SELECT * FROM SPXXB); SQL.Add(WHERE SPNO IS NOT NULL); SQL.Add(AND BDKCL=SAFCL); SQL.Add(ORDER BY BDKCL,SAFCL); OPEN; END;end;點擊安存不足按紐執(zhí)行上述代碼,Delphi對SQL的支持可以體現在Tquery組件上,Tquery組件有一個SQL屬性可以在其中添加SQL語句,上面代碼中的SQL語句就是在商品信息表中查詢本店庫存量小于安全存量的記錄并按BDKCL,SAFCL排序第六章 設計中遇到的問題和解決辦法(1) 一開始建立數據庫時,沒有把開發(fā)系統(tǒng)時將會遇到的一些問題考慮詳細。導致在數據庫建立好之后,在以后的系統(tǒng)設計過程中發(fā)現當時數據庫建立得不夠完全,還要不斷添加一些表。還有就是一些已建立好的表其中有的變量類型不對,所以又要修改,因此浪費了很多寶貴的時間。后來,仔細分析了一下系統(tǒng),將開發(fā)中會遇到的問題都考慮清楚了,才建立數據庫。這樣,以后就不要改動數據庫,為設計節(jié)約了很多時間。(2) 一開始做的時候,對數據窗口的操作及編程語言還了解不夠透徹,因此在實現數據窗口之間數據傳遞的功能遇到了很大的困難。后來,經過查詢資料學習,對它有了較多的了解,做設計的時候也加快了進度。(3) 在入庫的時候,原來庫里有的只要相應增加這個商品的庫存量,這個功能實現了,但原來庫里沒有的就要增加這種商品的一系列信息,這個功能一直困擾我,但現在解決了。(4) 在銷售商品時,商品銷售總額的計算這個問題還沒解決,正在想辦法,以求盡快解決。第七章 自我評價71系統(tǒng)的特點本系統(tǒng)是采用Delphi7.0開發(fā),該系統(tǒng)由四個主要的功能來實現的。(1)入庫功能。本功能實現了將進來的貨品錄入到庫存中,使之在庫存中有這些商品的記錄,在入庫的同時,要修改庫存量。(2)銷售功能。本功能實現了出售商品的功能,在銷售商品的同時要減少庫存量。(3)商品信息管理功能。本功能實現了將一天下來所有入庫和銷售的商品信息統(tǒng)計出來 ,有助于管理員查詢。(4)查詢功能。本功能實現管理員可以根據自己需要查詢相應的商品信息,管理員可根據商品代號和商品名來查詢。711優(yōu)點本系統(tǒng)軟件具有統(tǒng)一的人機界面,這不至于會增加超市員工和管理員的負擔,讓他們始終以一種輕松的感覺去思考和操作。該系統(tǒng)界面友好,輸出界面盡可能接近實際,以增加人機親和力。712缺點 由于時間倉促,本軟件功能還不夠強大,系統(tǒng)對實驗信息的操作還不夠完善,某些地方還存在問題,還有待于進一步改進。日期信息的存盤還沒有解決,正在想辦法。在銷售模塊還有缺陷,有些功能還沒有實現,比如顧客給錢后的找零。結 論為期半個學期的設計生活很快就要過去,回憶這一段時間,我的感觸很深,由于是第一次開發(fā)一個很實用的管理系統(tǒng),而且是用一種以前我們不太了解的語言,雖然以前學過,但涉及不多。所以開發(fā)起來有一定的難度,我們都感到肩上的壓力很大。隨著開發(fā)的進程,一個個問題都被克服了,這使我深深的體會到了學習的樂趣和運用的艱辛。首先,這次設計我覺得最大的收獲是軟件設計概念思想的建立。以前我們做一些小軟件的開發(fā)或課程設計時,常常是沒有明確的思路,就開始編寫代碼,當遇到問題是才發(fā)現是由于剛開始考慮的不夠周到所致。通過這次設計我發(fā)現,軟件設計前工作準備的重要性。在做開題報告的過程中,我們通過主動的系統(tǒng)調查、系統(tǒng)分析,完成系統(tǒng)的結構設計,數據庫規(guī)劃等工作,這對我們將要開發(fā)的系統(tǒng)有了更深的了解,為下一步系統(tǒng)開發(fā)做好了準備。這使我們建立了軟件設計的正確概念,為今后繼續(xù)開發(fā)系統(tǒng)奠定了基礎。這次我做的課題是超市銷售系統(tǒng),我采用Delphi 7.0開發(fā)工具來實現。由于以前我對它并不太了解,所以為了更好的開發(fā)這項系統(tǒng),我又重新拿起教材,從最基本的學起。由于有

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論