4s店管理系統(tǒng)課程設計報告_第1頁
已閱讀1頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設計報告</b></p><p>  2010/2011學年 第一學期</p><p>  課程名稱: 數(shù)據庫設計 </p><p>  專業(yè)班級: 計算機0801 </p>

2、<p>  姓 名: </p><p>  學 號: </p><p>  指導教師: </p><p><b>  4S店管理

3、系統(tǒng)</b></p><p><b>  1引言</b></p><p>  設計并開發(fā)4s店銷售與售后服務系統(tǒng)軟件,實現(xiàn)汽車銷售,零件銷售,售后服務,庫存管理等功能</p><p><b>  2 總體設計</b></p><p><b>  2.1系統(tǒng)運行環(huán)境</b&

4、gt;</p><p>  1)操作系統(tǒng):windows xp</p><p>  2)數(shù)據庫:SQL Sever2000</p><p>  3)前端開發(fā)軟件:Power Builder9.0</p><p><b>  2.2軟件功能描述</b></p><p>  系統(tǒng)功能可概括分為5個模塊

5、,12個小模塊,即:整車銷售模塊,零配件模塊,售后服務模塊,系統(tǒng)管理模塊,基本信息模塊;整車銷售管理模塊,整車進貨管理模塊,整車庫存管理模塊,零配件銷售管理模塊,零配件進貨管理模塊,零配件庫存管理模塊,維修管理模塊,整車信息,零配件信息,供應商信息,客戶信息,用戶管理模塊。系統(tǒng)功能模塊,如圖2所示:</p><p><b>  整車銷售</b></p><p>  整

6、車銷售管理:記錄整車的銷售信息,實現(xiàn)增,刪,改,查等功能</p><p>  整車進貨管理模塊:記錄整車進貨的管理信息,實現(xiàn)對進貨單的增刪改查等功能</p><p>  整車庫存管理:記錄整車的庫存管理信息</p><p><b>  零配件</b></p><p>  零配件銷售管理:記錄零配件的銷售信息,實現(xiàn)增,刪,

7、改,查等功能</p><p>  零配件進貨管理:記錄零配件進貨的管理信息,實現(xiàn)對進貨單的增刪改查等功能</p><p>  零配件庫存管理:記錄零配件的庫存管理信息</p><p><b>  售后服務</b></p><p>  1)維修管理:對已售車輛的維修數(shù)據進行管理</p><p>&l

8、t;b>  基本信息</b></p><p>  整車信息:存儲整車的信息</p><p>  零配件信息:存儲零配件的信息</p><p>  客戶信息:存儲客戶的信息</p><p>  供應商信息:存儲供應商的信息</p><p><b>  系統(tǒng)管理</b></p&

9、gt;<p>  用戶管理:對用戶信息進行管理</p><p><b>  4數(shù)據庫結構</b></p><p>  4.1.數(shù)據字典(見圖3)</p><p>  表2.1 數(shù)據庫表清單</p><p>  表格設計在系統(tǒng)設計報告出此處不再列出。</p><p><b>

10、  5詳細設計</b></p><p><b>  5.1用戶登錄窗口</b></p><p>  5.1.1界面與功能描述</p><p>  用戶登錄窗口的運行界面如圖4所示</p><p><b>  圖4 用戶登錄窗口</b></p><p>  該模塊主

11、要用來驗證用戶是否合法,以及合法用戶對自己密碼的修改。用戶輸入用戶號和密碼后,點擊“確定”按鈕,如果數(shù)據庫中有相應數(shù)據,則說明為合法用戶,就可以進入到下一個頁面。</p><p>  5.1.2 關鍵代碼分析</p><p>  1.[確定]按鈕的clicked事件</p><p>  這里用到了動態(tài)SQL語句,用于檢查輸入數(shù)據與表數(shù)據的比較查詢,以此實現(xiàn)</

12、p><p><b>  用戶是否存在</b></p><p>  用戶輸入密碼是否正確</p><p>  存在的用戶名,若密碼輸入3次不正確著退出系統(tǒng)</p><p><b>  具體代碼如下:</b></p><p>  string password,userpasswor

13、d</p><p>  string ls_yhbm,ls_userid,ls_password</p><p>  ls_userid=sle_userid.text</p><p>  ls_password=sle_password.text</p><p>  g_userid=sle_userid.text

14、 //g_userid為全局變量</p><p>  g_userpassword=sle_password.text //g_userpassword為全局變量</p><p>  if sle_userid.text="" then</p><p>  messagebox("信息",&quo

15、t;請輸入帳號密碼")</p><p><b>  return</b></p><p><b>  end if</b></p><p>  if ls_userid="5" then</p><p>  messagebox("信息","

16、;測試頁面")</p><p>  open(w_zmain)</p><p><b>  return</b></p><p><b>  end if</b></p><p>  string ls_yhmc //游標的使用從此開始</p&

17、gt;<p>  long ls_js=0</p><p>  declare yhxxcursor cursor for</p><p>  select yhxx_yhm from yhxx; </p><p>  open yhxxcursor; </p><p>  if sqlca.sqlcode=-1

18、 then</p><p>  messagebox("sql錯誤",string(sqlca.sqldbcode)+":"+sqlca.sqlerrtext)</p><p><b>  else</b></p><p>  ls_yhmc=""</p><p&

19、gt;<b>  do</b></p><p>  fetch yhxxcursor into:ls_yhmc;</p><p>  if trim(ls_yhmc)=ls_userid then</p><p><b>  ls_js=1</b></p><p><b>  exit&l

20、t;/b></p><p><b>  end if</b></p><p>  loop while sqlca.sqlcode=0</p><p>  if sqlca.sqlcode=-1 then</p><p>  messagebox("sql錯誤",string(sqlca.s

21、qldbcode)+":"+sqlca.sqlerrtext)</p><p><b>  end if</b></p><p><b>  end if</b></p><p>  close yhxxcursor; //游標語句結束處</p>&

22、lt;p>  if ls_js=0 then</p><p>  messagebox("信息","用戶不存在")</p><p>  sle_userid.text=""</p><p>  sle_userid.setfocus()</p><p><b>  r

23、eturn</b></p><p><b>  end if</b></p><p>  select yhxx_yhmm into :userpassword from yhxx </p><p>  where yhxx_yhm=:ls_userid;</p><p>  if

24、 ls_password=trim(userpassword) then</p><p>  select yhxx_yhbm into :ls_yhbm from yhxx where yhxx_yhm=:ls_userid;</p><p>  if trim(ls_yhbm)="采購部" then</p><p>  messa

25、gebox("信息","歡迎進入采購管理系統(tǒng)")</p><p>  open(w_cgmain)</p><p>  close(w_login)</p><p><b>  return</b></p><p>  elseif trim(ls_yhbm)="銷售部&

26、quot; then</p><p>  messagebox("信息","歡迎進入銷售管理系統(tǒng)")</p><p>  open(w_xsmain)</p><p>  close(w_login)</p><p><b>  return</b></p><

27、;p>  elseif trim(ls_yhbm)="高層" then </p><p>  messagebox("信息","歡迎進入4S店管理系統(tǒng)")</p><p>  open(w_main)</p><p>  close(w_login)</p><p><b

28、>  return</b></p><p>  elseif trim(ls_yhbm)="維修部" then </p><p>  messagebox("信息","歡迎進入維修管理系統(tǒng)")</p><p>  open(w_wxmain)</p><p>  c

29、lose(w_login)</p><p><b>  return</b></p><p><b>  end if</b></p><p><b>  else</b></p><p>  g_cs=g_cs + 1</p><p>  messa

30、gebox("錯誤信息","密碼或用戶名錯誤,請重新輸入")</p><p>  if g_cs=3 then</p><p>  messagebox("錯誤信息","連續(xù)三次密碼輸入錯誤,退出程序")</p><p>  close(parent)</p><p&

31、gt;<b>  return</b></p><p><b>  end if</b></p><p><b>  end if</b></p><p>  sle_password.text=""</p><p>  sle_password.setfo

32、cus()</p><p>  用游標是為了實現(xiàn)用戶名是否存在;三次輸入不多則退出是設了一個全局變量,由此得以實現(xiàn);部門判斷則是檢索表中信息匹配著打開相應窗口</p><p><b>  5.2車輛銷售窗口</b></p><p>  5.2.1界面與功能描述</p><p>  用戶管理窗口的運行界面如圖5所示<

33、/p><p><b>  圖5 用戶管理窗口</b></p><p>  操作用戶信息,并可實現(xiàn)指定列的模糊以及精確查詢。</p><p>  5.2.2關鍵代碼分析</p><p>  (1)[查詢]按鈕的clicked事件</p><p>  dw_1.setfilter(""

34、)</p><p>  if rb_1.checked=true then</p><p>  //精確查詢模式程序</p><p>  choose case ddplb_1.text </p><p>  case "用戶名"</p><p>  dw_1.setfilter("用戶

35、名='"+sle_1.text+"'")</p><p><b>  case "部門"</b></p><p>  dw_1.setfilter("部門='"+sle_1.text+"'")</p><p><b&g

36、t;  case "角色"</b></p><p>  dw_1.setfilter("角色='"+sle_1.text+"'")</p><p>  end choose</p><p><b>  else</b></p><p&g

37、t;  //模糊查詢模式程序</p><p>  choose case ddplb_1.text</p><p>  case "用戶名"</p><p>  dw_1.setfilter("用戶名 like"+"'%"+sle_1.text+"%'")</p&g

38、t;<p><b>  case "部門"</b></p><p>  dw_1.setfilter("部門 like"+"'%"+sle_1.text+"%'")</p><p><b>  case "角色"</b>

39、;</p><p>  dw_1.setfilter("角色 like"+"'%"+sle_1.text+"%'")</p><p>  end choose</p><p>  end if dw_1.retrieve() //檢索數(shù)據,將符合條件的數(shù)據顯示在數(shù)據窗口中</

40、p><p>  使用到兩個函數(shù):Setfilter(),retrieve()函數(shù)。Setfilter函數(shù)中語句格式符合動態(tài)SQL語句查詢格式,其用于對涉及的表中的數(shù)據進行篩選,然后用retrieve函數(shù)返回篩選后的結果</p><p>  5.3 庫存管理窗口</p><p>  5.3.1界面與功能描述</p><p>  庫存管理窗口的運行界

41、面如圖6所示</p><p>  圖6 (整車)庫存管理窗口</p><p>  庫存分為配件庫存與整車庫存。他們結構與功能實現(xiàn)相同。在此演示整車庫存。</p><p>  此用于整車的庫存管理,可查看商品庫存數(shù)量并且添加庫存提示。</p><p>  5.3.2 具體代碼分析</p><p>  數(shù)據窗口中庫存提示的

42、動態(tài)顯示:</p><p>  在數(shù)據窗口中建立了一個文本框,然后點擊屬性里text欄旁邊的一個按鈕,然后在其中添加if函數(shù),進行對其文本內容的動態(tài)修改</p><p>  5.4 進貨(銷售)盤點窗口</p><p>  5.4.1界面與功能描述</p><p>  整車進貨(銷售)盤點窗口的運行界面如圖7,8所示</p>&

43、lt;p>  圖7 整車進貨盤點窗口</p><p>  圖8 整車銷售盤點窗口</p><p>  整車與配件的進貨與銷售盤點結構與功能構成都基本相似(整車或配件的進貨盤點中是看進貨單數(shù)據入庫沒,整車或配件的銷售盤點中是看銷售單數(shù)據提貨沒。入庫與提貨都會對庫存的商品的數(shù)量產生影響)。在此展示整車進貨盤點。在進貨(銷售)盤點中,可以查看進貨單(銷售單)中商品是否入庫(提貨)。<

44、/p><p>  5.4.2 具體代碼分析</p><p>  1.[入庫]按鈕的clicked事件</p><p>  g_row=dw_1.getrow () //g_row為全局變量</p><p>  if g_row=0 then</p><p>  messagebox("提示",

45、"沒有數(shù)據")</p><p><b>  return</b></p><p><b>  end if </b></p><p>  jh_sl_jh=dw_1.getitemnumber (g_row,8)</p><p>  jh_zcmc=dw_1.getitemst

46、ring (g_row,3)</p><p>  jh_rkf=dw_1.getitemstring(g_row,1) </p><p>  if trim(jh_rkf)="否" then</p><p>  SELECT zckc_kcsl INTO :jh_sl FROM kcgl_zckc</p>

47、<p>  where zckc_zcmc=:jh_zcmc; </p><p>  jh_sl=jh_sl - jh_sl_jh </p><p>  UPDATE kcgl_zckc </p><p>  SET zckc_kcsl = :jh_sl </p><p>  where zckc_zcmc=:jh_zc

48、mc;</p><p>  messageBox("提示信息","入庫已操作成功"+string(jh_sl)+","+string(jh_sl_jh)) </p><p>  jh_rkf="是" </p><p>  UPDATE jhgl_zcjhd SET rk

49、f=:jh_rkf where zcjhd_zcmc=:jh_zcmc;</p><p><b>  else</b></p><p>  messageBox("提示信息","已入庫") </p><p><b>  end if</b></p><p

50、>  dw_1.settransobject( sqlca )</p><p>  dw_1.retrieve()</p><p>  涉及的數(shù)據窗口是整車進貨單表。 </p><p>  利用數(shù)據窗口函數(shù)getrow獲得所點擊的條狀數(shù)據行的行號。再由函數(shù)getitemstring或者getitemstring獲取選中行第幾列的數(shù)據。本代碼中先判斷所選數(shù)據條

51、是否入庫。判斷后,若為“否”著獲取其中數(shù)量再獲得庫存數(shù)量,在算數(shù)操作后將修改的數(shù)據傳回數(shù)據庫;若為“是”,則產生提示“已入庫”。</p><p>  6出現(xiàn)的問題及解決方法</p><p>  多數(shù)表中如供應商信息,整車信息,配件信息,銷售單信息中編號,自動生成不同編號(主鍵)</p><p>  這類表中的主鍵信息因為要滿足唯一的要求,所以通常應該程序自動生成主鍵

52、信息(如編號)。這樣就可以防止數(shù)據無法錄入,錄入錯誤導致數(shù)據混亂的錯誤。同時這類主鍵信息為通常為CHAR類型,主鍵最好是字母與數(shù)字的結合。這樣便于識別,區(qū)分與查詢。</p><p>  利用的解決技術是PB自帶的字符處理函數(shù),實現(xiàn)中可以人為設定主鍵字符部分,然后對主鍵數(shù)值部分進行操作,以生成各不相同的主鍵(例如:編號)。</p><p>  在此以配件信息錄入窗口為例,實現(xiàn)此功能。在窗口的

53、open事件中,假如如下代碼片段:</p><p>  string ls_zdbh1,ls_zdbh,ls_zdbh2</p><p>  select pjxx_bh into :ls_zdbh1 from jbxx_pjxx;//此語句用于檢查表是否為空</p><p>  if ls_zdbh1="" then</p>

54、;<p>  ls_zdbh="pjxx1"</p><p>  st_pjbh.text=ls_zdbh</p><p><b>  return</b></p><p><b>  end if</b></p><p>  select max (jbxx_pj

55、xx.pjxx_bh) into :ls_zdbh2 from jbxx_pjxx; </p><p>  //檢索表中主鍵列做大項,完成不同主鍵的生成</p><p>  ls_zdbh=mid(trim(ls_zdbh2),5) //用于取主鍵數(shù)值部分</p><p>  ls_zdbh=string(long(ls_zdbh)+1)

56、</p><p>  ls_zdbh="pjxx"+trim(ls_zdbh)</p><p>  st_pjbh.text=ls_zdbh //在指定控件中顯示</p><p>  用到的主要函數(shù)是mid函數(shù),用于區(qū)主鍵信息的數(shù)值部分。取得數(shù)值部分后對數(shù)值部分采取加一操作,生成唯一的主鍵。</p>

57、<p><b>  7參考資料</b></p><p>  [1] 王珊.數(shù)據庫系統(tǒng)概論(第四版).北京:高等教育出版社,2006.</p><p>  [2] 陳永強.PowerBuilder數(shù)據庫開發(fā)經典實例精解.北京:機械工業(yè)出版社,2007.</p><p><b>  8總結</b></p>

58、<p>  此次實驗反映了很多問題,放映出了當前作為計算機系學生我的狀態(tài)。</p><p>  不足的地方:工具使用不熟悉,問題出現(xiàn)時不能有效縮小問題范圍,問題解決效率不高;由于需求分析,結構設計方面沒有做到充分和深入,以至系統(tǒng)功能缺失;小組成員之間的交流不夠,任務分配沒有細化,成員之間思想沒有得到很好的融合。</p><p>  值得肯定的地方:基本完成了最初構想的系統(tǒng),付

溫馨提示

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

評論

0/150

提交評論