VB.NET 機房收費系統項目總結__.net

來源:互聯網
上載者:User

VB.NET機房收費系統項目總結

    從2013年5月3日——2013年8月20日曆時三個多月的.NET機房收費系統終於完成了。項目做完了,真有一種如釋重負的感覺。

下面我將從文檔、UML圖,代碼這三個方面來進行總結,重點是前兩方面內容。 一、文檔 1.1可行性分析報告和項目開發計劃

    這兩個文檔主要是確定軟體系統是否值得開發,搞清楚問題的性質,確定系統的目標和規模,從技術,經濟和社會等方面分析論證項目的可行性。還有對此項目的開發做個總體的規劃,內容有:項目的背景,項目概述,計劃,人員及組織分工,交付期限。為軟體的開發進行詳細的計劃。可行性分析報告和項目開發計劃是給開發單位看的。 1.2需求分析。

    是使用者對項目軟體系統在功能、行為、效能設計約束方面的期望。軟體對軟硬體的需求。需求分析是使用者、分析人員和系統設計人員共同參與討論編寫,是為系統設計提出“做什麼”的。一個很有用的設計文檔,是系統開發的靈魂。 1.3概要設計和詳細設計 1.3.1概要設計

    概要設計將系統劃分成模組結構形式,決定每個模組要完成的功能,每個模組之間的調用關係。概要設計主要包含:功能、處理流程、資料結構、運行等做設計。概要設計是進階設計人員和有豐富經驗的開發人員一起編寫。 1.3.2 詳細設計

   描述模組執行過程、局部資料群組織、控制流程和每一步具體家用要求及實現設計。為編程人員提供每一個功能的資料輸入,輸出、設計方法、流程邏輯、介面、儲存分配、注釋設計、測試計劃。此文檔是由每一個程式人員參與編寫。

編寫完一遍文檔發現,整個系統已經開發了三分之一了。 二、UML圖 1、使用案例圖

定義:採用參與者與用例作為基本元素,以不同的視角展現系統的功能型需求。在需求分析的時候要畫使用案例圖。

2、類圖

   定義描述現實世界中問題的概念理解,類之間的關係有依賴、關聯、繼承,多態。每個類裡面有方法和屬性,方法要寫參數和傳回值。

 

3、包圖

   包圖是在 UML 中用類似於檔案夾的符號表示的模型元素的組合。系統中的每個元素都只能為一個包所有,一個包可嵌套在另一個包中。使用包圖可以將相關元素歸入一個系統。


4、時序圖。

   這個顯現了各個類之間各個層之間的邏輯關係。

  5、部署圖。

  顯現了系統編碼打包交付給使用者之後的部署。  

  6、狀態圖。

描述一個實體基於事件反應的動態行為,顯示了該實體如何根據當前所處的狀態對不同的事件做出反應的。

7、行為圖。

和狀態圖差不多基本上差不多,在這裡不做多餘贅述。 8、構件圖。

構件圖從軟體架構的角度來描述一個系統的主要功能,如系統分成幾個子系統,每個子系統包括哪些類、包和構件,它們之間的關係以及它們分配到哪些節點上等。使用構件圖可以清楚地看出系統的結構和功能。方便項目組的成員制定工作目標和瞭解工作情況,同時,最重要的一點是有利於軟體的複用。

  三、代碼

    開始編寫代碼的時候很迷茫,看了好多人的部落格但是還是不知道怎樣寫,登入的執行個體也實現了,但是一到真正的敲系統怎麼就特別的費勁。我就不斷反覆研究這個登入的例子,很是迷惑不解。最後還是在青峰師哥的指導下打通了我的任督二脈,一語驚醒夢中人。問題解開了,就開始了真正編寫代碼的曆程。說實話最難寫的是DAL層,BLL層UI層很簡單就是把得到的參數傳到BLL層中,BLL層在通過一些邏輯判斷,把想要查的資料賦給實體類然後傳到DAL層讓DAL層來進行資料庫的操作。下面我就寫下在.NET機房收費系統開發中學習到的一些簡單知識。 1、串連資料庫。

   要想進行資料庫的操作就要串連資料庫,下面是在D層中敲寫的串連資料庫的代碼: 


 '串連字元 Privatestr_SqlConnection As String = "DataSource=192.168.24.196;Initial Catalog=Charge_sys;UserID=sa;Password=123456" '聲明一個的實體Public FunctionBasicD(ByVal enMoney As BasicDataE) AsEntity.BasicDataE ‘選取串連的資料庫        DimstrSqlstring2 As String        strSqlstring2 = "select* from BasicData_Info"         'SqlConnection表示一個到 SQL Server 資料庫的開啟的串連。        Dimseting As String        seting = str_SqlConnection        DimMyConn As SqlConnection        MyConn = New SqlConnection(seting)         'SqlCommand表示要對 SQL Server 資料庫執行的一個 Transact-SQL 陳述式或預存程序        DimMyCmd As SqlCommand        MyCmd = New SqlCommand(strSqlstring2,MyConn)         '開啟讀取()        MyConn.Open()       DimMyReader As SqlDataReader        MyReader = MyCmd.ExecuteReader


說到D層還用了一個抽象類別SQLHelper,具體內容見部落格。

然後在DAL的每一類中調用一下就行了。

 

2、增、刪、改。

前面部落格也有寫過以上三個內容,實現的形式是一樣的,但是具體代碼卻不同,下面就簡單的貼一下代碼吧。

增加記錄:

''' 添加線上記錄  ''' </summary>  ''' <param name="OnLineInfo"></param>  ''' <returns></returns>  ''' <remarks></remarks>          Function AddOnLineInfo(ByVal OnLineInfo AsEntity.OnComputerInfo) As Entity.OnComputerInfo      Dim strSQL As String = "insert into OnComputer_Info values(@StudentCardNumber,@StudentNumber,@StudentName,@StudentMajor,@StudentSex,@OnLineDate,@OnLineTime,@OperatorUseComputer)"      Dim cmd As SqlCommand = New SqlCommand(strSQL, conn)      '傳參數     cmd.Parameters.Add(New SqlParameter("@StudentCardNumber",OnLineInfo.StudentCardNumber))     cmd.Parameters.Add(New SqlParameter("@StudentNumber",OnLineInfo.StudentNumber))      cmd.Parameters.Add(New SqlParameter("@StudentName",OnLineInfo.StudentName))              cmd.Parameters.Add(NewSqlParameter("@StudentMajor", OnLineInfo.StudentMajor))     cmd.Parameters.Add(New SqlParameter("@StudentSex",OnLineInfo.StudentSex))     cmd.Parameters.Add(New SqlParameter("@OnLineDate",OnLineInfo.OnLineDate))      cmd.Parameters.Add(New SqlParameter("@OnLineTime",OnLineInfo.OnLineTime))      cmd.Parameters.Add(New SqlParameter("@OperatorUseComputer",OnLineInfo.OperatorUserComputer))      Try           conn.Open()           If (cmd.ExecuteNonQuery > 0)Then               OnLineInfo.Success = True           Else               OnLineInfo.Success = False           End If           Return OnLineInfo      Catch ex As Exception         OnLineInfo.Success = False           Return OnLineInfo      Finally           cmd.Dispose()           conn.Close()              End Try  End Function  

刪除記錄:     

 ''' 刪除上機記錄         ''' </summary>         ''' <paramname="OnLineInfo"></param>         ''' <returns></returns>         ''' <remarks></remarks>         Function DeleteOnLineInfo(ByVal OnLineInfo AsEntity.OnComputerInfo) As Entity.OnComputerInfo             '刪除記錄的語句     Dim strSQL As String = "delete from OnComputer_Info whereStudentCardNumber=@StudentCardNumber"     Dim cmd As SqlCommand = New SqlCommand(strSQL, conn)     cmd.Parameters.Add(New SqlParameter("StudentCardNumber",OnLineInfo.StudentCardNumber))      Try .               conn.Open()                 If (cmd.ExecuteNonQuery > 0)Then              OnLineInfo.Success = True         Else                     OnLineInfo.Success = False         End If    Catch ex As Exception         OnLineInfo.Success = False     Finally                 cmd.Dispose()         conn.Close()      End Try     Return OnLineInfo         End Function  

更改記錄:

''' <summary>  ''' 更新工作記錄    ''' </summary>    ''' <param name="WorkLogInfo"></param>            ''' <returns></returns>            ''' <remarks></remarks>   Function UpdateWorkLogInfo(ByVal WorkLogInfo As Entity.WorkLogInfo) AsEntity.WorkLogInfo       Dim strSql As String = "update WorkLog_Info set LogOutDate=@LogoutDate,LogoutTime =@LogoutTime,OperatorStatus =@OperatorStatus whereOperatorID =@OperatorID"        Dim cmd As SqlCommand = New SqlCommand(strSql, conn)        cmd.Parameters.Add(New SqlParameter("@OperatorID", WorkLogInfo.OperatorID))       cmd.Parameters.Add(New SqlParameter("@LogoutDate",WorkLogInfo.LogoutDate))        cmd.Parameters.Add(New SqlParameter("@LogoutTime",WorkLogInfo.LogoutTime))       cmd.Parameters.Add(New SqlParameter("@OperatorStatus", WorkLogInfo.OperatorStatus))                Try            conn.Open()            If (cmd.ExecuteNonQuery > 0)Then                WorkLogInfo.Success = True             Else                 WorkLogInfo.Success =False             End If             Return WorkLogInfo       Catch ex As Exception            Return WorkLogInfo        Finally             conn.Close()        End Try .      EndFunction 

3、所用到的查詢的SQL語句 ①簡單的SQL語句

update 表名 set 所要更新欄位 where 查詢的條件

insert into 表名values(所要添加的欄位(按照SQL表的順序排列))

select * from 表名 where 條件

  ②內容擴充

select OperatorIDas 教師,OperatorLevel  as 使用者層級,LogonDate as 登入日期,LogonTime as 登入時間,OperatorUseComputer as機器名 fromWorkLog_Info where OperatorStatus=@OperatorStatus

這樣查出的記錄可以讓英文名欄位顯現出中文名字。

  ③select count(*) as count from 表名 where 記錄條件

查出合格記錄個數。

  ④select SUM(所要求和的欄位) as 所要求和的欄位 from 表名 where 條件

查詢出合格記錄並且所要求和的欄位進行求和。

  ⑤select top 1 * from 表名 order by 欄位名 fields

查出最近符合欄位條件的一行記錄。

  4、DataSet DataTable    DataReader   DataGridView

 DataSet DataTable DataReaderDataGridView的一些知識,前面部落格有介紹,在這裡不加以介紹,具體內容建部落格。 5、錯誤處理

Try..catch..finally...end tryTry<所要測試的代碼>Catch ex As Exception<如果出現異常則執行這個語句>Finally<最後執行的代碼>end try

四、其他部落格連結 淺析VB.NET方法建立:                                   http://blog.csdn.net/xjc1278003262/article/details/9056085
運行程式VS2012彈出的不倫不類的問題     :http://blog.csdn.net/xjc1278003262/article/details/9395843
.Net 中DataTable和 DataRow的 區別與聯絡:http://blog.csdn.net/xjc1278003262/article/details/9817249
DataGridView控制項的使用和Excel表格的匯出:   http://blog.csdn.net/xjc1278003262/article/details/9934221
圖解機房收費系統報表製作的全過程:              http://blog.csdn.net/xjc1278003262/article/details/10077633

五、總結

VB.NET 機房收費系統項目開發完成,個人不管是在技術還是在思想上都是收益頗豐的。此次項目的完成不僅給自己開啟了一扇新窗,開始撥雲見日;同時也給自己開啟了一片的新的天地,以後的學習將會是高屋建瓴,勢不可當。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.