版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章microsoft.NET平台架构,最佳语言c#,.net平台可以编写的程序,也可以编写windows应用程序.B/S和c/s1.1网络计算时代计算模式发生重大的变化:1)单主机时代的主机ノ终端计算模式一台计算机,带多个终端。Unix操作系统。2)文件服务器时代的共享数据模式(F/S)一台高档服务器,多台低端的计算机。所有文件都放在高档服务器中,其他计算机共享服务器资源即可。此方式占用大量的网络负载。因为共享整个文件,不是一部分。过程就是:当访问ー个文件,提取部分数据,也必须将整个文件发送给客户端。3)分布式计算机客户/服务器计算模式(C/S)适合于局域网。当客户端请求服务器,服务器接收请求,并在服务器上进行处理,将处理结果发送给客户端。4)电子商务时代的浏览器/服务器网络计算模式(B/S)是目前最流行的ー种网络编程计算模式。它在客户端无需安装任何软件,只要有浏览器即可。而且浏览器一般都是捆绑的。软件就是服务。在多个服务器上开发商提供性能良好的构件在服务器上。供网上用户使用。不分时间,不分地址,不分设备的使用。新一代的网络计算模式的技术特征是:http+www+java。跨平台的。协议标准。中间语言。:msil和即时编译器:平台.net平台为创建新一代分布式web应用提供了所有工具和技术。支持标准的internet协议。.net平台主要有五大部分组成:ー、就是运行:.net的操作系统的统称。能运行.net的操作系统有windowsxp/2000/2003,而且提供多种服务。二、.net企业级服务器进行企业集成和管理所有基于web的种服务器应用的统称。Sqlserver2000〇Exchangeserver2000等。构建一个企业的电子商务。二、,netframework是.net核心。没有它,.net不能运行,是.net运行和建立应用程序的编辑、编译的核心服务。它主要有两部分构成:CLR,BCL四、是.net平台建立.net应用程序的一个可视化的开发工具。IDE。它提供了简单统ー的代码编辑器和相应的各种接口。6.02003 2005.netweb服务构件公用网络服务。.3.netframework运行在windows系列操作系统上的ー个系统应用程序。用于实现.net平台架构。.net平台必有,.netframework,〇.netframwrok包括以下儿个组件:一、公共语言运行时CLR,这是核心,管理.net代码的执行。是ー个软件引擎。用于加载应用程序、检查错误进行安全许可。在任何ー种语言都必须处理好软件和操作系统之间的接口。CLR是属于纯动态运行时的ー种。.CLR的构成类加载器,即时编译器JIT,代码管理器、垃圾回收器、安全引擎、高度、类型检查器、异常管理器、线程支持、com列集器、.net基础类库BCL.公共类型系统(CTS)标准数据类型:标准化应用程序格式:代码先编译成MSIL,即时编译JIT。.CLR工作原理ー个应用程序作为ー个汇编的文件进入CLR时,.NET台进行执行。.元数据数据的数据。对clr中保存的每个元素的描述信息。由编译器自动生成的。与mSILー起位于同一个PE文件(EXE/DLL)。.托管与非托管的代码托管:是安全的,是符合公共语言运行时的运行规范。非托管:是不安全的,默认情况下,所有的c#和VB.nET代码都是托管理的代码。.公共语言规范(CLS)二、基础类库BCL为开发者提供了面向对象的特性所需的和CLR紧密集成的ー组可重用类的集合。而且仅使用CTS数据类型和标准应用程序格式。它提供了一个统计的、面向对象的层次式的可扩展编程接口。分别是命名空间的分级制度划分。System.ioSystem.data.sqlclient公用类库主要包括对以下编程模型的支持:控制台应用程序脚本与宿主程序windows应用程序web应用程序webservice应用程序windows服务程序三、ネロ是ー个数据访问接口,以前微软使用的是ado,而不是,直到.net平台出现オ出现的〇xml:可扩展的标记语言的支持。System.xml:命名空间提供了对xml的强大支持。A支持dataset概念,dataset数据集,而ado中提供的记录集recordseto数据集是一个数据缓冲区,是ー个关系型的数据库视图。A和xmlSystem.data:支持的。System.data.oledbSystem.data.ssqlclientSmonSystem.data.sqltypeSystem.xml.xsl四、基于编程框架上的webforms和webservice五、winforms用户界面windows表单C/S.netframework的优势1.4新一代编程语言c#ー、C#的新特性.简单〇C#在很多方面与C/C++极其相似。::,.->C#中只用.System.data.sqlclient〇c#不支持指针。〇C#使用统ー类型系统CTS〇C#提供了一些实用类型〇C#是一个组件语言。.面向对象3种编程原则:封装、继承和多态性。C#去掉了全局函数、全局变量、全局常数。C#去掉了多继承。类:对象:属性:事件:方法:封装:继承:多态性:重用:.类型安全在C#语言中,不允许使用未初始化变量。C#不支持无效的转换。隐式转换和强制转换char-intstringC#进行边界检查,尤其是数组。.版本控制.兼容性.灵活性二、C#和C++c#保留了C++的ー些语言特征。采用了大部分的C++的运算符、关键字等。三、c#与VB.net四、c#与java第2章C#编程和编译环境VS.NET集成开发环境如果安装.NET运行环境.创建.net运行环境而非开发环境不用安装2003或20051)选择操作系统xp企业版,不允许是home版。另外如果是XP企业版,则必须在添加删除程序中,单独安装HS。2000最好使用2000server,IIS将自动安装了。2003的话,则环境不用安装,因为2003自带了。2)在操作系统上安装MDAC2.6或2.8,2〇?〇数据访问的。3)在操作系统上安装.netframework2.0。.创建.net开发环境1)选择操作系统,并安装IIS。2)安装丫5.1^2003或丫5.1^2005,则所有环境将自动安装,无需单独安装。前提是IE要求6.0以上。强调ー・点:如果安装VS.net2003则须单独安装数据库服务器sqlserver2000或access等数据库管理系统。如果安装2005则在安装2005时一,可以有选择的安装ー个sqlserver2005express的数据库管理系统,建议使用该系统。但你也可以使用access来开发。注意:如果使用sqlserver2005express来作数据库服务器,即数据库管理系统,则本系统没有安装管理工具。则必须在网上下载一个管理工具。sqlserver2005企业管理器。39.8MB。使用该软件可以用来与sqlserver2000ー样的企业管理器来管理、维护sqlserver2005数据库管理系统。Sqlserver2005安装后默认是windows登录,而不是sqlserver认证。在sqlserver2005默认情况下sa账户是禁用的。微软公司提供了两个开发工具:〇IDE开发环境〇SDK开发环境(一般不用,功能太简单).NET的IDE开发环境,提供了更优秀的多种编程语言。ー、.NET集成开发环境简介.起始页该页可以实现项目的打开与创建,并可以联机得到帮助或最新文档。.解决方案资源管理器列出当前解决方案中的项目,以及项目下的所有文件。并可以通过解决方案资源管理器可以添加、删除各文件。.类视图窗口。显示了所有类、方法和特性。.属性窗ロ.工具箱.服务器资源管理器二、创建项目三、编写代码环境语法导航。2ー个简单的C#程序本书前几章使用的都是控制台应用程序,主要是给大家练习c#语法的。不是编写ー个真正的应用程序。注释:〃和/・与・/,///C#是区别大小写的。2.3编辑、编译和运行一个C#程序第一:先创建一个控制台应用程序,创建一个项目和解决方案。第二:创建一个简单的输入、输出程序。定义变量,并赋值进行输出即可。第三:生成并编译生成并编译语句出现错误,将不能进行生成和编译。方法:开始执行(不调试)利用VS.Net2005计算5!〇第3章数据类型和变量在C#面向对象的程序设计过程中,任何ー个数据都是ー个对象。C#将数据分为不同的数据类型,分别表示不同的范围、精度和用途。在C#分类数值类型(值类型),引用类型。值类型中简单类型和用户自定义的结构。引用类型中:类、接口、数组和字符串。1变量和常量常量:在程序运行过程中,其值不能改变的量。变量:在程序运行过程中,其值可以发生改变的量。内存中存储的是它的值。一、变量1.变量名用来标识ー个变量,对象名、过程名等。遵循的原则:1)首字符必须是字母。)C#变量名区分大小写。3)不能与C#的关键字相同。Int常用的变量名表示方法有3种:〇pascal表示法:前缀或后缀来表示变量的类型和作用范围NounNounVerb〇骆驼表示法,以小写字母开头,以后单词都以大写字母开头。MyBook〇匈牙利表示法:变量名=属性名+类型+对象描述CmyCar.使用变量遵循先定义后使用的原则。ー个变量定义格式如下:数据类型变量列表:intx;.给变量赋值变量名=表达式;变量名=变量名=变量名=表达式;a=b=c=5;变量的定义的过程中就可以变量赋值。.初始化变量数据类型变量名=表达式;当定义多个变量时,也可以直接赋值intx=10,y=20,z=100;另ー种定义变量并赋初值的方法是。在C#中,每ー种类型都有一个默认值。Int的默认值就是0,Intx=newint();也是声明一个整型类型的变量X。此明x的初始值为0表3.3给出的是简单类型,也就是所说的值类型。Intx;.使用未初始化的变量如果ー个变量没有初始化,则程序在编译时会出现错误。.变量的使用域和生存周期作用域:定义了一个变量的可见性和生存周期。一个变量定义后,在什么范围内有效。在ー个程序中的外部定义的,则作用域为定义处开始至程序结束。而在一个程序中的IF或while或for语句中定义,则只在该语句结构中有效,其他位置无效。二、常量同普通常量不同,如5就是ー个普通常量,在此位置所说的常量是指在其他语言中所说叫符号常量。当在程序中多次用到某常量时,将其定义为常量。常量定义后,凡是用到此值的都可以使用常量代替。但该常量是不允许改变值的,也就是它不是变量。格式如下:Const数据类型常量名=表达式:通常常量名都是大写字母。ConstintPI=3.14159;3.2数据类型数值类型C#数据类型比较,要理解好类型同变量之间的关系就是类与对象之间的关系。Intx;所有的数据类型都包含在system命名空间。在system命名空间中的数据类型与直接使用使用是等价的。比如:intx;32x;是等价。每ー种数据类型在内存中占有固定的内存空间,同时每ー种数据类型都有最大值和最小值。ー、整数类型没有小数。整数常和整数变量intuintshortushortlongulongbytesbytecharC#只支持十进制和十六进制数,很不用到八进制。二、字符类型其实在内存中存放仍解是数值。比如‘a, 97所以字符变量是用单引号括起来的。只能表示一个字符的。Char来定义字符类型。.字符常量使用单引号括起来的。如’a,‘B'只能是ー个。转义字符\n:换行\\:表示、ヽ’:单引号’\":双引号’’.字符变量的赋值方法只能放一个字符,不能放字符串。也可以使用强制转换。三、浮点数类型是指带小数部分的。.float(单精度)4个ouble(双精度)四、小数类型decima!类型一般用来表示货币值。在使用常量时在常量后加m,在float后面要加上f五、布尔型在C/C++中经常用〇表示false,非。表示true。在c#语句中,true,false〇在c#中IF语句等不能用数值。Int1=5;If(i)不允许六、检查与不检查unchecked值类型:引用类型C#中提供了两种信息存储方式:按值和按引用按引用就是按地址存储intI=newint();stringstr=^^ok^^数值类型与引用类型的区别:数值类型的变量用于存储数据,而引用类型的变量用于存储引用地址。数值类型不可能派生新的类型,而引用类型则能指向新的数据对象。数据类型不能包含null值,而引用可以。引用空值表示当前对象没有占用内存空间。C#中指针类型仅可用于非安全模式,不能用&定义一和种类型的引用。Int*p;Int1=100;P=&1;在C#中有哪些类型是引用类型?〇对象类型〇类类型。字符串类型〇接口类型。数组类型〇代理类型ー、对象类型object变量名;对象类型可以用来存放所有类型的数据。它相当于VB的变体型。VariantObjectx;X=10;X=,,abcdef,;X='a';有一个函数:gettype():获得类型。二、字符串类型string变量名字符串类型的变量用双引号括起来。各种简单类型的数据间转换当不同的数据类型进行运算时,原则上要求两种类型必须相同,但有时也可以不同,这时数据间要进行类型转换。Int1=90;Floatj=3.14f;Intx;X=I+j;数据类型之间转换有两种:(1)隐式转换不用我们转换,系统自动完成数据类型之间的转换工作。遵循的原则是:由低级向高级进行转换,类型为高级。Sbyte-shortintlongfloatdoubledecimalInt-longfloatdoubledecimal如果在上面没有列出自动转换,将进行赋值时,系统会报错。当把ー个值赋给ー个变量时,系统将该数据类型转换为对象所具有的类型。IntI;Floatvar2;Doublevarl;I=varl+var2Double类型与decimal类型二者不能混用。(2)显式转换就是在变量或常量前,显式声明对该类型的转换。格式如下:(类型关键字)变量floatj=4.5;intI;I=(int)j;装箱和拆箱C#提出的ー个重要的概念。ー、装箱转换就是将数值类型变量隐式转换为object对象类型的变量。Int1=200;Objectx=I;其实这种转换在表面上看没有区别,就是ー种隐式转换,但是在内存中的变化非常大的。在数值类型定义,在内存中已分存了存放空间,而对象类型直接指向了数值类型的值。二、拆箱转换拆箱是装箱反过程。就是将一个object对象类型转换为任何娄值类型的变量。显式转换。Int1=110;Objectobj=I;Intj=(int)obj;注意拆箱的要求:进行拆箱转换的类型必须与装箱的数据类型一致(兼容),否则出错。第4章运算符和表达式4.1c#运算符概述.C#运算符主要有三种类型的运算符。单目运算符:带ー个操作数的x++++X双目运算符:带二个操作数x+y三目运算符:带三个操作数。?:%:求余system.math.运算符优先级和结合性优先级和数学上相相似,先乘除后加减,关系高于逻辑,逻辑高于复合运算赋值。有括号先算括号。x.y(int)yx++y=x++y=++x当同种优先级存在,则从左至右。2赋值运算符及其表达式.一般的赋值运算=就是常见的赋值运算。另外注意在c#可以使用赋值链。Intx,y,z;X=y=z=100;.赋值中的类型转换floatf;int1=8;f=I;但注意bool类型与INT不兼容。.复合赋值x=x+ln=n+l累加。*—+=一 /=%=x+=l.3算术运算符及其表达式ー、加法和减法二、自增和自减运算符变量++变量一++变量ー变量这两种运算效果是不ー样的。Y=x++,先赋值,后自增。Y=++x,先自增,后赋值。现在x=10y=10x=l1y=l1x=ll三、乘法和除法运算符四、取余运算C#中的%。主要用来判断是否被ー个数整除的。求100以内能被3和7整除的数。4.4关系运算符及其表达式.比较运算符<><=>=〇.等式运算符==\=返回值都是true和false4.5逻辑运算及其表达式&&II!分别表示逻辑与,逻辑或,逻辑非运算次序:先非,后与,再或。1.&&运算逻辑与,用于判断其两个或两个以上的条件是否满足。如果是与的运算,ー边是false,另ー边不用判断,一定是false,只有两边全为true时,オ为true〇2.11运算逻辑或,表示判断两个或两个以上的条件其中一个必须满足。两边只要有一个为true,表达式就为true〇!运算逻辑非,否定,即true变false,false变true。7条件运算符及其表达式是ー个三目运算符,格式如下:条件表达式?表达式1:表达式2如果表达式为true,则该表达式的值为表达式1的值,如果条件表达式为false,则该表达式的值为表达式2的值。Inta=10;Intb=20;Intmax=a<b?b:a;4.8其他运算符ー、new运算符new创建一个对象。数值类型的变量可以有两种定义方式:intI;intI=newint;值类型是否有null。对象类型有null二、sizeof运算符该运算符是用来求所定义的数值型变量在内存中占用的字节数sizeof(int)sizeof(类型关键字)三、isas和typeof运算符l.is运算符获取类型信息的运算符。True和false格式:变量is数据类型关键字.as运算符也是用来进行相关的数据类型的判断。表达式1二表达式2as数据类型表示如果表达式2是指定的数据类型,则表达式1的值就等于表达式2的值,否则表达式1等于null〇.Typeof运算符可以获得指定类型的system.type对象。Gettype〇取得数据类型。四、checked或unchecked测试溢出是否检查。第5章数据的输入和输出输入和输出都是Console类一个方法。控制台输入输入有两种read。,ー种是readline()〇ー、Console.Read。方法该方法每次从输入流中读取ー个字符,直到收到回车键返回。将接收的字符以INT值返回给变量,如果没有输入数据,则返回值为ー1所以read一般用来输入char型的。如果输入多个,返回第1个字符。二、Console.ReadLine。方法方法用于从控制台中一次读取一行字符串,直到遇到回七键オ返回读取的字符串。如果没有收到,则值为NULL,由此可以看出接收的变量一定是引用类型。控制台输出Write()和WriteLine()二者区别是write不换行,writeline换行。ー、数据的格式化Console.write({n,宽度:格式化字符精度},变量)Floata=123.456789f;Console.write({0,-8:f3},a)123.457还可以调用tostring方法使用格式说明符。类对象名称.tostring(“格式说明符”)此方法可以将变量的值转换为由数字、数学符号等组成的字符串。还可以调用string类的format静态方法5.2.2格式化说明符.标准格式的一般形式是:{n[,m][Yn]N:表示变量的序号。,m:占位宽度Y:表示格式化的字符N:精度.自定义数字格式说明符.格式化日期和时间⑴获取日期和时间C#专门提供ー个用于存储日期和时间的类:System.DateTimeo使用该类取得完整的日期和时间。DateTime(intyear,intmonth,intday)定义ー个日期时间型的变量:datetiemmydate=newdatetime(2008,02,23)表5。3日期时间类的属性new:返回当前时间today:返回当前的日期date:返回datetime对象的日期部分dayofyear:返回对象中属于该年份的多少天。Year年份Month:返回月分Day:返回日期值Dayofweek返回星期部分。取当前日期和时间的:datetime.now返回当前日期:datetime.today.⑵格式化日期和时间数据表5.4给出d:表示短日期D:长日期f长日期短时间F:长日期和长时间g短日期短时间G:短日期长时间M或m:月份和天t时间T:长时间处理字符串的方法字符串是ー种引用类型。一、string类的字符串方法字符串变量是由关键字string来定义的,而string是system中的一个类,调用方法如下:string.方法名()表5.5已经给出string方法。1)比较方法compare(串1,串2)0等,-1不等。2)compareOrdlinal比较,但不考虑区域性语言3)concat用来连接string的ー个名多个实类。4)copy创建一个指定的string类具有相同值string新实例。5)Equals比较两个字串,以确定它们是否包含相同的值。6)chars用来获取此实例中位于指定符位置的字符。7)insert表示在实例中的指定索引位置插入一个指定的string类的实例。8)length返回字符串的长度。二>stringbuilder类的字符串方法stringbuilder类就能实现该方法。String创建的字符串是不能被修改,而stringbuilder类创建的字符串是可以修改的。Append定义时使用格式如下:要求必须引入名字空间System.TextoStringBuilder变量名=newstringbuilder();Tostring:表示将stringbuilder类型转为string〇二、parse方法用来将数字转换为相应格式的字符串。Tostring字符串转换为数字格式:parseo四、Convert类用于转换类型的ー个类。格式如下:convert.方法名(原数据变量);表5.7中给出〇第6章程序控制语句流程控制语句三种:顺序结构,分支结构、循环结构。6.1选择结构程序设计在c#提供了圧和swith两种选择结构。选择结构:它是根据条件是否成立,决定是否执行。在c#或在c语句中,当条件分支多于一条语句时,必须用大括号括起来,否则以语句中第一条作为分支语句。If(x==y)X=y;C=x;)一ヽIF语句最常用的,而且适合于分支较小的时间。如果分支较多,必须使用圧语句嵌套。(l)if(表达式){语句块};当表达式值为true时,执行语句块,否则执行下面的语句。判断两个数的大小。Readline:所接收的是ー个字符串。如果想转换为数值,必须使用parse方法或Convert类来进行转换。在输入一个字符串不能使用read方法,因为read方法输入时,不论输入多少个,只要第一个字符。(2)if(表达式){语句块}else{语句块}此语句适合于两个或两个以上条件时使用。比较两个数,输出最大数。在if语句中仍然可以进行嵌套。If(表达式1)If(表达式2)If(表达式3)ElseElseElseC#规定,从第一个else开始,每个else总是与它最近的可配对的IF语句匹配。1.输入学生的成绩百分制,请将其转换为等级分制」。此程序使用IF语句嵌套if(表达式){语句块}elseif(表达式){语句块}else{语句块}.将上题改为(3)的结构。.输入x的值,求y的值,当x等于。时,y等于〇,
当x小于。时,y等于ーx,当x小于5时,y等于x中5,当x小于10时,y等于x加10,当x大于10时,y等于x的平方。二、switch语句此语句适合于多分支结构,当判断条件比较多时,使用该语句。语法结构:switch(表达式)casecase常量表达式1:{语句组1}break;casecase常量表达式2:{语句组2}break;default:{语句组N+1}break;}说明:1)表达式:这里的表达式可以是变量,但变量必须能计算出值。2)当表达式的值与常量表达式的值某个匹配时,则执行相应的语句组。3)break;表示跳出switch语句,它与C++或C不同,C#要求switch语句必须有break〇4)表达式的值与常量表达式的类型可以是数值,字符,字符串。5)此结构最多执行一个分支,不能执行多个分支,当所有分支都不匹配时,则执行default语句后的语句。6)此结构中不能出现条件语句或逻辑表达式。Switch(cj)Casecj>=90:dfjkldfkldf;break;将上题百分制转等级分制改为switch结构。(89-89%10)/10(89-9)“0=8(100-100%10)/10=101.多种情况使用同一种解决方案相应的语句就可以了。2.执行多个case语句〇方オ前面介绍过了switch语句只能执行一个分支。但我们要求执行多个case语句。则必须使用goto语句gotocase5gotocase7这里的5和7就是case语句后的常量表达式。Default:只能有—"bo6.2循环结构程序设计四种:一ヽwhile语句while(条件表达式)(语句组}说明:1)条件表达式,它可以是ー个关系表达式,也可以是ー个逻辑表达式,表示true时,进行循环体中语句组。2)while循环,表示当第一次条件不满足时,一次循环也不执行。因为是先判断条件,后执行循环体。3)条件表达式一般都是由变量来控制循环是否执行,则变量称为循环变量。如while(x<=10)这里的x就是循环变量。且在循环体中一定有x的增值或减值语句。4)当循环变量的初值小于终值时,X增值,如果循变量的初值大于终值时,x减值。X=l;While(x<=10)X++;X=10While(x>=l)x--;5)在循环体中如果遇到break;表示跳出循环体。如果遇到continue表示结束本次循环,进入下一次循环。6)如果循环变量不增值或减值,循环将出现死循环。求1-100的累加和。当累加和时,累加初值为0当累乘时,累乘初值为1。1:求N!,N由用户输入。2:求1!+2!+……+N!,N由用户输入。3:求!00以内能被3和7整除的数的累加和,并显示这些数。4:求三位数的水仙花数。以下涉及到数组的均由循环对数组赋值。定义数组:int[]x=newint[10];.求ー维数组10个元素中,偶数和与奇数和。.输入10个数求最大数与最小数,不允许使用数组。.对ー维数组10个元素按从小到大顺序输出。.对ニ维数组5,5求2条对角线各元素数之和。.打印三解形九九表。.打印如下图形*********.打印如下图形****.对ー维数组10个元素,求10个元素中的最大数与最小数。二、do-while循环while(表达式){循环体}break:跳出循环continue:结束本次循环语法格式:do(循环体)while(表达式);过程与while循环相似,与while循环主要区别是该循环当while时,如果条件表达式第一次为false,则一次循环也不执行。而dowhile循环,不论条件表达式是否为true,至少执行了一次循环体。比如求5!三、for循环结构该循环适合于循环次数已知的情况。语句格式:for(循环变量二初值;条件表达式;循环变量增值){循环体}说明:1)此循环执行时,先给循环变量初值,然后判断条件表达式,如果为true,则进入循环体,一次循环结束后,循环变量增值。再与条件表达式比较。如果为false,则退出循环。2)条件表达式可省,但省略后为不判断条件。3)也可以将循环变量赋初值和增值省略,此循环相当于while循环,并在循环体中要有循环变量的增值语句。即1=1for(;I<=5;)(1++;}以上三种循环,用的最多的是while循环和for循环。四、集合循环下面介绍的循环只适合于集合运算。数组。语句格式:foreachinforeach(变量类型迭代变量in集合表达式){循环体}功能:对集合表达式所表示的数组或对象集合中的每ー个元素执行一遍循环体语句。说明:1)集合表达式是指某个集合或数组。2)迭代变量也就是循环变量,它只在该循环体内有效。它相当于集合中的每个元素。3break语句、continue语句和goto语句一ヽbreak语句break;用在switch和几种循环语句中,用于跳出循环和分支语句。如果是多重循环,只跳出内层,没有跳出外层。ーヽcontinue语ロJcontinue;结束本次循环,进入下一次循环。Goto语句一般不用。以下涉及到数组的均由循环对数组赋值。定义数组:int[]x=newint[10];.求一维数组10个元素中,偶数和与奇数和。.输入10个数求最大数与最小数,不允许使用数组。.对ー维数组10个元素按从小到大顺序输出。.对ニ维数组5,5求2条对角线各元素数之和。.打印三解形九九表。.打印如下图形**********.打印如下图形****へ«.对ー维数组10个元素,求10个元素中的最大数与最小数。.输出如下序列的第30项,1123 58 〇第7章数组数组是ー种ー对多的数据类型,是ー种同名的下标变量,比如当表示100名学生的成绩时,如果单独使用变量则需要100个变量,这时我们需要引用数组。1ー维数组数组分为ー维和多组。但在计算机中一般用到二维。ー维是ー个线性表,二维是ー个矩阵。一、ー维数组的定义和初始化.定义遵循“先定义,后使用”的原则。数据类型口数组名;以上定义了数组,并没有分配存储空间。Int[]x;说明:1)数据类型,可以是C#语言使用的各种数据类型。2)[],表示定义的是ー个数组。Intx;表示定义ー个一般的变量。Int[]x;表示定义一个数组。3)数组名:对C#进行命名。Double口y;.初始化ー维数组有两种方法,一种静态初始化,ー种是动态初始化.1)静态初始化所谓静态初始化,就是对数组各元素直接赋值。数据类型口数组名二{元素1,元素2,元素3,……}int[]x={1,2,3,4,5}x[O]=lx[2]=22)动态初始化动态初始化必须使用new关键字将数组实例化为ー个对象。再给对象赋值。.数据类型口数组名;.数组名二new数据类型[表达式]前面的第一句表示定义一个数组。第二句表示动态对数组进行分配空间。1)表达式:代表数组长度。2)NEW为数组对象在内存中分配空间。Int[]x;X=newint[10];表示定义了一个整数数组,10个元素,数组名为xint[]x=newint[10];对于数组下标都是从O开始的。静态初始化数组必须与数组定义结合在一条语句中,否则程序会出错。二、引用ー维数组数组名[下标]下标是从。开始,一直到n-1。数组元素可以看成是同类型的不同变量。7.2二维数组二维数有行与列构成。它是一个矩阵,第一个下标行,第二个下标是列。使用二维数组与使用ー维数组基本相似。ー、定义和初始化.定义数据类型L]数组名;.初始化1)静态初始化int[,]x={{1,2 },{3,4 },{5,6 })二维数组是按照行存储的。2)动态初始化int[,]x=newint[3,4]二、引用二维数组元素数组名[下标1,下标2].定义ー个ー维数组,10个元素,数据由键盘输入,求10元素中能被3和7整除的数的累加和。.定义ー个4*4的方阵,求对角线元素之和。.将一个2*3的矩阵,进行转置,转换为3*2。数据从键盘输入。.定义一个3行5列的矩阵,求各行元素之和。并输出在第一行的后面。求各列之和。.3不规则数组数组中的数组。定义的ー个数组元素仍然是数组。11222233锯齿状数组与多维数组:锯齿数据是由一些数据类型相同的数组组织在ー起的。它的成员是数组,每个成员的长度都是不等的。而多维数组中的成员是长度相等的。ー、二维不规则数组的定义和初始化.定义定义一维:int[]数组名=newint[变量]定义二维:数组名=newint[变量1,变量2]定义一个二维不规则数组:数据类型[川数组名二new数据类型[常量或变量用常量或变量必须有一个具体的值,在此其实就是建立一个行数。具体的列数还未定。Int[][]x=newint[3][];说明定义ー个数组名为x的3行的不规则数组,而且各行列数未定。.二维不规则数组的初始化int[][]x=newint[3][];x[O]=newint[5];x[l]=newint⑵;x[2]=newint[6];如果直接初始化值:int[][]x=newint⑵ロ;x[O]=newintロ{1,2,3};此语句是给第1赋值,3个元素x[l]二newintロ{5};此语句是给第1赋值,1个元素二、引用数组名[下标1][下标2]通过以上介绍的好象就是一个二维数组。但列数不是相等的,是变长的。数组名[下标1,下标2]x[〇][〇]:第1行,第1个元素值定义ー个5行的二维锯齿数组,第1行5个元素,第2行3个元素,第3行6个元素,第4行4个元素,第5行7个元素,各元素的值是它们的下标积,并输出这个不规则数组,按行输出。打印杨辉三角形.4使用system.array类的方法和属性前面的定义的数组都是普通的定义方式,但在C#中数组定义ー个对象来实现。一、array类的属性数组名.属性名以上可以取得数组的属性值array类的属性:length:获取数组所有维度上元素的总数Rank:获取数组的维数二、使用array类构造数组构造体array。以及array类的构造方法:createinstance。来创建一个数组。Array对象名;必须使用Createinstance方法实例化一^?•数组。所以完整的语句是:Arrayx=array.createinstance(typeof(int32),4)Typeof(int32):创建数组的类型。三、使用array类的方法.定义ー个5行的二维锯齿数组,第1行5个元素,第2行3个元素,第3行6个元素,第4行4个元素,第5行7个元素,各元素的值是它们的下标积,并输出这个不规则数组,按行输出。.打印杨辉三角形.使用array定义一个10个元素的数组,各元素值由键盘输入,并对这个数组进行排序,排序后并逆序排列输出。Sort()方法Reverse万法第8章类class,本章主要介绍使用类来创建一个比较复杂的程序。通常本章学会如何创建类,使用类,类的成员、方法的定义和构造函数等。8.1面向对象程序设计思想面向过程的程序设计:程序二算法+数据结构主要从算法入手,然后考虑数据结构。OOP:先考虑数据结构,并将数据结构和算法看成一个整体,类。.解决问题的思路.结构化程序和面向对象程序的结构面向过程的程序设计:程序=算法+数据结构程序二(数据结构+算法)在面向对象的程序设计过程中:对象二(数据结构+算法)程序二(对象+对象)在向对象的程序设计过程中,对象是主体。.结构化程序和面向对象程序的实现机制1)面向过程的程序设计:主要围绕功能进行的,ー个函数一个功能。2)面向对象的程序设计:把相关的数据(数据结构)和操作(算法)放在ー起,构成一个对象。与外界分隔的,设计者考虑:ー是对象,二是使用。8.2类及其组成1•类和对象每ー个实体都是ー个对象。类:类是“对象”的抽象,而“对象”是”类”的具体实例。类是ー个对象的型。但每ー个对象都有自己的值。学生类:学号,姓名,性别,出生日期等属性。张三:99001,张三,男,1980-09-09李四:99002,李四,女,1981-07-07类是具有一定的型:学号,姓名,性别,出生日期但对于张和李四两个对象,都具有不同的属性值。在C#中,对象的类型就是ー个类,并且总是先定定义ー个类,再根据类生成重要的对象。所以部类是一个对象的模板。.类的定义格式:Class类名(类的成员及方法的定义)定义ー个学生类说明:1)类名是用户自定义的类名,一般第一个字母大写。2)类的成员定义,这个类的属性和方法的定义.类的成员类是由数据成员和函数成员组成的。分别对应于面向对象程序设计的中的属性和方法。类的数据成员包含类的常量成员和类的变量成员。类的函数成员就是执行操作的方法。主要有以下几种:〇方法成员〇构造函数〇析构函数〇属性成员〇索引成员〇运算符成员〇事件成员.派生类一个类是另ー个类的派生,或者说ー个类是从另ー个类中继承的,如学生类,小学生类,中学生类和高中生类。派生类的定义格式:Class类名:基类名(类的成员定义}Class小学生类:学生类).类成员的访问权限有些类的成员可以衩外界访问,但有些类的成员不允许外界访问,所以在定义成员时要限制成员的访问权限,关键字如下:public:允许外界访问private:不允许外界访问,也不允许派生类访问protected:只允许在定义该成员的类或其派生类的内部被调用。Internal:允许同一个命名空间中的类访问。.命名空间⑴定义命名空间是用来管理类的容器usingsystem.datanamespace命名空间}ー个命名空间可以包括多个类。(2)使用命名空间导人命名空间导入命名空间后,就可以使用命名空间中的类了。.3创建对象类是ー种用创建对象的定义格式如下:类名对象名二new类名();根据类名创建了一个对象名。Classx)xy=newx();8.4类的数据成员类数据成员在程序中用来描述ー个类的特征,属性,两类成员ー类是常量成员,另ー个类是变量成员ー、常量成员在某个类中定义的常量就是这个类的常量成员,这个类的所有其他成员都可以使用这个常量来代表某个值。PI.定义常量成员Class类名(常量修饰符const数据类型常量名二表达式,……)其中:1)修饰符:public,private,new,2)数据类型,在本处只能是值类型,不能引用类型。.访问常量成员类名.常量成员名二、变量成员在类中定义的变量就称为该类的变量成员.变量成员同常量成员是不同的。如果对象不存在,即没有根据类创建对象,则没有变量成员。可以说变量成员是ー个特定的对象属性常量成员是类的本身一部分。.定义变量成员Class类名(修饰符类型变量名1,变量名2,变量名3……)修饰符有new,privateprotected,public,internal,static和readonly〇static,静态成员,这样该变量成员就同常量成员ー样,属于类本身,而不属于特定的类对象。类名.静态成员readonly:只读的。.变量成员的初始化静态成员:带static的成员变量非静态成员:定义时不带static的变量成员(1)非静态变量成员的初始化。ClassClass4publicintx=100;)在对的非静态成员执行初始化时,不能引用类的非静态成员classClass5(publicintx=100;publicinty=x+10;)(2)静态变量成员的staticintb=100;staticinta=b+10;.变量成员的访问⑴静态成员和非静态员静态员的特点:〇一个静态成员只占用一个存储空间。类的静态函数成员不是针对各外对象成立的。〇访问引用静成员的格式:类名・成员名实例成员(非静态变量成员)〇每ー个实例都包含了所有实例变量成员的不同存储空间。〇每ー个实例成员是属于不同对象的。〇访问格式如下;对象名•成员名创建一个学生类,在学生类中定义ー个常量成员sex,值为男。再定义ー个静态成员age。再定义变量成员sno,snameo创建一个程序,分别获取或对类的变量成员赋值。将99001,张ー,男,19这个实例输出。]这些类定义一定是public。8.5类的方法成员数据成员相当于类的属性。ー、定义类的方法成员在C#中,面向对象编程技术中,将函数称为方法,方法是用来访问、使用私有成员变量的途径。方法一般要实现一定的功能。定义一个方法Class类名定义数据成员[方法修饰符]返回的数据类型方法名(形式参数)(方法体})说明:1)方法修修饰符:访问权限修饰符public,private,internal,protected>静态static,abstract抽象,过载。2)返回数据类型:表示一个方法要有返回值,如果有返回值,则给出方法类型。如果没有返回值。Voido3)c#中方法名,是ー个合理的方法名称。4)形式参数:表示向方法中进行传递参数。数据类型参数名5)方法体定义了该方法所执行的任务。Return表达式即可。二、使用方法在c#的方法分为两类:ー类是静态方法,ー类是实例方法(动态方法),如果在定义一个方法时使用了static定义,则是静态的方法,否则是实例方法。数据成员:静态方法,实例方法。类名•数据成员对象名.数据成员。实例方法的调用格式:先创建实例类名实例名二new类名();然后访问实例的方法。对象名.方法名(实参)例1:创建一个类,该类中定义方法,该方法是用来求一个圆的面积和周长的。圆的半径使用参数传递。返回值例2:创建一个类,该类实现求三解形的面积。三边长由参数传递。并调用。例3:创建一个求!00以内能被3和?整除的类的方法,要求没有返回值,在类的方法中直接输出。例4:创建类,通过参数调用,求n!,n为参数。要求使用输出型参数例5:创建类,通过数组参数,将一个5个元素的ー维数组按从小到大排序输出。元素值从键盘输入。例6:定义ー个学生类,包括学号,姓名,性别,年龄,家庭地址。并定义方法根据年龄字段值,确定其是属于哪个阶段的学生。7-12是小学生,12-15是中学生,15-18是高中生,18以上是大学生。三、带参数的方法在c#的参数主要有以下4种类型的参数传递方法:.值类型参数被调用的方法不会修改内存中实参的值。保证实参是安全的不会被修改。返回的数据类型方法名(参数列表)参数列表:类型参数名.引用型参数向方法传递的是实参的地址,当在方法中修改了实参值,则在主调用程序中被修改了。参数定义时:ref类型参数名调用时也必须加上ref〇.输出型参数return表达式;可以定义ー个输出型参数。Out调用和参数定义时都必须使用out。实参不必赋初值。.数组型参数只能是ー维数组。而且必须放在形参定义的最后。Publicintxxx(paramsint[]list)四、静态方法凡是方法前有static的,表示是静态方法,静态方法的调用:类名•方法名。例4:创建类,通过参数调用,求n!,n为参数。要求使用输出型参数例5:创建类,通过数组参数,将一个5个元素的ー维数组按从小到大排序输出。元素值从键盘输入。例6:定义ー个学生类,包括学号,姓名,性别,年龄,家庭地址。并定义方法根据年龄字段值,确定其是属于哪个阶段的学生。7-12是小学生,12-15是中学生,15-18是高中生,18以上是大学生。第11章结构和枚举structstudent(intxh;)studentx;x.xh11.!结构值类型:int,long,char引用类型:字符串型,数组,类有时我们需要对ー系列数据作为ー个整体,如学生的信息。如果使用数组是不能实现,因为数组中存放的都是同一个数据类型。为些引出了结构类型。一、结构与类在C#中的结构中可以包含数据和方法的定义,但在C语言中结构中不能包含方法的定义。/结构是一种值数据类型。类是一种引用类型的。二、结构与结构成员的定义.结构的定义[修饰符]struct结构名:接口名列表结构成员和方法的定义)说明:1)修饰符:public,new,protectedinternal和private等。不带任何修改符的是private〇Structstudent)2)结构名是ー个合法的标识符即可。3乂}部分为结构成员代码。修饰符Class类名(数据成员方法成员).结构成员的定义〇结构的方法和属性成员〇结构的构造函数结构还可以有构造函数,但与类不同的是,为结构定义的构造函数必须包含参数,因为结构一定是由结构体成员组成的。三、使用和访问结构成员使用和访问结构成员,前提是先使用NEW来创建一个结构类型的对象。实例成员:结构对象.成员名静态成员:结构名.成员名students=newstudent;s.xh=101;s.xmメ张三?;s.age=21;四、结构的嵌套五、结构和类的区别.类型不同结构是值类型,类是引用类型。.定义构造函数的区别结构的构造函数必须参数。而类可以没有。.给变量赋值的区别可以给静态变量赋初值,但不允许给结构的ー个实例变量赋初值。.创建对象的方法不同结构创建对象有两种方法,一种使用new创建一个结构类型的对象,还可以使用结构名对象名;而类只能使用new来创建一个实例对象。.继承的区别结构不允许继承,但字可以继承接口或类。11.2枚举枚举就是用来创建只有几个取值的变量。它也是ー个集合。而在该集合中包括着多个成员。就是使用一定的符号表示指定的数据,如一周七天,分别用英文表示。Mon表示1枚举主要用于多分支的情况下。ー、枚举的定义1.定义修饰符enum枚举名(枚举成员列表)publicenumenum_l(a=-3,b,c,d=9,e,f}a=0b=lc=2d=3e=4f=5使用时,必须先定义ー个枚举变量格式如下:枚举类型枚举变量名enum_leml成员访问:枚举实例名.成员名eml.aeml.bconsole.write((int)em1.a)结果输出是a-3.定义ー个存储学生的学号,姓名,性别和年龄的结构,并通过结构的构造函数来对学号,姓名,性别和年龄赋值,并调用结构来输出某个学生的信息。.使用枚举类型,将百分制数转换为等级分制。.创建一个命名空间,并创建一个求N的阶乘的类,最后调用。第12章命名空间12.命名空间命名空间是用来限定名称的解析和使用的范围的。是ー个逻辑上的类型组织系统。层次结构。树状结构。12.2定义命名空间namespace命名空间名成员定义(类,)12.3使用合名空间ー、命名空间完全限定名文件夹ー样,有绝对也有相对。,net中的根空间:system二、C#应用程序的组织结构c#是由一个或多个文件组成,每个文件可以饮食ー个或多个命名空间,而每个命名空间又可以饮食各种数据类型。三、using语句1.命名空间using语句using命名空间引用命名空间第13章异常处理13.1异常处理的概念.异常现象异常就是指在程序运行期间发生的错误或意外情况。产生异常现象主要有以下几点:1)代码的语法错误一般在程序编译过程中就会发生,并提示。2)用户输入错误3)代码的逻辑错误逻辑错误最不好处理,最难发现。4)计算机的物理限制硬盘空间,内存空间受限。5)计算机的外部设备错误。.异常处理当程序出现错误时,系统会弹出错误信息,但此信息是C#提供错误信息,对非程序人员无法识别。需要对异常进行处理。处理有以下几点:1)提示程序中出现的错误种类。2)保存当前已经完成的工作。3)忽略错误,能返回到安全状态。在C#中叫异常控制。.c#的异常处理如果不使用c#的异常处理功能,则系统提示出现的是ー些无法理解的信息提示。C#程序的异常处理是当程序出现错误时,是自动执行的。13.2C#的异常控制机制在C#程序设计中经常要使用公共语言运行时库提供的异常处理控制。System.Exception父类。Try,catch,throw,finally〇ー、使用try/catch语句抛出和处理异常.try/catch语句块的格式try(……可能产生错误的程序代码块)catch(异常类型1)异常处理控制代码)catch(异常类型2)异常处理控制代码).Try/catch语句块的执行过程当程序出现错误时,系统自动在catch子句中查找,看是否与设置的异常类型相同的catch语句块,如果有,就会执行该异常类型的语句块,如果没有,则转到调用的当前方法中查找,一直找下去直到出现错误。如果catch语句块没有参数是ー种通用异常处理。表示不论出现什么错误都将执行该catch的语句块,所以如果该catch中有没有参数的,则不允许再添加catch语句块了。E或x,3捕获和控制多个异常在—try中可以设置多个catch,但这时的catch必须是带参数的。格式如下:catch(异常类对象名)不允许出现不带参数的catch4.Try块可以被嵌套二、使用throw语句抛出异常抛出异常有两种:ー种是自动抛出,前面介绍的就是自动抛出,另ー种是人为抛出异常:格式:throw异常类的对象;thrownewDivideByZeroException再次抛出:throw;三、使用finally语句添加最后执行的操作最要要进行善后处理的代码。不论是否发生异常都将执行该语句块。1.格式try()finally()netframework的异常类一、内部机制所有异常处理都继承System.Exception异常类。二、.net中的异常类父类:System.Exception,它还有其他的子类。.SYSTEM.EXCETPION类(1)属性.常用的异常类第14章编译预处理和调试/测试技术程序中的错误〇语法错误编译时提示。〇运行错误〇逻辑错误程序运行后达不到预期结果。针对以上错误,提供了不同的调试技术〇异常处理和控制方法〇编译预处理逐行检查代码编译预处理使用调试处理一、几个基本调试概念.断点.中断.版本两种版本:发布版本,调试版本。第17章创建windows应用程序我们把windows应用程序称为C/S应用程序。界面:界面用窗体来实现。1什么是windows窗体就是ー个强大的人机交互界面。而且非常人性化。优点:〇操作简单且功能强大〇控件结构的独立性。V2005提供了许多内置的控件,用于实现各种功能,如标签,文本框、列表框〇有些控件是独立的,有些控件是容器。标签是ー个独立的控件,能够容纳其他控件的就是容器控件。〇丰富的图形功能。〇提供子强大的数据访问功能。VB6中使用数据访问接口是ADO,而在VS.NET使用的数据访问接口是ADO.NET〇ODBC,DAO,ADO,ADO.NET,JDBCQLEDB。〇支持activex控件。〇提供了强大的打印控制功能。17.2创建—简单的winform程序我们开发使用的是2005,在该开发系统中比vs2003增加了许多控件。具有许多新的特性。ー、创建一个项目ー个项目是包含一个解决方案中的,ー个解决方案中可以包含多个项目。在一个项目中可以有多种文件。这也就是说一个项目是由多个文件所构成的,每一个文件都实现一定的功能,但绝大多数都是窗体文件。打开2005,系统会自动打开一个“起始页”,如果起始页没有打开,则在“视图”菜单下打开。再单击创建“项目”,弹出新建项目对话框,在对话框的左侧选择语言。选择项目名称和保存的路径。再单击“新建”,则自动创建了一个项目。在项目中已存在一个窗体名为forml的窗体文件。二、项目的结构解决方案资源管理器具有如下结构:program.cs:这是一个windows应用程序的主程序文件。里面含有Main主函数,由它来决定起始窗体是谁。窗体文件:扩展名为.CS,该文件中包括着界面和事件代码。重点要使用的就是窗体文件。类:可以在windows项目中添加完成一定功能的类,如创建一个数据库的连接,查询、插入、删除功能的类和方法。三、VS.NET2005的使用1.组成1)菜单2)工具栏3)解决方案资源管理器在该管理器中用来打开各种文件。查看代码。4)属性窗ロ此窗口用来设置控件或窗体的属性。5)工具箱窗口此窗体口存放着众多的内置的控件。6)窗体设计窗口可以向窗体中拖放控件7)代码窗口用来编写程序代码的。对谁编写代码,在该控件上双击即可。可以看到对其他类的引用。都是放在该窗体最上方,使用using来进行导入命名空间。8)服务器资源管理器2.代码组成打开一个窗体,进入代码界面。在代码界面中最上方是命名空间的导入使用using导入。在下方是关于窗体的设置,也可以通过语句来进行人为设置。其实窗体就是ー个form类。在代码窗口中还含有其他控件的相应事件。17.3windows窗体应用程序模型作为一个应用程序模型有以下几个方面:〇窗体〇属性。控件〇事件ー、窗体是ー个界面,也是ー个容器,在窗体上可以拖放各处控件。一个窗体是由多个控件所组成的。二、属性表示对象的特性,如窗体的大小,是否有最大化按钮、最小化和控制栏等属性。三、控件所有控件都是由system.windows.forms.control类继承来的。四、事件完成一定功能的控件触发代码。最常用的是单击事件。事件有时是人为触发的,有的事件是自动触发的。Load事件。Messagebox函数,该函数是用来提示信息的。VB:Messagebox(“系统提示”,“在在在在“,16+32)Messagebox函数的使用:intx;x=(int)MessageBox.Show("计算机应用基础”,〃系统提示”,MessageBoxButtons.YesNo,MessageBoxIcon.Error);x=6表示“是”五、程序设计的步骤1)程序需求分析2)设计所需的类及对象3)界面设计4)为窗体和控件添加各类事件代码5)调试运行程序inti,x,p=l;x=int.Parse(textBoxl.Text);for(i=1;i<=x;i++)p=p*i;label2.Text+=p.ToStringO;补:窗体的常用属性和方法ー、添加窗体ー个应用程序不可能就一个窗体,ー个窗体实现ー个功能。所以需要添加窗体,通过“项目”菜单下“添加windows窗体”来完成。二、调整启动窗体在program.cs中将主程序的入口点的:application.run(new窗体名());即可。三、窗体的常用属性窗体引用时经常使用this关键字。表示当前的窗体对象。1.窗体标题text〇设置窗体的标题文本。2.opacity属性它是用来设置窗体的透明度。.backcolor属性设置背景颜色.backgroundimage属性设置背景图片.controlbox属性设置为true和false表示是否有控制菜单栏.enabled属性设置为true和false表示该窗体是否可用。是否响应用户的事件。.visible属性设置是为可见,true和false。.minimizebox属性设置是否有最小化按钮。.maximizebox属性设置是否有最大化按钮。.windowstate属性设置窗口的状态,最大化和最小化以及默认。.startposition属性运行后起始位置设置值为枚举。四、方法.打开显示窗体必须先创建窗体对象,再使用show方法显示。.关闭窗体this.close();.退出应用程序application.exit();17.4winform控件ー、常用控件Label控件,标签控件它主要用来显示文本内容,它只直到ー个提示的功能。属性:text属性(重要)用来设置或获取标签的文本内容。font属性(重要)用来设置标签上文本的字体,字型,字号等属性。autosize属性用来设置是否自动缩放。默认为true。forecolor属性设置标签上文本的颜色,前景色。locked属性锁定,默认为false,表示如果为true时,则控件不允许移动,不允许改变大小。visible属性可见和不可见。True时可见,False时不可见。enabled属性该属性表示控件对用户的动作是否响应。是否可用。如果为true,表示可用,如果为false表示不可用。以上的属性如locked,visible,enabled以及font和forcolor,backcolor等每个控件都有这几个常用的属性。Text属性各控件都有,但表示的含义是不同的。.按钮控件最常用的ー个控件单击事件。1)属性〇text:表示按钮上的文本标题。〇textalign:表示按钮上文本标题的对齐方式。〇image:有时按钮是图片按钮,所以由该属性来控制该按钮的图片。〇imagelist:是用来指定图片列表的一个控件名称。。使用imageindex和imagekey属性来设置按钮上的图片。图片列表控件是ー个图片集合,它负责将多个图片放在图片列表控件中,其他控件可以使用该图片列表中的某个图片。图片列表控件是不可见的。图片列表控件专门用ー个图片集合属性:images。可以用来设置。Font,forcolor,backcolor,enabled,visible,locked与标査控件相同。2)事件最重要的事件就是单击事件:clicko.文本框控件:textbox用来接收用户输入的文本。属性:l)text属性获取或设置文本框中的内容。usesystempasswordcharJMtttrue和false如果为true»则该文本框是—个密码框,且密码字符为*。如果为false,则是ー个文本输入框。不显示密码字符。passwordchar属性这是用来设置密码框中显示的密码字符。readonly属性用来设置文本框是否是只读的。如果为true,则为只读,不可修改。否则是可修改的。scrollbars属性滚动条。在VS.net中没有多行文本框了。只有一个文本框,由文本框来决定它是多行还是单行。Multiline属性与scrollbars配合使用。事件:textchanged事件:文本发生改变时触发。例1:编写程序完成在文本框中的输入的字符全部转换为大写字母。e.keychar:表示输入的字符。要求编写keypress事件。4.Radiobutton控件这是ー个单选按钮控件,在众多的单选按钮中只能选中一个。经常使用容器控制来来分组。属性:l)text属性:用来设置文本标题2)checked属性:用来决定该控件是否被选中。True表示选中,false表示未选中。使用该控件要使用条件语句,而且条件语句是可以使用并列,但一般使用嵌入。界面如下:5.checkbox复选框在多个选项中,可以选择多个。属性:Dtext:复选框的标题。font属性:用来控制标题的大小,字体及字型。checked属性,用true和false来区别复选框是否被选中。6)listbox扌空件列表框控件在控件中显示多个选项,可以选中一个,也可以选中多个。列表集合:当ー个控件中有多项数据时,则这些数据的集合叫列表集合,一般都用items表示。该属性应用来来表示集合的。而且集合中各元素都有自己的索引值,即下标值。下标都是从。开始的。而且一般表示某个选项都是使用items[O]属性:Ditems:它是列表集合,通过该属性可以向列表中添加选项。text:在设计界面没有,但在使用代码时有,表示选中的那个选项的文本。方法:add控件名.items.add(文本)2)clear清除列表框。selectedindex:表示选中的索引值。2)removecombobox控件与列表框相似,列表框是列出所有选项,而组合框没有列出,是收缩的。下拉列表框。下拉列表是集成了文本框和列表框的功能。linklabel超级链接标签。System.Diagnostics.Process.Start("");.书上402页图17.11,在提交按钮的上方添加一个标签,当单击提交按钮时,在标签上显示姓名:张三,性别:男毕业时间:什么,工作单位是什么,个人爱好是:什么,email地址是什么,同意加入还是不同意加入。.在—个窗体中添加两个列表框,分别为!istbox1和!istbox2,在上方添加一个文本框,文本框后有一个按钮,单击按钮则将文本框中的文本作为ー个选项添加到listboxl中。在两个列表框之间添加两个按钮,标题分别为清除和移动。清单击清除按钮时,清除listbox2和listboxl和文本框的值。当单击移动时,则将listboxl中选中的选项移动到listbox2。17.5VisualC#的菜单设计与编程ー、菜单设计基础知识在windows中菜单分为两种:ー种是下拉式菜单,主菜单。该菜单叫mainmenu.它位于标题栏上方。它是在窗体上的。是可见的。另ー种是上下文菜单,也叫快捷菜单方式。右键才能弹出,它是在某个控件上的。.在C#中添加下拉式菜单和上下文菜单。在工具栏中,展开“菜单和工具栏”项,选择这两种菜单,这两种菜单不显示在窗体区域。在设计菜单时,直接在文本区,输入菜单标题即可。如果想输入分隔线,则在标题处输入”-“即可。.对菜单编写程序代码。在某个菜单项上,双击,即可弹出该菜单项的单击事件。编写代码即可。此种方法适合于下拉菜单和上下文菜单。.将上下文菜单与控件或窗体绑定。创建上下文菜单后,上下文菜单的名字记住,然后单击控件,选择属性:contextmenu。将其设置为上下文菜单的名称即可。也可以使用命令。Label1.contextmenu=contextmenu1;17.6MDI编程MDI:多文档界面应用程序,它表示在ー个应用程序中有一个主窗体,该主窗体中包含若干个子窗体,子窗体只能在主窗体的范围内活动。ー、窗体的分类.MDI主窗体在ー个应用程序中可以有多个。但我们添加时的窗体不是MD!窗体,MDI窗体设置必须将属性isMdicontainer设置为true,则窗体即成为了MDI主窗体,在主窗体中可以有菜单,工具栏,状态栏等。.子窗体子窗体是放置在主窗体中的,它只能在主窗体内移动,并且随着主窗体的关闭而关闭。子窗体不是设置属性来实现的,是通过代码来实现的。所以新添加的窗体都是独立窗体。3•独立窗体与任何一个窗体无关的窗体,前面大家建立的窗体都是独立窗体。它浮动在任何窗体之外。二、窗体的调用.主窗体主窗体一般都是在应用程序的第二个窗体进行调用。主窗体的调用与独立窗体相同。都是如下代码:窗体名对象名二new窗体名();对象名.show;.子窗体的调用必须在主窗体的菜单下使用如下代码进行调用.窗体名对象名二new窗体名();对象名.MdiParent=this;对象名.Show();子窗体只显示一次:Form5frm=newForm5();OpenChild(frm);privatevoidOpenChiId(Formchild)〃在MDI父窗体中显示子窗体(foreach(Formfinthis.MdiChildren)(if((f)isForm){f.Activate();return;))child.MdiParent=this;child.Show();)17.7工具栏与状态栏.工具栏向窗体中添加工具栏控件。.状态栏一个状态栏是ー个状态栏面板,可以在状态栏上添加多个面板。然后在窗体的ー个初始化事件中对状态栏进行初始化工作。添加一个计时器。要求创建一个登录窗体,登录窗体用户名使用下拉列表控件,密码使用文本框控件,暂定用户名为admin,密码为1111,如果用户名输入的是admin,密码是1111,则登录成功,弹出ー个MDI窗体,MDI窗体有下拉式菜单,该菜单完成你前面所做窗体调用。必须以子窗体的方式调用。在MDI窗体中有工具栏,也是用来调用前面的窗体,有状态栏,状态栏有三个面板,第一个面板直接显示“欢迎进入本系统”,第二个面板显示:“当前用户为:admin,要求admin是登录窗体传递过来的。第三个面板显示当前的日期和时间。即要日期也要时间。是动态的。第19章C#数据库编程ADO.NET数据库访问ADO,DAO,ODBC,OLEDB,JDBC和ADO.NET,以上几种都是ー种数据库访问技术。一ヽ概述微软新的数据库访问技术,它不是ad。的简单升级,而发生重大的变化。支持xml,而且它是ー种非连接方式的数据处理。ADO是ー种连接方式的数据处理。占用系统资源非常大。A的框架ado的框架:具有几个对象,connection连接对象,command命令对象,recordset记录集对象。Recordset相当于一^Is•表,而dataset相应于一个数据库。A具有两大核心组件:dataset数据集和数据提供程序。数据提供程序包括以下几大数据组件:connection连接对象,command命令对象,datareader数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB 40248-2026人员密集场所消防安全管理
- T/SILA 012-2023家居照明光健康规范
- T/SAME 001-2022临床实验室II级生物安全柜管理要求
- T/CES 316-2024光伏电站能量流测试技术规范
- T/CHSA 104-2025咬合板治疗颞下颌关节紊乱病的专家共识
- T/CSTEA 00027-2021大田美人茶
- T/SRMA 40.3-2026基于国际功能、残疾和健康分类的结构化康复病历书写指南 第3部分:帕金森
- 2025~2026学年河北省邢台市任泽区骆庄学区小学联考冀教版三年级上册12月月考数学试卷【附答案】
- 2027届河南省鲁山、舞钢九年级数学第一学期期末学业质量监测模拟试题含解析
- 车间级日常安全管理实务培训
- T∕CAEPI 103-2025 焦化企业超低排放控制技术指南
- 沉浸式了解博物馆发展历程
- 2025年海关缉私辅助人员招聘考试真题(附答案)
- 小流域综合治理监理规划
- 脑卒中康复治疗教案教学设计
- 普通高中校长专业标准(2025版)
- 外墙线条维修施工方案(3篇)
- 农村饮水工程给水管改造项目监理单位工程质量评估报告
- 医美培训课件资料
- 高职院校专业课程教学大纲示范模板
- 无人机足球课件
评论
0/150
提交评论