c语言也能干大事第11节

时间:2019-05-14 18:21:21下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《c语言也能干大事第11节》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《c语言也能干大事第11节》。

第一篇:c语言也能干大事第11节

板书:

这节课是自己动手写QQ、自己动手写飞鸽传书的基础,以后想从事网络开发、信息系统开发、游戏开发、嵌入式系统开发等的同学必须学习。

演示一个简单的和网易Email服务器对话的过程。

1、网络基本概念

讲解QQ的基本原理

讲解浏览器上网的基本原理

服务器:Server。提供服务的计算机。

客户端:Client。和服务器端交互的一个设备。

IP地址:计算机在网络中的地址。相当于每个家庭的电话。211.97.1.2别名、域名:。域名就相当于你家的地址。问114,你家的电话(告诉地址)

DNS:网络中的114。Domain Name System。

端口:Port。不同的程序连接服务器时候用的插座。(程序和服务器通信的时候的一个开得的一个口子)

Socket(套接字):导线、网络连接。

2、WinSock、WinSocket。

Socket:平台无关的。Socket标准。所有操作系统都实现了这个标准。Send、recv。。标准的。一通百通!!!!!!!!!!!!!!!

WinSock:添加了一些Windows独有的函数。而且不用这些函数的话Socket程序还跑不起来。羞臊微软!!

WinSock编程:平台无关,一通百通。WSA(Windows Socket API)

Sz1.tencent.com

Sz2.tencent.com3、LastError

调用WindowsAPI的时候,每步执行完毕都会把执行结果放到LastError中去,所以应该在函数执行完毕立即去取。

DeleteFile(f1)

DeleteFile(f2)

GetLastError()

LastError只能容纳一个错误码

DeleteFile(f1)

GetLastError()

DeleteFile(f2)

GetLastError()

错误码。2233、34455

5FormatMessage:把错误码转换为错误消息。

Windows错误处理

GetLastError

1.void ShowError()

2.{

3.TCHAR* lpMsgBuf;

4.FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER| //自动分配消息缓冲区

5.FORMAT_MESSAGE_FROM_SYSTEM, //从系统获取信息

6.NULL,GetLastError(), //获取错误信息标识

7.MAKELANGID(LANG_NEUTRAL,SUBLANG_DEFAULT),//使用系统缺省语言

8.(LPTSTR)&lpMsgBuf, //消息缓冲区

9.0,10.NULL);

11.MessageBox(NULL,lpMsgBuf,“",MB_ICONERROR);

12.}

复制代码

在.h中声明函数,在.c中实现!!

都会有哪些错误?

4、模板代码:

(1)、添加winsock2.h

(2)、连接库“wsock32”。怎么知道添加它呢?

(3)、模板代码

1.WSADATA wsaData;

2.//初始化Socket库

3.WSAStartup(MAKEWORD(2,0),&wsaData);

4.//创建一根电线

5.SOCKET sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

6.SOCKADDR_IN sa;

7.sa.sin_family=AF_INET;

8.//设置电线连接服务器端的端口

9.sa.sin_port = htons(IPPORT_SMTP);

10.//123.125.50.135是ping smtp.163.com出来的,后面会讲使用gethostbyname来直接从

11.//主机名得到ip地址

12.sa.sin_addr.S_un.S_addr = inet_addr(”123.125.50.135“);

13.//为什么不用设置客户端的端口,难道不需要客户端的端口吗?

14.if(connect(sock,(SOCKADDR *)&sa,sizeof(sa))==SOCKET_ERROR)

15.{

16.ShowError();

17.return;

18.}

19.//做事情。把大象放冰箱总共分几步

20.closesocket(sock);

21.WSACleanup();

复制代码

QQ服务器的端口8888。需要指定客户端的端口是9999.端口有一个特点:排他性!端口已经被别的程序占用,不能再用这个端口。开两个QQ。11111111111

22222222222 9999。如果端口可以被多个程序使用的话,QQ聊天服务器发过来的消息被多个QQ收到。很荒谬!排他性!

如果在程序里写死了客户端用的端口。。所以才需要Socket替客户端动态分配一个端口。所以不需要在程序中显示指定客户端的端口号!

客户端向服务器端发消息:send

服务器端想客户端发消息,客户端这边应该接收,recv。(receive)

SMTP服务器,你连上来以后服务器端主动向你发一条消息

recv(sock,buffer,256,0);

第一个是使用的socket,“导线”,套接字

接收数据的缓冲区的指针

接收数据的缓冲区的大小

send(sock,cQuit,lstrlen(cQuit),0);

第一个是使用的socket,“导线”,套接字

接收数据的缓冲区的指针

接收数据的缓冲区的大小

1.(4)一上来人家就主动和你唠嗑:

2.char buffer[256];

3.ZeroMemory(buffer,sizeof(buffer)/sizeof(char));

4.//接收问候语

5.recv(sock,buffer,256,0);

6.MessageBox(hwnd,buffer,”“,0);

7.(5)朋友再见

8.//注意不能忘了末尾的回车

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);

复制代码

第二篇:C语言也能干大事

1.格式:MessageBox(NULL,TEXT(“”),TEXT(“”),MB_OKCANCEL|MB_ICONQUESTION);

2.按钮:MB_OK,MB_OKCANCEL,MB_YESONCANCEL,MB_RETRYCANCEL,MB_ABORTRETRYIGNORE;

确定,确定取消,是否取消,重试取消,终止,重试忽视

3.图标:MB_ICONHAND,MB_ICONQUESTION,ICONEXCLAMATION(感叹),MB_ICONASTERISK;

4.取返回值

int ret=MessageBox(NULL,TEXT(“”),TEXT(“”),MB_OKCANCEL|MB_ICONQUESTION);if(IDOK==ret){}else{};

5.C语言(网络,数据库,图形学,内核等)一通百通,一切语言都是纸老虎。如鹏网!

6.怎样把程序发给别人(debug,release);将debug转成release,从新编译.

第三篇:C语言也能干大事1板书

板书: 第一节

1、C语言不是只能开发黑底白字的控制台界面程序。学习本课的基础:本课程不讲C语言基础知识,C语言考及格,学的过程中配合复习,有不懂的回去翻书。

2、学完本课程以后同学们做的一些作品赏析:计算器、俄罗斯方块、音乐播放器、学生管理系统(),邮件客户端(),Web论坛()可以开发游戏、网络程序、网站程序等。C语言什么都可以开发

3、准备工作,安装VC6(在网上搜“Visual C++ 6”,找合适的地址下载)。VC6在Vista、Windows下启动可能有兼容性提示。

3、开始做第一个C语言的程序

【文件】→【新建】,打开【工程】选项页,选择【Win32 Application】(不要选错了),在“位置”中修改工程保存的路径。(以前用Tubor C的同学会问“什么叫工程?”。在以前大家用TurboC写的程序一般也就是一个文件,但是用C语言写大程序的时候不可能把所有的代码都写在一个文件中,肯定要写很多文件。“工程(Project)”就是这些文件的一个集合。)在“工程名”中写入你为这个工程取的名字,最好有一定意义。下一步【一个简单的Windows程序】

4、向Windows的世界问好

MessageBox(NULL,TEXT(“世界你好”),TEXT(“问好”),MB_OK);

VC6在Vista、Windows下编译调试时可能有兼容性提示。

5、学本课程常见问题

(1)为什么不用TurboC?

Turbo C(Win-TC)太老了,界面还是DOS界面,库也是DOS的库,没有网络开发包、没有Windows界面开发包。TC只能用来学C的基础,要进行实际开发必须使用先进一点的工具。还是让TurboC进博物馆吧。

(2)为什么不用更高版本的VC?

我们不使用高版本的VC主要是如下考虑:VC6和高版本的VC没有本质区别(VC6是1998年的东西,大部分人、公司还是用VC6,市面上的书也都是用VC6),只不过是升级了一下C++的版本、STL的版本而已,对咱们这次学习没有什么影响;VC6的操作方式和VC2008非常相似,用熟了VC6再学高版本的VC只用半小时而已;高版本的VC体积太大,要五六百兆,而上面给出的VC6只有100MB。VC2008下建立工程。

(3)学C语言还是学其他语言,用其他语言实现岂不是更好?

用最熟悉的语言深入编程的各个领域(网络、数据库、图形学、内核等),一通百通,一切语言都是纸老虎。参考资料如鹏网首页。

6、深入研究MessageBox

(1)MessageBox(NULL,TEXT(“世界你好”),TEXT(“问好”),MB_OK);

第一个参数暂时不讲;第二个是正文;第三个是标题(Caption);第四个是类型。

MB_OK就是表示有一个OK按钮【确定】)

TEXT是一个宏,当字符串中有中文的时候最好用TEXT来包围这个字符串,虽然不使用TEXT在VC6中没问题,但是在VC7中有问题,而且微软也建议使用TEXT宏,因此在涉及到中文的场合要使用它。他的作用就是把中文转化成不会乱码的格式。(暂时这么认为)。_T(“问好”),其实_T只是TEXT的一个缩写而已。而且_T在有的低版本里不识别。TEXT()低版本也识别。暂时不用关心TEXT的细节。

换个样子:

MessageBox(NULL, TEXT(“世界你好”), TEXT(“你好”),MB_OKCANCEL);

可从设置希望在对话框中显示的按钮:

#define MB_OK

0x00000000L

#define MB_OKCANCEL

0x00000001L

#define MB_ABORTRETRYIGNORE

0x00000002L

#define MB_YESNOCANCEL

0x00000003L

#define MB_YESNO

0x00000004L

#define MB_RETRYCANCEL

0x00000005L

也可以设置对话框中显示的图标:

#define MB_ICONHAND

0x00000010L

#define MB_ICONQUESTION

0x00000020L

#define MB_ICONEXCLAMATION

0x00000030L

#define MB_ICONASTERISK

0x00000040L

比如:MessageBox(NULL, TEXT(“世界你好”),TEXT(“你好”),MB_ICONQUESTION);

(2)可是如果我想显示“确定、取消”按钮的时候同时使用问号图标呢? MessageBox(NULL, TEXT(“世界你好”), TEXT(“你好”),MB_OKCANCEL|

MB_ICONQUESTION);

MessageBox(NULL, TEXT(“世界你好”), TEXT(“你好”),MB_ABORTRETRYIGNORE | MB_ICONEXCLAMATION);

(3)思考:

到这一步如果你只是在背诵“第一组和第二组中间放一个竖线就可以实现两种效果的组合形式”,那么你未来只会成为一个代码工人。我们要思考一下其背后的原理。

“|”是什么意思?“|”是位运算里的“或”运算,只有对应的两个二进位有一位为1时,结果位才为1,否则为0。MB_OK、MB_OKCANCEL等的低四位不同,但是高位永远为0;MB_ICONHAND、MB_ICONQUESTION等的低5至第8位不同,而其他位永远为0。这样“MB_OK、MB_OKCANCEL”组的数值与“MB_ICONHAND、MB_ICONQUESTION”组的数值进行或运算后能分别保留各自的部分,也就是在结果值中同时体现两组的取值。

这种风格叫“掩码”,在Windows编程中这种用法会经常用到。

(4)返回值

MessageBox是有返回值的,返回值为用户点击的按钮:

#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(“问好”),MB_OK);

}

else

{

MessageBox(NULL, TEXT(“欢迎回家来”), TEXT(“问好”),MB_OK);

}

6、课后作业:自己动手写恶搞程序。

运行以后弹出询问对话框(有【是】、【否】两个按钮以及问号图标)“你是好人吗?”,如果点击【是】,则弹出对话框(只有一个【确定】按钮以及一个警告图标)“你看你就不像好人,点击【确定】开始格式化C盘!”;如果点击

【否】,则弹出对话框(有【重试】、【取消】两个按钮)“尝试把你变成好人失败,是否重试?”。

别把教学视频当电影看!!多练!!多写!

第四篇:C语言也能干大事视频课件 第1篇

《C语言也能干大事》第一节

1、C语言不是只能开发黑底白字的控制台界面程序。学习本课的基础:本课程不讲C语言基础知识,C语言考及格,学的过程中配合复习,有不懂的回去翻书。

2、学完本课程以后同学们做的一些作品赏析:计算器、俄罗斯方块、音乐播放器、学生管理系统(),邮件客户端(),Web论坛()可以开发游戏、网络程序、网站程序等。C语言什么都可以开发

3、准备工作,安装VC6(在网上搜“Visual C++ 6”,找合适的地址下载)。VC6在Vista、Windows下启动可能有兼容性提示。

3、开始做第一个C语言的程序

【文件】→【新建】,打开【工程】选项页,选择【Win32 Application】(不要选错了),在“位置”中修改工程保存的路径。(以前用Tubor C的同学会问“什么叫工程?”。在以前大家用TurboC写的程序一般也就是一个文件,但是用C语言写大程序的时候不可能把所有的代码都写在一个文件中,肯定要写很多文件。“工程(Project)”就是这些文件的一个集合。)在“工程名”中写入你为这个工程取的名字,最好有一定意义。下一步【一个简单的Windows程序】

4、向Windows的世界问好

MessageBox(NULL,TEXT(“世界你好”),TEXT(“问好”),MB_OK);

VC6在Vista、Windows下编译调试时可能有兼容性提示。

5、学本课程常见问题

(1)为什么不用TurboC?

Turbo C(Win-TC)太老了,界面还是DOS界面,库也是DOS的库,没有网络开发包、没有Windows界面开发包。TC只能用来学C的基础,要进行实际开发必须使用先进一点的工具。还是让TurboC进博物馆吧。

(2)为什么不用更高版本的VC?

我们不使用高版本的VC主要是如下考虑:VC6和高版本的VC没有本质区别(VC6是1998年的东西,大部分人、公司还是用VC6,市面上的书也都是用VC6),只不过是升级了一下C++的版本、STL的版本而已,对咱们这次学习没有什么影响;VC6的操作方式和VC2008非常相似,用熟了VC6再学高版本的VC只用半小时而已;高版本的VC体积太大,要五六百兆,而上面给出的VC6只有100MB。VC2008下建立工程。

(3)学C语言还是学其他语言,用其他语言实现岂不是更好?

用最熟悉的语言深入编程的各个领域(网络、数据库、图形学、内核等),一通百通,一切语言都是纸老虎。参考资料如鹏网首页。

6、深入研究MessageBox

(1)MessageBox(NULL,TEXT(“世界你好”),TEXT(“问好”),MB_OK);

第一个参数暂时不讲;第二个是正文;第三个是标题(Caption);第四个是类型。

MB_OK就是表示有一个OK按钮【确定】

TEXT是一个宏,当字符串中有中文的时候最好用TEXT来包围这个字符串,虽然不使用TEXT在VC6中没问题,但是在VC7中有问题,而且微软也建议使用TEXT宏,因此在涉及到中文的场合要使用它。他的作用就是把中文转化成不会乱码的格式。(暂时这么认为)。_T(“问好”),其实_T只是TEXT的一个缩写而已。而且_T在有的低版本里不识别。TEXT()低版本也识别。暂时不用关心TEXT的细节。

换个样子:

MessageBox(NULL, TEXT(“世界你好”), TEXT(“你好”),MB_OKCANCEL);

可从设置希望在对话框中显示的按钮:

#define MB_OK0x00000000L

#define MB_OKCANCEL0x00000001L

#define MB_ABORTRETRYIGNORE0x00000002L

#define MB_YESNOCANCEL0x00000003L

#define MB_YESNO0x00000004L

#define MB_RETRYCANCEL0x00000005L

也可以设置对话框中显示的图标:

#define MB_ICONHAND0x00000010L

#define MB_ICONQUESTION0x00000020L

#define MB_ICONEXCLAMATION0x00000030L

#define MB_ICONASTERISK0x00000040L

比如:MessageBox(NULL, TEXT(“世界你好”),TEXT(“你好”),MB_ICONQUESTION);

(2)可是如果我想显示“确定、取消”按钮的时候同时使用问号图标呢? MessageBox(NULL, TEXT(“世界你好”), TEXT(“你好”),MB_OKCANCEL| MB_ICONQUESTION);

MessageBox(NULL, TEXT(“世界你好”), TEXT(“你好”),MB_ABORTRETRYIGNORE | MB_ICONEXCLAMATION);

(3)思考:

到这一步如果你只是在背诵“第一组和第二组中间放一个竖线就可以实现两种效果的组合形式”,那么你未来只会成为一个代码工人。我们要思考一下其背后的原理。

“|”是什么意思?“|”是位运算里的“或”运算,只有对应的两个二进位有一位为1时,结果位才为1,否则为0。MB_OK、MB_OKCANCEL等的低四位不同,但是高位永远为0;MB_ICONHAND、MB_ICONQUESTION等的低5至第8位不同,而其他位永远为0。这样“MB_OK、MB_OKCANCEL”组的数值与“MB_ICONHAND、MB_ICONQUESTION”组的数值进行或运算后能分别保留各自的部分,也就是在结果值中同时体现两组的取值。

这种风格叫“掩码”,在Windows编程中这种用法会经常用到。

(4)返回值

MessageBox是有返回值的,返回值为用户点击的按钮:

#define IDOK

1#define IDCANCEL

2#define IDABORT

3#define IDRETRY

4#define IDIGNORE

5#define IDYES6

#define IDNO7

代码:

int ret = MessageBox(NULL, TEXT(“你是人吗?”), TEXT(“火星人”),MB_YESNO | MB_ICONQUESTION);

if(ret==IDYES)

{

MessageBox(NULL, TEXT(“火星人你好”), TEXT(“问好”),MB_OK);}

else

{

MessageBox(NULL, TEXT(“欢迎回家来”), TEXT(“问好”),MB_OK);}

6、课后作业:自己动手写恶搞程序。

运行以后弹出询问对话框(有【是】、【否】两个按钮以及问号图标)“你是好人吗?”,如果点击【是】,则弹出对话框(只有一个【确定】按钮以及一个警告图标)“你看你就不像好人,点击【确定】开始格式化C盘!”;如果点击【否】,则弹出对话框(有【重试】、【取消】两个按钮)“尝试把你变成好人失败,是否重试?”。

别把教学视频当电影看!多练!多写

第五篇:C语言也能干大事 板书 第二节

板书:

运行以后弹出询问对话框(有【是】、【否】两个按钮以及问号图标)“你是好人吗?”,如果点击【是】,则弹出对话框(只有一个【确定】按钮以及一个警告图标)“你看你就不像好人,点击【确定】开始格式化C盘!”;如果点击

【否】,则弹出对话框(有【重试】、【取消】两个按钮)“尝试把你变成好人失败,是否重试?”。

1、怎么生成exe程序。怎么把做好的exe程序发给别人?

在我的电脑里直接进入工程文件夹。工程目录下生成的debug/release文件就是生成好的可执行文件,发给别人就可以。Debug和Release版本区别。怎么生成Release版本。

1、对话框程序

VC6下安装Win32 DialogBased Application

VC2008下安装Win32 DialogBased Application

如鹏的Win32 DialogBased Application没有做神奇的事情,只是简化了创建的过程,大家也可以手工创建,创建的代码可以在没有安装Win32 DialogBased Application Wizard的机器上用。演示在2008上从win32application 创建一个Win32 DialogBased Application。

在资源编辑器中编辑对话框界面并且拖放控件上去。试试常用的那些控件

什么是属性。

作业:开发一个注册界面。

2、常见问题

(1)开发Windows程序有什么前途?不要急于求成,用自己最熟悉的语言探索编程的各个方面,内核级开发、数据库、网络、动态网站开发等。学《C语言也能干大事》的目的并不是直接找开发Windows程序的工作,只要锻炼了动手能力和一通百通的数据库、网络、动态网站开发、面向对象等技能,学什么东西、找什么工作都很轻松。

(2)学MFC不是更好?MFC乱七八糟的东西太多,隐藏了太多,隐藏不仅没有有利于初学者学习,反而使得更复杂。MFC只是一个稍微封装的SDK,学会了这里的课程如果又需要再去学MFC的话会发现90%是相同的。

3、对话框中图片资源的应用在资源视图中,选择“引入”,然后文件过滤器选择“*.*”,找到bmp图片文件。选中图片空间,要点击边缘。拖一个IMAGE控件过来,并且修改IMAGE控件的Type属性为BitMap,在控件的Image属性中选择刚才添加的BITMAP资源。jpg的格式怎么转换为bmp格式的呢?用画图工具(mspaint)。图片被编译到了程序中,不再依赖于源文件

4、菜单资源

制作好菜单资源后,在对话框的Menu属性中选择刚才制作好的对话框。子菜单项(选中【弹出】)、快捷键(在要担当快捷键的字母前加&)、分隔符

5、只有控件、菜单,可以点击控件、菜单以后的动作怎么做呢?就要写代码了。后面会讲

下载c语言也能干大事第11节word格式文档
下载c语言也能干大事第11节.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    学习不好能干大事

    学习不好,能干大事!!! 专家指出:往往学习不好,上课玩手机或睡觉的人,他的大脑要比学习好的人聪明65%,如上课玩手机的学生,他的精力投在玩上,大脑的灵活率极度升高,而学习好的学生,他的精......

    没钱也能创业干大事

    马云创业真经:没钱也能创出大事业 没钱也能创出大事业 很多人都想创业,但他们似乎又有一个不创业的理由:我没有钱,我要是有钱的话,怎么怎么样……似乎只要有钱,他就一定能创......

    幼儿园语言教案 能干的绳子

    文档仅供参考 能干的绳子 一、活动内容:能干的绳子(故事) 二、活动目的:1、倾听故事,知道帮助别人是一件很快乐的事情。2、能说出绳子是如何帮助小老鼠和小羊的。三、活动准备:1......

    语言教案(公开课)能干的脚

    中班语言活动设计:能干的脚 活动目标:1、在阅读画面的基础上,认识动词:跑、跳、踢、踏。 2、会比较四个汉字的共同特征,初步了解汉字的构成规律。 活动准备:图片四张,跑、跳、踢、......

    大班语言活动《能干的我》

    大班语言活动《能干的我》 活动目标 : 1、让幼儿能用流利的语言说出自己在家帮父母做的一件事。2、幼儿能用我会--------说一句话。 3、体验帮助别人自己也是一种快乐,认识到......

    中班语言教案:能干的尾巴

    文档仅供参考 能干的尾巴(语言) 活动目标:1、初步培养对创编诗歌的兴趣,进一步激发幼儿对动物尾巴探索的兴趣。2、发展幼儿初步的语言组织能力和创编能力、细心倾听的能力。 3......

    小班综合课:我的左手也能干

    活动意图:许多孩子在三岁前都是用双手同时操作的,以后,他们使用右手的机会远远多于左手。左右手的灵活程度已出现明显差距。本次活动就是给孩子提供一个左手参与操作的机会。鼓......

    大班语言《能干的我》教案反思(范文)

    大班语言教学活动《能干的我》 杨丹萍 活动目标 : 1、让幼儿能用流利的语言说出自己在家帮父母做的一件事。2、幼儿能用“我会帮XX----”说一句话。 3、体验帮助别人自己也是......