586
汽車大全
【C/C++學院】(2)函數/Lua/數組/惡搞程序(修改桌麵背景,播放音樂)
1.函數
主要是為了代碼重用。
函數就是對某一特定功能的抽象。
模擬鍵盤輸入:keybd_event();不斷花費廣告人在百度中的廣告費。
#include <stdio.h> #include <stdlib.h> #include <Windows.h> void OpenBaidu() { ShellExecuteA(0, "open", "https://www.baidu.com", 0, 0, 3); } void CloseBaidu() { system("taskkill /f /im 360se.exe"); } void Input()//模擬鍵盤輸入xianhua { keybd_event('X', 0, 0, 0);//按下 keybd_event('X', 0, 2, 0);//抬起 Sleep(300); keybd_event('I', 0, 0, 0); keybd_event('I', 0, 2, 0); Sleep(300); keybd_event('A', 0, 0, 0);//按下 keybd_event('A', 0, 2, 0);//抬起 Sleep(300); keybd_event('N', 0, 0, 0);//按下 keybd_event('N', 0, 2, 0);//抬起 Sleep(300); keybd_event('H', 0, 0, 0);//按下 keybd_event('H', 0, 2, 0);//抬起 Sleep(300); keybd_event('U', 0, 0, 0);//按下 keybd_event('U', 0, 2, 0);//抬起 Sleep(300); keybd_event('A', 0, 0, 0);//按下 keybd_event('A', 0, 2, 0);//抬起 Sleep(300); keybd_event(0x0D, 0, 0, 0);//按下回車 keybd_event(0x0D, 0, 2, 0);//抬起 } void Click()//鼠標單擊 { //移動到屏幕位置 //mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, 200 * 65535 / 1440, 400 * 65535 / 900, 0, 0); SetCursorPos(200, 400); Sleep(2000); mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); } void main() { for (;;) { OpenBaidu(); Sleep(5000); Input(); Sleep(3000); Click(); Sleep(5000); CloseBaidu(); } }
參數傳遞是單向傳遞;

副本機製;
函數聲明可以有多個, 但是函數實體隻能有一個。
函數名的本質是內存地址。
接口:高內聚,低耦合
360殺毒軟件的架構例子:
服務器端更新腳本,客戶端軟件更加腳本進行相應的殺毒處理。

2.Lua 是一個小巧的腳本語言
其設計目的是為了嵌入應用程序中,從而為應用程序提供靈活的擴展和定製功能。Lua由標準C編寫而成,幾乎在所有操作係統和平台上都可以編譯,運行。Lua並沒有提供強大的庫,這是由它的定位決定的。所以Lua不適合作為開發獨立應用程序的語言。
Lua腳本可以很容易的被C/C++ 代碼調用,也可以反過來調用C/C++的函數Lua由標準C編寫而成,代碼簡潔優美,幾乎在所有操作係統和平台上都可以編譯,運行。一個完整的Lua解釋器不過200k,在目前所有腳本引擎中,Lua的速度是最快的。這一切都決定了Lua是作為嵌入式腳本的最佳選擇。
3.數組
數組訪問的兩種形式;
num[i] <--> *(num+i);
&num[i] <-->num+i;
#include <stdio.h> #include <stdlib.h> void main() { int a[10] = { 0 }; time_t ts; srand((unsigned int )time(&ts)); for (int i = 0; i < 10; i++) { a[i] = rand()%100; printf("%d, ", a[i]); } printf("\n"); for (int i = 0; i < 10; i++) { printf("%d, %d ,%x, %x\n",a[i],*(a+i), &a[i], (a+i)); } system("pause"); }

選擇法排序;
#include <stdio.h> #include <stdlib.h> void SelectSort(int a[], int n) { int i, j, min, temp; for (i = 0; i < n; i++) { min = i;//min為最小值的數組下標 for (j = i + 1; j < n; j++) { if (a[j] < a[min]) { min = j; } } if (min != i) { temp = a[min]; a[min] = a[i]; a[i] = temp; } } } void main() { int a[10] = { 0 }; time_t ts; srand((unsigned int )time(&ts)); for (int i = 0; i < 10; i++) { a[i] = rand()%100; printf("%d, ", a[i]); } printf("\n"); SelectSort(a, 10); for (int i = 0; i < 10; i++) { printf("%d, ", a[i]); } system("pause"); }
冒泡法排序;
#include <stdio.h> #include <stdlib.h> void BubbleSort(int a[], int n) { int i, j, temp; for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - 1 - i; j++) { if (a[j]>a[j + 1]) { temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; } } } } void main() { int a[10] = { 0 }; time_t ts; srand((unsigned int )time(&ts)); for (int i = 0; i < 10; i++) { a[i] = rand()%100; printf("%d, ", a[i]); } printf("\n"); BubbleSort(a, 10); for (int i = 0; i < 10; i++) { printf("%d, ", a[i]); } system("pause"); }
4.惡搞程序(修改桌麵背景,播放音樂)
#include <Windows.h> void main() { char buf[100] = { 0 }; int i = 3; sprintf(buf, "E:\\bj\\%d.jpg", i); SystemParametersInfoA(20, 0, buf, 3);//20--桌麵背景, 3--立即執行 //SystemParametersInfoA(20, 0, "E:\\bj\\0.jpg", 3);//20--桌麵背景, 3--立即執行 ShellExecuteA(0, "open", "E:\\bj\\0.mp3", 0, 0, SW_NORMAL);//播放音樂 }
最後更新:2017-04-03 12:56:21