Download presentation
Presentation is loading. Please wait.
Published by侑珠 能 Modified 7年之前
1
信息学院 测绘系 董超 Marchac-0968@163.com 文理楼1213 西
测 绘 程 序 设 计 第 一 章 绪 论 信息学院 测绘系 董超 文理楼1213 西
2
课程简介 学时: 理论 36 实验 18 学分: 3 1、课程内容简介
学时: 理论 实验 18 学分: 3 1、课程内容简介 以.NET平台上的C#语言来介绍测绘程序的编程思路、方法、步骤和技巧。 主要内容分为C#语言基础及测绘程序设计两部分。 学习的测绘程序包含简单测量程序、测量平差、坐标转换、路线测量计算程序及简单影像处理程序。
3
课程简介 2、课程教学的任务 3、课程的考核方法与要求 学习掌握基本测绘程序实现。
培养独立编写其它常用的测量应用程序的技能。提高利用计算机 技术实际问题的能力,为今后的学习和工作打下基础。 3、课程的考核方法与要求 平时成绩(包括提问、作业、出勤情况等)占30%,期末笔试 试卷考核成绩占70%。
4
课程简介 4、注意事项 编程语言 VB、C、C++、C#、PAD IDE Visual Stidio 2010, SharpDevelop
练习实验 认真练习,亲自编写,不要复制粘贴。 课程教材
5
目录 1.1 测绘程序设计的意义 1.2 .NET概述 1.3 .NET体系结构 1.4 C#及编程环境 1.5 创建控制台应用程序
1.1 测绘程序设计的意义 1.2 .NET概述 1.3 .NET体系结构 1.4 C#及编程环境 1.5 创建控制台应用程序 1.6 创建windows应用程序 小结
6
1.1 测绘程序设计的意义 计算机在现代测绘科学中的广泛应用带来极大便利 测绘软件不通用 编写相关专业程序,深化测量知识的过程。
方便、快速、准确,可重复性 测绘软件不通用 测绘相关软件丰富数据计算、制图、遥感影像处理、数字摄影测量、地理信 息系统(GIS)、 GPS平差计算等软件。 实际工作遇到的问题千差万别,特定应用需要掌握一门编程语言,设计 相应的程序解决实际问题。 编写相关专业程序,深化测量知识的过程。 随着 光谱数据(波峰波谷),设计程序分:独立开发,二次开发
7
1.1 测绘程序设计的意义
8
1.1 测绘程序设计的意义
9
1.1 测绘程序设计的意义
10
目录 1.1 测绘程序设计的意义 1.2 .NET概述 1.3 .NET体系结构 1.4 C#及编程环境 1.5 创建控制台应用程序
1.1 测绘程序设计的意义 1.2 .NET概述 1.3 .NET体系结构 1.4 C#及编程环境 1.5 创建控制台应用程序 1.6 创建windows应用程序 小结
11
1.2 .NET概述 .NET之前的世界 讨论.net之前,先思考一下现有这个平台诞生的原因。
C/WINDOWS API程序员的生活 联合使用C编程语言和Windows API是一种非常复杂的工作。 C语言非常简练,程序员要手动内存管理,讨厌的指针运算和语 法结构。 C语言不具备面向对象开发的优点。 Windows API定义的数以千计的全局函数和数据类型。 一直以来,人们都在找程序开发的“银弹”。语言、框架、架构和API曾被人们认为是找到了,但最终都在一些更好的至少是更新的东西前面黯然失色。
12
1.2 .NET概述 1.2.2 C++/MFC程序员的生活 1.2.3 VB6程序员的生活
C++编程语言对原始软件开发模式有很大的提升。C++是在C之上的面向对象层。但有了OOP带来的好处,还是无法避免上面的痛苦。 MFC的主要作用是把基本的Windows API的一个健全子集包装成类、宏和很多代码生成工具,但是无论多么强大,用他开发还是艰难并且容易犯错的过程。 VB6程序员的生活 因为简单,VB6开始流行,用户花费最少的功夫创建复杂的用户界面、代码库以及数据库访问逻辑。 最大不足是他是基于对象而不是面向对象,例如,VB6不允许程序员在类之间建立“is-a”的关系。
13
1.2 .NET概述 1.2.4 COM程序员的生活 COM是微软的前一个应用程序开发框架。是一种可复用的二进制模块。
优点是以语言无关的形式可以被访问。 COM被认为是一个非常成功的数据模型,但是背后太过于复杂,而且脆 弱的组件注册问题和很多部署相关的问题(DLL地狱)。 即简单又复杂。简单是相对于使用者,复杂是对于开发者,这被称为不对 称的开发方式。 举个例子,C++要调用VB里创建返回整型数组的方法,需要调用COM API创建SafeArray结构体,一下导致几十行代码,但这是唯一能兼容的 方式。类似复杂性还体现在boolean值上!
14
1.2 .NET概述 基于上述原因,微软在2001年首次提出了“.NET”的概念。 微软CEO-Steve Ballmer:
.NET代表一个集合,一个环境,一个可以作为 平台支持下一代Internet的可编程结构。 .NET最终目标: 让用户在任何地方、任何时间,利用任何设备都能访问所需信息、文件和程序。用户无需知道这些信息存放在何处,所有后台的复杂性是完全屏蔽的。 Steve Ballmer mono
15
目录 1.1 测绘程序设计的意义 1.2 .NET概述 1.3 .NET体系结构 1.4 C#及编程环境 1.5 创建控制台应用程序
1.1 测绘程序设计的意义 1.2 .NET概述 1.3 .NET体系结构 1.4 C#及编程环境 1.5 创建控制台应用程序 1.6 创建windows应用程序 小结
16
1.3 .NET体系结构 1.3.1 Visual Studio .NET
是一套完整的开发工具,用于创建各种类型的应用程序,包括 ASP Web 应用程序、XML Web services、桌面应用程序和移动应用程序。 .NET Framework是生成、部署和运行各种应用程序的平台.NET Framework 具有两个主要组成部分: 通用语言运行时(Common Language Runtime--CLR),是 .NET Framework 的基础 .NET Framework 类库。
17
.NET Framework体系结构 Windows Forms Data Classes Base Class Library
Operating System Common Language Runtime (CTS, JIT, Memory Management) Base Class Library (System.IO, System.Drawing, System.Threading) Data Classes (ADO.NET, XML, SQL) Windows Forms Web Applications Web Services Web Forms ASP .NET Mobile
18
1.3 .NET体系结构 (技术层次) OS 公共语言运行库CLR .NET类库 ADO.NET ASP.NET 公共语言规范(CLS) C# .NET Framework VB C++ ... Windows Form XML Common Language Specification CLS定义了在.NET平台上运行的语言所必须支持的最小规范,用以避免不同语言特性产生的错误,实现语言之间互操作性。 Common Language Runtime CLR是应用程序的执行引擎,负责程序安全地载入和运行用户程序代码,包括内存分配、垃圾收集和安全检查等,并保证应用和底层操作系统之间必要的分离。 mono
19
语言特定的编译器和运行库 代码被执行 VB 可执行 代码 可执行 编译器 C++ 代码 R U N T I M E
执行代码阶段通常称为运行时 可执行 代码
20
.NET代码的编译 IL 和 CLR 的使用 Intermediate Language Common Language Runtime C++ VB 编译器 IL + 元数据 可执行 代码 C L R R U N T I M E 代码被执行 .NET 程序被编译两次,第一次编译很慢,而第二次编译较快!
21
MSIL 中间语言 MSIL + 元数据 .NET 源 代码 语言 编译器 CLR 机器 代码 代码 被执行 帮助语言实现互操作
通过 CLR将 MSIL 转换为具体 CPU 的代码 IL不是字节代码,但很接近字节代码。因此,执行应用程序时,IL 到机器码的转换速度非常快! CPU 无关的指令集
22
IL语言范例 IL_0000: nop IL_0001: call IL_0006: nop IL_0007: ldc.i4.0
IL_000d: nop IL_000e: ldnull IL_000f: ldftn IL_0015: newobj IL_001a: call IL_001f: nop IL_0020: newobj IL_0025: call IL_002a: nop IL_002b: newobj IL_0030: throw
23
CLR 通用语言运行时CLR 管理内存 跨语言集成(特别是跨语言继承) 易于设计组件和应用程序,其对象可以跨语言互动
.NET 源 代码 MSIL + 元数据 机器 被执行 管理内存 易于设计组件和应用程序,其对象可以跨语言互动 跨语言集成(特别是跨语言继承) JIT 编译器:一次编译,就可运行在支持运行库的任何 CPU 和操作系统上 语言 编译器
24
1.3 .NET体系结构 实现一个程序的过程 (1)使用某种.NET兼容语言(如C#)编写应用程序代码
(2)把代码编译为CIL,存储在程序集中 (3)在执行代码时,首先必须使用JIT编译器将代码编译为本机代码 (4)在托管的CLR环境下运行本机代码,以及其他应用程序或进程 C#代码 C#应用程序代码 程序集 编译 程序集 本机代码 JIT编译 系统运行库 .NET CLR 本机代码
25
目录 1.1 测绘程序设计的意义 1.2 .NET概述 1.3 .NET体系结构 1.4 C#及编程环境 1.5 创建控制台应用程序
1.1 测绘程序设计的意义 1.2 .NET概述 1.3 .NET体系结构 1.4 C#及编程环境 1.5 创建控制台应用程序 1.6 创建windows应用程序 小结
26
1.4 C#及编程环境 C#可用于创建要运行在.NET CLR上的应用程序的语言之一,它从C和C++语言演化而来,是微软专门为使用.NET平台而创建的。 C#开发应用程序比使用C++简单,因为语法比较简单 在C++中能完成的任务几乎都能利用C#完成 C#代码比C++略长,因为C#是一种类型安全的语言。在类型之间转换时,必须遵守严格的规则。在C#中不能完成诸如把4字节的内存分配给这个数据后,使其有10个字节长,并把它解释为“X”的任务。
27
1.4 C#及编程环境 C#能写什么程序 Web程序:主要是利用ASP.NET技术开发的动态网站,用户可以使用IE浏览器进行访问,是B/S模式的应用程序。 Windows程序:这种程序运行在客户机上,常有一到多个Form元素,是一种典型的C/S模式应用。 移动数字设备程序:为智能手机、PDA、便携式游戏机等开发的应用程序。 局域网应用程序:局域网中的分布式计算机之间需要互相通过.NET Remoting(.NET远程)等技术进行通信。 Web Services应用程序:基于XML Web Services技术开发的跨平台、跨系统的分布式系统。 …
28
1.4 C#及编程环境 VS安装 略 Sharpdevelop安装
29
目录 1.1 测绘程序设计的意义 1.2 .NET概述 1.3 .NET体系结构 1.4 C#及编程环境 1.5 创建控制台应用程序
1.1 测绘程序设计的意义 1.2 .NET概述 1.3 .NET体系结构 1.4 C#及编程环境 1.5 创建控制台应用程序 1.6 创建windows应用程序 小结
30
1.5 创建控制台应用程序
31
1.5 创建控制台应用程序
32
1.5 创建控制台应用程序
33
1.5 创建控制台应用程序
34
1.5 创建控制台应用程序
35
1.5 创建控制台应用程序
36
编译和执行 C# 应用程序 要生成 C# 项目,请从菜单中选择“生成” “生成解决方案”
该过程将编译项目中包括的所有文件,编译结果显示在“输出”窗口中 如果结果显示“生成: 1 成功或最新,0失败,0被跳过”,则说明已经成功生成,然后即可交付该应用程序
37
1.5 创建控制台应用程序
38
1.5 创建控制台应用程序 C# 应用程序文件夹结构 创建一个与项目同名的文件夹。 该文件夹包含项目文件“xx.csproj”和其他关联文件
每个新项目都创建了 bin、obj和Properties 三个文件夹。 Bin和obj这两个文件夹下都有一个 Debug 子目录,其中包含可执行文件 HelloWorld.exe 在解决方案资源管理器中启用“显示所有文件”选项,可查看项目的结构
39
程序入口点, Main 的返回类型为 void 控制台类的 WriteLine() 方法用于显示输出结果
Hello World 程序 描述代码的注释 //这是用 C# 编写的一个简单的 HelloWorld 程序 using System; namespace Notepad { class HelloWorld static void Main() Console.WriteLine("Hello World"); } 导入 System 命名空间 声明命名空间 Notepad 声明 HelloWorld 类 程序入口点, Main 的返回类型为 void 控制台类的 WriteLine() 方法用于显示输出结果 将文件保存为 *.cs
40
1.5 创建控制台应用程序 说明: 1. 程序一般包括以下几部分: 2.类中包含了程序所要用到的数据和所要执行的方法的定义。每个类中可以有:
1. 程序一般包括以下几部分: 名称空间的引用:使用using关键字指明引用的名称空间。 名称空间的声明:使用namespace关键字声明名称空间。 类:使用class关键字声明类。 Main方法:Main方法是C# 程序的入口。 2.类中包含了程序所要用到的数据和所要执行的方法的定义。每个类中可以有: (1)变量声明 (2)构造函数 (3)方法 (4)属性 (5)事件 3. 一个文件中可以有1个或者多个类。 4. 所有语句都以分号";"结束。
41
目录 1.1 测绘程序设计的意义 1.2 .NET概述 1.3 .NET体系结构 1.4 C#及编程环境 1.5 创建控制台应用程序
1.1 测绘程序设计的意义 1.2 .NET概述 1.3 .NET体系结构 1.4 C#及编程环境 1.5 创建控制台应用程序 1.6 创建windows应用程序 小结
42
1.6 创建windows应用程序
43
1.6 创建windows应用程序
44
1.6 创建windows应用程序
45
1.6 创建windows应用程序
46
1.6 创建windows应用程序
47
1.6 创建windows应用程序
48
目录 1.1 测绘程序设计的意义 1.2 .NET概述 1.3 .NET体系结构 1.4 C#及编程环境 1.5 创建控制台应用程序
1.1 测绘程序设计的意义 1.2 .NET概述 1.3 .NET体系结构 1.4 C#及编程环境 1.5 创建控制台应用程序 1.6 创建windows应用程序 小结
49
小结 本章主要内容包括 作业,安装编程环境,创建一个控制台程序与WinForm程序(输出自己的姓名) .NET的基本概念及体系
C#程序的概念 C#的编程环境 控制台程序与winform程序的实现。 作业,安装编程环境,创建一个控制台程序与WinForm程序(输出自己的姓名)
Similar presentations