2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  設(shè)計(jì)的目標(biāo)與要求</b></p><p><b>  1、課程設(shè)計(jì)目的:</b></p><p>  熟悉大型數(shù)據(jù)庫(kù)管理系統(tǒng)的結(jié)構(gòu)與組成;</p><p>  熟悉數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的設(shè)計(jì)方法和開發(fā)過程;</p><p>  掌握一種大型數(shù)據(jù)庫(kù)管理系統(tǒng)(DM5、ORACLE

2、或SQL SERVER)的應(yīng)用技術(shù)和開發(fā)工具的使用;</p><p>  熟悉數(shù)據(jù)庫(kù)設(shè)計(jì)工具的使用;</p><p>  熟悉數(shù)據(jù)庫(kù)安全的相關(guān)知識(shí)和技術(shù);</p><p>  熟悉數(shù)據(jù)庫(kù)系統(tǒng)的管理和維護(hù)。</p><p><b>  2、課程設(shè)計(jì)要求:</b></p><p>  在課程設(shè)計(jì)指導(dǎo)老

3、師的指導(dǎo)下,選定一個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的題目,完成數(shù)據(jù)庫(kù)的設(shè)計(jì)和應(yīng)用系統(tǒng)設(shè)計(jì),并提交相應(yīng)文檔。</p><p>  數(shù)據(jù)庫(kù)管理系統(tǒng)僅限D(zhuǎn)M5、Oracle以及MS SQL Server;</p><p>  開發(fā)工具限PowerBuilder、Delphi、C++、 JAVA、.NET平臺(tái)或其它動(dòng)態(tài)網(wǎng)頁(yè)開發(fā)工具;</p><p>  系統(tǒng)采用客戶/服務(wù)器(C/S)結(jié)構(gòu)或

4、瀏覽器/服務(wù)器(B/S)結(jié)構(gòu)實(shí)現(xiàn)。</p><p>  系統(tǒng)應(yīng)嚴(yán)格遵照題目要求進(jìn)行設(shè)計(jì),可在其基礎(chǔ)上進(jìn)一步細(xì)化完善,但不得違背,原則上不額外增加與要求無關(guān)的功能。</p><p>  系統(tǒng)中應(yīng)適當(dāng)體現(xiàn)下列技術(shù)的應(yīng)用:存儲(chǔ)過程,觸發(fā)器,索引。</p><p>  提交系統(tǒng)的源碼及文檔。</p><p><b>  設(shè)計(jì)的應(yīng)用背景<

5、;/b></p><p>  本系統(tǒng)是一個(gè)超市收銀系統(tǒng)。顧名思義,本系統(tǒng)用來管理和更新超市日常交易數(shù)據(jù),如收銀員的管理,收銀員的工作記錄,日常交易記錄,顧客信息管理,商品信息管理,等等,所有的數(shù)據(jù)存儲(chǔ)在達(dá)夢(mèng)數(shù)據(jù)庫(kù)的system庫(kù)中。</p><p>  本系統(tǒng)實(shí)現(xiàn)的主要功能為:</p><p>  1、收銀:收銀員輸入顧客的會(huì)員卡卡號(hào)(若有卡)、所購(gòu)商品的貨號(hào)

6、等信息,系統(tǒng)根據(jù)這些信息獲取相應(yīng)的價(jià)格信息并計(jì)算應(yīng)收取的總金額。完成收銀后,記錄交易信息,修改有關(guān)種類商品的剩余量以及該持卡顧客的消費(fèi)情況。</p><p>  2、發(fā)卡:顧客可交納一定的費(fèi)用(如50元)辦理一張會(huì)員卡,以后在該商場(chǎng)購(gòu)物可憑卡享受9折優(yōu)惠。如果一個(gè)未持卡顧客一次購(gòu)物滿1000元,可為其免費(fèi)發(fā)放一張會(huì)員卡,每張卡的優(yōu)惠期為一年,一年內(nèi)消費(fèi)達(dá)到一定金額的可繼續(xù)享受下一年的優(yōu)惠。</p>

7、<p>  3、款項(xiàng)盤存:收銀員下班或交接班前對(duì)本收銀臺(tái)中本班次收取的款額進(jìn)行盤存,明確責(zé)任。</p><p>  4、商品信息的錄入、修改、刪除和查詢等。</p><p>  5、收銀員身份及口令管理。</p><p><b>  數(shù)據(jù)庫(kù)設(shè)計(jì)過程</b></p><p><b>  1、需求分析&l

8、t;/b></p><p><b>  (1)、信息要求</b></p><p>  顧客信息:顧客編號(hào)(會(huì)員卡號(hào))、顧客姓名、顧客性別、注冊(cè)時(shí)間、是否到期、消費(fèi)金額。</p><p>  收銀員信息:收銀員編號(hào)、收銀員姓名、收銀員性別、登錄名,密碼。</p><p>  商品信息:商品編號(hào)、商品名稱、單價(jià)、現(xiàn)有庫(kù)

9、存。</p><p>  收銀信息:收銀員編號(hào)、收銀金額、登錄時(shí)間,注銷時(shí)間。</p><p>  交易信息:顧客編號(hào),商品編號(hào),交易時(shí)間,交易數(shù)量。</p><p><b> ?。?)、處理要求</b></p><p>  A、處理方式:聯(lián)機(jī)處理。</p><p>  B、處理時(shí)間要求:<

10、 2S。</p><p><b>  C、處理功能:</b></p><p>  (I)、添加新信息,修改現(xiàn)存信息,刪除無用信息,查詢信息。</p><p>  (II)、計(jì)算一次交易的金額,如果是會(huì)員,就可以享受9折優(yōu)惠,如果非會(huì)員消費(fèi)金額超過1000元,免費(fèi)為其發(fā)放一張為期一年的會(huì)員卡。</p><p>  (III

11、)、只有收銀員以正確的用戶名和密碼才能登錄本系統(tǒng)。</p><p> ?。?)、安全性和完整性要求</p><p>  A、安全性要求:只有收銀員以正確的用戶名和密碼才能登錄本系統(tǒng),進(jìn)行相應(yīng)操作。后臺(tái)服務(wù)器(達(dá)夢(mèng)數(shù)據(jù)庫(kù))會(huì)生成相應(yīng)的日志文件。</p><p><b>  B、完整性要求:</b></p><p> ?。↖

12、)實(shí)體完整性:如上信息要求一欄所示,黃色背景的為primary key。</p><p> ?。↖I)參照完整性:收銀信息和交易信息中的收銀員編號(hào),顧客編號(hào)和商品編號(hào)均為前面的參照。</p><p>  (III)用戶定義完整性:如性別只能為‘男’或‘女’,姓名不能為空,登錄名必須唯一,密碼必須六位以上,等等。</p><p><b>  2、概念設(shè)計(jì)&l

13、t;/b></p><p>  根據(jù)需求分析得到的信息抽象為E-R模型如下:</p><p><b>  3、邏輯設(shè)計(jì)</b></p><p>  根據(jù)以上分析,得到本系統(tǒng)的基本關(guān)系模式為:</p><p>  顧客(顧客編號(hào)、顧客姓名、顧客性別、注冊(cè)時(shí)間、是否到期、消費(fèi)金額)。</p><p&

14、gt;  create table Customer</p><p>  ( Cno char(9) primary key,</p><p>  Cname char(20),</p><p>  Csex char(2) check(Csex in('男','女')),</p><p>  Creg

15、date,</p><p>  Cactive char(2) check(Cactive in('是','否')),</p><p>  Cconsumption decimal(8,2)</p><p><b>  );</b></p><p>  收銀員(收銀員編號(hào)、收銀員姓名、收銀

16、員性別、登錄名,密碼)。</p><p>  create table Cashier</p><p>  (Cno char(9) primary key,</p><p>  Cname char(20) not null,</p><p>  Csex char(2) check(Csex in('男','女&

17、#39;)),</p><p>  Clogname char(20) unique,</p><p>  Clogpass char(20) check(Clogpass like '______%')</p><p><b>  );</b></p><p>  商品(商品編號(hào)、商品名稱、單價(jià)、現(xiàn)有

18、庫(kù)存)。</p><p>  create table Goods</p><p>  (Gno char(9) primary key,</p><p>  Gname char(20) not null,</p><p>  Gprice decimal(5,2),</p><p>  Gstorage sma

19、llint</p><p><b>  );</b></p><p>  收銀(收銀員編號(hào)、收銀金額、登錄時(shí)間,注銷時(shí)間)。</p><p>  create table Cashinfo</p><p>  (Cno char(9) not null,</p><p>  Crecv deci

20、mal(7,2),</p><p>  CtimeOn timestamp(0),</p><p>  CtimeOff timestamp(0),</p><p>  foreign key(Cno) references Cashier(Cno)</p><p><b>  );</b></p><

21、;p>  交易(顧客編號(hào),商品編號(hào),交易時(shí)間,交易數(shù)量)。</p><p>  create table Tradeinfo</p><p>  (Cno char(9),</p><p>  Gno char(9),</p><p>  Tquantity smallint,</p><p>  Ttime

22、timestamp(0),</p><p>  --primary key( Cno, Gno),</p><p>  foreign key(Cno) references Customer(Cno),</p><p>  foreign key(Gno) references Goods(Gno) </p><p><b> 

23、 );</b></p><p>  為了編程的方便,另外建立了幾個(gè)視圖如下:</p><p>  查詢收銀信息(收銀員編號(hào)、收銀員姓名、收銀金額、登錄時(shí)間,注銷時(shí)間)</p><p>  查詢交易信息(顧客編號(hào),顧客姓名,商品編號(hào),商品名稱,交易時(shí)間,交易數(shù)量)</p><p><b>  應(yīng)用系統(tǒng)的設(shè)計(jì)過程</b

24、></p><p><b>  系統(tǒng)模塊結(jié)構(gòu)圖</b></p><p><b>  系統(tǒng)工作流程</b></p><p>  以收銀員的身份登錄(密碼為123456),如下圖:</p><p>  對(duì)收銀員信息,顧客信息,商品信息做相應(yīng)操作,以收銀員信息為例:</p><p

25、>  添加信息,如果出現(xiàn)非法的輸入,會(huì)有提示,并會(huì)返回該界面等待重新輸入(如兩次密碼不同,編號(hào)已存在,性別是‘男’‘女’之外的其他,等等)。如圖:</p><p>  刪除信息,輸入四個(gè)參數(shù)中任意的幾個(gè),系統(tǒng)會(huì)把滿足此參數(shù)組合的所有記錄刪除掉。如圖:</p><p>  修改信息,要輸入正確的編號(hào)。在需要修改的地方輸入新的參數(shù),不需要修改的地方保持空白。如圖:</p>

26、<p>  查詢信息,可以采用條件查詢,方法同刪除。如圖:</p><p>  進(jìn)行交易。輸入商品編號(hào)和對(duì)應(yīng)的數(shù)量(最多5種商品),如果是會(huì)員,輸入會(huì)員卡號(hào),否則不輸入。以會(huì)員為例,如下圖:</p><p><b>  輸入購(gòu)買信息</b></p><p><b>  判斷為會(huì)員</b></p>&

27、lt;p><b>  計(jì)算應(yīng)收金額</b></p><p>  此后,系統(tǒng)會(huì)根據(jù)交易的情況,自動(dòng)彈出修改相應(yīng)數(shù)據(jù)(如顧客的消費(fèi)金額,商品的庫(kù)存,交易信息等等)的對(duì)話框,其中,正確的修改數(shù)據(jù)已經(jīng)默認(rèn)的填在了對(duì)話框中,收銀員只需點(diǎn)擊確定按鈕即可。</p><p>  注銷以后,會(huì)彈出重新登陸的對(duì)話框。退出直接退出本系統(tǒng)。</p><p>&l

28、t;b>  關(guān)鍵技術(shù)和算法</b></p><p>  登錄對(duì)話框增加了“記住用戶名”這一選項(xiàng)。實(shí)現(xiàn)算法為:將選項(xiàng)是否勾選的狀態(tài)用一個(gè)bool變量表示,新建一個(gè)名為“user.dat”的文件。每次登陸時(shí),讀取文件中的內(nèi)容到“用戶名”欄中。如果選擇了“記住用戶名”,則將用戶輸入的用戶名重新寫到user.dat文件中,否則寫入空。</p><p>  系統(tǒng)中使用了很多對(duì)話框,

29、而且每個(gè)對(duì)話框都不相同。我采用了復(fù)用對(duì)話框的方式。實(shí)現(xiàn)方法為:定義狀態(tài)變量</p><p>  typedef enum stype{</p><p>  CASHIER_ADD,CASHIER_DELETE,CASHIER_EDIT,CASHIER_QUERY,</p><p>  CUSTOMER_ADD,CUSTOMER_DELETE,CUSTOMER_EDI

30、T,CUSTOMER_QUERY,</p><p>  GOODS_ADD, GOODS_DELETE, GOODS_EDIT, GOODS_QUERY,</p><p>  CASHINFO_ADD,CASHINFO_QUERY,</p><p>  TRADE_ADD, TRADE_QUERY</p><p><b&

31、gt;  }STYPE;</b></p><p>  在OnInitDialog()函數(shù)中,用switch-case語(yǔ)句來初始化不同用途的對(duì)話框。這樣,16個(gè)對(duì)話框只用1個(gè)對(duì)話框資源。</p><p>  為了能夠?qū)崟r(shí)更新系統(tǒng)中的時(shí)間(如交易時(shí)間,上班下班時(shí)間等等),create幾個(gè)觸發(fā)器用來獲得系統(tǒng)時(shí)間。</p><p>  //添加新會(huì)員的時(shí)候,自動(dòng)

32、獲得系統(tǒng)時(shí)間作為注冊(cè)時(shí)間</p><p>  create trigger Insert_Customer</p><p>  before insert on Customer</p><p>  for each row</p><p><b>  begin</b></p><p>  :n

33、ew.Creg := curdate();</p><p><b>  end;</b></p><p>  //添加交易信息的時(shí)候,自動(dòng)獲得系統(tǒng)時(shí)間作為交易時(shí)間</p><p>  create trigger Insert_Trade</p><p>  before insert on Tradeinfo</

34、p><p>  for each row</p><p><b>  begin</b></p><p>  :new.Ttime := current_timestamp();</p><p><b>  end;</b></p><p>  --用戶登錄系統(tǒng)時(shí)插入新記錄<

35、;/p><p>  create trigger Insert_CashinfoOn</p><p>  before insert on Cashinfo</p><p>  for each row</p><p><b>  begin</b></p><p>  :new.CtimeOn :=

36、 current_timestamp();</p><p><b>  end;</b></p><p>  --用戶更新Crecv時(shí)(logout)</p><p>  create trigger Insert_CashinfoOff</p><p>  before update on Cashinfo</p

37、><p>  for each row</p><p><b>  begin</b></p><p>  if :old.CtimeOff is null</p><p>  then :new.CtimeOff := current_timestamp();</p><p><b>  

38、end if;</b></p><p><b>  end;</b></p><p>  為了查詢的方便,創(chuàng)建了Query_Tradeinfo和Query_Cashinfo兩個(gè)視圖。</p><p>  create view Query_Cashinfo(Qcno,Qcname,Qcrecv,Qctimeon,Qctimeoff)

39、</p><p><b>  as</b></p><p>  select Cashinfo.Cno, Cname, Crecv, CtimeOn, CtimeOff</p><p>  from Cashinfo,Cashier</p><p>  where Cashinfo.Cno = Cashier.Cno;&

40、lt;/p><p>  create view </p><p>  Query_Tradeinfo(Qcno,Qcname,Qgno,Qgname,Qgprice,Qttime,Qtquantity)</p><p><b>  as</b></p><p>  select Tradeinfo.Cno, Cname,

41、Tradeinfo.Gno, Gname, Gprice, Ttime, Tquantity</p><p>  from Tradeinfo,Customer,Goods</p><p>  where Tradeinfo.Cno = Customer.Cno and Tradeinfo.Gno = Goods.Gno;</p><p>  在交易的過程中,會(huì)彈出

42、其他的對(duì)話框用來更新數(shù)據(jù)庫(kù),采用了重載消息函數(shù)的方法,使得更新的數(shù)據(jù)能以參數(shù)的形式傳到對(duì)話框中。</p><p>  采用了動(dòng)態(tài)條件修改,刪除和查詢的方式,實(shí)現(xiàn)方法是,在源程序中動(dòng)態(tài)改變查詢的條件。以刪除收銀員為例:</p><p>  // m_Cashier是CCashierRecordSet(從CRecordSet繼承,與Cashier表關(guān)聯(lián))的對(duì)象</p><p

43、><b>  //如果輸入不為空</b></p><p>  if(m_strEdit1.GetLength())</p><p><b>  {</b></p><p>  if(bFirst)</p><p>  m_Cashier.m_strFilter += " and &q

44、uot;;</p><p>  strFilter.Format("Cno = '%s'",m_strEdit1);</p><p><b>  //增加對(duì)應(yīng)的條件</b></p><p>  m_Cashier.m_strFilter += strFilter;</p><p>  

45、bFirst = TRUE;</p><p><b>  }</b></p><p>  if(m_strEdit2.GetLength())</p><p><b>  {</b></p><p>  if(bFirst)</p><p>  m_Cashier.m_str

46、Filter += " and ";</p><p>  strFilter.Format("Cname = '%s'",m_strEdit2);</p><p>  m_Cashier.m_strFilter += strFilter;</p><p>  bFirst = TRUE;</p>

47、<p><b>  }</b></p><p>  if(m_strEdit3.GetLength())</p><p><b>  {</b></p><p>  if(bFirst)</p><p>  m_Cashier.m_strFilter += " and "

48、;;</p><p>  strFilter.Format("Csex = '%s'",m_strEdit3);</p><p>  m_Cashier.m_strFilter += strFilter;</p><p>  bFirst = TRUE;</p><p><b>  }</b

49、></p><p>  if(m_strEdit4.GetLength())</p><p><b>  {</b></p><p>  if(bFirst)</p><p>  m_Cashier.m_strFilter += " and ";</p><p>  st

50、rFilter.Format("Clogname = '%s'",m_strEdit4);</p><p>  m_Cashier.m_strFilter += strFilter;</p><p>  bFirst = TRUE;</p><p><b>  }</b></p><p&g

51、t;<b>  設(shè)計(jì)心得體會(huì)</b></p><p>  這次數(shù)據(jù)庫(kù)課程設(shè)計(jì)收獲頗大,首先對(duì)視圖和觸發(fā)器的認(rèn)識(shí)和作用都上了一個(gè)臺(tái)階。通過這次的課程設(shè)計(jì),我不僅拓寬了自己的知識(shí)面,還在實(shí)踐過程中鞏固和加深了自己所學(xué)的理論知識(shí),使自己的技術(shù)素質(zhì)和實(shí)踐能力有了進(jìn)一步的提高,同時(shí)我的專業(yè)水平也有了很大的進(jìn)步。熟悉大型數(shù)據(jù)庫(kù)管理系統(tǒng)的結(jié)構(gòu),熟悉了數(shù)據(jù)庫(kù)系統(tǒng)開發(fā)工具的使用。</p><

52、;p>  同時(shí),在軟件開發(fā)方面也累積了不少經(jīng)驗(yàn),對(duì)軟件工程的知識(shí)重要性的認(rèn)識(shí)更深了。通過設(shè)計(jì)過程的鍛煉,自己分析問題和解決問題的能力都得到了鍛煉和提高,完善了自己的知識(shí)結(jié)構(gòu),加深了對(duì)所學(xué)知識(shí)的理解。</p><p>  這次課程設(shè)計(jì)完成后,體會(huì)頗多,在學(xué)與做的過程中,取長(zhǎng)補(bǔ)短,不斷學(xué)習(xí)新的知識(shí),吸取經(jīng)驗(yàn),達(dá)到進(jìn)步的目的。在學(xué)與做的過程中自身的努力以及相關(guān)圖書資料的幫助,對(duì)ODBC編程接口的理解也從能夠使用提

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論