畢業(yè)論文--商品銷售管理系統(tǒng)_第1頁
已閱讀1頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目錄</b></p><p><b>  一、前言1</b></p><p>  二、系統(tǒng)的分析與實現(xiàn)2</p><p>  1). 需求分析 ………………………………………………………………2</p><p>  2).可行性分析2</p><

2、;p>  3)數(shù)據(jù)庫設計分析…………………………………………………………2</p><p>  4)銷售管理系統(tǒng)的分析 …………………………………………………3</p><p>  5)系統(tǒng)結構…………………………………………………………………3</p><p>  三、系統(tǒng)的設計 …………………………………………………………………4</p>

3、<p>  1).數(shù)據(jù)庫設計 …………………………………………………………4</p><p>  2)數(shù)據(jù)庫的連接 …………………………………………………………5</p><p>  3)主要功能 ……………………………………………………………5</p><p>  四、系統(tǒng)實現(xiàn)及代碼清單…………………………………………………………6</p&

4、gt;<p>  五、總結 …………………………………………………………………………14</p><p>  六、參考文獻 …………………………………………………………………15</p><p><b>  前言</b></p><p>  前程無憂最近幾年的薪酬報告顯示,軟件測試工程師一般起薪從2000至5000元/月不等,

5、若有三年工作經(jīng)驗的話,薪資在8000元/月左右。質量是產(chǎn)品的靈魂,作為軟件質量的把關者,軟件工程師在企業(yè)中的地位也越來越重要,其工作相對更加穩(wěn)定,而且隨著項目經(jīng)驗的不斷增長,對不同行業(yè)背景了解的不斷深入,軟件工程師的水平將會越來越高. 在談及測試人員的薪酬待遇時,企業(yè)方介紹:“目前大多數(shù)公司給軟件人員提供了雙軌制的培訓和廣闊的發(fā)展平臺。薪金方面也比較豐厚,具有一定經(jīng)驗的人員的薪水在5千到8千不等”。前程無憂的薪酬報告顯示,軟件工

6、程師在IT行業(yè)中越來越受到重視,其薪資也節(jié)節(jié)高升。初級軟件工程師的起薪從2000至5000元/月不等,若有三年工作經(jīng)驗的話,薪資在8000元/月左右,具體視不同地域、不同性質企業(yè)、工程師的不同能力而定。以3.5年左右從業(yè)經(jīng)驗的軟件工程師各地薪資情況來看:北京地區(qū)該職位的平均年薪逾5.8萬元,其中外商獨資企業(yè)的年薪為全國之最,將近8.5萬元,而其余各類型企業(yè)的年薪都在5萬至6萬元。上海地區(qū)軟件工程師的平均年薪為6.3萬元,歐美獨資和歐美合

7、資企業(yè)的薪資不相上下,分別為7.9</p><p>  三、系統(tǒng)的分析與實現(xiàn)</p><p><b>  需求分析</b></p><p>  十年來國內軟件工程方面的進展有目共睹,在軟件需求方面,我們看到在大多數(shù)組織中已經(jīng)建立起了一級或兩級需求體系(業(yè)務需求和軟件需求);在某些組織中,需求分析員已經(jīng)成為一種專門的職位;甚至在某個大型國有商業(yè)銀

8、行已經(jīng)成立一個專門的部門來負責需求分析工作。應該來說,這是一些非??上驳倪M步。然而,目前大多數(shù)的項目參與者都對需求工程的現(xiàn)狀不滿,這又是為什么呢?首先,我們必須承認市場快速變化而帶來的需求變化的確對項目帶來了很大的挑戰(zhàn),為此許多項目應用了迭代化開發(fā)來應對這樣的變化。但根據(jù)我們對客戶的訪談,更多的需求變化是由于需求溝通不力造成的,也就是說,參與需求溝通的各方并沒有達成真正的共識,這又是什么原因呢?根據(jù)我們的分析,這主要是由于缺少一個可

9、以被各方真正理解和溝通、并可以被逐步精化的需求體系。</p><p><b>  可行性分析</b></p><p>  (1) 經(jīng)濟可行性:即是否能取得很好的經(jīng)濟效益,要考慮開發(fā)成本是否能承受。信息管理系統(tǒng)的規(guī)模不是很大,人力資源,經(jīng)費要求都很少,只要有技術人員參與開發(fā)即可,很容易實現(xiàn)。當系統(tǒng)投入運行后可以為節(jié)約大量的人力,物力,所帶來的效益遠遠大于系統(tǒng)軟件的開發(fā)成

10、本。信息管理系統(tǒng)在經(jīng)濟上完全可行。</p><p>  (2) 時間可行性:即系統(tǒng)本身的適應范圍。本系統(tǒng)包括了商品交易管理系統(tǒng)所必需的各個環(huán)節(jié),具有相對穩(wěn)定性。因此,在時間上是可行的。</p><p>  (3) 操作可行性:本信息管理系統(tǒng)在界面設計時充分考慮到管理人員的習慣,采用下拉菜單窗體模塊,簡明易懂,一目了然,使得操作簡單;數(shù)據(jù)錄入迅速、規(guī)范、可靠;信息統(tǒng)計準確;制表靈活;適應力強

11、;容易擴充。</p><p>  (4) 社會可行性:面對當今注重速度、效益的時代,本軟件的社會可行性是顯而易見的。它提高了工作效率,縮短了經(jīng)費過程所需的時間,增大了信息傳遞的準確性、及時性、快速性,節(jié)約了人力、物力,具有一定的社會價值。</p><p><b>  數(shù)據(jù)庫設計分析</b></p><p>  用戶的需求具體體現(xiàn)在各種信息的提供

12、、保存、更新和查詢等方面。這就要求數(shù)據(jù)庫結構能充分滿足各種信息的輸入和輸出。收集基本數(shù)據(jù)、數(shù)據(jù)結構以及數(shù)據(jù)處理的流程,組成一份詳盡的數(shù)據(jù)字典,為下一步的數(shù)據(jù)庫具體設計做好充分的準備。</p><p>  在仔細分析調查有關物資管理系統(tǒng)需求的基礎上,將得到如圖4.1所示的本息臺所處理的數(shù)據(jù)流程。</p><p>  針對一般物資管理系統(tǒng)的需求,通過對物資調配工作過程的內容和數(shù)據(jù)流程分析,設計

13、如下所示的數(shù)據(jù)項和數(shù)據(jù)結構:物資基本信息,包括的數(shù)據(jù)項有:物資編號、物資名稱、類別和計量單位等。</p><p>  入庫物資信息,包括的數(shù)據(jù)項有:物資編號、物資名稱、規(guī)格型號、類別、計量單位、數(shù)量、單價、金額、入庫時間、經(jīng)辦人、保管人、倉庫和備注等。</p><p>  出庫物資信息,包括的數(shù)據(jù)項有:物資編號、物資名稱、規(guī)格型號、類別、計量單位、數(shù)量、單價、金額、入庫時間、經(jīng)辦人、保管人

14、、倉庫和備注等。</p><p>  物資余額信息,包括的數(shù)據(jù)項有:物資編號、物資名稱、規(guī)格型號、類別、計量單位、數(shù)量、金額和倉庫等。</p><p><b>  銷售管理系統(tǒng)的分析</b></p><p>  由于商品銷售管理系統(tǒng)是一個用來幫助使用者管理商品銷售流程的軟件。使用者通過對銷售過程中所涉及到的商品,訂單,銷售商等資料的錄入,便可以

15、輕松實現(xiàn)商品銷售流程的管理。所以,此系統(tǒng)必須向使用者提供一下一些具體功能:。</p><p>  1:軟件必須向使用者提供商品基本的錄入,刪除,修改,保存信息等基本功能</p><p>  2:鑒于商品的不同銷售方式(分為訂單銷售和代理商銷售兩種形式),軟件必須向使用者提供商品銷售環(huán)節(jié)中的基本管理功能,因此必須有訂單分銷模塊和代理商分銷模塊。</p><p>  3

16、:軟件必須向使用者提供基本的查詢功。</p><p>  4:由于是銷售管理軟件,所以系統(tǒng)安全性必須是要考慮的問題。因此,必須實現(xiàn)以下兩點:</p><p>  (1):系統(tǒng)操作員機制。對系統(tǒng)的使用者,按等級開放管理權限,這樣可以在一定程度上保證數(shù)據(jù)庫系統(tǒng)的安全性,避免數(shù)據(jù)被泄漏,非法更改等。</p><p>  (2):銷售數(shù)據(jù)直接反映了一個銷售單位的盈虧狀況,鑒

17、于銷售數(shù)據(jù)的重要性,所以必須對這些數(shù)據(jù)加以保護,在系統(tǒng)崩潰時或者誤操作等情況下,可以對數(shù)據(jù)進行恢復。這就需要系統(tǒng)提供備份功能。 </p><p><b>  系統(tǒng)結構</b></p><p><b>  四、系統(tǒng)的設計</b></p><p><b>  1).數(shù)據(jù)庫設計</b></p>

18、<p>  根據(jù)本系統(tǒng)的實際需要,結合實際一共建立了用戶信息、商品信息、銷售信息、供應商信息、入庫信息五個表。</p><p><b>  具體設計如下:</b></p><p><b>  供應商信息</b></p><p><b>  操作員信息</b></p><

19、p><b>  商品信息</b></p><p><b>  銷售信息</b></p><p><b>  入庫信息</b></p><p><b>  2)數(shù)據(jù)庫的連接</b></p><p>  void CDataBase::InitData(

20、)</p><p><b>  {</b></p><p>  ::CoInitialize(NULL);</p><p>  m_conn.CreateInstance(__uuidof(Connection));</p><p>  CString connstr;</p><p>  con

21、nstr="Driver={microsoft access driver (*.mdb)};dbq=db1.mdb";</p><p>  m_conn->Open(_bstr_t(connstr),"","",0);</p><p><b>  }</b></p><p>&

22、lt;b>  3).主要功能有:</b></p><p>  對操作員的管理。如修改,刪除等。</p><p>  物品基本信息的查詢,如商品編號,名稱,進價,售價,數(shù)量等。</p><p>  物品基本信息的修改。</p><p>  物品的入庫信息的錄入,包括物品編號,名稱,單價,數(shù)量,供應商等。</p>

23、<p>  入庫物品基本信息的查詢,修改,刪除等。</p><p>  銷售物品信息的輸入查詢,修改,刪除等。</p><p><b>  庫存信息的查詢。</b></p><p><b>  對供應商的管理。</b></p><p>  供應商結款信息查看,刪除。</p>

24、<p>  五、系統(tǒng)實現(xiàn)及代碼清單</p><p><b>  1.首頁</b></p><p><b>  主要代碼清單:</b></p><p>  int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)</p><p><

25、b>  {</b></p><p>  if (CFrameWnd::OnCreate(lpCreateStruct) == -1)</p><p>  return -1;</p><p>  if (!m_wndStatusBar.Create(this) ||</p><p>  !m_wndStatusBar.Set

26、Indicators(indicators,</p><p>  sizeof(indicators)/sizeof(UINT)))</p><p><b>  {</b></p><p>  TRACE0("Failed to create status bar\n");</p><p>  ret

27、urn -1; // fail to create</p><p><b>  }</b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  BOOL CMainFrame::PreCreateWind

28、ow(CREATESTRUCT& cs)</p><p><b>  {</b></p><p>  if( !CFrameWnd::PreCreateWindow(cs) )</p><p>  return FALSE;</p><p>  // TODO: Modify the Window class o

29、r styles here by modifying</p><p>  // the CREATESTRUCT cs</p><p>  cs.style &= ~FWS_ADDTOTITLE;</p><p>  cs.lpszName="商品銷售管理系統(tǒng)";</p><p>  HICON hicon1;&

30、lt;/p><p>  hicon1=AfxGetApp()->LoadIcon(IDI_ICON1);</p><p>  cs.lpszClass=AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW,0,0,hicon1);</p><p>  return TRUE;</p><p><b&g

31、t;  }</b></p><p>  2.基本信息管理——操作員信息管理</p><p><b>  主要代碼清單:</b></p><p>  void CCzyDlg::InitCtrlData()</p><p><b>  {</b></p><p> 

32、 m_tab.InsertItem(0,"操作員信息");</p><p>  m_tab.InsertItem(1,"操作員列表");</p><p>  m_tab.ShowWindow(1);</p><p>  m_list.InsertColumn(0,"姓名",LVCFMT_CENTER,100

33、);</p><p>  m_list.InsertColumn(1,"密碼",LVCFMT_CENTER,100);</p><p>  m_list.SetExtendedStyle(m_list.GetStyle() | LVS_EX_FULLROWSELECT);</p><p>  TabOfSel(1);</p><

34、;p><b>  }</b></p><p>  void CCzyDlg::TabOfSel(int index)</p><p><b>  {</b></p><p>  CStatic * s1=(CStatic *)GetDlgItem(IDC_STATIC1);</p><p> 

35、 CStatic * s2=(CStatic *)GetDlgItem(IDC_STATIC2);</p><p>  switch(index)</p><p><b>  {</b></p><p><b>  case 0:</b></p><p>  m_tab.SetCurSel(0);&

36、lt;/p><p>  m_nameedit.ShowWindow(TRUE);</p><p>  m_passedit.ShowWindow(TRUE);</p><p>  s1->ShowWindow(TRUE);</p><p>  s2->ShowWindow(TRUE);</p><p>  m_

37、list.ShowWindow(FALSE);</p><p>  //m_b4.WindowEnable(TRUE);</p><p><b>  break;</b></p><p><b>  case 1:</b></p><p>  m_tab.SetCurSel(1);</p>

38、;<p>  m_nameedit.ShowWindow(FALSE);</p><p>  m_passedit.ShowWindow(FALSE);</p><p>  s1->ShowWindow(FALSE);</p><p>  s2->ShowWindow(FALSE);</p><p>  m_list

39、.ShowWindow(TRUE);</p><p>  //m_b4.SetWindowEnable(FALSE);</p><p><b>  break;</b></p><p><b>  }</b></p><p>  ::CoInitialize(NULL);</p>&l

40、t;p>  _RecordsetPtr m_rs;</p><p>  m_rs.CreateInstance(_uuidof(Recordset));</p><p>  CString sql;</p><p>  _variant_t v(0L);</p><p>  sql="select * from tb_user

41、";</p><p>  m_rs=db.m_conn->Execute(_bstr_t(sql),&v,adCmdText);</p><p>  m_list.DeleteAllItems();</p><p>  while (!m_rs->adoEOF)</p><p><b>  {</

42、b></p><p>  v=m_rs->GetCollect("username");</p><p>  int i=m_list.InsertItem(m_list.GetItemCount(),_bstr_t(v));</p><p>  v=m_rs->GetCollect("password");

43、</p><p>  m_list.SetItemText(i,1,_bstr_t(v));</p><p>  m_rs->MoveNext();</p><p><b>  }</b></p><p>  m_rs->Close();</p><p><b>  }<

44、;/b></p><p>  基本信息管理——商品信息</p><p>  基本信息管理——供應商管理</p><p>  基本信息管理——庫存信息</p><p>  3.入庫管理——商品入庫</p><p>  4.銷售管理——商品銷售</p><p>  5.賬目管理——供應商賬目管

45、理</p><p>  供應商窗口控件初始化代碼(其他窗口類似):</p><p>  void CGYS::InitCtrlData()</p><p><b>  {</b></p><p>  m_tab.InsertItem (0,"供應商信息");</p><p> 

46、 m_tab.InsertItem (1,"供應商信息列表");</p><p>  m_tab.ShowWindow (1);</p><p>  m_list.InsertColumn (0,"供應商名稱",LVCFMT_LEFT,160);</p><p>  m_list.InsertColumn (1,"供

47、應商人",LVCFMT_LEFT,120);</p><p>  m_list.InsertColumn (2,"供應商電話",LVCFMT_LEFT,120);</p><p>  m_list.InsertColumn (3,"供應商地址",LVCFMT_LEFT,200);</p><p>  TabOfSel

48、(1);</p><p><b>  }</b></p><p>  void CGYS::TabOfSel(int index)</p><p><b>  {</b></p><p>  switch (index)</p><p>  { case 0:</p

49、><p>  m_savebtn.EnableWindow(TRUE);</p><p>  m_tab.SetCurSel(0);</p><p>  m_gysmcedit.ShowWindow(1);</p><p>  m_gysrenedit.ShowWindow(1);</p><p>  m_gysdhedi

50、t.ShowWindow(1);</p><p>  m_gysdzedit.ShowWindow(1);</p><p>  m_list.ShowWindow(0);</p><p><b>  break;</b></p><p><b>  case 1:</b></p>&l

51、t;p>  m_savebtn.EnableWindow(FALSE);</p><p>  m_tab.SetCurSel(1);</p><p>  m_gysmcedit.ShowWindow(0);</p><p>  m_gysrenedit.ShowWindow(0);</p><p>  m_gysdhedit.ShowW

52、indow(0);</p><p>  m_gysdzedit.ShowWindow(0);</p><p>  m_list.ShowWindow(1);</p><p><b>  break;</b></p><p><b>  }</b></p><p>  ::Co

53、Initialize (NULL);</p><p>  _RecordsetPtr m_rs;</p><p>  m_rs.CreateInstance (__uuidof(Recordset));</p><p>  _variant_t v(0L);</p><p>  CString sql; </p><

54、;p>  sql="select *from tb_gysxx";</p><p>  m_rs=db.m_conn ;</p><p>  m_rs=db.m_conn->Execute(_bstr_t(sql),&v,adCmdText);</p><p>  m_list.DeleteAllItems ();</p

55、><p>  while(!m_rs->adoEOF )</p><p>  {v=m_rs->GetCollect ("gysmc");</p><p>  int i=m_list.InsertItem (m_list.GetItemCount(),_bstr_t(v));</p><p>  v=m_rs-&

56、gt;GetCollect ("gysren");</p><p>  m_list.SetItemText (i,1,_bstr_t(v));</p><p>  v=m_rs->GetCollect ("gysdh");</p><p>  m_list.SetItemText (i,2,_bstr_t(v));&l

57、t;/p><p>  v=m_rs->GetCollect ("gysdz");</p><p>  m_list.SetItemText (i,3,_bstr_t(v));</p><p>  m_rs->MoveNext();</p><p><b>  }</b></p>

58、<p>  m_rs->Close();</p><p><b>  }</b></p><p><b>  總結</b></p><p>  通過這次編程,我從里邊發(fā)現(xiàn)了一些問題,并且有了一定的解決方法,現(xiàn)總結出以下幾點:</p><p>  前期需求不明,造成設計時目的不明確,開

59、發(fā)時時常會因需求問題而困惑,而由于已經(jīng)開發(fā)完成,所以改動起來比較困難。 改進辦法:需求要完全明確是很難做到,但在局部相對獨立功能上應該要盡量明確。如:盡量能明確變量的使用、控件的使用、處于什么范圍、列表顯示哪些字段、查詢需要什么條件有明確的說明,這樣可以在后期測試時少掉一半的錯誤.</p><p>  設計要慎重,應該要足夠的考慮,系統(tǒng)中有一些數(shù)據(jù)庫表的結構和字段都值得商榷,如果前期工作做好,也許很多問題可以在

60、后來避免。 改進辦法:沒有人能一次就設計出完美的東西,也就是說,在編程前,要站在客戶的角度和課戶的理解能力上。要盡量使軟件易用化.</p><p>  代碼中重復代碼較多,維護時時常會改了一處錯誤,卻在另一處出現(xiàn)同樣的問題,這顯然是重復帶來的問題。 改進辦法:只要是重復代碼,就需要考慮是否可以轉化成為函數(shù),并考慮存放到合適的類中,盡量減少簡單的Ctrl+C到Ctrl+V.函數(shù)這種避免重復代碼的做法看似相對麻煩

61、,其實是可以大大減少編譯的錯誤。</p><p>  總之,由于早期開發(fā)時需求不明、規(guī)范實施不利、計劃有誤等等原因,造成系統(tǒng)開發(fā)出現(xiàn)些了問題,但之后有了一定的時間,所以修改可以取得不少成效,但所謂磨刀不誤砍柴工,前期的準備如果充分一些,對后期的維護就會好很多很多。由于時間關系,前期不可能做非常詳細的設計,事實上,即使做了詳細設計也可能因需求的變更而效用不大,所以更多的是需要大家寫出可維護性、可擴展性和可復用性較好

62、的代碼,以便更好的適應變化。本次VC++程序設計實現(xiàn)了一個商品銷售管理系統(tǒng),解決了程序編寫過程中出現(xiàn)的一些問題,在學習VC++的過程中又學會了一些處理方法,編寫過程中問題較多,但最終程序能正常運行,達到了設計要求的思想,通過努力和與其它同學的交流,我克服了許多困難,也學到了不少新的東西。</p><p><b>  參考文獻 </b></p><p>  1.

63、 張榮梅,梁曉林。Visual C++實用教程。冶金工業(yè)出版社。2004</p><p>  2. 鄭阿奇. Visual C++實用教程(第2版). 電子工業(yè)出版社.2003</p><p>  3. David J. Kruglinski 潘愛民、王國印譯.Visual C++技術內幕(第四版).清華大學出版社.1999</p><

溫馨提示

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

評論

0/150

提交評論