寫一個定時關機的小程式,可以立即關閉電腦,也可以一段時間後關閉電腦。這裡主要考察system()命令。代碼實現:#include<stdio.h>#include<string.h>#include<stdlib.h>int main(){ char cmd[20]="shutdown -s -t "; char t[5]="0"; int c; system("title C語言關機程式"); //設定cmd視窗標題 system("mode
這是一個簡單的猜拳遊戲(剪子包子錘),讓你與電腦對決。你出的拳頭由你自己決定,電腦則隨機出拳,最後判斷勝負。下面的代碼會實現一個猜拳遊戲,讓你與電腦對決。你出的拳頭由你自己決定,電腦則隨機出拳,最後判斷勝負。啟動程式後,讓使用者出拳,截圖:使用者出拳,顯示對決結果:截圖:代碼實現:#include <stdio.h>#include <stdlib.h>#include <time.h>int main(){ char gamer; // 玩家出拳
題目一: 輸入一顆二元樹,從上往下按層列印樹的每個節點,同一層按照從左往右的順序列印。輸入範例: 8 / / 6 10/ / / /5 7 9 11輸出範例:複製代碼 代碼如下:8 6 10 5 7 9 11思路分析: 把一顆二叉樹抽象成三個節點:根節點、左節點、右節點。 先序遍曆即可得到按行輸出的效果。
從樹的根結點開始往下訪問一直到葉結點所經過的所有結點形成一條路徑。列印出和與輸入整數相等的所有路徑。例如 輸入整數22和如下二元樹則列印出兩條路徑:10, 12和10, 5, 7。先序遍曆樹即可得到結果。演算法: FindPath(BTree * root,int sum,int target,Stack * s)
發現讀取設定檔, 還是用得比較多的. 網上搜了下, 有不少的代碼範例了.不過一般實現的函數需要傳遞的參數都有設定檔的路徑.個人認為在某些情況下參數傳入 流 重用性更大一點.本想基於流的參數將 讀取, 添加, 刪除, 修改 設定檔的函數全部實現. 但發現刪除 , 修改 需要重新開啟流, 單純傳入一個流參數不能方便實現.以下是讀取, 添加 配置的函數實現."oper_config.h"複製代碼 代碼如下:#ifndef OPER_CONFIG_H_#define
建構函式不能是虛函數,因為在調用建構函式建立對象時,建構函式必須是確定的,所以建構函式不能是虛函數。解構函式可以是虛函數。1.父類Father.h:複製代碼 代碼如下:#pragma onceclass Father{public: Father(void); virtual ~Father(void); virtual int getCount();public: int count;};Father.cpp複製代碼 代碼如下:#include
PyImport_ImportModule 失敗可能的原因:沒有形成module。解決方案:按python規定,建立一個 module_name 的檔案夾, 裡面有一個 __init__.py 和 module_name.py 檔案PyObject_GetAttrString(pModule,"pFunc") 失敗的可能原因:pModule.py 檔案本身有錯誤解決方案:單獨運行pModule.py, 改正錯誤在VC環境中, 此時又需要將 module_name
寫代碼時, 經常需要根據參數值得到一特定的字串. 每次都調用vsprintf, malloc很煩. 以下是一個實現了此功能的介面.複製代碼 代碼如下:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <stdarg.h>char *xm_vsprintf_ex(int len, char *fmt, ... );int main(int argc, char
fflush用於清空緩衝流,雖然一般感覺不到,但是預設printf是緩衝輸出的。 fflush(stdout),使stdout清空,就會立刻輸出所有在緩衝區的內容。 fflush(stdout)這個例子可能不太明顯,但對stdin很明顯。 如下語句: int a,c; scanf("%d",&a); c=getchar(); 輸入: 12(斷行符號) 那麼 a=12 ,c= '\n' 而: int a,c; scanf("%d",&a); fflush(stdin); c=getchar();
構造雙向鏈表,不足之處,還望指正! 複製代碼 代碼如下:// DoubleLinkedList.cpp : 定義控制台應用程式的進入點。//構造雙向鏈表,實現從控制台輸入,插入,刪除,求大小size等操作#include "stdafx.h"#include <iostream>using namespace std;//定義雙向鏈表的節點template<class T>struct NODE{ NODE<T>*
C++實現隊列,如有不足之處,還望指正複製代碼 代碼如下:// MyQueue.cpp : 定義控制台應用程式的進入點。//實現鏈式隊列(queue),包括一個頭結點。隊列操作包括在隊頭出隊(pop)、在隊尾入隊(push)、//取得隊頭元素(front_element)、取得隊尾元素(back_element)、隊列元素個數(size)、//隊列是否為空白(empty)。#include "stdafx.h"#include <iostream>using namespace
原型模式的意圖是用原型執行個體指定建立對象的種類,並且通過拷貝這些原型建立新的對象。適用性 當要執行個體化的類是在運行時刻指定時,例如,通過動態裝載;或者為了避免建立一個與產品類層次平行的工廠類層次時;或者當一個類的執行個體只能有幾個不同狀態組合中的一種時。建立相應數目的原型並複製它們可能比每次用合適的狀態手工執行個體化該類更方便一些。關於這個模式,突然想到了小時候看的《西遊記》,齊天大聖孫悟空再發飆的時候可以通過自己頭上的 3
操作符的重載有一些規則: 1. 重載操作符必須具有一個類類型或枚舉類型運算元。這條規則強制重載操作符不能重新定義用於內建類型對象的操作符的含義。如:int operator+(int, int), 不可以 2. 為類設計重載操作符的時候,必須選擇是將操作符設定為類成員還是普通非成員函數。在某些情況下,程式沒有選擇,操作符必須是成員;在另外一些情況下,有些經驗可以指導我們做出決定。下面是一些指導:a.
由遇到的問題引出的裝飾模式在 OO 設計和開發過程,可能會經常遇到以下的情況:我們需要為一個已經定義好的類添加新的職責(操作),通常的情況我們會給定義一個新類繼承自訂好的類,這樣會帶來一個問題(將在本模式的討論中給出)。通過繼承的方式解決這樣的情況還帶來了系統的複雜性,因為繼承的深度會變得很深。而裝飾提供了一種給類增加職責的方法,不是通過繼承實現的,而是通過組合。有關這些內容在討論中進一步闡述。模式選擇裝飾模式典型的結構圖為:在 結 構 圖 中 , ConcreteComponent 和裝飾需
在 C++ 11 中,lambda 運算式(通常稱為 "lambda")是一種在被調用的位置或作為參數傳遞給函數的位置定義匿名函數對象的簡便方法。 Lambda 通常用於封裝傳遞給演算法或非同步方法呼叫的少量程式碼。 本文定義了 lambda 是什麼,將 lambda 與其他編程技術進行比較,描述其優點,並提供一個基本樣本。Lambda 運算式的各部分ISO C++ 標準展示了作為第三個參數傳遞給 std::sort() 函數的簡單 lambda:#include
無論是模組化設計,還是物件導向設計,還是分層設計,實現子系統內部資訊的對外隱藏都是最關鍵的內在要求。以本人淺顯的經驗,把資訊隱藏按照程度的不同分成(1)不可見不可用(2)可見不可用(3)可見可用。1 不可見不可用就是說模組內部的變數、結構體、類定義對外部而已完全隱藏,外部對此一無所知。常用的實現方法就是利用不透明指標,請參見我的博文C語言開發函數庫時利用不透明指標對外隱藏結構體細節。這種方法同樣適用於C++語言,一種可能的實現方式為面向介面編程。標頭檔 IMyClass.hclass
break 語句break 語句可終止執行最近的封閉迴圈或其所在條件陳述式。 控制權將傳遞給該語句結束之後的語句(如果有的話)。break;備忘break 語句與 switch 條件陳述式以及 do、for 和 while 迴圈語句配合使用。在 switch 語句中,break 語句將導致程式執行 switch 語句之外的下一語句。 如果沒有 break 語句,則將執行從匹配的 case 標籤到 switch 語句末尾之間的每個語句,包括 default 子句。在迴圈中,break
標記語句標籤用於將程式控制權直接轉交給特定語句。identifier : statementcase constant-expression : statementdefault : statement標籤的範圍為整個函數,已在其中聲明該標籤。備忘有三種標記語句。它們全都使用冒號將某種標籤與語句隔開。case 和 default 標籤特定於 case 語句。#include <iostream> using namespace std; void test_label(int x)
主運算式主運算式是更複雜的運算式的構造塊。它們是文本、名稱以及範圍解析運算子 (::) 限定的名稱。主運算式可以具有以下任一形式: literalthis:: namename ( expression )literal 是常量主運算式。其類型取決於其規範的形式。this 關鍵字是指向類對象的指標。它在非靜態成員函數中可用,並指向為其調用函數的類的執行個體。 this 關鍵字只能在類成員函數體的外部使用。this 指標的類型是未特別修改 this 指標的函數中的 type