设为首页收藏本站

如鹏网

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 145698|回复: 396

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

[复制链接]

184

主题

0

好友

1万

积分

超级版主

Rank: 8Rank: 8

发表于 2010-1-21 17:26:12 |显示全部楼层
教学视频录像(在线非清晰版):



无需下载电骡客户端,照样下载如鹏电骡站资源
http://www.rupeng.com/forum/viewthread.php?tid=12021&extra=


清晰版请下载:(请用IE打开此链接,不要“直接另存为” 安装迅雷,电骡 等下载软件会自动识别。或者直接右键点击---弹出菜单“使用迅雷下载”)
[url=C璇█椤圭洰寮鍙戝疄鎴樹箣-c璇█涔熻兘骞插ぇ浜1.rar (46.95 MB)]C璇█椤圭洰寮鍙戝疄鎴樹箣-c璇█涔熻兘骞插ぇ浜1.rar (46.95 MB)[/url]


更多资源http://www.verycd.com/topics/2800166/

板书:

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

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

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

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

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

4、向Windows的世界问好

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

VC6VistaWindows下编译调试时可能有兼容性提示。

5、学本课程常见问题

1为什么不用TurboC


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

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

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

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

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

6、深入研究MessageBox

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

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


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


TEXT
是一个宏,当字符串中有中文的时候最好用TEXT来包围这个字符串,虽然不使用TEXTVC6中没问题,但是在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 ,否则为0MB_OK、MB_OKCANCEL等的低四位不同,但是高位永远为0;MB_ICONHANDMB_ICONQUESTION等的低5至第8位不同,而其他位永远为0。这样“MB_OK、MB_OKCANCEL”组的数值与“MB_ICONHANDMB_ICONQUESTION”组的数值进行或运算后能分别保留各自的部分,也就是在结果值中同时体现两组的取值。

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

4)返回值


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

#define IDOK
1

#define IDCANCEL
2

#define IDABORT
3

#define IDRETRY
4

#define IDIGNORE
5

#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盘!”;如果点击【否】,则弹出对话框(有【重试】、【取消】两个按钮)“尝试把你变成好人失败,是否重试?”。

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

37

主题

0

好友

3754

积分

论坛元老

Rank: 8Rank: 8

发表于 2010-1-21 17:28:53 |显示全部楼层
第二版和第一版有什么区别呢?老大可否解释一下。

81

主题

0

好友

1万

积分

超级版主

值班斑竹

Rank: 8Rank: 8

优秀版主勋章 如鹏MVP提名勋章 优秀站友

发表于 2010-1-21 17:37:39 |显示全部楼层
第二版和第一版有什么区别呢?老大可否解释一下。
牛啃草 发表于 2010-1-21 17:28



    看看编译器就知道了啊,现在用的是VC6的,当然会有区别的啊。老大辛苦啦
已有 1 人评分鹏币 收起 理由
kider + 2 感谢帮助他人

总评分: 鹏币 + 2   查看全部评分

走自己的路,让别人去说吧!做自己问心无愧的事,让别人去说吧!
http://blog.sina.com.cn/cjfl1234

10

主题

0

好友

1960

积分

金牌会员

Rank: 6Rank: 6

发表于 2010-1-21 18:05:57 |显示全部楼层
看看编译器就知道了啊,现在用的是VC6的,当然会有区别的啊。老大辛苦啦
cjfl1234 发表于 2010-1-21 17:37



    那我问下,以前讲的从C-FREE跳到VC6。0什么样,我现在还是没看C语言也能看大事。
会不会存在一些问题。
虚心求学.

6

主题

0

好友

8593

积分

版主

Rank: 7Rank: 7Rank: 7

发表于 2010-1-21 19:14:56 |显示全部楼层
C-FREE 软件本身问题太多了啊
VC普遍。。。
学习不是因为缺少时间而是缺少努力--MyBlog
  Studies this matter, lacks the time, but is lacks diligently.
                  ----xiao祥 加油 UP UP UP

3

主题

0

好友

504

积分

高级会员

Rank: 4

发表于 2010-1-21 19:37:39 |显示全部楼层
比原版本好多了 直接用VC6更实用 我记得原来的十二节 是讲C-free到VC6的转换 开始看过以后还是没有太懂操作。而且这次好像是特意录制的比较清晰明确,而以前好像是在UC聊天室给别人讲课时录制说实话有时有点乱。不时跳个QQ的对话框还是对视频有影响的,而且中途有时等待间隙过长,使得视频都是超过一个小时以上。

1

主题

0

好友

829

积分

高级会员

Rank: 4

发表于 2010-1-21 19:50:53 |显示全部楼层
太感谢老大了 ,这次的视频尺寸小了,方便了我们这些用老电脑的人,再次感谢!!!

13

主题

0

好友

888

积分

高级会员

Rank: 4

发表于 2010-1-21 20:18:04 |显示全部楼层
强烈感谢老大啊,付出了这么多,视频回家啊一定要好好看看,向老大说的多看细看,这个第二版前面的我在这个假期在看一遍,就当复习了,也别对不起老大为我们辛辛苦苦整理的啊。呵呵。老大辛苦了!

0

主题

0

好友

68

积分

注册会员

Rank: 2

发表于 2010-1-21 21:51:36 |显示全部楼层
请问这是怎么回事,换了好多个VC版本了??
谢谢!

--------------------Configuration: 01 - Win32 Debug--------------------
Compiling...
StdAfx.cpp
Compiling...
01.cpp
C:\Program Files\Microsoft Visual Studio\MyProjects\01\01.cpp(12) : error C2018: unknown character '0xa3'
C:\Program Files\Microsoft Visual Studio\MyProjects\01\01.cpp(12) : error C2018: unknown character '0xac'
C:\Program Files\Microsoft Visual Studio\MyProjects\01\01.cpp(12) : error C2018: unknown character '0xa3'
C:\Program Files\Microsoft Visual Studio\MyProjects\01\01.cpp(12) : error C2018: unknown character '0xac'
C:\Program Files\Microsoft Visual Studio\MyProjects\01\01.cpp(12) : error C2143: syntax error : missing ')' before 'constant'
C:\Program Files\Microsoft Visual Studio\MyProjects\01\01.cpp(12) : error C2660: 'MessageBoxA' : function does not take 2 parameters
C:\Program Files\Microsoft Visual Studio\MyProjects\01\01.cpp(12) : error C2059: syntax error : ')'
执行 cl.exe 时出错.

01.exe - 1 error(s), 0 warning(s)

0

主题

0

好友

68

积分

注册会员

Rank: 2

发表于 2010-1-21 21:55:22 |显示全部楼层
[size 12]我的代码绝对没有问题

12

主题

0

好友

1144

积分

金牌会员

Rank: 6Rank: 6

如鹏MVP提名勋章

发表于 2010-1-21 21:57:59 |显示全部楼层
回复 9# 又一眼
把你的代码打包传上来

0

主题

0

好友

68

积分

注册会员

Rank: 2

发表于 2010-1-21 22:06:26 |显示全部楼层
你好,就视频上面那个。

01.rar

586.23 KB, 下载次数: 11450

12

主题

0

好友

1144

积分

金牌会员

Rank: 6Rank: 6

如鹏MVP提名勋章

发表于 2010-1-21 22:08:40 |显示全部楼层
全角逗号的问题“,”→“,”
已有 1 人评分鹏币 收起 理由
cjfl1234 + 2 感谢帮助他人

总评分: 鹏币 + 2   查看全部评分

0

主题

0

好友

68

积分

注册会员

Rank: 2

发表于 2010-1-21 22:18:31 |显示全部楼层

0

主题

0

好友

68

积分

注册会员

Rank: 2

发表于 2010-1-21 22:23:15 |显示全部楼层
刚才好了,咋又不对了

--------------------Configuration: 2 - Win32 Debug--------------------
Compiling...
2.cpp
c:\program files\microsoft visual studio\myprojects\2\2.cpp(4) : fatal error C1083: Cannot open precompiled header file: 'Debug/2.pch': No such file or directory
执行 cl.exe 时出错.

2.obj - 1 error(s), 0 warning(s)

12

主题

0

好友

1144

积分

金牌会员

Rank: 6Rank: 6

如鹏MVP提名勋章

发表于 2010-1-21 22:25:03 |显示全部楼层
主菜单:组建→全部重建,还不行的话就不知道了

0

主题

0

好友

68

积分

注册会员

Rank: 2

发表于 2010-1-21 22:32:49 |显示全部楼层
原来如此啊,很感谢!

0

主题

0

好友

963

积分

高级会员

Rank: 4

发表于 2010-1-22 10:16:20 |显示全部楼层
做自己喜欢的事情,积极的生活

0

主题

0

好友

23

积分

新手上路

Rank: 1

发表于 2010-1-22 10:32:23 |显示全部楼层
第一个 还没看完第二季就又出来了 ...老大辛苦了

1

主题

0

好友

673

积分

高级会员

Rank: 4

发表于 2010-1-22 13:25:48 |显示全部楼层
努力学习

9

主题

0

好友

575

积分

高级会员

Rank: 4

发表于 2010-1-23 00:25:47 |显示全部楼层
第一个 还没看完第二季就又出来了 ...老大辛苦了
crystalhk 发表于 2010-1-22 10:32



    好像内容一样只是工具和一些东西修改了的?123--如鹏
磨刀不负砍柴工,努力磨刀!

4

主题

0

好友

56

积分

注册会员

Rank: 2

发表于 2010-1-23 20:47:27 |显示全部楼层
终于不用C-FREE了,VC更实用

0

主题

0

好友

11

积分

新手上路

Rank: 1

发表于 2010-1-24 01:39:07 |显示全部楼层
GOOD~非清晰版也很清晰啊

0

主题

0

好友

163

积分

注册会员

Rank: 2

发表于 2010-1-24 07:50:19 |显示全部楼层

3

主题

0

好友

108

积分

注册会员

Rank: 2

发表于 2010-1-24 12:47:27 |显示全部楼层

9

主题

0

好友

312

积分

中级会员

Rank: 3Rank: 3

发表于 2010-1-25 02:15:01 |显示全部楼层
过来交作业来了哈哈。



  1. #include "stdafx.h"
  2. int APIENTRY WinMain(HINSTANCE hInstance,
  3.                      HINSTANCE hPrevInstance,
  4.                      LPSTR     lpCmdLine,
  5.                      int       nCmdShow)
  6. {
  7.   // TODO: Place code here.
  8. int ret=MessageBox(NULL,TEXT("你是好人吗?"),TEXT ("问下你是不是好人^_^"),MB_ICONQUESTION|MB_YESNO);
  9. if(ret==IDYES)
  10. {
  11.   MessageBox(NULL,TEXT("我看你不像好人!,点击确定格式化你的c盘"),TEXT ("敢来骗我啊你"),MB_ICONHAND|MB_OK);
  12.   
  13. }
  14. else
  15. {
  16. MessageBox(NULL,TEXT("尝试把你变成好人失败,是否重试"),TEXT ("我来挽救你来了"),MB_ICONQUESTION
  17. |MB_RETRYCANCEL);
  18. }
  19. return 0;
  20. }

复制代码
非常感谢中科老师,我的程序也运行正常了!

0

主题

0

好友

185

积分

注册会员

Rank: 2

发表于 2010-1-25 14:17:22 |显示全部楼层
我也来交作业!请老师检查下。

#include "stdafx.h"

#if 1
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdLine,int CmdShow)

{       
        #if 0
       
        int m = 1;
        int n = 1;
        int p = m&n;
       
        #endif       
       
        int m;
        int i = MessageBox(NULL,TEXT("你是好人吗?"),TEXT("询问"),MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON2);
        if(i == IDYES)
        {
                MessageBox(NULL,TEXT("你看你就不像个好人,开始格式化C盘!"),TEXT("格式化!"),MB_OK|MB_ICONINFORMATION);                               
        }
        if(i == IDNO)
        {
                int n = MessageBox(NULL,TEXT("尝试把你变成好人失败?"),TEXT("重试!"),MB_RETRYCANCEL);
                if(n == IDRETRY)
                {
                        MessageBox(NULL,TEXT("你真是个好人!"),TEXT("好人"),MB_OK);
                }
                else
                        for(m=0; m < 10; m++)
                        {
                                MessageBox(NULL,TEXT("给你10次做好人的机会!"),TEXT("坏人!"),MB_OK);
                        }
        }
        return 0;       
       
}
#endif

10

主题

0

好友

1960

积分

金牌会员

Rank: 6Rank: 6

发表于 2010-1-25 18:16:51 |显示全部楼层
虚心求学.

1

主题

0

好友

124

积分

注册会员

Rank: 2

发表于 2010-1-26 17:07:58 |显示全部楼层
请问以下程序出现错误如何处理:
我按下run之后出现“This file does not exist.Do you want to build it?”
// test hello.cpp : Defines the entry point for the application.
//

#include "stdafx.h"

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
        // TODO: Place code here.
    MessageBox(NULL,TEXT("世界你好"),TEXT("问好"),MB_OK);
        return 0;
}

13

主题

0

好友

3692

积分

论坛元老

Rank: 8Rank: 8

发表于 2010-1-26 17:21:07 |显示全部楼层
请问以下程序出现错误如何处理:
我按下run之后出现“This file does not exist.Do you want to build it? ...
liyatang 发表于 2010-1-26 17:07



    重新构建,还有你MessageBox ()里面有一个逗号是不是写错了,应该是英文下的逗号
纵然笑脸迎笑脸=未必真心待真心
您需要登录后才可以回帖 登录 | 注册

手机版|Archiver|如鹏网 ( 粤ICP备09013919号 )   360网站安全检测平台

GMT+8, 2012-5-19 16:15

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部