Time of Update: 2018-12-05
該小軟體旨在輔助高校BBS使用者方便發帖之用,實現的主要功能包括登陸登出BBS網站,上傳附件以及發表文章功能。由於測試帳號有限,目前本軟體只支援白雲黃鶴、水木社區、水木清華、飲水思源、科苑星空5個高校BBS網站。(如果有願意提供帳號以供開發測試之用的,本人非常感謝,連絡方式:yysdsyl#qq.com) 軟體:CampusBBSAssistant 軟體效果展示: 實現部分: 根據軟體的功能,軟體模組的劃分很清晰,就以下幾個模組: 1、BBS版面資訊抓取2、登陸登出BBS網站3、上傳附件
Time of Update: 2018-12-05
要在windows或者linux平台下開發基於SIP的軟電話,需要以下軟體 伺服器端軟體: 註冊多個用戶端到伺服器上,可以進行通話測試 SIP用戶端軟體:主要用於測試,可以對別人已經完成的用戶端進行抓包,以比對自己程式的發包資料 SIP協議棧:基於某個現成的SIP協議棧來開發會加快開發進度 RTP棧:傳輸語言或者視頻資料的協議棧 抓包測試載入器:調試網路程式最有效辦法 以下介紹這些軟體主要以開源軟體為主一 伺服器端軟體 1.
Time of Update: 2018-12-05
有時候電腦忽然慢下來,這時候開啟「工作管理員」(Task
Time of Update: 2018-12-05
題目:定義字串的左旋轉操作:把字串前面的若干個字元移動到字串的尾部。如把字串abcdef左旋轉2位得到字串cdefab。請實現字串左旋轉的函數。要求時間對長度為n的字串操作的複雜度為O(n),輔助記憶體為O(1)。分析:如果不考慮時間和空間複雜度的限制,最簡單的方法莫過於把這道題看成是把字串分成前後兩部分,通過旋轉操作把這兩個部分交換位置。於是我們可以新開闢一塊長度為n+1的輔助空間,把原字串後半部分拷貝到新空間的前半部分,在把原字串的前半部分拷貝到新空間的後半部分。不難看出,這種思路的時間複雜
Time of Update: 2018-12-05
常規指令Authenticate:鑒別使用者VMAuthenticate:根據“voicemail.conf”鑒別使用者Curl:接受外接URLs的修複。支援POSTingDUNDiLookup:用DUNDi查尋號碼SendDTMF:發送獨裁的DTMF資料SendImage:發送映像檔案SendText:發送給客戶本文訊息SendURL:發送給客戶USL以顯示System:執行系統命令Transfer:將訪客轉移到另一個副檔名TrySystem:0回複執行系統命令Wait:稍等WaitExten
Time of Update: 2018-12-05
題目:輸入一個整數,求該整數的二進位表達中有多少個1。例如輸入10,由於其二進位表示為1010,有兩個1,因此輸出2。分析:這是一道很基本的考查位元運算的面試題。包括微軟在內的很多公司都曾採用過這道題。一個很基本的想法是,我們先判斷整數的最右邊一位是不是1。接著把整數右移一位,原來處於右邊第二位的數字現在被移到第一位了,再判斷是不是1。這樣每次移動一位,直到這個整數變成0為止。現在的問題變成怎樣判斷一個整數的最右邊一位是不是1了。很簡單,如果它和整數1作與運算。由於1除了最右邊一位以外,其他所有
Time of Update: 2018-12-05
是的,我們同意C語言中變數要放在模組頭部定義的規定;但在C++中,還是取消這種做法吧,它沒必要,不自然,而且昂貴。還記得嗎?如果定義了一個有建構函式和解構函式的類型的變數,當程式運行到變數定義之處時,必然面臨構造的開銷;當變數離開它的生命空間時,又要承擔析構的開銷。這意味著定義無用的變數必然伴隨著不必要的開銷,所以只要可能,就要避免這種情況發生。正如我所知道的,你的編程方式優雅而不失老練。所以你可能會在想,你決不會定義一個無用的變數,所以本條款的建議不適用於你嚴謹緊湊的編程風格。但別急,看看下面
Time of Update: 2018-12-05
題目:輸入一個單向鏈表,輸出該鏈表中倒數第k個結點。鏈表的倒數第0個結點為鏈表的尾指標。鏈表結點定義如下:struct ListNode{ int m_nKey; ListNode*
Time of Update: 2018-12-05
題目:輸入一個英文句子,翻轉句子中單詞的順序,但單詞內字元的順序不變。句子中單詞以空格符隔開。為簡單起見,標點符號和普通字母一樣處理。例如輸入“I am a student.”,則輸出“student. a am
Time of Update: 2018-12-05
題目:輸入n個整數,輸出其中最小的k個。例如輸入1,2,3,4,5,6,7和8這8個數字,則最小的4個數字為1,2,3和4。分析:這道題最簡單的思路莫過於把輸入的n個整數排序,這樣排在最前面的k個數就是最小的k個數。只是這種思路的時間複雜度為O(nlogn)。我們試著尋找更快的解決思路。我們可以開闢一個長度為k的數組。每次從輸入的n個整數中讀入一個數。如果數組中已經插入的元素少於k個,則將讀入的整數直接放到數組中。否則長度為k的數組已經滿了,不能再往數組裡插入元素,只能替換了。如果讀入的這個整數
Time of Update: 2018-12-05
決不要重新定義繼承而來的預設參數值 讓我們從一開始就把問題簡化。預設參數只能作為函數的一部分而存在;另外,只有兩種函數可以繼承:虛函數和非虛函數。因此,重定義預設參數值的唯一方法是重定義一個繼承而來的函數。然而,重定義繼承而來的非虛函數是一種錯誤(參見條款37),所以,我們完全可以把討論的範圍縮小為 "繼承一個有預設參數值的虛函數"
Time of Update: 2018-12-05
避免 "向下轉換" 繼承層次 在當今喧囂的經濟時代,關注一下我們的金融機構是個不錯的主意。所以,看看下面這個有關銀行帳戶的協議類(Protocol class class Person { ... };class BankAccount {public: BankAccount(const Person *primaryOwner, const Person *jointOwner); virtual ~BankAccount(); virtual
Time of Update: 2018-12-05
最近做開發碰到了長字串匹配、搜尋的問題,最先想到的是使用Regex,簡單、高效。但是我用的開發工具是VC6.0,不支援Regex。上網baidu一下,發現支援正則的庫還真不少,大概有以下幾種:boost,GNU,VC7帶的ATL中的和微軟發布的greta。網上的朋友對boost評價不錯,決定就使用是它了!1、接下來的就是下載boost庫,網上很好找。我下載的是壓縮包,20多M,解壓後將近100多M。我解壓的目錄是D:/boost2、然後是編譯,我只要支援Regex就可以,因此只需要編譯D:/b
Time of Update: 2018-12-05
1.串連資料庫CDatabase conn;conn.OpenEx(_T("DSN=bbodbc"));2.執行更新conn.ExecuteSQL(updateSQL);3.CRecordset初始化rst = new CRecordset(&conn); //指標或者下面的也可以rst.m_pDatabase = &conn; //針對非指標4.執行查詢rst->Open(AFX_DB_USE_DEFAULT_TYPE,
Time of Update: 2018-12-05
題目:輸入一個已經按升序排序過的數組和一個數字,在數組中尋找兩個數,使得它們的和正好是輸入的那個數字。要求時間複雜度是O(n)。如果有多對數位和等於輸入的數字,輸出任意一對即可。例如輸入數組1、2、4、7、11、15和數字15。由於4+11=15,因此輸出4和11。分析:如果我們不考慮時間複雜度,最簡單想法的莫過去先在數組中固定一個數字,再依次判斷數組中剩下的n-1個數字與它的和是不是等於輸入的數字。可惜這種思路需要的時間複雜度是O(n2)。我們假設現在隨便在數組中找到兩個數。如果它們的和等於輸
Time of Update: 2018-12-05
int Strlen(const char* str){ assert(str); int nlen = 0; while(str[nlen]) { ++nlen; } return nlen;}char* Strcpy(char* strDst, const char* strSource){ assert(strDst && strSource); char *temp = strDst; while( *strDst++ == *strSource++) NULL;
Time of Update: 2018-12-05
題目:輸入一個整數和一棵二元樹。從樹的根結點開始往下訪問一直到葉結點所經過的所有結點形成一條路徑。列印出和與輸入整數相等的所有路徑。例如輸入整數22和如下二元樹 10 / / 5 12
Time of Update: 2018-12-05
//顯示樹中所有節點的值void show(tnode<int> *root){ if (root) { cout<< root->value<<"/n"; show(root->left); show(root->right); }}//輸入樹的每層節點值void GetLayer(tnode<int>*root,vector<int>& v){ if (root == NULL) return ;
Time of Update: 2018-12-05
題目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字以及條件判斷語句(A?B:C)。分析:這道題沒有多少實際意義,因為在軟體開發中不會有這麼變態的限制。但這道題卻能有效地考查發散思維能力,而發散思維能力能反映出對編程相關技術理解的深刻程度。通常求1+2+…+n除了用公式n(n+1)/2之外,無外乎迴圈和遞迴兩種思路。由於已經明確限制for和while的使用,迴圈已經不能再用了。同樣,遞迴函式也需要用if語句或者條件判斷語句來判斷是繼續遞迴
Time of Update: 2018-12-05
題目:輸入一個整數數組,判斷該數組是不是某二元尋找樹的後序遍曆的結果。如果是返回true,否則返回false。例如輸入5、7、6、9、11、10、8,由於這一整數序列是如下樹的後序遍曆結果: 8 / / 6 10 / / / / 5