數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告 郵局訂報(bào)
數(shù)據(jù)庫(kù)課程設(shè)計(jì)報(bào)告課 題: 郵局訂報(bào)系統(tǒng) 專(zhuān)業(yè)班級(jí): 學(xué) 號(hào): 姓 名: 組 員: 指導(dǎo)教師: 評(píng)閱意見(jiàn):評(píng)定成績(jī): 指導(dǎo)老師簽名: 年 月 日目 錄目錄1 課程設(shè)計(jì)的目的和意義22 需求分析32.1 開(kāi)發(fā)環(huán)境與開(kāi)發(fā)工具32.2 系統(tǒng)需求分析32.2.1需要管理的實(shí)體信息32.2.2實(shí)體聯(lián)系信息32.2.3 系統(tǒng)數(shù)據(jù)流圖42.3功能需求分析43系統(tǒng)設(shè)計(jì)63.1數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)63.2數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)73.2.1數(shù)據(jù)庫(kù)關(guān)系模式73.2.2數(shù)據(jù)庫(kù)及表結(jié)構(gòu)的創(chuàng)建84系統(tǒng)實(shí)現(xiàn)114.1登陸模塊的創(chuàng)建114.2查詢(xún)模塊的創(chuàng)建134.3用戶(hù)信息與用戶(hù)管理模塊的創(chuàng)建164.4報(bào)紙訂閱模塊的創(chuàng)建184.5更新模塊的創(chuàng)建194.6統(tǒng)計(jì)信息模塊的創(chuàng)建205系統(tǒng)調(diào)試236總結(jié)277參考文獻(xiàn)281 課程設(shè)計(jì)的目的和意義在Internet飛速發(fā)展的今天,互聯(lián)網(wǎng)成為人們快速獲取、發(fā)布和傳遞信息的重要渠道,它在人們政治、經(jīng)濟(jì)、生活等各個(gè)方面發(fā)揮著重要的作用.因此網(wǎng)站建設(shè)在Internet應(yīng)用上的地位顯而易見(jiàn),它已成為政府、企事業(yè)單位信息化建設(shè)中的重要組成部分,從而倍受人們的重視。 這次我們所設(shè)計(jì)的課題正是互聯(lián)網(wǎng)與社會(huì)生活之間的緊密關(guān)系的體現(xiàn),現(xiàn)今的社會(huì),人們已經(jīng)離不開(kāi)了網(wǎng)絡(luò),網(wǎng)絡(luò)已經(jīng)成為人與人之間交流的一種形式,他能夠把事情的復(fù)雜化轉(zhuǎn)為簡(jiǎn)單化。郵局訂報(bào)管理系統(tǒng)的建設(shè)不僅能夠使該事業(yè)單位的工作方式有所改變,也大大地提高了該單位工作人員的辦事效率,也增加了該單位的知明度,更重要的是為我們的居民提供了一個(gè)網(wǎng)絡(luò)生活空間,促進(jìn)了他們對(duì)網(wǎng)絡(luò)知識(shí)的進(jìn)一步地了解。 通過(guò)該系統(tǒng)展示了各種報(bào)紙信息的在線訂閱功能及報(bào)紙、客戶(hù)信息管理功能,方便了客戶(hù)與郵局的各種信息溝通,同時(shí)也給予了管理人員極大的方便。近年來(lái)我國(guó)信息產(chǎn)業(yè)發(fā)展迅速,手工管理方式在報(bào)紙訂閱管理等需要大量事務(wù)處理的應(yīng)用中已顯得不相適應(yīng),采用IT技術(shù)提高服務(wù)質(zhì)量和管理水平勢(shì)在必行。面對(duì)各種媒體的強(qiáng)勢(shì)競(jìng)爭(zhēng),因此,郵局必須提高其工作效率,改善其工作環(huán)境。這樣,管理信息化勢(shì)在必行。 在傳統(tǒng)的郵局訂報(bào)管理中,其過(guò)程往往是很復(fù)雜的,繁瑣的,管理以售出和進(jìn)貨兩項(xiàng)內(nèi)容為核心,在此過(guò)程中又需要經(jīng)過(guò)若干道手續(xù),因?yàn)檎麄€(gè)過(guò)程都需要手工操作,效率十分低下,且由于他們之間關(guān)聯(lián)復(fù)雜,統(tǒng)計(jì)和查詢(xún)的方式各不相同;且會(huì)出現(xiàn)信息的重復(fù)傳遞問(wèn)題,因此該過(guò)程必須實(shí)現(xiàn)信息化。 我們的系統(tǒng)開(kāi)發(fā)的整體任務(wù)是實(shí)現(xiàn)郵局訂報(bào)管理的系統(tǒng)化、規(guī)范化、自動(dòng)化和智能化,從而達(dá)到提高管理效率的目的。2 需求分析2.1 開(kāi)發(fā)環(huán)境與開(kāi)發(fā)工具系統(tǒng)開(kāi)發(fā)環(huán)境為局域網(wǎng)網(wǎng)絡(luò)環(huán)境,服務(wù)器上安裝有SQL Server2000與Delphi7.0.2.2 系統(tǒng)需求分析本系統(tǒng)的設(shè)計(jì)模擬一般郵局報(bào)紙訂閱系統(tǒng)的管理內(nèi)容,經(jīng)過(guò)充分地系統(tǒng)調(diào)研,發(fā)現(xiàn)本系統(tǒng)應(yīng)包含報(bào)紙信息、客戶(hù)信息、供應(yīng)商信息等管理信息。進(jìn)一步還發(fā)現(xiàn)信息實(shí)體間需的管理信息有訂閱管理即客戶(hù)與其訂閱的相對(duì)應(yīng)的報(bào)紙信息情況、供求管理即供應(yīng)商與其供應(yīng)的報(bào)紙對(duì)應(yīng)的管理關(guān)系等內(nèi)容。本系統(tǒng)的具體要求如下:1) 能全面管理郵局訂報(bào)的所有業(yè)務(wù)的相關(guān)實(shí)體,如報(bào)紙基本信息、客戶(hù)信息、管理員信息、供應(yīng)商信息等;2) 通過(guò)使用計(jì)算機(jī)能方便地維護(hù)包括添加刪除、查找等個(gè)信息表;3) 能實(shí)現(xiàn)跨表查詢(xún)所需要的信息;4) 能進(jìn)行多個(gè)條件的組合查詢(xún);5) 能基于單表或多表的數(shù)據(jù)統(tǒng)計(jì);6) 需要時(shí)能對(duì)某些信息即時(shí)輸出顯示;7) 系統(tǒng)能面對(duì)多角色用戶(hù),對(duì)不同級(jí)別的用戶(hù)提供相對(duì)應(yīng)的系統(tǒng)功能;8) 該系統(tǒng)具有操作方便、快捷等特點(diǎn)。2.2.1需要管理的實(shí)體信息1) 報(bào)紙信息:報(bào)紙編號(hào),報(bào)紙名,類(lèi)別,地區(qū),出版社,季度約價(jià),進(jìn)貨量,庫(kù)存等;2) 客戶(hù)信息:賬號(hào),客戶(hù)名,密碼,地址,郵編,電話,權(quán)限,照片等;3) 供應(yīng)商信息:供應(yīng)商編號(hào),供應(yīng)商名,報(bào)紙名,地區(qū),電話,郵箱等。2.2.2實(shí)體聯(lián)系信息1) 客戶(hù)與報(bào)紙訂閱關(guān)系聯(lián)系圖,客戶(hù)訂閱后必須將客戶(hù)名與報(bào)紙相關(guān)信息對(duì)應(yīng)起來(lái),以便郵局將報(bào)紙寄給對(duì)應(yīng)的客戶(hù),讓客戶(hù)定期收到自己訂閱的報(bào)紙;2) 供應(yīng)商與報(bào)紙聯(lián)系圖,哪個(gè)供應(yīng)商供應(yīng)那些報(bào)紙,必須有個(gè)相對(duì)應(yīng)的數(shù)據(jù)表,當(dāng)庫(kù)存不夠時(shí),我們通過(guò)此聯(lián)系表找到對(duì)應(yīng)的供應(yīng)商,與其聯(lián)系進(jìn)行進(jìn)貨。2.2.3 系統(tǒng)數(shù)據(jù)流圖訂購(gòu)?fù)顺鲇嗁?gòu)信息報(bào)紙信息修改客戶(hù)客戶(hù)信息訂購(gòu)信息查詢(xún)合法用戶(hù)登錄不合法用戶(hù)管理員客戶(hù)報(bào)紙信息報(bào)紙信息客戶(hù)信息客戶(hù)信息訂購(gòu)信息客戶(hù)信息修改供應(yīng)商供應(yīng)商信息供應(yīng)商信息供應(yīng)商信息客戶(hù)信息修改報(bào)紙報(bào)紙信息報(bào)紙信息報(bào)紙信息統(tǒng)計(jì)報(bào)紙信息報(bào)紙統(tǒng)計(jì)客戶(hù)統(tǒng)計(jì)客戶(hù)信息在仔細(xì)分析調(diào)查有關(guān)信息的基礎(chǔ)上,能得到系統(tǒng)的數(shù)據(jù)流圖如圖2.2.31所示:圖2.2.31 數(shù)據(jù)流圖2.3功能需求分析1) 在數(shù)據(jù)庫(kù)服務(wù)器SQL Server 2000中,建立各關(guān)系模式對(duì)應(yīng)的庫(kù)表,并確定主鍵、索引、參照完整性、用戶(hù)定義完整性等。2) 能對(duì)個(gè)表進(jìn)行輸入、修改、刪除、添加、查詢(xún)等功能。3) 在客戶(hù)訂閱信息和供應(yīng)商供給信息發(fā)生變更時(shí),能對(duì)相關(guān)信息作必要的調(diào)整。4) 能實(shí)現(xiàn)下列各類(lèi)查詢(xún):Ø 能查詢(xún)報(bào)紙的相關(guān)信息,并且可以按編號(hào)、按名稱(chēng)、按季度約價(jià)進(jìn)行相關(guān)查詢(xún),顯示相應(yīng)的信息。Ø 管理員能查詢(xún)客戶(hù)的相關(guān)信息,顯示客戶(hù)基本信息與訂閱情況,方便管理員與客戶(hù)之間的動(dòng)態(tài)交流。Ø 管理員能查詢(xún)各個(gè)報(bào)紙的庫(kù)存情況,以便管理員與供應(yīng)商及時(shí)聯(lián)系,保證每種報(bào)紙的庫(kù)存量。5) 能實(shí)現(xiàn)如下各類(lèi)統(tǒng)計(jì)功能:Ø 能統(tǒng)計(jì)各類(lèi)報(bào)紙訂閱情況,客觀反映各報(bào)紙銷(xiāo)售情況,為銷(xiāo)售人員做下一季度的銷(xiāo)售計(jì)劃做依據(jù)。Ø 能統(tǒng)計(jì)每個(gè)客戶(hù)訂閱的報(bào)紙總數(shù),以方便對(duì)某些大客戶(hù)進(jìn)行回饋活動(dòng)。6) 能實(shí)現(xiàn)訂閱功能,在客戶(hù)填入訂閱的相關(guān)信息后,能自動(dòng)將這些信息放入對(duì)應(yīng)的數(shù)據(jù)庫(kù)中。7) 用戶(hù)管理功能,包括用戶(hù)基本信息管理及用戶(hù)登錄。8) 要求所設(shè)計(jì)的界面友好,功能合理安排,操作使用方便,并能進(jìn)一步考慮子系統(tǒng)在安全性、完整性、并發(fā)控制、備份恢復(fù)等方面的功能要求。經(jīng)過(guò)上面的對(duì)系統(tǒng)和功能需求分析,我們制成的功能模塊圖如圖2.31所示:郵局訂報(bào)管理系統(tǒng)系統(tǒng)管理單據(jù)錄入與確認(rèn)報(bào)紙更新與統(tǒng)計(jì)基本信息管理用戶(hù)登錄付款方式設(shè)置類(lèi)別設(shè)置用戶(hù)管理送貨方式設(shè)置供應(yīng)商信息管理客戶(hù)信息管理報(bào)紙信息查詢(xún)按類(lèi)別查詢(xún)按地區(qū)查詢(xún)按名稱(chēng)查詢(xún)按編號(hào)查詢(xún)報(bào)紙的更新銷(xiāo)售單錄入確認(rèn)進(jìn)貨單錄入確認(rèn)銷(xiāo)售單錄入進(jìn)貨單錄入地區(qū)設(shè)置報(bào)紙信息的統(tǒng)計(jì)圖 2.31 系統(tǒng)功能模塊圖3系統(tǒng)設(shè)計(jì)3.1數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)在充分需求分析的基礎(chǔ)上,經(jīng)過(guò)逐步抽象、概括、分析、充分研討,可畫(huà)出如下反應(yīng)郵局訂報(bào)管理系統(tǒng)數(shù)據(jù)的整體E-R圖(圖3.11-圖3.16) 供應(yīng)商提供報(bào)紙客戶(hù)管理員訂閱管理管理管理mnnmnmnnm1圖3.11 系統(tǒng)實(shí)體及其聯(lián)系圖郵編客戶(hù)賬號(hào)密碼姓名地址電話圖3.12 客戶(hù)實(shí)體圖報(bào)紙報(bào)紙名類(lèi)型地區(qū)進(jìn)貨量季度約價(jià)庫(kù)存編號(hào)出版社圖3.13 報(bào)紙屬性圖Email電話地址編號(hào)姓名供應(yīng)商圖3.14 供應(yīng)商信息圖訂閱數(shù)量客戶(hù)賬號(hào)報(bào)紙編號(hào)年限圖3.15 客戶(hù)報(bào)紙聯(lián)系圖提供進(jìn)價(jià)進(jìn)貨時(shí)間圖3.16 報(bào)紙與供應(yīng)商聯(lián)系圖3.2數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)3.2.1數(shù)據(jù)庫(kù)關(guān)系模式按照實(shí)體-聯(lián)系圖轉(zhuǎn)化為關(guān)系模式的規(guī)則,本系統(tǒng)的E-R圖可轉(zhuǎn)化為如下約5個(gè)關(guān)系模式:·客戶(hù)(賬號(hào),客戶(hù)名,密碼,地址,郵編,電話,權(quán)限,照片)·報(bào)紙(報(bào)紙編號(hào),報(bào)紙名,類(lèi)別,地區(qū),出版社,季度約價(jià),進(jìn)貨量,庫(kù)存)·供應(yīng)商(供應(yīng)商編號(hào),供應(yīng)商名,報(bào)紙名,地區(qū),電話,郵箱)·訂閱(賬號(hào),報(bào)紙編號(hào),訂閱季度,訂閱數(shù)量)·提供(供應(yīng)商編號(hào),報(bào)紙編號(hào),供應(yīng)數(shù)量)屬性名對(duì)應(yīng)由英文表示,則5個(gè)關(guān)系模式為:·客戶(hù)(id,name,pd,addr,zip,tel,qx,photo)·報(bào)紙(pnum,pname,kind,area,cbs,price,jhl,kc)·供應(yīng)商(num,name,pname,area,tel,e-mail)·訂閱(id,pnum,dyjd,dysl)·提供(num,pnum,gysl)3.2.2數(shù)據(jù)庫(kù)及表結(jié)構(gòu)的創(chuàng)建本系統(tǒng)使用的數(shù)據(jù)庫(kù)名為youjudingyue,根據(jù)已設(shè)計(jì)出的關(guān)系模式及各關(guān)系模式的完整性約束要求,現(xiàn)在就可以在SQL 2000數(shù)據(jù)庫(kù)系統(tǒng)中實(shí)現(xiàn)這些邏輯結(jié)構(gòu)。數(shù)據(jù)庫(kù)表的創(chuàng)建數(shù)據(jù)庫(kù)名稱(chēng):youjudingyue,創(chuàng)建5張表,部分如下所示(圖3.2.21-圖3.2.24)圖3.2.21客戶(hù)信息表圖3.2.22報(bào)紙信息表圖3.2.23 訂閱信息表圖3.2.24 供應(yīng)商信息表表與表按需要可以定義出多種視圖(圖3.2.25-圖3.2.26)圖3.2.25 訂閱視圖圖3.2.26 用戶(hù)管理視圖3.3系統(tǒng)的總體設(shè)計(jì)對(duì)系統(tǒng)各項(xiàng)功能進(jìn)行集中、分塊,此系統(tǒng)主要實(shí)行以下的功能:1、 管理員與用戶(hù)的登錄功能2、 信息的更新功能(報(bào)紙信息、客戶(hù)信息、供應(yīng)商信息的添加、刪除與修改)3、 統(tǒng)計(jì)功能(報(bào)紙數(shù)量、用戶(hù)數(shù)量)4、 訂閱功能圖3.31 為郵局訂報(bào)系統(tǒng)的程序流程圖管理員客戶(hù)開(kāi)始結(jié)束顯示登錄界面顯示訂閱界面信息訂閱報(bào)紙顯示查找后記錄有記錄添加顯示添加后記錄有記錄客戶(hù)管理刪除顯示刪除后記錄有記錄顯示顯示所有記錄有記錄查找顯示查找后記錄有記錄添加顯示添加后記錄有記錄報(bào)紙管理刪除顯示刪除后記錄有記錄顯示顯示所有記錄有記錄查找按編號(hào)按類(lèi)別按單價(jià)按地區(qū)按名稱(chēng)供應(yīng)商管理顯示更新后記錄有記錄更新信息統(tǒng)計(jì)查詢(xún)顯示統(tǒng)計(jì)記錄有記錄顯示對(duì)應(yīng)記錄有記錄查詢(xún)報(bào)紙顯示對(duì)應(yīng)記錄有記錄顯示對(duì)應(yīng)記錄有記錄顯示對(duì)應(yīng)記錄有記錄顯示對(duì)應(yīng)記錄有記錄圖3.31 郵局訂報(bào)系統(tǒng)流程圖4系統(tǒng)實(shí)現(xiàn)在此次課程設(shè)計(jì)系統(tǒng)的程序開(kāi)發(fā)上,由于采用的是分工合作的方式,所以在代碼的開(kāi)發(fā)上,系統(tǒng)的登錄模塊與查詢(xún)模塊設(shè)計(jì)是我的主要任務(wù)。4.1登陸模塊的創(chuàng)建本窗體是為兩種不同的用戶(hù)(一般用戶(hù),管理員)提供選擇以進(jìn)入不同的模塊,滿(mǎn)足不同用戶(hù)的需求。在登錄過(guò)程中由于權(quán)限值與賬號(hào)編碼有關(guān),所以用戶(hù)不必選定登錄方式,系統(tǒng)會(huì)根據(jù)不同的賬號(hào)進(jìn)入到相應(yīng)的界面。在此窗口使用的控件有一個(gè)ComboBox(賬號(hào))、一個(gè)Edit(密碼)、兩個(gè)Button(登錄與關(guān)閉)。登陸窗口運(yùn)行界面如圖4.11所示圖4.11 登陸界面登陸窗口主要程序段代碼如下。implementationuses unit2, Unit4;$R *.dfmprocedure TForm1.Button1Click(Sender: TObject);beginform2.ADOTable1.Close; form2.ADOTable1.Open; /打開(kāi)form2的數(shù)據(jù)庫(kù)鏈接form4.ADOTable1.Close;form4.ADOTable1.Open; /打開(kāi)form4的數(shù)據(jù)庫(kù)鏈接if form2.ADOTable1.locate('id',combobox1.Text,) /賬號(hào)匹配thenbeginif (edit1.Text= trim(form2.ADOTable1.FieldValues'pd' ) /密碼匹配and (trim(form2.ADOTable1.FieldValues'qx')='1') /權(quán)限匹配(管理員權(quán)限)thenbeginform1.Hide; /隱藏登陸窗口form2.Show; /彈出用戶(hù)管理窗口endelsebeginif (edit1.Text= trim(form2.ADOTable1.FieldValues'pd' ) /密碼匹配and (trim(form2.ADOTable1.FieldValues'qx')='0') /權(quán)限匹配(用戶(hù)權(quán)限)thenbeginform1.Hide; /隱藏登陸窗口form4.Show; /彈出用戶(hù)信息窗口endelsemessagebox(self.Handle,'您的帳號(hào)或密碼不正確!','溫馨提示',0); /出錯(cuò)提示endendelsemessagebox(self.Handle,'您的帳號(hào)或密碼不正確!','溫馨提示',0); /出錯(cuò)提示end;4.2查詢(xún)模塊的創(chuàng)建本窗體實(shí)現(xiàn)的查詢(xún)功能有多種(見(jiàn)圖4.21),如按編號(hào)、報(bào)紙名稱(chēng)、報(bào)紙類(lèi)別、報(bào)紙價(jià)格、報(bào)紙地區(qū)等字段進(jìn)行完全匹配和部分匹配的模糊查找,并且用戶(hù)可以從查找模塊進(jìn)入到報(bào)紙訂閱模塊。方便用戶(hù)訂閱報(bào)紙。 圖4.21 查詢(xún)選擇條件圖在此窗口使用的控件有一個(gè)ADO(用來(lái)鏈接到數(shù)據(jù)庫(kù))、一個(gè)DataSource(用來(lái)連接dbgrid)、一個(gè)Dbgrid(顯示原有記錄)、一個(gè)ComboBox(填寫(xiě)查詢(xún)條件)、一個(gè)Edit(填寫(xiě)查詢(xún)關(guān)鍵字)、三個(gè)Button(搜索、訂閱與取消)。查詢(xún)窗口運(yùn)行界面如圖4.23所示圖4.23 報(bào)紙信息查詢(xún)圖查詢(xún)窗口主要程序段代碼如下。procedure TForm3.Button1Click(Sender: TObject); /搜索按鈕beginif edit1.Text='' then /空白關(guān)鍵字messagebox(self.Handle,'請(qǐng)輸入查找關(guān)鍵字!','溫馨提示',0) /提示elsebeginif combobox2.Text='按編號(hào)' then /查找條件(按編號(hào))beginadotable1.Filtered:=false;adotable1.Filter:='pnum like '+''''+trim(edit1.Text)+#37+''''/相當(dāng)于(pnum like edit.text%);其中trim()表示刪除輸入內(nèi)容的前后空格;#37代表%adotable1.Filtered:=true;endelsebeginif combobox2.Text='按名稱(chēng)' then /查找條件(按名稱(chēng))beginadotable1.Filtered:=false;adotable1.Filter:='pname like '+''''+trim(edit1.Text)+#37+'''' /相當(dāng)于(pname like edit.text%)adotable1.Filtered:=true;endelsebeginif combobox2.Text='按類(lèi)別' then /查找條件(按類(lèi)別)beginadotable1.Filtered:=false;adotable1.Filter:='kind like '+''''+trim(edit1.Text)+#37+''''/相當(dāng)于(kind like edit.text%)adotable1.Filtered:=true;endelsebeginif combobox2.Text='按價(jià)格' then /查找條件(按價(jià)格)beginadotable1.Filtered:=false;adotable1.Filter:='price like '+''''+trim(edit1.Text)+#37+''''/相當(dāng)于(price like edit.text%)adotable1.Filtered:=true;endelsebeginif combobox2.Text='按地區(qū)' then /查找條找(按地區(qū))beginadotable1.Filtered:=false;adotable1.Filter:='area like '+''''+trim(edit1.Text)+#37+''''/相當(dāng)于(area like edit.text%)adotable1.Filtered:=true;endelsemessagebox(self.Handle,'請(qǐng)選擇查找方式!','溫馨提示',0); /提示endendendendendend;4.3用戶(hù)信息與用戶(hù)管理模塊的創(chuàng)建用戶(hù)信息與用戶(hù)管理模塊是根據(jù)用戶(hù)權(quán)限的不同,所進(jìn)入的不同的界面。其中用戶(hù)管理界面是管理員所要求進(jìn)入的界面,而用戶(hù)信息界面屬于一般用戶(hù)所要求進(jìn)入的界面。在此窗口使用的控件有一個(gè)ADO(用來(lái)鏈接到數(shù)據(jù)庫(kù))、一個(gè)DataSource(用來(lái)連接dbgrid、DBimage和DBtext)、一個(gè)OpenPictrueDialog(打開(kāi)圖片)、一個(gè)DBimage(顯示用戶(hù)圖片信息)、兩個(gè)DBtext(顯示用戶(hù)賬號(hào)與密碼)、兩個(gè)ComboBox(用于信息更新與統(tǒng)計(jì)的條件選擇且僅用于用戶(hù)管理窗口)、兩個(gè)Button(關(guān)閉與確定用與用戶(hù)管理窗口,報(bào)紙訂閱與報(bào)紙查詢(xún)用于用戶(hù)信息窗口)。用戶(hù)管理窗口與用戶(hù)信息窗口主要程序段代碼分別如下。1) 用戶(hù)管理窗口procedure TForm2.Button1Click(Sender: TObject);beginform6.ADOTable1.Close;form6.ADOTable1.Open; /打開(kāi)form6的數(shù)據(jù)庫(kù)鏈接form7.ADOTable1.Close;form7.ADOTable1.Open; /打開(kāi)form7的數(shù)據(jù)庫(kù)鏈接form8.ADOTable1.Close;form8.ADOTable1.Open; /打開(kāi)form8的數(shù)據(jù)庫(kù)鏈接form9.ADOTable1.Close;form9.ADOTable1.Open; /打開(kāi)form9的數(shù)據(jù)庫(kù)鏈接if (combobox1.Text ='信息更新') and (combobox2.Text ='報(bào)紙信息') thenform6.Showelsebeginif (combobox1.Text ='信息更新') and (combobox2.Text ='客戶(hù)信息')thenform7.Showelsebeginif (combobox1.Text ='信息更新') and (combobox2.Text ='供應(yīng)商信息')thenform8.Showelsebeginif combobox1.Text ='信息統(tǒng)計(jì)'thenform9.Showendendend end;procedure TForm2.BitBtn1Click(Sender: TObject);beginApplication.Terminate;end;2) 用戶(hù)信息窗口procedure TForm4.Button1Click(Sender: TObject);beginform3.ADOTable1.Close;form3.ADOTable1.Open; /打開(kāi)form3的數(shù)據(jù)庫(kù)鏈接form4.Hide;form3.Show; /打開(kāi)查詢(xún)窗口end;procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);beginadotable1.Close;application.Terminate;end;procedure TForm4.Button2Click(Sender: TObject);beginform5.show; /打開(kāi)訂閱窗口end;4.4報(bào)紙訂閱模塊的創(chuàng)建 用戶(hù)通過(guò)報(bào)紙訂閱模塊可以實(shí)現(xiàn)對(duì)報(bào)紙的訂閱功能。報(bào)紙訂閱模塊能將用戶(hù)填入的相關(guān)信息記入到數(shù)據(jù)庫(kù)中,實(shí)現(xiàn)對(duì)報(bào)紙的訂閱。在此窗口使用的控件有一個(gè)ADOquery(用來(lái)鏈接到數(shù)據(jù)庫(kù))、四個(gè)DBedit(用來(lái)填寫(xiě)訂報(bào)的相關(guān)信息)、三個(gè)Button(取消、清空與訂閱)。報(bào)紙訂閱窗口主要程序段代碼分別如下。procedure TForm3.Button2Click(Sender: TObject); /訂閱按鈕beginform5.show; /進(jìn)入訂閱窗口end;procedure TForm3.Button3Click(Sender: TObject); /完成按鈕beginform3.Hide;form4.show;end;implementation$R *.dfmprocedure TForm5.Button1Click(Sender: TObject);begin edit1.text :='' edit2.text :='' edit3.Text:='' edit4.Text:=''end;procedure TForm5.Button2Click(Sender: TObject);varsql:string;beginwith adoquery1 dobeginclose;sql.Clear; /清空sql.add('select * from 報(bào)紙和客戶(hù)') ;open;/下面開(kāi)始添加append;fieldbyname('賬號(hào)').asstring:=Edit1.Text; fieldbyname('報(bào)紙編號(hào)').asstring:=Edit2.Text;fieldbyname('訂閱季度').asstring:=Edit3.Text;fieldbyname('訂閱數(shù)量').asstring:=Edit4.Text;post; /添加到數(shù)據(jù)庫(kù)if (edit1.text='')or(edit2.text='')or(edit3.text='')or(edit4.text='') thenmessagebox(self.Handle,'請(qǐng)?zhí)钊胂嚓P(guān)信息!','系統(tǒng)提示',0)elsemessagebox(self.Handle,'恭喜!訂閱成功!','系統(tǒng)提示',0);endend;procedure TForm5.Button3Click(Sender: TObject);beginform5.Hide;end;4.5更新模塊的創(chuàng)建信息更新模塊是用來(lái)實(shí)現(xiàn)客戶(hù)信息、報(bào)紙信息以及供應(yīng)商信息更新功能的模塊。窗口控件由一個(gè)ADO(用來(lái)鏈接到數(shù)據(jù)庫(kù))、一個(gè)DataSource(用來(lái)連接dbgrid)、一個(gè)Dbgrid(顯示記錄)、一個(gè)ComboBox(填寫(xiě)查詢(xún)條件)、一個(gè)Edit(填寫(xiě)查詢(xún)關(guān)鍵字)、一個(gè)DBNavigator(進(jìn)行更新操作)、兩個(gè)Button(搜索與完成)。由于在此模塊的更新中,更新操作是由控件DBNavigator來(lái)實(shí)現(xiàn),所以此模塊中的主要代碼與查詢(xún)模塊中的代碼相同。其代碼詳見(jiàn)查詢(xún)模塊的創(chuàng)建。4.6統(tǒng)計(jì)信息模塊的創(chuàng)建 統(tǒng)計(jì)信息模塊主要可分為兩個(gè)部分,一部分用來(lái)統(tǒng)計(jì)報(bào)紙的相關(guān)信息,一部分是用來(lái)統(tǒng)計(jì)客戶(hù)的相關(guān)信息。在此窗口使用的控件有一個(gè)ADO(用來(lái)鏈接到數(shù)據(jù)庫(kù))、一個(gè)DataSource(用來(lái)連接dbgrid)、兩個(gè)Label(顯示統(tǒng)計(jì)數(shù)據(jù))、一個(gè)Dbgrid(顯示記錄)、一個(gè)ComboBox(填寫(xiě)查詢(xún)條件)、一個(gè)Edit(填寫(xiě)查詢(xún)關(guān)鍵字)、兩個(gè)Button(搜索與完成)。統(tǒng)計(jì)信息窗口主要程序段代碼分別如下。procedure TForm9.Button1Click(Sender: TObject);varsum1:real;sum2:real;s:string;t:string;bookmark1:tbookmark;beginif combobox1.Text='按報(bào)紙編號(hào)' thenbeginadotable1.Filtered:=false; /信息的查找adotable1.Filter:='報(bào)紙編號(hào) like '+''''+trim(edit1.Text)+#37+''''adotable1.Filtered:=true; sum1:=0.00; sum2:=0.00;bookmark1:=ADOTable1.GetBookmark;adotable1.DisableControls;adotable1.First;while not adotable1.Eof dobeginsum1:=sum1+adotable1.fieldbyname('訂閱數(shù)量').Value;sum2:=sum2+1;adotable1.Next;end;adotable1.GotoBookmark(bookmark1);adotable1.freeBookmark(bookmark1);adotable1.EnableControls;str(sum1:8:2,s);str(sum2:8:2,t);label1.Caption:=s;label2.Caption:=t;endelsebeginif combobox1.Text='按賬號(hào)' thenbeginadotable1.Filtered:=false;adotable1.Filter:='賬號(hào) like '+''''+trim(edit1.Text)+#37+''''adotable1.Filtered:=true; sum1:=0.00; sum2:=0.00;bookmark1:=ADOTable1.GetBookmark;adotable1.DisableControls;adotable1.First;while not adotable1.Eof dobeginsum1:=sum1+adotable1.fieldbyname('訂閱數(shù)量').Value;sum2:=1;adotable1.Next;end;adotable1.GotoBookmark(bookmark1);adotable1.freeBookmark(bookmark1);adotable1.EnableControls;str(sum1:8:2,s);str(sum2:8:2,t); label1.Caption:=s;label2.Caption:=t;endend;end;5系統(tǒng)調(diào)試圖5.1 登陸界面出錯(cuò)提示圖圖5.2 管理員登錄進(jìn)入的界面圖圖5.3 一般用戶(hù)登錄進(jìn)入的界面圖圖5.4 供應(yīng)商信息更新圖圖5.5 客戶(hù)信息更新圖圖5.6 報(bào)紙信息更新圖圖5.7 報(bào)紙信息訂閱圖圖5.8 信息統(tǒng)計(jì)圖6總結(jié)兩個(gè)星期的課程設(shè)計(jì)轉(zhuǎn)眼就過(guò)去了,在同組同學(xué)的共同努力下,終于將這次的系統(tǒng)設(shè)計(jì)郵局訂報(bào)管理系統(tǒng)完成了。做得粗糙,但還是感覺(jué)挺開(kāi)心的,畢竟這次的課程設(shè)計(jì)讓我學(xué)到了很多新的知識(shí)。尤其是界面制作的部分。也初步的認(rèn)識(shí)了Delphi這門(mén)語(yǔ)言。這次的課程設(shè)計(jì)與以往的不同主要體現(xiàn)在要求使用窗口化的界面,而在這之前我們并未接觸過(guò)界面編程語(yǔ)言,這無(wú)疑成為了我們這次課程設(shè)計(jì)最大的難題。不會(huì),沒(méi)關(guān)系,咱學(xué)。語(yǔ)言本來(lái)就是相通的。Just do it!指導(dǎo)老師巢老師在了解到我們所學(xué)情況后,決定利用這兩周的時(shí)間教會(huì)我們delphi的基本操作。面對(duì)新的知識(shí),大家都有著以往課程設(shè)計(jì)中少有出現(xiàn)過(guò)的熱情。從如何利用ADO控件來(lái)連接數(shù)據(jù)庫(kù),如何進(jìn)行登錄界面中賬號(hào)與密碼匹配設(shè)置。再到如何將新的數(shù)據(jù)添加到數(shù)據(jù)庫(kù),或是更改數(shù)據(jù)庫(kù)中的原始信息。一步一步,在老師的精心指導(dǎo)下,我們都能理解和熟練的操作這些步驟。在這基礎(chǔ)之上,我又根據(jù)自己系統(tǒng)的需求,在圖書(shū)館和網(wǎng)上找到了很多關(guān)于Delphi編程有關(guān)的信息。自主的寫(xiě)出了查詢(xún)等操作。認(rèn)識(shí)到了很多新的函數(shù),如trim()函數(shù)可以用來(lái)消除字符串的前后空格。在制作登陸界面的時(shí)候也對(duì)用戶(hù)的登錄做了權(quán)限的設(shè)置。由于這次的系統(tǒng)設(shè)計(jì)是采用的分工合作的方式進(jìn)行的,所以同組同學(xué)之間的默契固然是非常重要的。我們這次的課題設(shè)計(jì)分工非常的明確,這也是我們能夠順利完成任務(wù)的關(guān)鍵之一。其次,組員之間的交流也是必不可少的。這些在前期工作的調(diào)查與分析當(dāng)中突出得格外的明顯。與同學(xué)和老師的交流能夠使我們更加全面的認(rèn)識(shí)自己所要設(shè)計(jì)的系統(tǒng),更能夠完善的分析出我們的設(shè)計(jì)所需。通過(guò)了這次課程設(shè)計(jì),不僅充實(shí)了我的專(zhuān)業(yè)知識(shí),擴(kuò)大了知識(shí)面,增強(qiáng)分析問(wèn)題和解決問(wèn)題的能力,同時(shí)也培養(yǎng)了我的團(tuán)隊(duì)協(xié)作精神。在此要特別感謝巢老師,是您讓我有了充實(shí)又有樂(lè)趣的兩個(gè)星期。7參考文獻(xiàn)1 劉韜,樓興華編著SQL Server 2000 數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)實(shí)例導(dǎo)航北京:人民郵電出版社,2004.52 明日科技編著Visual C+管理信息系統(tǒng)完整項(xiàng)目實(shí)例解剖北京:人民郵電出版社2005.73 廖望等編著SQL Server 2000 案例教程北京:冶金工業(yè)出版社,2004.4網(wǎng)站: 29