1、北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌C程序设计程序设计祝大家新学期快乐!祝大家新学期快乐!新学期新气象!新学期新气象!北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌自我介绍自我介绍 任课教师:任课教师:孙细斌孙细斌 电子邮箱:电子邮箱: 电话:电话:15819465255 网络教室:网络教室:http:/ C2005程序设计程序设计北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌课程特点课程特点.NET平台学习的入门课程。平台学习的入门课程。微软认证专家认证考试的必修课之一。微软认证专家认证考试的必修课之一。是今后需学习的其它微软专家认证课程的是今后需学习的其它
2、微软专家认证课程的基础课程。基础课程。针对网络工程的学生针对网络工程的学生,会有相应的后续课程会有相应的后续课程 (1)Web程序设计程序设计(ASP.NET)(2)网络编程网络编程(C#版版)北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌课课程程结结构构 第一章第一章 绪论绪论 第二章第二章 程序设计基础程序设计基础 第三章第三章 面向对象与对象模型面向对象与对象模型 第四章第四章 C面向对象编程基础面向对象编程基础 第五章第五章 C面向对象编程深入面向对象编程深入 第六章第六章 开发过程与程序调试开发过程与程序调试 第七章第七章 Windows程序设计程序设计 第八章第八章 文件操
3、作文件操作 第九章第九章 数据库程序开发数据库程序开发北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌如何学?如何学?希望和要求:希望和要求:上课要认真,上机要投入,尽可能在课堂时上课要认真,上机要投入,尽可能在课堂时间内消化新内容。间内消化新内容。课后要勤思考、勤动手,多多上机实践。课后要勤思考、勤动手,多多上机实践。要做好预习和复习工作。要做好预习和复习工作。要带着任务、目的的学。要带着任务、目的的学。要多看书、多交流,学会资料的查询。要多看书、多交流,学会资料的查询。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌课程安排课程安排 一共一共48学时,包括学时,包括32学时的理
4、论教学和学时的理论教学和16学时的上机学时。学时的上机学时。最终期末成绩最终期末成绩30的平时成绩的平时成绩70的的笔试成绩笔试成绩 30的平时成绩的平时成绩10考勤考勤+10上机实践上机实践练习练习10作业作业北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌作业安排作业安排 每一讲内容结束后都会留有思考题或课后每一讲内容结束后都会留有思考题或课后练习。练习。每一章都需要自己上机调试书本上的示例每一章都需要自己上机调试书本上的示例代码及课后习题代码。代码及课后习题代码。上机练习(上机练习(7-8次)要求在上机时间结束之次)要求在上机时间结束之前提交当次上机布置的作业,不允许迟交。前提交当
5、次上机布置的作业,不允许迟交。10作业:完成一个完整的作业:完成一个完整的C#应用程序应用程序(有实际功能)及相应的说明文档。(以(有实际功能)及相应的说明文档。(以兴趣小组的形式)兴趣小组的形式)北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌学习学习C#后可以从事的职位后可以从事的职位.NET开发工程师开发工程师开发环境的安装开发环境的安装:(1)VS2008/2010安装安装 (2)MSDN2008安装安装北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌C程序设计程序设计第第1章章 绪论绪论北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌学习目标学习目标 了解了解.NE
6、T Framework 了解了解C 了解了解Visual Studio开发环境开发环境 编写一个简单的编写一个简单的C程序程序 掌握编写、编译及运行掌握编写、编译及运行C程序的一般步骤程序的一般步骤 掌握掌握Windows应用程序项目的创建应用程序项目的创建北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1.1.NET介绍介绍.NET之前的世界:之前的世界:C/Win32 API C+/MFC VB6.0 Java/J2EE COM Windows DNA北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1.1.1 Microsoft.NET概述概述.NET本身并不是一种产品或服务,
7、而是关于未来本身并不是一种产品或服务,而是关于未来计算技术、软件开发方式和应用的一种构思,它计算技术、软件开发方式和应用的一种构思,它包含一组产品与服务。包含一组产品与服务。核心功能:核心功能:对已有代码具有完全的互操作性对已有代码具有完全的互操作性 完全的语言集成完全的语言集成 所有支持所有支持.NET的语言公共运行库引擎的语言公共运行库引擎 基类库基类库 不关注不关注COM底层操作底层操作 真正简化的部署模型真正简化的部署模型北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1.1.2 .NET Framework.NET Framework是是Microsoft为开发应用为开发应用程
8、序而创建的一个富有革命性的新平台。程序而创建的一个富有革命性的新平台。.NET Framework的设计方式保证它可以用的设计方式保证它可以用于各种语言。于各种语言。.NET Framework主要包含一个非常大的代主要包含一个非常大的代码库(类库),可以通过面向对象编程技码库(类库),可以通过面向对象编程技术(术(OOP)来使用这些代码。)来使用这些代码。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1.1.2 .NET Framework.NET Framework还包含还包含.NET公共语言运行公共语言运行时(时(Common Language Runtime CLR),),负责
9、管理用负责管理用.NET库开发的所有应用程序的库开发的所有应用程序的执行,是执行,是.NET Framework的核心。的核心。.NET平台构造块:平台构造块:CLR(公共语言运行库)(公共语言运行库)CTS(公共类型系统)(公共类型系统)CLS(公共语言规范)(公共语言规范)北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1.1.2 .NET Framework CLR的主要作用是为我们的主要作用是为我们定位、加载和管理定位、加载和管理.NET类型,同时也负责大量低层细节的工作类型,同时也负责大量低层细节的工作,如内存,如内存管理、安全检查等管理、安全检查等,在在CLR上运行的代码都是
10、托管上运行的代码都是托管代码。代码。CTS,完整地描述了运行库所支持的所有可能的完整地描述了运行库所支持的所有可能的数据类型和编程结构,指定了这些实体间如何交数据类型和编程结构,指定了这些实体间如何交互,也规定了他们在互,也规定了他们在.NET元数据格式中的表示元数据格式中的表示。CLS,是一个相关的规范,是一个相关的规范,定义了一个让所有定义了一个让所有的的.NET语言都支持的公共类型和编程结构的子集语言都支持的公共类型和编程结构的子集。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌.NET 框架框架北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌北京理工大学珠海学院北京理工大
11、学珠海学院 孙细斌孙细斌类库类库 基类库(基类库(BCL,Base Class Library)ADO.NET:数据访问和:数据访问和XML ASP.NET:Web服务和服务和Web窗体窗体 Windows窗体类窗体类 注:注:目前都统称为基类库。目前都统称为基类库。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌基类库基类库数据访问数据访问Windows窗体窗体安安 全全XML/SOAP线线 程程文件输入文件输入/输出输出Web窗体窗体其其 他他CLRCTSCLS北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1.1.3 创建
12、和编译创建和编译.Net应用程序的步骤应用程序的步骤 在在.NET中编译分两个阶段:中编译分两个阶段:把源代码编译成公共中间语言把源代码编译成公共中间语言MSIL(Microsoft Intermediate Language)。)。JIT编译器把编译器把MSIL编译为平台专用的代码。编译为平台专用的代码。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1.1.3 创建和编译创建和编译.Net应用程序的步骤应用程序的步骤 使用某种使用某种.NET兼容语言(兼容语言(C)编写应用)编写应用程序代码。程序代码。把代码编译为把代码编译为MSIL(CIL),存储在程序),存储在程序集中。集中。在
13、执行代码时,首先必须使用在执行代码时,首先必须使用JIT编译器编译器将代码编译为本机代码。将代码编译为本机代码。在托管的在托管的CLR环境下运行本机代码。环境下运行本机代码。托管代码托管代码北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1.1.3 创建和编译创建和编译.Net应用程序的步骤应用程序的步骤C代码代码编译编译程序集程序集JIT编译编译本机代码本机代码系统运行库系统运行库.NET CLR本机本机代码代码本机本机代码代码本机本机代码代码MSIL北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌.NET 框架框架WindowsWeb ServicesADO.NETData T
14、ypeVisual Basic 应用程序应用程序Visual C#应应用程序用程序Visual C+应用程序应用程序Programming Services.NET 平平台代码台代码源代码编译为源代码编译为 MSILJIT 编译器生成机器码编译器生成机器码北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1.2 C#语言简介语言简介1.2.1 C概述概述 C是与是与.NET平台一起发布的,是平台一起发布的,是Microsoft专门专门为使用为使用.NET平台而创建的一门新的语言。平台而创建的一门新的语言。C#的语法和的语法和Java的语法很相似,都是基于的语法很相似,都是基于C+的的语法结
15、构,可视为语法结构,可视为Java的提炼版。的提炼版。C#是多种语言的混合体,因此它像是多种语言的混合体,因此它像Java一样语法一样语法简洁,像简洁,像VB一样使用简单,像一样使用简单,像C+一样功能强大一样功能强大和灵活。和灵活。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1.2.2 用用C能编写的应用程序能编写的应用程序 Windows应用程序:使用应用程序:使用.NET Framework的的Windows Forms模块就可以生成。模块就可以生成。Web应用程序:可以使用应用程序:可以使用C通过通过Web Forms创创建建ASP.NET应用程序。应用程序。Web服务:创建
16、各种分布式应用程序的新方式,使服务:创建各种分布式应用程序的新方式,使用用Web服务可以通过服务可以通过Internet虚拟交互数据。虚拟交互数据。数据库访问:可以通过数据库访问:可以通过.NET Framework的的ADO.NET部分来实现。部分来实现。控件控件库库北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1.2.3 编写和运行编写和运行C代码需要的环境代码需要的环境 要运行要运行.NET编写的代码(编写的代码(C)需要安)需要安装装.NET SDK,即安装,即安装.NET Framework 2.0,即需要即需要.NET运行库,即运行库,即CLR环境。环境。微软提供了名为微软
17、提供了名为dotnetfx.exe的免费安装包。的免费安装包。一般使用一般使用Visual Studio.NET集成开发环境。集成开发环境。该课程采用该课程采用Visual Studio 2008。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1.3 Visual Studio.NET 开发环境开发环境 本课程使用本课程使用Visual Studio.NET进行所有开进行所有开发,包括简单的命令行应用程序,及复杂发,包括简单的命令行应用程序,及复杂的项目类型。的项目类型。Visual Studio.NET 是微软针对是微软针对.NET平台平台推出的一种集成开发环境。推出的一种集成开发环
18、境。Visual Studio.NET提供了功能强大的调试提供了功能强大的调试器和各种各样的设计器,如器和各种各样的设计器,如Windows Forms和和Web Forms设计器。设计器。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌集成开发环境集成开发环境 Visual Studio.NET数据访问数据访问 XML WebService 工具工具Windows窗体工具窗体工具Web 窗体窗体 工具工具错误处理错误处理 多语言支持多语言支持 北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌北京理工大学珠海学院北京理工大学珠海
19、学院 孙细斌孙细斌用来存放创建用来存放创建应用程序的项应用程序的项目文件和解决目文件和解决方案的容器方案的容器北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌解决方案文件和项目文件解决方案文件和项目文件.sln Visual Studio解决方案文件解决方案文件.suo 解决方案用户选项文件解决方案用户选项文件.cs Visual C项目的窗体、用户控件、类和项目的窗体、用户控件、类和模块文件模块文件.csproj 表示属于多项目的窗体文件、用户控件表示属于多项目的窗体文件、用户控件文件、类文件和模块文件。文件、类文件和模块文件。.aspx web文件文件.asmx XML Web Se
20、rvice文件文件北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1.4 编写一个简单的编写一个简单的C程序程序 第一步,第一步,创建新创建新项目项目控制控制台应用台应用程序。程序。1.4.1 运用运用Visual Studio.NET 编写编写C程序程序北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1.4.1 运用运用Visual Studio.NET 编写编写C程序程序 第二步,第二步,在代码在代码视图中视图中添加代添加代码。码。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1.4.1 运用运用Visual Studio.NET 编写编写C程序程序 第三步,运行调试程
21、序,启动按钮第三步,运行调试程序,启动按钮 ,或,或按按F5键,先调试检测错误,然后执行程序。键,先调试检测错误,然后执行程序。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1.4.1 运用运用Visual Studio.NET 编写编写C程序程序 第四步,查看运行结果。第四步,查看运行结果。第五步,保存程序。第五步,保存程序。static void Main(string args)Console.WriteLine(欢迎学习欢迎学习C程序设程序设计!计!);Console.ReadKey();北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1.5 创建创建Windows应用程
22、序应用程序 第一步,第一步,新建项目,新建项目,在在“新建新建项目项目”窗窗口中选择口中选择“Windows应用程应用程序序”。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1.5 创建创建Windows应用程序应用程序 第二步,添加控件,第二步,添加控件,在在“工具箱工具箱”中选中选择一个择一个“Label”控控件和一个件和一个“button”控件分别拖动到窗控件分别拖动到窗体中。体中。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1.5 创建创建Windows应用程序应用程序 第三步,修改属性,第三步,修改属性,选择菜单
23、选择菜单“视视图图”“属性窗口属性窗口”来来打开属性窗口,激打开属性窗口,激活窗体活窗体Form1,在相,在相应的属性窗口中将属应的属性窗口中将属性性text设置为设置为“范例范例程序程序”。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1.5 创建创建Windows应用程序应用程序 激活激活Label1控控件,在属性窗件,在属性窗口中设置各属口中设置各属性值,如右图。性值,如右图。按钮按钮button1的的属性设置操作属性设置操作也是类似。也是类似。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1.5 创建创建Windows应用程序应用程序 修改好整个窗修改好整个窗体、体、l
24、abel1控控件和按钮件和按钮button1的属的属性后,结果如性后,结果如图:图:北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1.5 创建创建Windows应用程序应用程序 第四步,编写代码,在第四步,编写代码,在“解决方案资源管解决方案资源管理器理器”中选择中选择“Form1.cs”或直接在视图上或直接在视图上单击鼠标右键,选择单击鼠标右键,选择“查看代码查看代码”命令,命令,进入代码视图,双击进入代码视图,双击“显示显示”按钮,则可按钮,则可在代码中自动添加在代码中自动添加Click事件函数,则可直事件函数,则可直接在函数中输入如下代码,来实现点击按接在函数中输入如下代码,来实
25、现点击按钮的事件响应操作:钮的事件响应操作:label1.Text=祝你学习愉快!祝你学习愉快!;北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1.5 创建创建Windows应用程序应用程序 第五步,运行调试程序,启动按钮第五步,运行调试程序,启动按钮 ,检,检测无误通过编译,运行结果:测无误通过编译,运行结果:北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1.5 创建创建Windows应用程序应用程序 第六步,保存程序。第六步,保存程序。总结:总结:Visual Studio.NET提供了提供了许多控件及设计器,许多控件及设计器,可以方便的创建可以方便的创建Windows应用
26、程序。应用程序。北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌1.6 程序开发的一般过程程序开发的一般过程1.Visual Studio.NET应用程序的创建过程应用程序的创建过程包括包括7个步骤:个步骤:编写设计说明书编写设计说明书 设计用户界面设计用户界面 设置用户界面中各对象的属性设置用户界面中各对象的属性 编写代码编写代码 测试和调试应用程序测试和调试应用程序 生成可执行文件生成可执行文件 创建应用程序的安装程序创建应用程序的安装程序北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌2.程序设计的一般过程程序设计的一般过
27、程 问题建模问题建模 算法设计算法设计 编写代码编写代码 编译调试编译调试北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌回顾与思考回顾与思考.NET几个术语概念:几个术语概念:.NET Framework CLR 程序集程序集 托管代码托管代码 MSIL/CIL 垃圾收集垃圾收集北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌回顾与思考回顾与思考 开发环境的使用(开发环境的使用(Visual Studio.NET)创建和编译创建和编译C程序的一般方法和步骤程序的一般方法和步骤 Windows应用程序的创建应用程序的创建 程序开发的一般过程程序开发的一般过程北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌思考思考 _ 是独立于是独立于CPU 的指令集,它可以被高效地的指令集,它可以被高效地转换为特定于某种转换为特定于某种CPU 的代码。的代码。A.MSIL B.CLS C.CLR D.XML Web Service 在在Visual Studio.NET 窗口中,在窗口中,在_ 窗口中可以窗口中可以察看当前项目的类和类型的层次信息。察看当前项目的类和类型的层次信息。A.解决方案资源管理器解决方案资源管理器B.属性属性C.资源视图资源视图D.类视图类视图 北京理工大学珠海学院北京理工大学珠海学院 孙细斌孙细斌第一讲第一讲 结束结束再见!再见!