第一篇:學(xué)習(xí)不好能干大事
學(xué)習(xí)不好,能干大事!!
專(zhuān)家指出:往往學(xué)習(xí)不好,上課玩手機(jī)或睡覺(jué)的人,他的大腦要比學(xué)習(xí)好的人聰明65%,如上課玩手機(jī)的學(xué)生,他的精力投在玩上,大腦的靈活率極度升高,而學(xué)習(xí)好的學(xué)生,他的精力全部集中在一個(gè)人的身上,沒(méi)有一點(diǎn)靈活的空間,然而社會(huì)上能干大事的人,據(jù)專(zhuān)家統(tǒng)計(jì)85%都在初中或小學(xué)畢業(yè),所以,玩和認(rèn)真學(xué)習(xí)是完全不一樣的,我有好多朋友都是初中畢業(yè),上課就知道玩,后來(lái)不上了,現(xiàn)在開(kāi)公司當(dāng)老板,而我們那些學(xué)習(xí)好的人現(xiàn)在還在艱難的找工作,他們都很羨慕以前不好好學(xué)習(xí)的同學(xué),現(xiàn)在都比他們條件好。上課睡覺(jué)的學(xué)生,往往是最聰明的,他的大腦可以在老師講課的地方睡著,可見(jiàn)他非常不一般,具有商業(yè)的經(jīng)濟(jì)頭腦,據(jù)專(zhuān)家講,上課睡覺(jué)一般大腦處于不想接觸外界信息,若他把覺(jué)睡好,從而會(huì)變成另外一個(gè)人,大腦靈活率在95%,比全心貫注的好學(xué)生的頭腦聰明靈活.總而言之,學(xué)習(xí)好的學(xué)生永遠(yuǎn)沒(méi)有上課玩手機(jī)或睡覺(jué)的人頭腦靈活,社會(huì)交往或干大事的幾率比你們高。呵呵,不信可以試試?。。?/p>
第二篇:C語(yǔ)言也能干大事
1.格式:MessageBox(NULL,TEXT(“”),TEXT(“”),MB_OKCANCEL|MB_ICONQUESTION);
2.按鈕:MB_OK,MB_OKCANCEL,MB_YESONCANCEL,MB_RETRYCANCEL,MB_ABORTRETRYIGNORE;
確定,確定取消,是否取消,重試取消,終止,重試忽視
3.圖標(biāo):MB_ICONHAND,MB_ICONQUESTION,ICONEXCLAMATION(感嘆),MB_ICONASTERISK;
4.取返回值
int ret=MessageBox(NULL,TEXT(“”),TEXT(“”),MB_OKCANCEL|MB_ICONQUESTION);if(IDOK==ret){}else{};
5.C語(yǔ)言(網(wǎng)絡(luò),數(shù)據(jù)庫(kù),圖形學(xué),內(nèi)核等)一通百通,一切語(yǔ)言都是紙老虎。如鵬網(wǎng)!
6.怎樣把程序發(fā)給別人(debug,release);將debug轉(zhuǎn)成release,從新編譯.
第三篇:c語(yǔ)言也能干大事第11節(jié)
板書(shū):
這節(jié)課是自己動(dòng)手寫(xiě)QQ、自己動(dòng)手寫(xiě)飛鴿傳書(shū)的基礎(chǔ),以后想從事網(wǎng)絡(luò)開(kāi)發(fā)、信息系統(tǒng)開(kāi)發(fā)、游戲開(kāi)發(fā)、嵌入式系統(tǒng)開(kāi)發(fā)等的同學(xué)必須學(xué)習(xí)。
演示一個(gè)簡(jiǎn)單的和網(wǎng)易Email服務(wù)器對(duì)話的過(guò)程。
1、網(wǎng)絡(luò)基本概念
講解QQ的基本原理
講解瀏覽器上網(wǎng)的基本原理
服務(wù)器:Server。提供服務(wù)的計(jì)算機(jī)。
客戶端:Client。和服務(wù)器端交互的一個(gè)設(shè)備。
IP地址:計(jì)算機(jī)在網(wǎng)絡(luò)中的地址。相當(dāng)于每個(gè)家庭的電話。211.97.1.2別名、域名:。域名就相當(dāng)于你家的地址。問(wèn)114,你家的電話(告訴地址)
DNS:網(wǎng)絡(luò)中的114。Domain Name System。
端口:Port。不同的程序連接服務(wù)器時(shí)候用的插座。(程序和服務(wù)器通信的時(shí)候的一個(gè)開(kāi)得的一個(gè)口子)
Socket(套接字):導(dǎo)線、網(wǎng)絡(luò)連接。
2、WinSock、WinSocket。
Socket:平臺(tái)無(wú)關(guān)的。Socket標(biāo)準(zhǔn)。所有操作系統(tǒng)都實(shí)現(xiàn)了這個(gè)標(biāo)準(zhǔn)。Send、recv。。標(biāo)準(zhǔn)的。一通百通!?。。。。。。。。。。。。。?/p>
WinSock:添加了一些Windows獨(dú)有的函數(shù)。而且不用這些函數(shù)的話Socket程序還跑不起來(lái)。羞臊微軟?。?/p>
WinSock編程:平臺(tái)無(wú)關(guān),一通百通。WSA(Windows Socket API)
Sz1.tencent.com
Sz2.tencent.com3、LastError
調(diào)用WindowsAPI的時(shí)候,每步執(zhí)行完畢都會(huì)把執(zhí)行結(jié)果放到LastError中去,所以應(yīng)該在函數(shù)執(zhí)行完畢立即去取。
DeleteFile(f1)
DeleteFile(f2)
GetLastError()
LastError只能容納一個(gè)錯(cuò)誤碼
DeleteFile(f1)
GetLastError()
DeleteFile(f2)
GetLastError()
錯(cuò)誤碼。2233、34455
5FormatMessage:把錯(cuò)誤碼轉(zhuǎn)換為錯(cuò)誤消息。
Windows錯(cuò)誤處理
GetLastError
1.void ShowError()
2.{
3.TCHAR* lpMsgBuf;
4.FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER| //自動(dòng)分配消息緩沖區(qū)
5.FORMAT_MESSAGE_FROM_SYSTEM, //從系統(tǒng)獲取信息
6.NULL,GetLastError(), //獲取錯(cuò)誤信息標(biāo)識(shí)
7.MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),//使用系統(tǒng)缺省語(yǔ)言
8.(LPTSTR)&lpMsgBuf, //消息緩沖區(qū)
9.0,10.NULL);
11.MessageBox(NULL,lpMsgBuf,“",MB_ICONERROR);
12.}
復(fù)制代碼
在.h中聲明函數(shù),在.c中實(shí)現(xiàn)!!
都會(huì)有哪些錯(cuò)誤?
4、模板代碼:
(1)、添加winsock2.h
(2)、連接庫(kù)“wsock32”。怎么知道添加它呢?
(3)、模板代碼
1.WSADATA wsaData;
2.//初始化Socket庫(kù)
3.WSAStartup(MAKEWORD(2,0),&wsaData);
4.//創(chuàng)建一根電線
5.SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
6.SOCKADDR_IN sa;
7.sa.sin_family=AF_INET;
8.//設(shè)置電線連接服務(wù)器端的端口
9.sa.sin_port = htons(IPPORT_SMTP);
10.//123.125.50.135是ping smtp.163.com出來(lái)的,后面會(huì)講使用gethostbyname來(lái)直接從
11.//主機(jī)名得到ip地址
12.sa.sin_addr.S_un.S_addr = inet_addr(”123.125.50.135“);
13.//為什么不用設(shè)置客戶端的端口,難道不需要客戶端的端口嗎?
14.if(connect(sock,(SOCKADDR *)&sa,sizeof(sa))==SOCKET_ERROR)
15.{
16.ShowError();
17.return;
18.}
19.//做事情。把大象放冰箱總共分幾步
20.closesocket(sock);
21.WSACleanup();
復(fù)制代碼
QQ服務(wù)器的端口8888。需要指定客戶端的端口是9999.端口有一個(gè)特點(diǎn):排他性!端口已經(jīng)被別的程序占用,不能再用這個(gè)端口。開(kāi)兩個(gè)QQ。11111111111
22222222222 9999。如果端口可以被多個(gè)程序使用的話,QQ聊天服務(wù)器發(fā)過(guò)來(lái)的消息被多個(gè)QQ收到。很荒謬!排他性!
如果在程序里寫(xiě)死了客戶端用的端口。。所以才需要Socket替客戶端動(dòng)態(tài)分配一個(gè)端口。所以不需要在程序中顯示指定客戶端的端口號(hào)!
客戶端向服務(wù)器端發(fā)消息:send
服務(wù)器端想客戶端發(fā)消息,客戶端這邊應(yīng)該接收,recv。(receive)
SMTP服務(wù)器,你連上來(lái)以后服務(wù)器端主動(dòng)向你發(fā)一條消息
recv(sock,buffer,256,0);
第一個(gè)是使用的socket,“導(dǎo)線”,套接字
接收數(shù)據(jù)的緩沖區(qū)的指針
接收數(shù)據(jù)的緩沖區(qū)的大小
send(sock,cQuit,lstrlen(cQuit),0);
第一個(gè)是使用的socket,“導(dǎo)線”,套接字
接收數(shù)據(jù)的緩沖區(qū)的指針
接收數(shù)據(jù)的緩沖區(qū)的大小
1.(4)一上來(lái)人家就主動(dòng)和你嘮嗑:
2.char buffer[256];
3.ZeroMemory(buffer,sizeof(buffer)/sizeof(char));
4.//接收問(wèn)候語(yǔ)
5.recv(sock,buffer,256,0);
6.MessageBox(hwnd,buffer,”“,0);
7.(5)朋友再見(jiàn)
8.//注意不能忘了末尾的回車(chē)
9.TCHAR cQuit[] = ”QUITn“;
10.send(sock,cQuit,lstrlen(cQuit),0);
11.12.ZeroMemory(buffer,sizeof(buffer)/sizeof(char));
13.//接收GoodBye
14.recv(sock,buffer,256,0);
15.MessageBox(hwnd,buffer,”",0);
復(fù)制代碼
第四篇:C語(yǔ)言也能干大事1板書(shū)
板書(shū): 第一節(jié)
1、C語(yǔ)言不是只能開(kāi)發(fā)黑底白字的控制臺(tái)界面程序。學(xué)習(xí)本課的基礎(chǔ):本課程不講C語(yǔ)言基礎(chǔ)知識(shí),C語(yǔ)言考及格,學(xué)的過(guò)程中配合復(fù)習(xí),有不懂的回去翻書(shū)。
2、學(xué)完本課程以后同學(xué)們做的一些作品賞析:計(jì)算器、俄羅斯方塊、音樂(lè)播放器、學(xué)生管理系統(tǒng)(),郵件客戶端(),Web論壇()可以開(kāi)發(fā)游戲、網(wǎng)絡(luò)程序、網(wǎng)站程序等。C語(yǔ)言什么都可以開(kāi)發(fā)
3、準(zhǔn)備工作,安裝VC6(在網(wǎng)上搜“Visual C++ 6”,找合適的地址下載)。VC6在Vista、Windows下啟動(dòng)可能有兼容性提示。
3、開(kāi)始做第一個(gè)C語(yǔ)言的程序
【文件】→【新建】,打開(kāi)【工程】選項(xiàng)頁(yè),選擇【W(wǎng)in32 Application】(不要選錯(cuò)了),在“位置”中修改工程保存的路徑。(以前用Tubor C的同學(xué)會(huì)問(wèn)“什么叫工程?”。在以前大家用TurboC寫(xiě)的程序一般也就是一個(gè)文件,但是用C語(yǔ)言寫(xiě)大程序的時(shí)候不可能把所有的代碼都寫(xiě)在一個(gè)文件中,肯定要寫(xiě)很多文件。“工程(Project)”就是這些文件的一個(gè)集合。)在“工程名”中寫(xiě)入你為這個(gè)工程取的名字,最好有一定意義。下一步【一個(gè)簡(jiǎn)單的Windows程序】
4、向Windows的世界問(wèn)好
MessageBox(NULL,TEXT(“世界你好”),TEXT(“問(wèn)好”),MB_OK);
VC6在Vista、Windows下編譯調(diào)試時(shí)可能有兼容性提示。
5、學(xué)本課程常見(jiàn)問(wèn)題
(1)為什么不用TurboC?
Turbo C(Win-TC)太老了,界面還是DOS界面,庫(kù)也是DOS的庫(kù),沒(méi)有網(wǎng)絡(luò)開(kāi)發(fā)包、沒(méi)有Windows界面開(kāi)發(fā)包。TC只能用來(lái)學(xué)C的基礎(chǔ),要進(jìn)行實(shí)際開(kāi)發(fā)必須使用先進(jìn)一點(diǎn)的工具。還是讓TurboC進(jìn)博物館吧。
(2)為什么不用更高版本的VC?
我們不使用高版本的VC主要是如下考慮:VC6和高版本的VC沒(méi)有本質(zhì)區(qū)別(VC6是1998年的東西,大部分人、公司還是用VC6,市面上的書(shū)也都是用VC6),只不過(guò)是升級(jí)了一下C++的版本、STL的版本而已,對(duì)咱們這次學(xué)習(xí)沒(méi)有什么影響;VC6的操作方式和VC2008非常相似,用熟了VC6再學(xué)高版本的VC只用半小時(shí)而已;高版本的VC體積太大,要五六百兆,而上面給出的VC6只有100MB。VC2008下建立工程。
(3)學(xué)C語(yǔ)言還是學(xué)其他語(yǔ)言,用其他語(yǔ)言實(shí)現(xiàn)豈不是更好?
用最熟悉的語(yǔ)言深入編程的各個(gè)領(lǐng)域(網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)、圖形學(xué)、內(nèi)核等),一通百通,一切語(yǔ)言都是紙老虎。參考資料如鵬網(wǎng)首頁(yè)。
6、深入研究MessageBox
(1)MessageBox(NULL,TEXT(“世界你好”),TEXT(“問(wèn)好”),MB_OK);
第一個(gè)參數(shù)暫時(shí)不講;第二個(gè)是正文;第三個(gè)是標(biāo)題(Caption);第四個(gè)是類(lèi)型。
MB_OK就是表示有一個(gè)OK按鈕【確定】)
TEXT是一個(gè)宏,當(dāng)字符串中有中文的時(shí)候最好用TEXT來(lái)包圍這個(gè)字符串,雖然不使用TEXT在VC6中沒(méi)問(wèn)題,但是在VC7中有問(wèn)題,而且微軟也建議使用TEXT宏,因此在涉及到中文的場(chǎng)合要使用它。他的作用就是把中文轉(zhuǎn)化成不會(huì)亂碼的格式。(暫時(shí)這么認(rèn)為)。_T(“問(wèn)好”),其實(shí)_T只是TEXT的一個(gè)縮寫(xiě)而已。而且_T在有的低版本里不識(shí)別。TEXT()低版本也識(shí)別。暫時(shí)不用關(guān)心TEXT的細(xì)節(jié)。
換個(gè)樣子:
MessageBox(NULL, TEXT(“世界你好”), TEXT(“你好”),MB_OKCANCEL);
可從設(shè)置希望在對(duì)話框中顯示的按鈕:
#define MB_OK
0x00000000L
#define MB_OKCANCEL
0x00000001L
#define MB_ABORTRETRYIGNORE
0x00000002L
#define MB_YESNOCANCEL
0x00000003L
#define MB_YESNO
0x00000004L
#define MB_RETRYCANCEL
0x00000005L
也可以設(shè)置對(duì)話框中顯示的圖標(biāo):
#define MB_ICONHAND
0x00000010L
#define MB_ICONQUESTION
0x00000020L
#define MB_ICONEXCLAMATION
0x00000030L
#define MB_ICONASTERISK
0x00000040L
比如:MessageBox(NULL, TEXT(“世界你好”),TEXT(“你好”),MB_ICONQUESTION);
(2)可是如果我想顯示“確定、取消”按鈕的時(shí)候同時(shí)使用問(wèn)號(hào)圖標(biāo)呢? MessageBox(NULL, TEXT(“世界你好”), TEXT(“你好”),MB_OKCANCEL|
MB_ICONQUESTION);
MessageBox(NULL, TEXT(“世界你好”), TEXT(“你好”),MB_ABORTRETRYIGNORE | MB_ICONEXCLAMATION);
(3)思考:
到這一步如果你只是在背誦“第一組和第二組中間放一個(gè)豎線就可以實(shí)現(xiàn)兩種效果的組合形式”,那么你未來(lái)只會(huì)成為一個(gè)代碼工人。我們要思考一下其背后的原理。
“|”是什么意思?“|”是位運(yùn)算里的“或”運(yùn)算,只有對(duì)應(yīng)的兩個(gè)二進(jìn)位有一位為1時(shí),結(jié)果位才為1,否則為0。MB_OK、MB_OKCANCEL等的低四位不同,但是高位永遠(yuǎn)為0;MB_ICONHAND、MB_ICONQUESTION等的低5至第8位不同,而其他位永遠(yuǎn)為0。這樣“MB_OK、MB_OKCANCEL”組的數(shù)值與“MB_ICONHAND、MB_ICONQUESTION”組的數(shù)值進(jìn)行或運(yùn)算后能分別保留各自的部分,也就是在結(jié)果值中同時(shí)體現(xiàn)兩組的取值。
這種風(fēng)格叫“掩碼”,在Windows編程中這種用法會(huì)經(jīng)常用到。
(4)返回值
MessageBox是有返回值的,返回值為用戶點(diǎn)擊的按鈕:
#define IDOK
#define IDCANCEL
#define IDABORT
#define IDRETRY
#define IDIGNORE
#define IDYES
6#define IDNO
7代碼:
int ret = MessageBox(NULL, TEXT(“你是人嗎?”), TEXT(“火星人”),MB_YESNO | MB_ICONQUESTION);
if(ret==IDYES)
{
MessageBox(NULL, TEXT(“火星人你好”), TEXT(“問(wèn)好”),MB_OK);
}
else
{
MessageBox(NULL, TEXT(“歡迎回家來(lái)”), TEXT(“問(wèn)好”),MB_OK);
}
6、課后作業(yè):自己動(dòng)手寫(xiě)惡搞程序。
運(yùn)行以后彈出詢問(wèn)對(duì)話框(有【是】、【否】?jī)蓚€(gè)按鈕以及問(wèn)號(hào)圖標(biāo))“你是好人嗎?”,如果點(diǎn)擊【是】,則彈出對(duì)話框(只有一個(gè)【確定】按鈕以及一個(gè)警告圖標(biāo))“你看你就不像好人,點(diǎn)擊【確定】開(kāi)始格式化C盤(pán)!”;如果點(diǎn)擊
【否】,則彈出對(duì)話框(有【重試】、【取消】?jī)蓚€(gè)按鈕)“嘗試把你變成好人失敗,是否重試?”。
別把教學(xué)視頻當(dāng)電影看?。《嗑殻?!多寫(xiě)!
第五篇:C語(yǔ)言也能干大事 板書(shū) 第二節(jié)
板書(shū):
運(yùn)行以后彈出詢問(wèn)對(duì)話框(有【是】、【否】?jī)蓚€(gè)按鈕以及問(wèn)號(hào)圖標(biāo))“你是好人嗎?”,如果點(diǎn)擊【是】,則彈出對(duì)話框(只有一個(gè)【確定】按鈕以及一個(gè)警告圖標(biāo))“你看你就不像好人,點(diǎn)擊【確定】開(kāi)始格式化C盤(pán)!”;如果點(diǎn)擊
【否】,則彈出對(duì)話框(有【重試】、【取消】?jī)蓚€(gè)按鈕)“嘗試把你變成好人失敗,是否重試?”。
1、怎么生成exe程序。怎么把做好的exe程序發(fā)給別人?
在我的電腦里直接進(jìn)入工程文件夾。工程目錄下生成的debug/release文件就是生成好的可執(zhí)行文件,發(fā)給別人就可以。Debug和Release版本區(qū)別。怎么生成Release版本。
1、對(duì)話框程序
VC6下安裝Win32 DialogBased Application
VC2008下安裝Win32 DialogBased Application
如鵬的Win32 DialogBased Application沒(méi)有做神奇的事情,只是簡(jiǎn)化了創(chuàng)建的過(guò)程,大家也可以手工創(chuàng)建,創(chuàng)建的代碼可以在沒(méi)有安裝Win32 DialogBased Application Wizard的機(jī)器上用。演示在2008上從win32application 創(chuàng)建一個(gè)Win32 DialogBased Application。
在資源編輯器中編輯對(duì)話框界面并且拖放控件上去。試試常用的那些控件
什么是屬性。
作業(yè):開(kāi)發(fā)一個(gè)注冊(cè)界面。
2、常見(jiàn)問(wèn)題
(1)開(kāi)發(fā)Windows程序有什么前途?不要急于求成,用自己最熟悉的語(yǔ)言探索編程的各個(gè)方面,內(nèi)核級(jí)開(kāi)發(fā)、數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)、動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)等。學(xué)《C語(yǔ)言也能干大事》的目的并不是直接找開(kāi)發(fā)Windows程序的工作,只要鍛煉了動(dòng)手能力和一通百通的數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)、動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)、面向?qū)ο蟮燃寄?,學(xué)什么東西、找什么工作都很輕松。
(2)學(xué)MFC不是更好?MFC亂七八糟的東西太多,隱藏了太多,隱藏不僅沒(méi)有有利于初學(xué)者學(xué)習(xí),反而使得更復(fù)雜。MFC只是一個(gè)稍微封裝的SDK,學(xué)會(huì)了這里的課程如果又需要再去學(xué)MFC的話會(huì)發(fā)現(xiàn)90%是相同的。
3、對(duì)話框中圖片資源的應(yīng)用在資源視圖中,選擇“引入”,然后文件過(guò)濾器選擇“*.*”,找到bmp圖片文件。選中圖片空間,要點(diǎn)擊邊緣。拖一個(gè)IMAGE控件過(guò)來(lái),并且修改IMAGE控件的Type屬性為BitMap,在控件的Image屬性中選擇剛才添加的BITMAP資源。jpg的格式怎么轉(zhuǎn)換為bmp格式的呢?用畫(huà)圖工具(mspaint)。圖片被編譯到了程序中,不再依賴于源文件
4、菜單資源
制作好菜單資源后,在對(duì)話框的Menu屬性中選擇剛才制作好的對(duì)話框。子菜單項(xiàng)(選中【彈出】)、快捷鍵(在要擔(dān)當(dāng)快捷鍵的字母前加&)、分隔符
5、只有控件、菜單,可以點(diǎn)擊控件、菜單以后的動(dòng)作怎么做呢?就要寫(xiě)代碼了。后面會(huì)講