版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.1系统技术栈介绍深圳市信息职业技术学院——SMOM技术栈介绍系统技术栈组成01目
录.Net技术介绍02WebUI(extjs)03PDA(vue)04工业管理软件系统(SMOM)支持的数据库05学习目标通过本节学习可以:了解工业管理软件系统技术栈组成;工业管理软件后端使用的开发语言?工业管理软件UI使用的框架?工业app使用的开发框架?工业管理软件支持的数据库包含哪些?01系统技术栈介绍工业管理软件系统的技术栈02.NET技术介绍思考题工业管理软件后端开发为什么使用.net框架?.NET技术介绍工业管理软件系统主要的基础平台和业务功能模块都是基于.NET框架和相关系列技术栈进行实现。.NET是一个可以用来构建现代、可伸缩和高性能的跨平台软件应用程序的通用开发框架。可用于为Windows、Linux和MacOS构建软件应用程序。.NET提供了最先进、最成熟和最广泛的类库、公共API、多语言支持和工具。借助于VisualStudio和VisualStudioCode这些最先进和最现代的开发工具,使得.NETCore成为开发人员最高效的平台之一。.NET是免费和开源的。C#语言C#又称“CSharp”,是微软发布的一种简单、安全、稳定、通用的面向对象编程语言。C#是从C/C++衍生出来的,它在继承C/C++强大功能的同时,抛弃了C/C++的一些复杂特性。C#还和Java非常类似,仅仅在一些细节上有差别。借助C#我们可以开发不同类型的应用程序:桌面应用程序、网络应用程序、分布式应用程序、Web服务应用程序、数据库应用程序等。工业管理软件系统的主要基础架构和业务代码都是基于C#语言在.NET框架平台上实现的。.NET框架主流开发软件上面这些是使用.NET框架开发的一些主流软件的例子,涵盖了不同领域和用途的应用程序。03WebUI(extjs)Extjs技术介绍ExtJS是一个流行的JavaScript框架,为使用跨浏览器功能构建Web应用程序提供了丰富的UI。ExtJS基本上用于创建网页端应用程序,它支持所有现代浏览器,如IE6+,FF,Chrome,safari6+等。EXT拥有绚丽的外表。同时有很多用其他技术无法实现或极难实现的功能,却能用EXT轻易实现,比如EXT中的表格、树形、布局等控件能为我们的日常开发工作节约大量的时间和精力。ExtJS在工业管理软件(SMOM)中的应用主要在于PC端的Web界面展示。ExtJSAPI:Ext.grid.column.Column|ExtJS6.5.0()ExtJSExamples:Sencha|ExtJSExamplesEXTjs框架主流开发软件以上是使用ExtJS框架开发的主流软件的例子。04PDA(vue)Vue技术介绍Vue在SMOM中的应用主要在于移动端的UI界面展示,可跨平台支持安卓、苹果和Windows操作系统的设备。Vue(发音为/vjuː/,类似view)是一款用于构建用户界面的JavaScript框架。Vue基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。无论是简单还是复杂的界面,Vue都可以胜任。Vue框架主流开发软件以上是使用Vue框架开发的主流软件的例子。05SMOM系统支持的数据库SMOM支持的数据库类型支持Oracle,支持Oracle的版本在Oracle11g或者以上;支持SQLServer,支持SQLServer的版本在2012或以上;支持MySQL,支持5.7或以上版本,建议使用5.7的版本;MySQL,可支持PolarDB和MariaDB,目前比较全面的应用是PolarDB。Oracle数据库介绍和配置Oracle数据库是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小微机环境。它是一种高效率的、可靠性好的、适应高吞吐量的数据库方案。Oracle数据库在SMOM中的配置方式:1.通过config文件中添加配置节:"master":{
"Name":"master",
"ConnectionString":"DataSource=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=1522))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)));UserId=SMOM_TEST;Password=SMOM_TEST;MetadataPooling=false;",
"ProviderName":"Oracle.ManagedDataAccess.Client"
},2.环境说明:需要安装32位的ODAC,项目工程要添加Oracle.ManagedDataAccess.Core的依赖包SQLServer数据库介绍和配置MicrosoftSQLServer是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理。MicrosoftSQLServer数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,可以构建和管理用于业务的高可用和高性能的数据应用程序。SMOM中,SQLServer数据库链接配置方式:"master":{
"Name":"master",
"ConnectionString":"DataSource=Win10-2021JRWLR;Userid=sa;Password=123456;InitialCatalog=MES;MultipleActiveResultSets=true;",
"ProviderName":"System.Data.SqlClient"
},如果采用的是VS自带SQLServer数据库,则配置如下:"master":{
"Name":"master",
"ConnectionString":"DataSource=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=D:\\Project\\DEMO\\App_Data\\DEMO_83.mdf;IntegratedSecurity=True;UserId=DEMO_83",
"ProviderName":"System.Data.SqlClient"
},SQLServer数据库依赖包和常见问题使用SQLServer需要添加SqlClient依赖包,方法:点击“依赖项”右键“管理NuGet程序包”,添加System.Data.SqlClient的依赖包,如果已经存在该依赖该步骤忽略,如右图所示。常见问题:使用SqlServer数据库,引用进来的nuget包的System.Data.SqlClient.dll大小不对,直接运行会报错,BS运行项目使用的System.Data.SqlClient.dll的大小是979kb的,这里需要把该dll替换下,demo中是使用生成后事件进行替换的,先把正确的dll放到了packages包下(左下图),再用生成后事件进行替换(右下图)事件脚本:COPY/Y"$(SolutionDir)packages\System.Data.SqlClient.dll""$(ProjectDir)$(OutDir)"MySQL数据库介绍和配置MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件之一。MySql数据库在SMOM中的配置方式:1.通过config文件中添加配置节:
"master":{
"Name":"master",
"ConnectionString":"server=;UserId=code_prod;password=123456;Database=test1;ConnectionTimeout=300;DefaultCommandTimeout=300",
"ProviderName":"PolarDB"
},依赖包:MySql.Data,需要引用的程序集:SIE.Data.MySql.dll和SIE.Data.PolarDB.dll练习1、以下关于SMOM系统支持的数据库,说法错误的是()A:支持oracle数据库连接,oracle的版本必须11g或者以上;B:使用oracle数据库,开发环境必须安装ODAC,ODAC可以是32位或者是64位的版本;C:支持SQLServer,SQLServer的版本必须是2012或者以上;D:支持MySql,MySql的版本必须5.7或者以上。B本章小结SMOM技术栈介绍系统支持的数据库1.SMOM支持Oracle、SQLServer和MySql三种关系型数据库2.需要掌握三种关系型数据库的配置。系统使用的技术栈1.SMOM后端使用的是.NET框架的C#语言。2.SMOMWebUI使用的是ExtJS框架。3.SMOMApp使用的是vue框架。THANKYOU深圳市信息职业技术学院1.1系统技术栈介绍——认识C#语言深圳市信息职业技术学院.Net基础知识01目
录开发环境搭建02第一个C#程序03运行原理04知识回顾工业管理软件的系统技术栈组成;工业管理软件系统后端开发框架和语言;工业管理软件系统WebUI框架;工业App软件系统框架;工业管理软件系统支持的数据库。学习目标通过本节学习:重点理解和掌握开发环境搭建和第一个C#程序。掌握C#运行原理。了解.NETFramework和C#语言。01.Net基础知识.NetFramework什么是.NETFramework?.NetFramework.NETFramework是一个全新的、集成的、面向对象的平台可以创建桌面应用程序可以创建Web应用程序可以创建Web服务其他各种类型的应用程序Microsoft创建的开发应用程序平台.NetFrameworkNETFramework主要由公共语言运行时(CLR)和.NETFramework基础类库(BaseClassLibrary,简称BCL)两部分组成。接下来通过一个图例来描述.NETFramework的基本结构,如下图所示。.NETFrameworkC#语言C#是微软公司在2000年6月发布的一种通用的、面向对象的编程语言,是.NET平台的主要编程语言之一。可以用于开发各种类型的应用程序,包括桌面应用程序、Web应用程序、移动应用程序、游戏等。C#语言的特点和功能:面向对象类型安全简洁易读强大的标准库支持异步编程可扩展性C#语言02开发环境搭建VisualStudio介绍SDK:MicrosoftVisualStudio(简称VS)是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,他包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等。VisualStudio是目前最流行的Windows平台应用程序的集成开发环境,最新版本为VisualStudio2022。VisualStudio介绍VisualStudio介绍VisualStudio近三个版本差异功能VS2017VS2019VS2022C++标准C++14C++17C++20IDEMSBuildMSBuildMSBuild.NET版本.NETFramework4.7.NETFramework4.8.NET6C#版本C#7.0C#8.0C#9.0IntelliSense基本支持改进支持改进支持NuGet支持支持支持XAMLDesigner基本支持改进支持改进支持Azure开发有限支持改进支持改进支持Docker支持有限支持改进支持改进支持VisualStudio2022特点123456VisualStudio2022特点改进的性能VisualStudio2022引入了许多性能改进,包括更快的启动时间、更快的解决方案加载、更快的编辑器响应速度等。这些改进使开发人员能够更高效地进行开发工作。支持最新的.NET版本VisualStudio2022提供了对最新的.NET版本的支持,包括.NET6和.NETCore3.1。开发人员可以使用最新的.NET功能和工具来构建现代化的应用程序。全新的设计VisualStudio2022引入了全新的外观和用户界面设计,采用了更现代化的外观和更直观的操作方式。它提供了更好的可视化体验和更流畅的工作流程。跨平台开发VisualStudio2022支持跨平台开发,使开发人员能够在Windows、macOS和Linux等不同的操作系统上进行应用程序开发。它提供了针对不同平台的工具和调试器,简化了跨平台开发的复杂性。AI增强功能VisualStudio2022集成了人工智能(ArtificialIntelligence,AI)增强功能,如智能代码补全、智能错误检测和智能调试等。这些功能可以提高开发人员的生产力,并提供更好的开发体验。改进的协作和团队开发VisualStudio2022提供了改进的协作和团队开发功能,包括实时协作编辑、Git集成、代码审查工具等。这些功能使团队能够更好地协作开发,并提高代码质量和可维护性。VisualStudio安装2VisualStudio2022的安装1VisualStudio2022的下载103第一个C#程序开发第一个C#程序功能描述:技术要点:在VisualStudio工具的起始窗口中单击添加-【创建新项目(N)】按钮-创建控制台应用程序编写程序代码点击工具栏中的运行按钮运行程序实现步骤:在控制台输出HelloWorld。使用VisualStudio创建程序,使用控制台输出程序结果。23104运行原理运行原理
运行期:CLR会针对目前特定的硬件环境使用即时编译(JIT),也就是将中间语言编译成为本机代码并执行。在运行期,CLR把将编译过后的代码放入一个缓冲区中。下次使用相同的代码时,就直接从缓冲区调用。也就是说相同代码只编译一次,提高了程序运行的速度。
编译期:CLR对C#代码进行第一次编译,将编写的代码编译成.dll文件或.exe文件。此时代码被编译为中间语言练习✎本章练习简述.NET平台的特点。简述C#程序的运行原理。✎预习练习C#的有什么语法格式?C#中的条件语句有哪些,特点是什么?C#中的循环语句有哪些,特点是什么?本章小结认识C#语言需要重点掌握开发环境的搭建,理解C#的运行原理。C#运行原理和.Net基础1.理解C#程序编译器和运行期的原理。2.了解.NETFramework和C#的概念和特点。开发环境搭建1.掌握VS开发工具的安装。2.能够使用VS独立编写C#的一个简单的控制台应用程序。THANKYOU深圳市信息职业技术学院1.1系统技术栈介绍——C#编程基础C#中的变量C#中的运算符选择结构语句循环结构语句C#基本语法方法06数组07程序调试08知识回顾.NET基础知识;开发环境搭建;第一个C#程序;C#运行原理。学习目标通过本节学习:重点理解和掌握C#的变量、选择结构语句和循环结构语句。掌握C#的语法格式、运算符和方法。了解数组和程序调试。01C#基本语法思考题C#有什么语法格式?C#代码的基本格式C#代码的基本格式每一种编程语言都有一套自己的语法规范,C#语言也不例外,同样需要遵从一定的语法规范,如代码的书写、标识符的定义、关键字的应用等。定义类的格式[修饰符]class类名{程序代码}C#代码的基本格式注意事项在编写C#代码时,除了要遵从定义类的语法格式外,还需要特别注意以下几点,具体如下:C#中的程序代码可分为结构定义语句和功能执行语句,其中,结构定义语句用于声明一个类或方法,功能执行语句用于实现具体的功能。每条功能执行语句的最后都必须用分号(;)结束。C#语言是严格区分大小写的。在编写C#代码时,为了便于阅读,通常会使用一种良好的格式进行排版。总结:“;”、“大小写”、“格式”C#中的注释C#中的注释在编写程序时,为了使代码易于阅读,通常会在实现功能的同时为代码加一些注释。注释是对程序中某个功能或者某行代码的解释说明,在编译程序时编译器不会编译这些注释信息。intc=10;//定义一个整型变量注释类型单行注释:单行注释通常用于对程序中的某一行代码进行解释,用符号“//”表示,“//”后面为被注释的内容。总结:注释使用”//”C#中的注释C#中的注释多行注释:多行注释就是注释中的内容可以为多行,它以符号“/*”开头,以符号“*/”结尾。/*intc=1 0;intx=5;*////<summary>///在集合中添加元素///</summary>staticvoidAdd(){}多行注释:多行注释就是注释中的内容可以为多行,它以符号“/*”开头,以符号“*/”结尾。总结:注释使用”/**/”C#中的标识符C#中的标识符在编程过程中,经常需要在程序中定义一些符号来标记一些名称,如类名、方法名、参数名、变量名等,这些符号被称为标识符。标识符可以由任意顺序的大小写字母、数字、下划线(_)和@符号组成,但标识符不能以数字开头,且不能是C#中的关键字。//合法的标识符usernameusername123user_name_userName//不合法的标识符123usernameclass98.3HelloWorld以数字开头关键字以数字开头包含空格必须要严格遵守上面列出的规范,否则程序在编译时会报错C#中的标识符标识符规范为了增强代码的可读性,建议初学者在定义标识符时还应该遵循以下规范:类名、方法名和属性名中的每个单词的首字母要大写。例如Age。这种命名方式被称为大驼峰命名法或帕斯卡(Pascal)命名法字段名、变量名的首字母要小写,之后的每个单词的首字母均为大写。例如:age、userName。这种命名方式被称为小驼峰命名法。。常量名中的所有字母都大写,单词之间用下划线连接。例如:DAY_OF_MONTH。在程序中,应该尽量使用有意义的英文单词来定义标识符,使得程序便于阅读。例如使用userName表示用户名,password表示密码。C#中的关键字C#中的关键字关键字是编程语言中事先定义好并赋予了特殊含义的单词,也称作保留字。和其他语言一样,C#中保留了许多关键字。注意:1、所有的关键字都是小写的。
2、程序中的标识符不能以关键字命名。C#中的常量C#中的常量常量就是在程序中固定不变的值,是不能改变的数据。例如数字1、字符'a'、浮点数3.2等。常量类型整型常量:整型常量是整数类型的数据,有二进制、八进制、十进制和十六进制4种表示形式。二进制:由数字0和1组成的数字序列。如01000000、10000001。八进制:以0开头并且其后由0~7之间(包括0和7)的整数组成的数字序列,如:0342。十进制:数字0~9之间(包括0和9)的整数组成的数字序列。如:198。十六进制:以0x或者0X开头并且其后由0~9、A~F(包括0和9、A和F)组成的数字序列,如0x25AF。C#中的常量C#中的常量浮点数常量:就是在数学中用到的小数。浮点数常量的类型如下所示:float单精度浮点数:后面以F或f结尾。double双精度浮点数:后面以以D或d结尾。当在使用浮点数时也可以在结尾处不加任何的后缀,此时虚拟机会默认为double双精度浮点数。2e3f3.6d0f3.84d5.022e+23f字符常量:用于表示一个字符,一个字符常量要用一对英文半角格式的单引号('')引起来,他可以是英文字母、数字、标点符号以及由转义序列来表示的特殊字符。‘a’‘1’‘&''\r''\u0000'空白字符C#中的常量C#中的常量字符串常量:用于表示一串连续的字符,一个字符串常量要用一对英文半角格式的双引号(“”)引起来。"HelloWorld""123""Welcome\nXXX"""布尔常量:布尔常量即布尔型的两个值true和false,该常量用于区分一个事物的真与假。null常量:null常量只有一个值null,表示对象的引用为空。02C#中的变量变量的定义变量的定义程序运行期间,随时可能产生一些临时数据,应用程序会将这些数据保存在一些内存单元中,每个内存单元都用一个标识符来标识。这些内存单元我们称之为变量,定义的标识符就是变量名,内存单元中存储的数据就是变量的值。intx=0,y;y=x+3;变量的数据类型变量的数据类型C#是一门强类型的编程语言,他对变量的数据类型有严格的限定。在定义变量时必须声明变量的类型,在为变量赋值时必须赋予和变量同一种类型的值,否则程序会报错。变量的数据类型值类型引用类型变量的数据类型整数类型变量整数类型变量:用来存储整数数值,即没有小数部分的值。整数类型分类:字节型(byte)、短整型(short)、整型(int)和长整型(long)四种类型所占存储空间的大小以及取值范围:类型名占用空间取值范围byte8位(1个字节)-27~27-1short16位(2个字节)-215~215-1int32位(4个字节)-231~231-1long64位(8个字节)-263~263-1占用的内存大小变量的数据类型浮点数类型变量浮点数类型变量:用来存储小数数值。浮点数类型分类:单精度浮点数(float)、双精度浮点数(double),double型所表示的浮点数比float型更精确。两种浮点数所占存储空间的大小以及取值范围:类型名占用空间取值范围float32位(4个字节)1.4E-45~3.4E+38,-1.4E-45~-3.4E+38double64位(8个字节)4.9E-324~1.7E+308,-4.9E-324~-1.7E+308注意:在C#中,一个小数会被默认为double类型的值,因此在为一个float类型的变量赋值时需要注意一点,所赋值的后面一定要加上字母“F”(或者小写“f”);而为double类型的变量赋值时,可以在所赋值的后面加上字符“D”(或小写“d”),也可以不加。变量的数据类型字符类型变量字符类型变量:用于存储一个单一字符,在C#中用char表示。占用空间:C#中每个char类型的字符变量都会占用2个字节。符号:在给char类型的变量赋值时,需要用一对英文半角格式的单引号(‘’)把字符括起来,如‘a‘。charc='a';//为一个char类型的变量赋值字符'a'变量的数据类型布尔类型变量布尔类型变量:布尔类型变量用来存储布尔值,在C#中用bool表示,该类型的变量只有两个值,即true和false。boolflag=false; //声明一个bool类型的变量,初始值为falseflag=true; //改变flag变量的值为true变量的类型转换变量的类型转换在程序中,当把一种数据类型的值赋给另一种数据类型的变量时,需要进行数据类型转换。类型转换分类:自动类型转换和强制类型转换。自动类型转换:自动类型转换也叫隐式类型转换,指的是两种数据类型在转换的过程中不需要显式地进行声明。自动类型转换满足的条件:两种数据类型彼此兼容。目标类型的取值范围大于源类型的取值范围。变量的类型转换自动类型转换自动类型转换的三种条件:整数类型之间可以实现转换。整数类型转换为float类型。其他类型转换为double类型。
byteb=3;intx=b;//程序把byte类型的变量b转换成了int类型,无需特殊声明变量的类型转换变量的类型转换强制类型转换:也叫显式类型转换,指的是两种数据类型之间的转换需要进行显式地声明。强制类型转换满足的条件:当两种类型彼此不兼容,或者目标类型取值范围小于源类型时,自动类型转换无法进行,这时就需要进行强制类型转换。变量的类型转换强制类型转换usingSystem;namespaceProgram02{classProgram{staticvoidMain(string[]args){bytea;//定义byte类型的变量aintb=298;//定义int类型的变量ba=(byte)b;Console.WriteLine("b="+b);Console.WriteLine("a="+a);Console.ReadKey();}}}将int类型的变量b强制转换成byte类型,并复制给a变量的作用域变量的作用域变量需要在他的作用范围内才可以被使用,这个作用范围称为变量的作用域。程序中,变量一定会被定义在某一对大括号中,该大括号所包含的代码区域便是这个变量的作用域。一对大括号就是一个作用域,里作用域可以调用外作用域资源,外作用域不可调用里作用域资源。变量的类型转换强制类型转换classProgram{staticvoidMain(string[]args){intx=12;//定义了变量x{inty=96;//定义了变量yConsole.WriteLine("xis"+x);//访问变量xConsole.WriteLine("yis"+y);//访问变量y}y=x;//访问变量x,为变量y赋值Console.WriteLine("xis"+x);//访问变量xConsole.ReadKey();
}}x的作用域在红色大括号内y的作用域y的作用域外访问变量外y,会出现编译错误的提示将该行删除,再运行程序03C#的运算符C#中的运算符运算符算术运算符赋值运算符比较运算符逻辑运算符位运算符特点:处理四则运算的符号特点:将常量、变量或表达式的值赋给某一个变量特点:对两个数值或变量进行比较,其结果是一个布尔值特点:逻辑运算符用于对布尔型的数据进行操作,其结果仍是一个布尔型特点:专门针对数字0和1进行操作的算术运算符算术运算符运算符运算范例结果+正号+33-负号b=4;-b;-4+、-、*、/加、减、乘、除省略省略%取模(求余数)7%52++自增(前)a=2;b=++a;a=3;b=3;++自增(后)a=2;b=a++;a=3;b=2;--自减(前)a=2;b=--a;a=1;b=1;--自减(后)a=2;b=a--;a=1;b=2;算术运算符:用来处理四则运算的符号,这是最简单、最常用的运算符号。算术运算符及其用法:算术运算符算术运算符在进行自增(++)和自减(--)的运算时,如果运算符(++或--)放在操作数的前面则是先进行自增或自减运算,再进行其他运算。反之,如果运算符放在操作数的后面则是先进行其他运算再进行自增或自减运算。intnum1=1;intnum2=2;intres=num1+num2++;Console.WriteLine("num2="+num2);Console.WriteLine("res="+res);运算符++写在了变量num2的后面,属于先运算再自增,因此运行结果为:num2=3、res=3算术运算符算术运算符在进行除法运算时,当除数和被除数都为整数时,得到的结果也是一个整数。如果除法运算有小数参与,得到的结果会是一个小数。在进行取模(%)运算时,运算结果的正负取决于被模数(%左边的数)的符号,与模数(%右边的数)的符号无关。如:(-5)%3=-2,而5%(-3)=2。3500/1000*1000先执行除法运算3500/1000,得到结果为3,再乘以1000,因此运行结果为3000赋值运算符赋值运算符运算符运算范例结果=赋值a=3;b=2;a=3;b=2;+=加等于a=3;b=2;a+=b;a=5;b=2;-=减等于a=3;b=2;a-=b;a=1;b=2;*=乘等于a=3;b=2;a*=b;a=6;b=2;/=除等于a=3;b=2;a/=b;a=1;b=2;%=模等于a=3;b=2;a%=b;a=1;b=2;赋值运算符:将常量、变量或表达式的值赋给某一个变量。赋值运算符及其用法:赋值运算符赋值运算符在赋值过程中,运算顺序从右往左,将右边表达式的结果赋值给左边的变量。注意事项:在C#中可以通过一条赋值语句对多个变量进行赋值算术运算符除了“=”,其他的都是特殊的赋值运算符,以“+=”为例,x+=3就相当于x=x+3,首先会进行加法运算x+3,再将运算结果赋值给变量x。-=、*=、/=、%=赋值运算符都可依此类推。intx,y,z;//定义int类型变量x,y,zx=y=z=5;//同时为x,y,z三个变量赋值比较运算符比较运算符运算符运算范例结果==相等于4==3false!=不等于4!=3true<小于4<3false>大于4>3true<=小于等于4<=3false>=大于等于4>=3true比较运算符:用于对两个数值或变量进行比较,其结果是一个布尔值,即true或false。比较运算符及其用法:逻辑运算符逻辑运算符运算符运算范例结果&与true&truetrue|或false|truetrue^异或true^truefalse!非!falsetrue&&短路与true&&falsefalse||短路或true||falsetrue逻辑运算符:用于对布尔型的数据进行操作,其结果仍是一个布尔型。逻辑运算符及其用法:逻辑运算符逻辑运算符逻辑运算符运算过程中的细节:
逻辑运算符可以针对结果为布尔值的表达式进行运算。运算符“&”和“&&”都表示与操作,当且仅当运算符两边的操作数都为true时,其结果才为true,否则结果为false。使用“&”进行运算时,不论左边为true或者false,右边的表达式都会进行运算。如果使用“&&”进行运算,当左边为false时,右边的表达式不会进行运算,因此“&&”被称作短路与。运算符“|”和“||”都表示或操作,当运算符两边的操作数任何一边的值为true时,其结果为true,当两边的值都为false时,其结果才为false。同与操作类似,“||”表示短路或,当运算符“||”的左边为true时,右边的表达式不会进行运算。运算符“^”表示异或操作,当运算符两边的布尔值相同时(都为true或都为false),其结果为false。当两边布尔值不相同时,其结果为true。000位运算符000位运算符运算符运算范例结果&按位与0&10|按位或0|11~取反~01^按位异或0^11<<左移00000010<<200001000>>右移11100010>>211111000位运算符:是针对二进制数的每一位进行运算的符号,他是专门针对数字0和1进行操作的。位运算符
及其用法:运算符的优先级运算符的优先级优先级运算符1.[]()2++--~!(数据类型)3*/%4+-5<<>>>>>6<><=>=7==!=在对一些比较复杂的表达式进行运算时,要明确表达式中所有运算符参与运算的先后顺序,我们把这种顺序称作运算符的优先级。运算符的优先级:优先级运算符8&9++--~!10&11|12&&13?:(三元运算符)14=*=/=%=+=-=<<=>>=>>>=&=^=|=04选择结构语句思考题C#中的条件语句有哪些,特点是什么?If条件语句if条件语句选择语句:需要对一些条件作出判断,从而决定执行哪一段代码。选择语句分为if条件语句和switch条件语句。if条件语句的语法格式分为3种:if语句:if语句是指如果满足某种条件,就进行某种处理。if(条件语句){
代码块}当条件语句为true时,执行代码块,否则不执行if语句的语法格式:if语句的执行流程:条件语句if条件语句namespaceProgram06{classProgram{staticvoidMain(string[]args){//声明变量x作为判断依据intx=5;//如果x的值小于10则执行if大括号中的代码if(x<10){x++;}Console.WriteLine("x="+x);Console.ReadKey();}}}5<10,因此条件成立,执行x++If…else条件语句if…else条件语句if…else语句:是指如果满足某种条件,就进行某种处理,否则就进行另一种处理。
if(判断条件){
执行语句1 ……}else{
执行语句2 ……}当判断条件为true时,执行“执行语句1”,否则,执行“执行语句2”if…else语句的语法格式:if条件语句的执行流程:If…else条件语句namespaceProgram07{classProgram{staticvoidMain(string[]args){intnum=19;if(num%2==0){//判断条件成立,num被2整除Console.WriteLine("num是一个偶数");}else{Console.WriteLine("num是一个奇数");}Console.ReadKey();}}}19模以2的结果为1,判断条件不成立。因此会执行else后面{}中的语句if…else条件语句If…elseif…else条件语句If…elseif…else条件语句if…elseif…else语句:用于对多个条件进行判断,进行多种不同的处理。
if(判断条件1){
执行语句1}elseif(判断条件2){
执行语句2}...elseif(判断条件n){
执行语句n}else{
执行语句n+1}当判断条件1为true时,执行“执行语句1”,否则,判断“判断条件2”是否为true,否则,判断“判断条件3”是否为true,依次类推if…elseif…else语句的语法格式:if条件语句的执行流程:If…elseif…else条件语句staticvoidMain(string[]args){intgrade=75;//定义学生成绩if(grade>=80){Console.WriteLine("该成绩的等级为优");}elseif(grade>=70){Console.WriteLine("该成绩的等级为良");}elseif(grade>=60){Console.WriteLine("该成绩的等级为中");}else{Console.WriteLine("该成绩的等级为差");}Console.ReadKey();}成绩大于等于80执行成绩大于等于70小于80时执行成绩大于等于60小于70时执行小于60时执行If…elseif…else条件语句三元运算符多学一招——三元运算符三元运算符的作用和if-else语句类似。语法格式如下:
判断条件?表达式1:表达式2intx=0;inty=1;intmax;if(x>y){max=x;}else{max=y;}获取最大值if..else语句:获取最大值三元云算符:intx=0;inty=1;intmax;max=x>y?x:y;Switch条件语句switch条件语句switch条件语句也是一种很常用的选择语句,他针对某个表达式的值作出判断,从而决定程序执行哪一段代码。switch语句的具体格式:switch(表达式){
case目标值1:
执行语句1
break;
case目标值n:
执行语句n
break;default:
执行语句n+1 break;}表达式的值与case语句中的目标值匹配如果与表达式的值匹配,则执行“执行语句n”跳出switch语句,不再执行switch中的语句如果没找到任何匹配的值,就会执行default后的语句Switch条件语句switch条件语句staticvoidMain(string[]args){intweek=5;switch(week){case1:…….case5:Console.WriteLine(“星期五");break;……}Console.ReadKey();}表达式的值为5表达式5匹配到的目标值在控制台输出“星期五”05循环结构语句思考题C#中的循环语句有哪些,特点是什么?While循环语句while循环语句循环语句:在C#中有一种可以重复执行同一代码块的语句。循环语句分为while循环语句、do…while循环语句和for循环语句。while循环语句:反复地根据条件判断来决定是否执行大括号内的执行语句。while(循环条件){执行语句………}条件成立,则执行“执行语句”,反复的判断循环条件,直到不满足条件时,结束while循环while的语法结构:while执行流程:While循环语句while循环语句usingSystem;namespaceProgram11{classProgram{staticvoidMain(string[]args){intx=1;//定义变量x,初始值为1while(x<=4){//循环条件Console.WriteLine("x="+x);//条件成立,打印x的值x++;}Console.ReadKey();}}}1小于4,执行循环体x进行自增x等于2,小于4,执行循环体x进行自增x等于3,小于4,执行循环体x进行自增x等于4,执行循环体x进行自增x等于5,小于4,条件不成立,结束while循环Do…while循环语句do…while循环语句do…while循环语句和while循环语句功能类似,二者的不同之处在于,while语句需要先判断循环条件,然后根据循环条件的结果来决定是否执行大括号中的代码,而do…while循环语句先要执行一次大括号内的代码再判断循环条件。do{执行语句………}while(循环条件);do…while的语法结构:while执行流程:循环体无论循环条件是否成立,循环体都执行一次Do…while循环语句do…while循环语句usingSystem;namespaceProgram12{classProgram{staticvoidMain(string[]args){intx=1;//定义变量x,初始值为1do{Console.WriteLine("x="+x);//打印x的值x++;//将x的值自增}while(x<=4);//循环条件Console.ReadKey();}}}首先执行循环体,x进行自增然后判断循环条件是否成立,x为2,条件成立,再次执行循环体For循环语句for循环语句for循环:通常用于循环次数已知的情况。for(初始化表达式;循环条件;操作表达式){
执行语句
………}for循环的语法结构:循环体分别用①表示初始化表达式、②表示循环条件、③表示操作表达式、④表示循环体,通过序号来具体分析for循环的执行流程。For循环语句for循环语句for(①;②;③){ ④}第一步,执行①第二步,执行②,如果判断结果为true,执行第三步,如果判断结果为false,执行第五步第三步,执行④第四步,执行③,然后继续执行第二步第五步,退出循环For循环语句for循环语句usingSystem;namespaceProgram13{classProgram{staticvoidMain(string[]args){intsum=0;//定义变量sum,用于记住累加的和for(inti=1;i<=4;i++){//i的值会在1~4之间变化sum+=i;//实现sum与i的累加}Console.WriteLine("sum="+sum);//打印累加的和Console.ReadKey();}}}i=1,并且i小于4,条件成立,执行循环体首先执行i++,i=2,i小于4,执行循环体然后再次执行i++,i=3,i小于4,执行循环体,按照这样的步骤执行代码,直到i大于4,结束循环跳转语句跳转语句跳转语句:用于实现循环执行过程中程序流程的跳转。包括break语句、goto语句和continue语句。break语句使用在switch条件语句和循环语句。switch条件语句:终止某个case并跳出switch结构。循环语句:跳出当前循环语句,执行后面的代码。当break语句出现在嵌套循环中的内层循环时,他只能跳出内层循环goto语句:当在嵌套循环中首先需要对外层循环添加标记,然后使用goto语句跳出外层循环。continue语句:终止本次循环,并执行下一次循环。跳转语句跳转语句——breakclassProgram{staticvoidMain(string[]args){intx=1;//定义变量x,初始值为1while(x<=4){//循环条件Console.WriteLine("x="+x);//条件成立,打印x的值if(x==3){break;}x++;//x进行自增}Console.ReadKey();}}当x==3时,执行break语句,跳出while循环,结束循环跳转语句跳转语句——gotostaticvoidMain(string[]args){inti,j;//定义两个循环变量for(i=1;i<=9;i++){//外层循环for(j=1;j<=i;j++){//内层循环if(i>4){//判断i的值是否大于4gotoend;}Console.Write("*");//输出*}Console.WriteLine();//换行}end:Console.ReadKey();}跳转到end标识的语句执行该语句跳转语句跳转语句——continueclassProgram{staticvoidMain(string[]args){intsum=0;//定义变量sum,用于记住和for(inti=1;i<=100;i++){if(i%2==0){//如果i是一个偶数,执行if语句中的代码continue;}sum+=i;//实现sum和i的累加}Console.WriteLine("sum="+sum);Console.ReadKey();}}结束本次循环,即不执行sum+=i;语句,直接进入下次循环中循环嵌套循环嵌套循环嵌套:在一个循环中嵌套一个循环。最常见的嵌套循环为for循环中嵌套for循环。for循环中嵌套for循环的语法格式:for(初始化表达式;循环条件;操作表达式){………for(初始化表达式;循环条件;操作表达式){执行语句
………}………}外层循环内层循环循环嵌套循环嵌套namespaceProgram17{classProgram{staticvoidMain(string[]args){inti,j;//定义两个循环变量for(i=1;i<=9;i++){//外层循环for(j=1;j<=i;j++){//内层循环Console.Write("*");//打印*}Console.WriteLine();//换行}Console.ReadKey();}}}外层循环控制行数内层循环控制在一行中打印*的个数06方法什么是方法什么是方法在程序中,将可以完成一定特定功能的代码段提出来用一个方法来表示。例如一个段求两个数之和代码,我们可以用以Add()方法来表示,需要求和时,只需调用Add()方法即可。方法的语法格式:[修饰符]返回值类型方法名([[参数类型参数名1],[参数类型参数名2],……]){
方法体 return返回值;}可选,修饰符可以省略,可以用于对访问权限进行限定,如private,也可使用静态修饰符static描述方法返回值的数据类型方法名使用变量的命名规则中的帕斯卡命名规范用于结束方法以及返回方法指定类型的值被return语句返回的值,该值会返回给调用者用于限定调用方法时传入参数的数据类型用于接收调用方法时传入的数据什么是方法什么是方法classProgram{staticvoidMain(string[]args){……intproduct=Multiply(3,5);Console.WriteLine("num1*num2="+product);Console.ReadKey();}……//定义两个数相乘的方法publicstaticintMultiply(intnum1,intnum2){intsum=num1*num2;returnsum;}}在Main()中调用Multiply()方法方法的重载方法的重载C#中允许在一个程序中定义多个同名方法,但是参数的类型或个数必须不同,这种方式被称作方法的重载。重载的条件:方法名相同。参数个数或参数类型不相同。需要注意的是:方法的重载与返回值类型无关。方法的重载方法的重载//下面的方法实现了两个整数相加publicstaticintAdd(intx,inty){returnx+y;}//下面的方法实现了三个整数相加publicstaticintAdd(intx,inty,intz){returnx+y+z;}//下面的方法实现了两个小数相加publicstaticdoubleAdd(doublex,doubley){returnx+y;}Add()方法中有两个int型的参数,返回值为int型Add()方法中有三个int型的参数,返回值为int型Add()方法中有三个double型的参数,返回值为double型方法的重载多学一招——快速判断方法重载快速判断方法重载:将方法名前面的修饰符、返回类型以及方法体去掉。将方法参数列表中的参数名去掉。将两个方法做比较,首先名称不相同一定不是重载方法,其次如果名称相同,其他部分不相同的构成重载,相同的则不是重载的方法。
publicstaticintFunc(intnum){…} //方法1publicstaticboolFunc(intnum1,intnum2){…} //方法2publicstaticstringFunc(strings1,strings2){…} //方法3publicstaticstringFunc(strings2,strings1){…} //方法4 Func(intnum) //方法1 Func(intnum1,intnum2) //方法2 Func(strings1,strings2) //方法3 Func(strings2,strings1) //方法4
Func(int) //方法1 Func(int,int) //方法2 Func(string,string) //方法3 Func(string,string) //方法4
方法的重载方法的重载namespaceProgram19{classProgram{staticvoidMain(string[]args){Console.WriteLine("-2的绝对值={0}",Math.Abs(-2));
Console.WriteLine("-2的3次方={0}",Math.Pow(-2,3));
Console.WriteLine("sin(0°)={0}",Math.Sin(0));
Console.WriteLine("cos(0°)={0}",Math.Cos(0));
Console.ReadKey();}}}求0°的余弦值求-2的绝对值求-2的3次方求0°的正弦值07数组数组的定义数组的定义数组中的元素会被自动赋予一个默认值,根据元素类型的不同,默认初始化的值也是不同的。数组中元素的默认初始化值:数据类型默认初始化值byte、short、int、long0float、double0.0char一个空字符,即’\u0000’boolfalse引用类型null,表示变量不引用任何对象数组的定义数组的定义为了更好地理解数组的这种定义方式,我们将定义和赋值分开来定义:int[]x; //声明一个int[]类型的变量xx=newint[100]; //创建一个长度为100的数组
数组定义的内存状态:声明变量x的内存状态:创建数组时的内存状态:数组的定义数组的定义usingSystem;namespaceProgram22{classProgram{staticvoidMain(string[]args){int[]arr; arr=newint[3];Console.WriteLine("arr[0]="+arr[0]); //访问数组中的第一个元素Console.WriteLine("arr[1]="+arr[1]); //访问数组中的第二个元素Console.WriteLine("arr[2]="+arr[2]); //访问数组中的第三个元素Console.WriteLine("数组的长度是:"+arr.Length);//打印数组长度Console.ReadKey();}}}声明int型数组变量arr创建数组对象通过Length属性获取数组的长度数组的定义数组的定义数组是指一组数据的集合,数组中的每个数据被称作元素。在数组中可以存放任意类型的元素,但同一个数组里存放的元素类型必须一致。数组类型:一维数组和多维数组。数组的定义:int[]数组名=newint[数组的长度];
int[]数组名=newint[100];
定义一个长度为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 空气污染与非酒精性脂肪肝病的关联及其机制探索
- 2025年内蒙古工业职业学院高职单招高职单招英语2016-2024历年频考点试题含答案解析
- 舞蹈作品风格研究-洞察分析
- 2025年云南能源职业技术学院高职单招数学历年(2016-2024)频考点试题含答案解析
- 2025年云南机电职业技术学院高职单招语文2018-2024历年参考题库频考点含答案解析
- 2025年九州职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 虚拟化技术在节能中的应用-洞察分析
- 消费者权益保护法律体系研究-洞察分析
- 眼外伤康复技术的创新研究-洞察分析
- 头孢西丁抗菌活性研究-洞察分析
- 物业民法典知识培训课件
- 2023年初中毕业生信息技术中考知识点详解
- 《万方数据资源介绍》课件
- 第一章-地震工程学概论
- 2024年浙江省中考数学试题及答案
- 2025届江苏省南京高考历史一模试卷含解析
- 浙江省金华市金东区2022-2024年中考二模英语试题汇编:任务型阅读
- 青岛版(五四制)四年级数学下册全册课件
- 大健康行业研究课件
- 租赁汽车可行性报告
- 计算机辅助设计AutoCAD绘图-课程教案
评论
0/150
提交评论