Time of Update: 2018-12-08
本期概述上一期我們實現了對電影記錄的資料操作(增刪改查).這一期,我們一起來實現下針對使用者的密碼修改功能. 原理簡介原理很簡單,系統擷取使用者輸入的使用者名稱,執行select語句從資料庫中擷取該使用者名稱下的密碼,再與使用者輸入的舊密碼進行匹配,若相同則允許輸入新密碼,然後執行Update語句將新密碼儲存到資料庫. 由於系統功能逐漸增多,我們需要建立一個主介面表單,來方便使用各個功能. 建立一個表單
Time of Update: 2018-12-08
一直都對封裝這個概念比較模糊,究竟什麼事封裝呢? 其實我們寫代碼時,封裝無處不在。 首先,類和對象就是封裝的對好體現。把一些列對象共有特徵封裝起來就是一個類,把某個具體事物具有的特徵封裝起來就是一個對象。 此外,以下也均為封裝的體現: 1、屬性對欄位的封裝 2、把方法的多個參數封裝為一個對象 3、將一堆具有某個特定功能的代碼放到一個方法中、 4、將一些常用的類型或方法封裝到一個程式集中。
Time of Update: 2018-12-08
本期概述前幾期中,我們實現了使用者對系統資料記錄的基本操作-增刪改查, 由於資料量不是很多,我們可以輕易的找到我們所需要操作的記錄;但是一旦資料量多起來,是否還能方便的找到我們想要操作的資料呢?這一期我們一起來實現一個功能-資料搜尋. 原理主要原理是 使用SQL模糊查詢語句 select * from 表名 where 欄位名 like '%輸入的內容%' 對庫內相應的欄位進行模糊查詢;通過 擷取文字框輸入的內容 與 資料庫中各欄位下的內容 進行一一匹配,如果輸入的內容
Time of Update: 2018-12-08
本絲花了近半年,終於將《CLR Via C#》這本書看完了(請不要BS本人的看書速度T_T),這確實是一本好書,大大們推薦的果然值得一讀。雖然很多東西還沒有盡得其要,我常想在自己深刻掌握了某個知識點後再總結分享出來(不知道大家是不是這個心理),但現在我覺得應該在一個人成長的過程中就去做這件事情,所以有了本篇不成文的總結,文中知識點大量來自《CLR Via C#》這本書,在此對作者及翻譯者表示感謝!另文中如有錯誤的地方,歡迎大家指出!術語解釋:CLR: 通用語言執行平台(Common
Time of Update: 2018-12-08
本期概述前幾期為了方便登入系統,我們手動的在資料庫裡添加了使用者名稱和密碼,並沒有實現在系統中進行使用者註冊.那麼,這一期我們一起來實現下使用者註冊功能. 原理原理很簡單, 首先判斷使用者名稱是否已經存在於資料庫中, 執行sql
Time of Update: 2018-12-08
繼承是指一個對象直接使用另一對象的屬性和方法。首先必須明確的一點是:繼承是類與類之間的關係(不能是類和對象)。 那問題又來了,什麼是類,什麼又是對象呢? 類就是對某一類具有某些相同特性的事物的抽象。而對象就是這類事物中具體的某一個事物。 例如電腦就是一個類,而我的這台電腦就是一個對象。 下面通過一段簡單的代碼實現一個有關繼承的例子: public class Person {
Time of Update: 2018-12-08
本期概述上一期我們學習並實現了使用者登入功能.這一期我們一起來學習下電影記錄管理系統的的最主要功能(對資料的增刪改查). 新增資料表首先我們需要在之前的資料庫Movie中建立一個Record資料表,用於儲存我們需要操作的電影記錄資料,這裡Id需要設定為自動成長(). 建立完資料表後,我們需要手動插入一些資料.資料庫建立完成後,開始實施系統介面. 介面設計表單name: FrmManager 文字框 電影名稱name:txtMovie 導演name:txtDirector
Time of Update: 2018-12-08
本期概述上一期,我們做了一個使用者密碼修改的功能. 這一期,我們來實現下日誌查看功能(用於記錄和查看使用者的系統登入和退出曆史). 原理原理很簡單, 在登入表單FrmLogin.cs定義3個全域變數,用於擷取登入的使用者名稱,登入情況(登入還是退出)以及相應的時間;然後在日誌查看表單調用該全域變數並且通過使用SQ插入語句將其儲存到SQL Server中,然後在訪問日誌查看表單的時候,通過表單自動載入插入資料和查看資料的方法即可. 定義3個全域變數:登入成功和退出的使用者Uid
Time of Update: 2018-12-08
C#是微軟隨著VS.net新推出的一門語言。它作為一門新興的語言,有著C++的強健,又有著VB等的RAD特性。而且,微軟推出C#主要的目的是為了對抗Sun公司的Java。大家都知道Java語言的強大功能,尤其在網路編程方面。於是,C#在網路編程方面也自然不甘落後於人。本文就向大家介紹一下C#下實現通訊端(Sockets)編程的一些基本知識,以期能使大家對此有個大致瞭解。首先,我向大家介紹一下通訊端的概念。 通訊端基本概念:
Time of Update: 2018-12-08
程式簡介好久沒寫部落格了,最近時間比較充足.於是便打算把之前的聊天程式功能改進下,增加了一個服務端給用戶端群發資訊的功能. 原理首先我們需要擷取串連用戶端的IP和Port,並添加到用戶端列表裡作為每個用戶端的唯一標識.然後通過相應用戶端的Socket.Send()方法將資訊發送出去.服務端給用戶端的資訊群發與服務端給單個用戶端的資訊發送原理是一樣的,通過遍曆用戶端列表裡的所有用戶端標識,然後把資訊一個個發送出去. 介面設計 - 用戶端 介面設計 - 服務端 代碼實施 -
Time of Update: 2018-12-08
如果要在C#中定義一個事件,首先你要創造一個delegate(委派),用他來定義一個你所想使用事件的標籤,然後你才能使用event關鍵字,在這個委派的基礎上定義一個事件.兩點需要注意的是:第一,首先你要創造一個委派,第二,根據你所創造的委派來定義一個事件,這才是一個完整的事件定義.假設我們把書中的Product類進行增強.加入了一個NameChanged事件,此事件只有當Name通過屬性渠道被更改時就會發生.而如果私人變數name是通過類的內部代碼被修改時,此事件不會發生.代碼如下:public
Time of Update: 2018-12-08
形形色色的自訂訊息MFC 教程 函數調用規範__cdecl和__stdcall的區別一目瞭然C/C++程式佔用記憶體分布 運算子sizeof引用和指標 虛函數和虛函數表 char a[]和char *a的比較 浮點數大小比較 C/C++取出系統時間 iostream和iostream.h的區別 (MS)C++和C的關鍵字對比 C++隨機數 C++的局部類和嵌套類 C++常類型(const)詳解 CString/string/char *比較詳解 如何設計只在堆或者棧上執行個體化的類 求檔案大小
Time of Update: 2018-12-08
2006-06-03
Time of Update: 2018-12-08
學習C++的話,並不一定要學C的,因為C++和C其實是2種語言,只是C++對C相容而已, 我們不應該把C++跟C牽連在一起了.學C++就要把它當一門新語言來學.我說一下從完全不懂到最後高手的專家推薦路線吧: 1. 《C++ Primer》Lippman寫的,經典中的經典,C++入門的寶典,讀完這本書,基本文法過關,部分技巧掌握。 正在閱讀中...2.《The C++ programming language》C++的創始人Bjarne
Time of Update: 2018-12-08
問題:下面的定義中,哪個是錯誤的1 class C<U,V>{}2 class D:C<string,int>{}3 class E<U,V>:C<U,V>{}4 class F<U,V>:C<string,int>{}5 class G:C<U,V>{}解釋1 泛型定義2 D是普通類,C是執行個體化的泛型類垿IMG
Time of Update: 2018-12-08
談話記錄:馬義 說: 可以指定儲存以往幾天的記錄檔馬義 說: 能夠自己產生時間及檔案名稱馬義 說: 使用者只要輸入要記的日誌內容即可馬義 說: 我希望是:log << "some string" << endl;馬義 說: 時間是任意,由使用者決定,如果使用者不指定,是過去7天的,一天一個檔案馬義 說: 如果成手應該是三到五天,但其中有幾個技術算是難關吧,而且你又不能抱天幹這個馬義 說:
Time of Update: 2018-12-08
堆棧是系統使用是臨時儲存地區。它是後進先出的資料結構。C++主要將堆棧用於函數調用。當函數調用時,各種資料被推入堆棧頂部;函數終止後的返回地址、傳遞給函數的參數、函數返回的結果以及函數中聲明的局部變數等等。因此當函數A調用函數B調用函數C,堆棧是增長了,但調用完成後,堆棧又縮小了。堆是一種長期的儲存地區。程式用C++的new操作符分配堆。對new的調用
Time of Update: 2018-12-08
在Windows XP作業系統中,大多數使用者都熟知按【Ctrl+X】鍵執行剪下操作,按【Ctrl+C】鍵執行複製操作,按【Ctrl+V】鍵執行粘貼操作,但這些快速鍵對於左手控制滑鼠的使用者不太方便,其實還有另外一組複製、粘貼快速鍵。【操作方法】 在編輯文本時按【Shift+Delete】鍵執行剪下操作,按【Ctrl+Insert】鍵執行複製操作,按【Shift+Insert】鍵執行粘貼操作,這組快速鍵主要是便於左手控制滑鼠、右手修飾鍵盤的使用者操作。 哇哢哢,終於不要為左手用滑鼠煩了
Time of Update: 2018-12-08
VC調用VB的控制項,最大的痛點,就是資料類型不一致。VB是有Variant這個資料類型的,但是問題就出在這裡,VC要使用VB返回的Variant,就像一隻狐狸要吃一隻刺蝟,食物就在面前,可這很難下口。昨天下午找了半天,也沒啥進展,今天終於有所突破,本質就是COM給帶來的。我說得不透徹,文章講得很好:http://www.roblocher.com/whitepapers/oletypes.aspx VC、VB、COM之間的關係,只有好好看看微軟出得的書,恐怕才能搞明白。Technorati
Time of Update: 2018-12-08
幾乎大多數C#程式員都這樣寫異常處理代碼的代碼一:1try2{ThrowException();}3catch(Exception ex)4{throw ex;}5finally6{}如果你的底層代碼還有一個方法用來拋出異常代碼二:1public ThrowException()2{3throw new Exception("一個底層異常");4}那麼,你也許需要將這個底層的異常重新拋出。如果你使用代碼一的方式,將會打斷異常的堆疊追蹤,在VS2005中的表現是新拋出了一個異常(代碼一中的ex),