寫一個定時關機的小程式,可以立即關閉電腦,也可以一段時間後關閉電腦。這裡主要考察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
在物件導向的C++語言中,虛函數(virtual function)是一個非常重要的概念。因為它充分體現 了物件導向思想中的繼承和多態性這兩大特性,在C++語言裡應用極廣。比如在微軟的MFC類庫中,你會發現很多函數都有virtual關鍵字,也就是說, 它們都是虛函數。難怪有人甚至稱虛函數是C++語言的精髓。 那麼,什麼是虛函數呢,我們先來看看微軟的解釋: 虛函數是指一個類中你希望重載的成員函數,當你用一個基類指標或引用指向一個繼承類對象的時候,你調用一個虛函數,實際調用的是繼承類的版本。
建構函式不能是虛函數,因為在調用建構函式建立對象時,建構函式必須是確定的,所以建構函式不能是虛函數。解構函式可以是虛函數。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
迭代器模式:提供一種方法順序訪問一個彙總對象中個各個元素,而不暴露該對像的內部表示.迭代器模式應該是最為熟悉的模式了,最簡單的證明就是我在實現組合模式、享元模式、觀察者模式中就直接用到了 STL 提供的迭代器來遍曆 Vector 或者 List資料結構。迭代器模式也正是用來解決對一個彙總對象的遍曆問題,將對彙總的遍曆封裝到一個類中進行,這樣就避免了暴露這個彙總對象的內部表示的可能。模式的動機:
構造雙向鏈表,不足之處,還望指正! 複製代碼 代碼如下:// DoubleLinkedList.cpp : 定義控制台應用程式的進入點。//構造雙向鏈表,實現從控制台輸入,插入,刪除,求大小size等操作#include "stdafx.h"#include <iostream>using namespace std;//定義雙向鏈表的節點template<class T>struct NODE{ NODE<T>*
備忘錄模式旨在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象之外儲存這個狀態。這樣以後就可將該對象恢複到原先儲存的狀態。在命令模式中,備忘錄模式經常還經常被用來維護可以撤銷(Undo)操作的狀態。類圖: Originator:負責建立一個備忘錄Memento,用以記錄當前時刻它的內部狀態,並可使用備忘錄恢複內部狀態。Originator可根據需要決定Memento儲存Originator的哪些內部狀態。
C++實現隊列,如有不足之處,還望指正複製代碼 代碼如下:// MyQueue.cpp : 定義控制台應用程式的進入點。//實現鏈式隊列(queue),包括一個頭結點。隊列操作包括在隊頭出隊(pop)、在隊尾入隊(push)、//取得隊頭元素(front_element)、取得隊尾元素(back_element)、隊列元素個數(size)、//隊列是否為空白(empty)。#include "stdafx.h"#include <iostream>using namespace
原型模式的意圖是用原型執行個體指定建立對象的種類,並且通過拷貝這些原型建立新的對象。適用性 當要執行個體化的類是在運行時刻指定時,例如,通過動態裝載;或者為了避免建立一個與產品類層次平行的工廠類層次時;或者當一個類的執行個體只能有幾個不同狀態組合中的一種時。建立相應數目的原型並複製它們可能比每次用合適的狀態手工執行個體化該類更方便一些。關於這個模式,突然想到了小時候看的《西遊記》,齊天大聖孫悟空再發飆的時候可以通過自己頭上的 3
由遇到的問題引出代理模式至少在以下集中情況下可以用代理模式解決問題: 建立開銷大的對象時候,比如顯示一幅大的圖片,我們將這個建立的過程交給代理去完成,GoF 稱之為虛代理(Virtual Proxy); 為網路上的對象建立一個局部的本地代理,比如要操作一個網路上的一個對象(網路效能不好的時候,問題尤其突出),我們將這個操縱的過程交給一個代理去完成,GoF 稱之為遠程代理(Remote Proxy); 對對象進行控制訪問的時候,比如在 Jive
操作符的重載有一些規則: 1. 重載操作符必須具有一個類類型或枚舉類型運算元。這條規則強制重載操作符不能重新定義用於內建類型對象的操作符的含義。如:int operator+(int, int), 不可以 2. 為類設計重載操作符的時候,必須選擇是將操作符設定為類成員還是普通非成員函數。在某些情況下,程式沒有選擇,操作符必須是成員;在另外一些情況下,有些經驗可以指導我們做出決定。下面是一些指導:a.
由遇到的問題引出的裝飾模式在 OO 設計和開發過程,可能會經常遇到以下的情況:我們需要為一個已經定義好的類添加新的職責(操作),通常的情況我們會給定義一個新類繼承自訂好的類,這樣會帶來一個問題(將在本模式的討論中給出)。通過繼承的方式解決這樣的情況還帶來了系統的複雜性,因為繼承的深度會變得很深。而裝飾提供了一種給類增加職責的方法,不是通過繼承實現的,而是通過組合。有關這些內容在討論中進一步闡述。模式選擇裝飾模式典型的結構圖為:在 結 構 圖 中 , ConcreteComponent 和裝飾需
題目描述:一個正整數有可能可以被表示為 n(>=2) 個連續正整數之和,如:15=1+2+3+4+5 15=4+5+6
虛函數①#include "stdafx.h"#include <iostream>using namespace std;class B0//基類B0聲明{public: void display(){cout<<"B0::display()"<<endl;}//公有成員函數};class B1: public B0//公有衍生類別B1聲明{public: void