C#语言和数据库技术基础学习小结(5篇材料)

时间:2019-05-13 19:50:05下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《C#语言和数据库技术基础学习小结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《C#语言和数据库技术基础学习小结》。

第一篇:C#语言和数据库技术基础学习小结

C#语言和数据库技术基础学习小结

第1章

第一个 C#程序

一..NET 是 Microsoft.NET 的简称,是基于 Windows平二.Program.cs:该文件是项目的启动文件,在该文件中 定义项目的启动入口,即 Main()方法。在 C#中,程序 源文件以.cs 作为扩展名。

三.HelloWorld.exe:这个文件位于 binDebug 目录下,是项目编译后的可执行文件,可以直接运行。四.C#关键字

1.namespace 关键字:namespace(命名空间)是 C# 中组织代码的方式,它的作用类似于 Java 中的 package(包)这样我们就可以把密切相关的一些代码放在同,一个命名空间中,大大提高管理和使用的效率。2.using 关键字:

使用 Using 关键在来引用其他命名空间。3.class 关键字:

不要求类名必须与源文件的名字一样。4.Main()方法:是程序运行的入口 5.关键代码: Console.WriteLine();//从控制台输出内容 Console.ReadLine();五.C#中数据类型 //从控制台输入

1.整型:int。2.浮点型:float。3.双精度型:double。4.字符串:string。5.布尔型:bool。六.C#中变量命名的规则:

1.组成: 个英文字母52(A-Z、、个数字a-z)10(0-9)、下划线(_),除此之外不能包含其他字符。2.开头:只能以字母或下划线开头。3.不能使用的:不能使用 C#中的关键字。七.常用的输出方法有两个: 1.Console.WriteLine(),输出后换行 2.Console.Write(),输出后不换行 第2章

一.switch 结构: C#语法快速热身

switch(int/char/string 表达式){ Case 常量表达式 1: 语句 1; break; //必须有 } 二.一维数组: 数据类型[ ] 数组名; //创建一个含有 //省略数组长度 //省略 new 关键

1.Int[ ] array=new int[5]{0,1,2,3,4,};五个整型数组的数组

2.int[ ] arra1=new int[] { 0,1,2,3,4};3.int[ ] arra2={0,1,2,3,4};字

三.通过数组的 Length 属性,可以获得数组长度,通常 会用它来作为循环终止条件 语法:数组名.Length;同 Java 一样,访问数组的元素使用的形式如下,下标 从 0 开始,C#中我们也把下标叫做索引。数组名[下标] 四.foreach 循环:

each 是每个的意思,foreach 结构用于遍历一个数据 集(如数组)的每一项,需要设置一个标识符(变量)语法: Foreach(类型 元素 in 集合或者数组){ 代码块 }

语法中的“元素”是一个只读变量 五.循环应用的区别如下:

1.while 循环是先判断条件表达式是否成立。若成立则 实行循环体;否则结束循环

2.do-while 循环先执行一次循环体再判断条件表达是 否成立。若成立则继续循环,否则结束循环

3.for 循环必须使用整型变量做循环计算器,通过条件 表达式限定计数器变量值来控制循环 4.foreach()自动遍历给定集合的所有值 六.冒泡排序算法:

1.N 个数字来排队,两两相比小靠前 2.外层循环 N-1,内层循环 N-1-i;3.如果要降序排序,只要把程序中的大于号换成小于 号就行了 第3章

使用属性升级 MyBank 一.访问修饰符:访问修饰符是用来修饰类成员字段和 方法的符号,依次限定类成员的可访问级别 private(私有的)

如果将类的成员(变量或者方法)声明为 public,就 表示这些成员可以被其他类访问。如果使用 private 限 定类成员的访问权限,那么这些类成员就只能在该类 里面使用,其他类对它们没有访问权限

如果将某个字段或者方法声明为 public,就表示其他 类可以访问这个字段和方法;如果声明为 private,那 么该字段或者方法只能在本类中使用,其他类不能访 问

二.C#中的访问修饰符:

1.public 不受任何限制访问级别最高

2.private 只有类的内部可以使用访问级别最低 注:如果在成员定义之钱没有制定访问修饰符,那么 这个类成员的访问权限默认为 internal,它只能在本项 目内访问 三.this 关键字:

this 是指当前对象本身,通过 this 可以引用当前类的 成员变量和方法,使用 this 关键字可以解决成员变量 和局部变量名称冲突问题 四.用属性实现字段分装: 1.C#的属性:

如果要访问类中的字段,需要通过 get 和 set 访问器实 现,这种结合了字段和方法的实现方式我们成为属性(property)。

2.get 访问器用来返回相应的私有字段的值,get 访问器 与方法相似,必须用 return 语句返回字段的值 3.set 访问器用来设定希相应的私有字段的值,set 访 问器类似于返回类型为 void 的方法,它使用一个隐含 的输入参数 value 4.属性的数据类型:

定义类中的一个属性是,属性的数据类型必须与它所 访问的字段类型一致 5.属性的访问类型:

只读属性:只包含 get 访问器 只写属性:值包含 set 访问器 读写属性,包含 get 和 set 访问器 五.编程规范:

1.在为类的私有字段命名时,要以下划线“_”开头,随后出现的英文字母采用 Camel 命名法,即以第一个 单词的首字母小写,如果字段由多个单词组成,其后 单词的首字母大写

2.在为类的属性命名时,采用 Pascal 命名法。即组成 属性名称的多个单词的首字母要大写 3.封装字段的快捷键是:Ctrl+R+E 六.封装的优点: 1.避免使用非法数据赋值 2.保证数据的完整性

3.避免内部发生修改时,导致整个程序的修改 六.按引用传递参数:

要想使参数按引用传递,需要使用 ref 关键字来修饰 参数 第4章

1.bool Equals(string 深入 C#的 String 类

value):比较一个字符串与另一个 一.常用的字符串处理方法

字符串 value 的值是否相等,如果二者相等返回 true,如果不相等返回 false,该方法的作用与运算符“==” 相同

2.int Compare(string str A ,string str B):比较两个字符串 的大小关系,返回一个整数,如果 str A 小于 str B,返 回值小于 0,如果 str A 等于 str B,返回值为 0,如果 str A 大于 str B,返回值大于 0 3.int IndexOf(string value):获取指定的 value 字符串在 当前字符串中第一个匹配项的位置,如果找到了 value, 就返回它的位置,如果没有找到就返回-1.4.int LastIndexOf(string value):获取指定的字符串

value 在当前字符串字符串中最后一个匹配项的位置,如果找到了 value,就返回它的位置,如果没有找到,就返回-1.5.string Join(string separator, string[] value):把字符串

数组 value 中的每个字符串用指定的分割符 separator 连接,返回连接后字符串 6.string[] Split(char 7.string 8.string 9.string 10.string separator): 用 制 定 的 分 割 符

separator 分割字符串,返回分割后的字符串数组 Substring(int startdex, int length):从制定的位 ToLower():获取字符串的小写形式 ToUpper():获取字符串的大写形式 Trim():去掉字符串前后两端多余的空格

置 startIndex 开始检索长度为 length 的子字符串 二.运算符==和 String 类方法 Equals()的区别如下: 1.==通常用来比较 int,double 等数值类型的数据是否 相等

2.Equals()通常用来比较两个对象的值是否相等 三.“”和 String.Empty 的区别如下:

1.“”为 String 对象分配一个长度为零的储存空间 2.String.Empty 不会为对象分配储存空间 四.Foramt 格式化:

String myString=String.Format(“格式字符串” 参数列 表);五.格式化数值结果表: C:货币格式 D:十进制格式 F:小数点后的位数固定 N:用逗号(,)隔开的数字 P:百分比计数法 X:十六进制格式 五.简单的类型转换: 1.隐式类型转换 2.显示类型转换

六.数值类型与字符串之间的转换 1.字符串转换为数值型: 控制台接收整数:

int.Parse(Console.ReadLine());字符串转换为整型的代码: Int.Parse(string);字符串转换为单精度浮点型的代码: float.Parse(string);字符串转换为双精度浮点型: Double.Parse(string);2.数值型转换为字符串: 第6章

程序数据集散地:数据库 一.使用数据库的必要性:

1.可以结构化存储大量的数据信息,方便用户进行有 效的检索和访问

2.可以有效地保持数据信息的一致性,完整性,降低 数据冗余

3.可以满足应用的共享和安全方面的要求

4.数据库技术能够方便智能化地分析,产生新的有用 信息

二.数据库的基本概念:

1.实体:是所有客观存在的,可以被描述事物,这些 都被称为实体 2.记录:每一“行”实际上对应一个实体,这样的一 行,在数据库中,通常叫做一条记录

3.表格中的每一“列” 如编号,姓名,年龄,民族等,在数据库中,通常叫做“列”,也可称之为“字段” 三.数据库管理系统和数据库系统

1.数据库管理系统、DBMS 是一种系统软件,由一个 互相关联的数据集合和一组访问数据的程序构成。数 据库管理系统的主要功能是维护数据库,并有效的访 问数据库中各个部分的数据。

2.数据库系统、DBS、是一个实际可运行的系统,可以 对系统提供的数据进行存储,维护和应用,它是有存 储介质,处理对象和管理系统共同组成的集合体,通 常有软件、数据库和数据管理员组成

3.数据库管理员、DBA 在数据库系统中负责创建,监 控和维护整个数据库,使数据能被有权使用的人有效 使用

四.数据冗余和数据完整性

1.在数据库系统中,数据重复的现象就是数据冗余 2.数据的完整性是指数据库的准确性 五.数据库按照用途可以划分为如下两种 1.系统数据库 2.用户数据库 系统数据库是管理和维护 SQL 六.数据库操作权限:

1.db_backupoperator 权限可以备份数据库 2.db_datareader 可以读取数据库中的数据 3.db_denydatareader 不允许读取数据 七.创建数据库

1.数据库文件:一个数据库可以有一个后多个数据库 文件,一个数据库文件只属于一个数据库,当有多个 数数据库文件时,有一个文件被定义为主数据库文件,主数据库文件的扩展名为.mdf,它用来存储数据库的 启动信息数据。一个数据库只能有一个主数据库文件,其他数据库文件被称为次数据库文件。Server 所必须的数据

库,用户数据库是用户自己建立的数据库

2.事物日志文件:事物日志文件用来记录数据库的更 新情况,在对数据库进行操作的时候,数据库中内容 更改的操作信息都会记录在此文件中,事物日志文件 的文件扩展名为.ldf,一个数据库可以有一个或多个事 物日志文件

3.文件组:类似于文件夹,文件组主要用于分配磁盘 空间并进行管理,每个文件组有一个组名,与数据库 文件一样,文件组也分为主文件组和此文件组 八.数据库关注选项: 1.兼容级别 2.数据库为只读 3.访问限制 4.自动关闭 5.自动收缩

九.数据库的管理和维护

1.分离和附加数据库:移动数据库分亮不进行,首先 是分离数据库,然后是附加数据库 2.备份和还原数据库:

四种数据库备份方式:1.完全备份 2.差异备份 3.事物 日志备份 4.文件和文件组备份 第7章 一.数据完整性 用表组织数据

1.实体完整性约束:要求表中的每一行数据都反应不 同的实体,不能存在相同的数据行,通过索引、唯一 约束、主键约束或标识列属性,可以实现表的实体完 整性

2.域完整性约束:域完整性指的是给定列输入的有效 性,通过限制数据类型、检查约束、输入格式、外键 约束,默认值、非空约束等多种方法,可以实现表的 完整性

3.引用完整性约束:在输入或删除数据行时,引用完 整性约束来保持表之间已定义的关系 4.自定义完整性约束: 二.主键和外键

1.主键:需要一个列,这个列的值用来标识表中的每 一行,用于强制表的实体完整性,这样的列定义为表 的主键,一个表只能有一个主键

2.外键:外键用来强制引用完整性,一个表可以有多 个外键

三.确定列的数据类型:1.二进制数据类型 2.文本数据 类型 3.日期和数据类型 4.数字数据类型 5.货币数据类 型 6.bit 数据类型 第8章 操纵语言

用 SQL 语句操作数据

一.SQL 的组成:1.DML:数据操作语言,也成为数据 2.DDL:数据定义语言 3.DQL 数据查询语言 4.DCL 数据 控制语言

二.SQL 中的预算符

1.算数运算符 2.赋值运算符 3.比较运算符 4.逻辑运 算符

三.使用 T_SQL 插入数据 1.使用 INSERT 插入数据: 语法:INSERT 列表)2.一次插入多行数据:通过 INSERT SELECT 语句将现 有表中的数据添加到已存在的表中

例:INSET INTO AddressList(姓名、地址、电子邮件)SELECT SName, SAdress, SEmail FROM Students 3.通过 SELECT INTO 语句将现有表中的数据添加到新 表中: 语法:SELECT 增长量)AS 列名

IDENTITY(数据类型,标识种子,标识 [INTO] 表名[列名列表] VALUES(值 INTO 新表 FROM 原始表

4.通过 UNION 关键字合并数据进行插入 5.使用 UPDATE 更新数据:

语法:UPDATE 表名 SET 列名 = 更新值 [WHERE 更新 条件] 6.使用 T_SQL 删除数据 语法:DELETE [FROM] 表名 [WHERE<删除条件>] 7.使用 TRUNCATE TABLE 删除数据 第9章 语法:

SELECT <列名> FROM<表名> 数据查询基础

一.使用 SELECT 语句进行查询 [WHERE<查询条件表达式>] [ORDER BY<排序的列名>[ASC 或 DESC]] 1.查询所有的数据行和列: SELECT * FROM Students 2.查询部分行或列 3.在查询中使用列的别名

4.查询空值:在 SQL 语句中采用“IS NULL”或者“IS NOT NULL”来判断是否为空: SELECT IS NULL 5.在查询中使用常量列 6.查询返回限制的行数 二.查询排序

如果需要按照一定顺序排列查询语句选中的行,则 需要使用 ORDER BY 子句,并且排序可以是升序

(ASC)或者降序(DESC)如果不指定 ASC 或者 DESC,记录集按默认 ASC 升序排序 三.在查询中使用函数 1.字符串函数:

CHARINDEX:用来寻找指定的字符串在另一个字符 串中的起始位置

LEN:返回传递给它的字符串长度

RIGHT:从字符串右边返回指定数目的字符,右边去字 符

REPLACE:替换一个字符串中的字符 2.日期函数:

GETDATE:取得当前的系统日期

DATEADD:将指定的数值添加到指定的日期部分后的 SName FROM Students WHERE SEmail 日期

DATEDIFF:两个日期之间的指定日期部分间隔 DATENAME:日期中指定部分的字符串形式 DATEPART:日期中指定日期部分的整数形式 3.数学函数:

RAND:返回从 0 到 1 之间的随机 float 值

CEILING:向上取整,取大于或等于指定数值,表达式 的最小整数、大于它的最小整数

FLOOR:向下取整数,取小于或等于指定表达式的最 大整数、小于它的最大整数

ROUND:将数值表达式四舍五入为指定精度 4.系统函数:

CINVERT:用来转变数据类型 第 10 章 来进行

模糊查询和聚合函数

一.模糊查询:模糊查询可以使用 LIKE 关键字,通配符 1.通配符:通配符是一类字符,它可以代替一个或多 个真正的字符,查找信息时作为替代字符出现-:一个字符 CS、Cd 等 示例:A LIKE ’C_’,则符合条件的 A 如 %:任意长度的字符串 如 CONST、COKE 等

B LIKE ‘CO%’,则符合条件的 B C LIKE ’WO[1-2]’, D LIKE []:括号中所指定范围内的一个字符 则符合条件的 C 如 9W01 或 9W02 [^]:不在括号中所指定范围内的任意一个字符 二.使用 BETWEEN:在某个范围内进行查询:

‘9W0[^1-2]’,则符合条件的 D 如 9W03 或 9W07 等 例:查询分数在 60(含)到 80(含)之间的信息: SELECT *FROM Score BETWEEN 60 AND 80 三.使用 IN 在列举值内进行查询:

例: 查询北京、广州、或者上海的学生姓名:

SELECT SName AS 学生姓名 FORM Students WHERE SAdress IN(‘北京’,’广州’,’上海’)ORDER BY SAdress 四.聚合函数:

1.SUM():返回表达式中所有数值的总和 2.AVG():返回表达式中所有数值的平均值 3.MAX():返回表达式中的最大值 4.MIN():返回表达式中的最小值

5.COUNT():返回提供的组或记录集中的计数,另外也 可以使用星号(*)作为 COUNT 的表达式 第 11 章

联接查询和分组查询

一.使用 group by 进行分组查询 二.使用 having 子句进行分组筛选 group by 后面一般跟字段

-----------------------having 分组后筛选、where 查询后筛选

--where 子句:用来筛选 from 子句中指定的操作所产生 的行

--group by 子句:用来分组 where 子句的输出--having 子句:用来从分组的结果中筛选行---------------------------总结(内联查询)三.多表联接查询:--1.inner join....on select a 表.列名,b 表.列名 from a 表 inner join b 表 on a 表.主键=b 表.外键 where 条件 and......--2.where select a 表.列名,b 表.列名 from a 表,b 表 where a 表.主键=b 表.外键 and.......--交叉查询 cross join--完整联接 Full join--总结

--左外联 left join...on(会把 left 左边表的数据全部显 示)null--右外联 right join...on(会把 rigth 左边表的数据全部 显示)null 第 14 章

使用 ADO.NET 访问数据库 一.ADO.NET 的主要组件:

1..NET Framework 数据库提供程序:专门为数据处理 以及快速地只进、只读访问数据而设计的组建。2.DataSet(数据集):是专门为独立于任何数据源的数 据访问而设计的

二..NET Framework 数据提供程序的四个核心对象: 1.Connection:建立与特定的数据源的连接 2.Command:对数据源执行命令

3.DataReader:从数据源中读取只进且只读的数据流 4.DataAdapter:用数据源填充 DataSet 并解析更新 总结:

一.查询单个值: 1.创建连接字符串 string str=“server=.;database= 数 据 库

名;uid=sa;pwd=sa”;2.创建 connection 对象

SqlConnection connection=new SqlConnection(str);3.打开数据库连接 connection.Open();4.创建 Sql 语句 string sql="";5.创建 command 对象 SqlCommand SqlCommand(sql,connection);6.执行 sql 命令 int result=Convert.ToInt32(command.ExecuteScalar());(转换)7.关闭数据库连接 connection.Close();二.查询若干条记录: 需要使用 Command 对象的 ExecuteReader()方法,步 骤如下:

1.创建 Connection 对象 2.拼写 SQL 查询语句 command=new 3.使用 SQL 语句和 Connection 对象创建 Command 对 象

4.打开数据库连接,调用 Connection 对象的 Open()方 法

5.调用 Command 对象的 ExecuteReader()方法,返回一 个 DataReader 对象

6.在循环中使用 DataReader 对象的 Read()方法,逐行 读取记录。如果读到记录则返回 true,否则返回 false。7.使用(type)dataReader[列名或索引]的方式读取这一 行中某一列的值

8.调用 DataReader 对象的 Close()方法,关闭 DataReader 对象

9.操作完成后关闭数据库连接,调用 Connection 对象 的 Close()方法 三.数据更新操作:

对数据库执行数据更新操作时(包括增加,修改,删 除数据)都使用 Command 对象的 ExecuteNonQuery()方法,步骤如下: 1.创建 Connection 对象 2.拼写 SQL 增删改语句

3.使用 SQL 语句和 Connection 对象创建 Command 对 象

4.打开数据库连接,调用 Connection 对象的 Open()方 法

5.调用 Command 对象的 ExecuteNonQuery()方法执行 命令,返回数据库中受影响的行数

6.操作完成后关闭数据库连接,调用 Connection 对象 的 Close()方法

Command 对象的三种方法的对比如下所示:

ExecuteScalar()方法:执行查询操作,并返回结果集中 的第一行和第一列

ExecuteReader()方法:执行查询操作,返回 DataReader 对象

ExcutenNonQuery()方法:执行添加、修改、删除操作、返回受影响的行数

第二篇:c#基础总结

【1】面向对象程序设计语言的三大特点是什么?答:【23】Main函数特点?答:1)Main方法是C#程序的限定,默认的为private【2】三种命名法则的特点?答:匈牙利命名法:在变限定符,返回类型为void或int类型,Main方法必须是静态方法;3)一个类或结构只能有一个有效的入驼表示法:一个标示符用若干个有意义的英语单词或口点函数;4)main方法必须定义在某一个类中。缩写组成,第一个单词首字母小写,后边的首字母大【24】多态(重写、隐藏)

写;Pascal表示法:与骆驼表示法类似,但是第一个 单词的首字母也需要大写。【3】C#注释的三种形式特点?答1)单行注释:// 2)class A /// {public virtual void F()【4】引用类型和值类型的数据类型? {Console.WriteLine(“A.F”);}} abstract class B:A(1)int valOne = 0;{public abstract override void F();}int valTwo = valOne;答:abstract override 是不可以一起修饰 int valThree = 333;例:在下面的例子里 valTwo = 333;TestValueRefRef1 = new TestValueRef();class A TestValueRefRef2 = Ref1;{public A(){PrintFields();} Ref2.value = 444;public virtual void PrintFields(){} } Console.WriteLine(“values:{0},{1}”, Ref1.value, class B:A Ref2.value);{int x=1;int y;public B(){y=-1;} Console.WriteLine(“values:{0}, {1},{2}”,valOne, public override void valTwo,valThree);PrintFields(){Console.WriteLine(“x={0},y={1}”,答:输出结果:values:444,444 x,y);} 当使用new B()创建B的实例时,产生什么输出?(2)public class EnumTest答:x=1,y=0 { enum Days {Sat=1, Sun, Mon, Tue, Wed, Thu, Fri};分析:执行new B()时,由于B继承自A,所以会调用static void Main()A的构造函数,并执行其中的PrintFields()方法,由{int x=(int)Days.Sun;inty=(int)Days.Fri;于该方法为虚方法,在继承类中被重写,所以,将执Console.WriteLine(“Sun = {0}”, x);行B中的PrintFields()方法。此时,将在DOS界面Console.WriteLine(“Fri = {0}”, y);}} 上输出“x=1,y=0”,然后,在运行B的构造函数中的答:输出结果:Sun = 2Fri = 7 y=-1。(建议同学们将此程序放入到代码中,设置断点【5】枚举类型的字段和关联值?枚举类型有三个要看执行过程。)

【25】什么是多态对象?答:用基类类名声明,但是特性 修饰符 enum 枚举名 : 基础类型 {枚举成员声明,枚举成员声明,„„,枚举成员声明}默认的基础函数来实例化的对象。这类对象的主要用途是引发多类型为int;关联值:如果没有被声明,默认为0。态,为了将它们和一般的对象(声明和创建都使用同【6】强制类型转换(例:若有double f=2.7;int 一个类型名的对象)加以区别、揭示它们的特点和用2)将源类型的对象途,这种形态的对象称为多态对象。转换成为目的类型的对象 【26】接口的特点。答:接口只能包含抽象方法,不【7】运算符&和&&的区别?答:条件“与”运算符(&&)没有访问修饰符,接口成员必须是方法属性事件或者时才计算第二个操作数。而&需要计算所有操作数,索引器不能包含常数字段运算符也不能有静态成员。并且优先级高于&& 【27】委托和事件,【8】装箱和拆箱的概念?答:装箱就是把一个值类型委托的定义修饰符 delegate 返回类型 委托类型名(参数列表); 【9】for循环和if语句联合使用的程序分析,for(;;)eg: public delegate int DelegateClass(stringinfo);

和continue的区别?答:break跳出循委托的创建(实例化)委托对象 = new 委托名(关联方法); 【11】命名空间的特点答:它提供一种命名机制,是eg: DelegateClass obj=new DelegateClass(MethodA);

合方式无关,不能表明源文件的存取方式,命名空间DelegateClass obj=MethodA;//隐式创建和初是按层次组织的。始化(不用new)【12】数组元素的的复制和读值 例:分析下列语句: int[3]{5,6,2},new int[5]{6,9,7,8,3},new Hello(string target);} int[2]{3,2}};myArray3[2][2]的值是(D)A)9;B)2;该语句的作用是:在TestCS 命名空间中定义了了一C)6;D)越界 个名为Hello 的委托类型;

【13】类和对象的关系?答:类是对象的抽象,对象【28】Windows窗体中Button按钮触发的事件是什【14】关键字this和base的区别?答:base指代基【29】Windows窗体中控件的标识符如何修改?答:【15】关键字new、using的多种用法?答:new修饰【30】如何修改Windows窗体的启动窗体?答:修改被重写,但new修饰符可终止这一特性;向下传播; 实例化一个对象。Using:导入命名空间;自动释放【31】要使用SQL Server需要使用哪两个命名空间? Using代码框里的资源。【16】索引器的特点?答:索引器允许重载;字符串Using System.Date.SqlClient: 【32】什么是DataSet、DataAdapter?两者联系?答:过签名标识;通过元素访问来访问;必须为实例成员;索引器的get访问器具有与索引器相同的形参表;除DataAdapter:数据适配器,数据库与DataSet间的桥value参数外,索引器的set访问器还具有与索引器梁,把数据库中数据下载到DataSet或回传回去。相同的形参表。【33】用户登录和密码修改(带数据库)【17】静态数据成员特点?答:为所有类所共享,区用户登录 【18】构造函数的特点?答:(1)构造函数名与类名UserName='“ + txtUsername.Text.Trim().ToLower()+ ”' and UserPwd='“ + txtPassword.Text.Trim()+ 【19】析构函数的特点?答:(1)析构函数名是在类”'“;if(OperateDB.ExecuteReader(sql))型(默认为空)和修饰符;(3)析构函数不能被重载。{username = txtUsername.Text.Trim().ToLower();【20】什么是方法的重载?重载的特点是什么?答: frmMain frm = new frmMain();frm.Show();this.Hide();} 定义一组方法。重载的特点:1)位于同一类中;2)else

方法名相同;3)方法参考列表不同,包括参数个数不{MessageBox.Show(”用户名或密码错误“, ”出错了“, 同和参数类型不同;4)与方法返回值和修饰符没关系。MessageBoxButtons.OK, MessageBoxIcon.Error);} 【21】虚函数的特点?答:1)虚方法前不允许有修改密码: 修饰符;2)虚方法不能是私有的,因此不能使用private修饰符; where UserName='” + frmLogin.username + “' and 【22】抽象类和抽象方法的主要特点?答:抽象类:UserPwd='” + txtOldPwd.Text.Trim()+ “'”;(或者if(OperateDB.ExecuteReader(sqlCheckPwd))说,不能产生对象。但是,它可以有构造函数。(2){string sql = “update UserInfo set UserPwd='” 设计abstract类的目的是为了被继承。抽象方法:是+ txtNewPwd.Text.Trim()+ “' where UserName='” + 不完整的,不能执行的。frmLogin.username + “'”;

if(OperateDB.ExecuteNonQuery(sql)== 1)

{MessageBox.Show(“密码修改成功!”);}else

{ MessageBox.Show(“密码修改失败!”);}}

else{MessageBox.Show(“旧密码不正确!”);}

【34】抽象类定义和继承使用

特点:1.没有被完整定义,因而它不能用来实例化,或者说,不能产生对象。(但是,它可以有构造函数。)2.设计abstract类的目的是为了被继承。public abstract class Employee{public virtual void Pay(){ }

public abstract void CalculatePay();} public class HourlyEmployee: Employee

{public override void Pay(){CalculatePay();}public override void CalculatePay(){ }} 【35】接口及继承类的使用

特定功能的抽象成员的集合。一个类可以继承多个接口,从而获得多个行为的描述,将它们组合成新的功能并在类中实现。继承类中必须实现接口中的所有抽象成员。

定义接口的格式:修饰符 interface 接口名:基接口列表 {接口体} 其中,接口体的声明可以包括:接口方法声明;接口属性声明;接口事件声明;接口索引器声明

public delegate void

StringListEvent(IStringList sender);public interface IStringList{ void Add(string s);//方法int Count{get;}//属性event StringListEvent Changed;//事件string this[int index]{get;set;}//索引器} 【编程题例题】

定义一MobilePhone类,包括属性成员——网络类型(NetworkType),字段成员——屏幕尺寸(screenSize)、手机品牌(brand),手机型号

(brandModel),公共方法成员——Open、Close。其中screenSize为单位是英寸的双精度数,brand为字符串,NetworkType只能是“GSM”或“CDMA”字符串。要求:(1)在此类中包含构造函数,构造函数用于对数据(屏幕尺寸、手机品牌和手机型号)进行初始化。(2)公共成员方法中输出相应提示信息(参见(3)中的输出结果格式)。(3)写一测试类,在类中实例化一MobilePhone对象,最后能在DOS界面下显示如下结果:诺基亚N81(屏幕尺寸2.0英寸),是一款GSM手机。手机关机了。using System;

public enum NetworkType {GSM,CDMA,}

public class MobilePhone {public double screenSize;public string brand;

public string brandModel;

public NetworkType networkType;public NetworkType NetworkType{get { return networkType;}}

public MobilePhone(double ss, string bra, string bm, NetworkType nt){screenSize = ss;brand = bra;brandModel = bm;networkType = nt;}public void Open()

{Console.WriteLine(“{0}{1}(屏幕尺寸{2}英寸),是一款{3}手机.”,brand,brandModel,screenSize.ToString(“.0”), networkType);}

public void Close()

{Console.WriteLine(“手机关机了。”);} }

public class Test

{public static void Main()

{MobilePhone mp = new MobilePhone(2.0, “诺基亚”, “N81”, NetworkType.GSM);mp.Open();mp.Close();

System.Console.ReadLine();} }

【例】写一名为Desk的类,包含两个字段Length(双精度类型)、Height(双精度类型)。再写一继承类ComputerDesk类。ComputerDesk类除了有Length和Height外,还有KeyboardTray(字符串类型)。Public class desk {double length;double height;}

Public class computerdesk:desk {string keyboardtray}

第三篇:数据库小结

数据库总结

1、数据库开课6天,到今天已全部结束

2、学习内容

一、数据库的安装与删除:已独立上机操作实现。

二、数据利器sql 1)用sql进行单表查询:

查询语句: select 所查内容 from 表 where 条件

排序: select 所查内容 from 表 where 条件order by排序的依据

分组:select 所查内容 from 表 where 条件 group by 分组依据 其他要显示的内容(having 条件)

字段运算查询:select 运算 from表

变换查询:select 原名 新名 from 表

2)多表查询:

无条件多表查询 select 所差内容 from 多个表

等值多表查询

select 所差内容 from 多个表 where 一个

表内容=另一个表内容

非等值多表查询select 所差内容 from 多个表 where 一个

条件 and(or)其他条件

3)嵌套查询

带in、any(some)、all、exist的嵌套查询:

select 所查内容 from 表 where 内容 in(select 所查

内容 from 表 where 条件)

注意:any(some)包括等于条件、all不包括

并(union)、交(intersect)、差操作(minus): 4)常用的函数查询

Ceil(n)取大于等于n的最小整数

Floor(n)取小于等于n的最大整数

Mod(m,n)取m整除n后的余数

Pow(m,n)取m的n次方

Round(m,n)取四舍五入,保留小数点后n位

Sign(n)n》0取1;n=0取0;n《0取-1

Avg(字段名)求平均值

Count(字段名)或者count(*)统计总数

Min(字段名)计算数值型字段最小数

Max(字段名)计算数值型字段最大数

Sum(字段名)计算总数 5)录入数据

单行录入:Insert into 数据表(字段1,2。。)values

(字段1的值,2的值。。)

多行录入:insert into 数据表(字段1,2。)(select

(字段1或运算,2或运算。。)from

数据表 where 条件)表间数据复制:create table 表名 as(select 字段from原

有的表where 条件)

6)删除记录

删除记录:Delete from 数据表 where 条件

整表数据删除:truncate table 数据表 7)更新数据

直接赋值更新:update 数据表 set 字段名1=新的赋值,字段名2=新的赋值。where条件

嵌套更新:update 数据表 set 字段名1=(select 字段列

表 from 数据表 where 条件),字段名(select字段列表 from 数据表 where条件)。。

三、编程进阶Pl/sql 1)程序结构

Delacre

定义语句段

Begin

执行语句段

Exception

异常处理语句段 End 2)基本语法

定义变量%type:获得字段的数据类型

定义变量%rowtype:获得整个记录的数据类型f 定义记录类型变量 :type 记录类型 is record()

定义一维表类型变量:type 表类型 is table of 类型 index by

binary_integer, 表变量名 表类型

定义多维表类型变量

3)表达式

数值表达式:加+,减-,乘*,除/,乘方**

字符表达式:连接符号||

关系表达式(9种): 4)事务处理

提交:Committee

回滚:rollback

保存点:savepoint 5)游标

定义、打开、提取、关闭 6)过程

创建、查询、修改、执行

·

第四篇:C#基础编程设计实验报告

C# 基础编程 设计实验报告

一、实验目的

1、熟悉 Visual Studio.NET 开发环境。

2、掌握 C#应用程序的基本操作过程。

3、掌握 C#的数据类型,运算符以及表达式的使用。

4、掌握分支和循环语句的使用方法。

5、掌握一维数组,二维数组及数组型数组的使用。

二、实验要求

(1)编写程序要规范、正确,上机调试过程和结果要有记录(2)做完实验后给出本实验的实验报告。

三、实验设备、环境

安装有 Visual Studio.NET 软件。

四、实验步骤

1、分析题意。

2、根据题目要求,新建项目。

3、编写并输入相关的程序代码。

5、运行与调试项目。

6、保存项目。

五、实验内容

1、编写一个简单的控制台应用程序,打印一行文字(如你的姓名)。

using System;using System.Collections.Generic;

using System.Linq;using System.Text;

namespace one.first {

class Program

{

static void Main(string[] args)

{

System.Console.WriteLine(“我叫王蕾!”);

}

} } 2、编写一个简单的 Windows 应用程序,在窗体 Load 事件中书写代码,标签中显示你的姓名。

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;

using System.Windows.Forms;

namespace one.second {

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void Form1_Load(object sender, EventArgs e)

{

this.Text = “Windows 程序”;

Label lblShow = new Label();

lblShow.Location = new Point(20, 30);

lblShow.AutoSize = true;

lblShow.Text = “王蕾!”;

this.Controls.Add(lblShow);

}

}

} 3、编写一个一个程序,用来判断输入的是大写字母,小写字母,数字还是其他的字符。

using System;using System.Collections.Generic;using System.Text;

namespace one.third {

class Program

{

static void Main(string[] args)

{

Console.WriteLine(“请输入一个字符:”);

char c = Convert.ToChar(Console.ReadLine());

if((c>=“a”&&c<=“z”)||(c>=“A”&&c<=“Z”))

Console.WriteLine(“这是一个字母”);

if(char.IsDigit(c))

Console.WriteLine(“这是一个数字”);

}

}

} 4、分别用 while,do-while,for 循环求 1 到 100 的和。

using System;using System.Collections.Generic;using System.Text;

namespace one.forth.one {

class Program

{

static void Main(string[] args)

{

int i = 1, sum = 0;

while(i <= 100)

{

sum = sum + i;

i++;

}

Console.WriteLine(“1 到 100 的自然数之和为:” + sum);

}

}

} using System;using System.Collections.Generic;using System.Text;

namespace one.forth.two {

class Program

{

static void Main(string[] args)

{

int i = 1, sum = 0;

do

{

sum = sum + i;

i++;

}

while(i <= 100);

Console.WriteLine(“1 到 100 的自然数的和为:” + sum);

}

}

} using System;using System.Collections.Generic;using System.Text;

namespace one.forth.three {

class Program

{

static void Main(string[] args)

{

int i , sum = 0;

for(i = 1;i <= 100;i++)

{

sum = sum + i;

}

Console.WriteLine(“1 到 100 的自然数的和为:” + sum);

}

} } 5、定义一个一维数组,用随机数为此赋值,用 foreach 循环输

出其中的内容。

using System;using System.Collections.Generic;using System.Linq;using System.Text;

namespace first.five {

class Program

{

static void Main(string[] args)

{

int[] a = {0,1,2,3,4};

foreach(int i in a)

{

Console.WriteLine(a[i]);

}

}

} } 6、实现二维数组的输入和输出。

using System;

using System.Collections.Generic;using System.Linq;using System.Text;

namespace first.six {

class Program

{

static void Main(string[] args)

{

int[,] a = new int[2, 3] { { 1, 2, 3 }, { 4, 5, 6 } };

{

for(int i = 0;i < 2;i++)

{

for(int j = 0;j < 3;j++)

{ Console.WriteLine(a[i, j]);}

}

}

}

} }

7、实现数组型数组的输入和输出。

using System;using System.Collections.Generic;using System.Linq;using System.Text;

namespace first.seven {

class Program

{

static void Main(string[] args)

{

int[][] a = new int[][] { new int[] { 1, 2, 3 }, new int[] { 4, 5, 6 } };

for(int i = 0;i < a.Length;i++)

{

for(int j = 0;j < a[i].Length;j++)

{

Console.WriteLine(a[i][j]);

}

}

}

} } 六、实验体会(遇到问题及解决办法,编程后的心得体会)

刚开始编程的时候觉得无从下手,尽管我们已经学了好几种高级编程语言,但每个都有其独特的地方,稍不留神就会混淆。

通过这次实验,我体会到课后复习巩固的重要性。在编程的时候,很多内容都不记得,需要去翻书。不得不说,实验是巩固课程的好方法!本次实验,我熟悉 Visual Studio.NET 开发环境;掌握了 C#应用程序的基本操作过程;掌握了 C#的数据类型,运算符以及表达式的使用;掌握了分支和循环语句的使用方法以及一维数组,二维数组及数组型数组的使用。

实验项目名称:

类与对象

实验学时:

同组学生姓名:

实验地点:

1318

实验日期:

月 26 日-11 月 9 日 实验成绩:

批改教师:

批改时间:

实验 2

类与对象

一、实验目的、要求

(1)掌握类的定义和使用;(2)掌握类的数据成员,属性的定义和使用;(3)掌握方法的定义,调用和重载以及方法参数的传递;(4)掌握构造函数的定义和使用。

二、实验要求

(1)编写程序要规范、正确,上机调试过程和结果要有记录;(2)做完实验后给出本实验的实验报告。

三、实验设备、环境

安装有 Visual Studio.NET 软件。

四、实验步骤

1、分析题意; 2、根据题目要求,新建项目; 3、编写并输入相关的程序代码; 5、运行与调试项目; 6、保存项目。

五、实验内容

1、定义一个方法,实现两个数的交换(分别把参数按值传递和按引用传递)。

using System;

using System.Collections.Generic;using System.Text;

namespace second.one {

class Program

{

static void Main(string[] args)

{

Swaper s = new Swaper();

Console.WriteLine(“输入 x 的值:”);

int a = Convert.ToInt32(Console.ReadLine());

Console.WriteLine(“输入 y 的值:”);

int b=Convert.ToInt32(Console.ReadLine());

Console.WriteLine(s.Swap(a, b));

Console.WriteLine(s.Swap(ref a,ref b));

}

class Swaper

{

public string Swap(int x, int y)

{

int temp;

temp = x;

x = y;

y = temp;

return string.Format(“按值传参交换之后:x={0},y={1}”,x,y);

}

public string Swap(ref int x, ref int y)

{

int temp;

temp = x;

x = y;

y = temp;

return string.Format(“按引用传参交换之后:x={0},y={1}”, x, y);

}

}

} }2、定义一个方法,实现数组的排序。

using System;using System.Collections.Generic;using System.Text;

namespace second.two {

class Program

{

public class sort

{

public void change(int[] a)

{

Console.WriteLine(“排序前,数组顺序为:”);

show(a);

int i, j, m;

for(i = 0;i < 10;i++)

{

m = a[i];

j = i-1;//a[j]为数组前一个值

while(j >= 0 && m > a[j])//判断 i 下标的数是否大于 j 下标的数

{

a[j + 1] = a[j];//如果 i 下标大于j 把 j 往后移一个位

j--;

}

a[j+1] = m;//当不大于 j 的时候就把 M的值放到 i 下标下面 j+1 是为了下标减到最前时考虑-1 + 1 还是下标的最前面

}

Console.WriteLine(“排序后,数组顺序为:”);

show(a);

}

void show(int[] a)

{

int i;

for(i = 0;i < 10;i++)

{

Console.Write(“{0} ”, a[i]);

}

Console.WriteLine();

}

}

static void Main(string[] args)

{

int[] a ={ 4, 7, 1, 2, 5, 8, 9, 10, 3, 6 };

sort s=new sort();

s.change(a);

}

} } 3、定义一个学生类,把学生类当作对象来传递。

using System;using System.Collections.Generic;using System.Linq;using System.Text;

namespace second.three {

class Program

{

public class student

{

public void st()

{

int a = 999;

}

}

public class st

{

public void aa(student s)

{

Console.WriteLine(s);

}

}

static void Main(string[] args)

{

student s=new student();

st s1 = new st();

s1.aa(s);

}

} } 4、定义一个方法,求两个数的和和差,通过参数把这两个值带回。

using System;using System.Collections.Generic;using System.Linq;using System.Text;

namespace

second.four

{

class Program

{

public class sum

{

public void ab(out int m, out

int n,int a, int b)

{

m = a + b;

n = a-b;

}

}

static void Main(string[] args)

{

sum s = new sum();

int a = 10;

int b = 3;

int m, n;

s.ab(out m, out n, a, b);

Console.WriteLine(“{0}+{1}={2};{0}-

{1}={3}”,a,b,m,n);

}

} } 5、用构造函数重载,实现矩形的面积,圆的面积,梯形的面积; using System;using System.Collections.Generic;using System.Linq;using System.Text;

namespace secong.five {

class Program

{

public class square

{

public double area;

public square(){ }

public square(double a)

{

area = a * a * 3.14;

}

public square(double a, double b)

{

area = a * b;

}

public square(double a, double b, double h)

{

area =(a + b)/ 2 * h;

}

}

static void Main(string[] args)

{

double a, b, h,area;

a = 2;b = 5;h = 3;

square s = new square(a,b);

Console.WriteLine(“求矩形面积,长为 a={0},宽为 b={1},面积 area={2}”,a,b,s.area);

square i = new square(a);

Console.WriteLine(“求圆形面积,半径 a={0},面积 area={1}”, a, i.area);

square j = new square(a, b, h);

Console.WriteLine(“求梯形面积,上底为a={0},下底为 b={1},高为 h={2}面积 area={3}”, a, b,h, j.area);

}

} } 6、设计一个 windows 应用程序,在该程序中定义一个学生类和班级类,以处理每个学生的学号,姓名,语文,数学和英语成绩,要求:

1)能查询每个学生的总成绩。

2)能显示全班前三名的名单。

3)能显示单科成绩最高分和不及格的学生名单。

4)能统计全班学生的平均成绩。

5)能显示各科成绩不同分数段的学生人数的百分比。

Student 类:

using System;using System.Collections.Generic;using System.Text;namespace Test2_6 {

public class Student

{

public string stuNo;

public string name;

public double chinese;

public double math;

public double english;

public double sumScore

{

get { return chinese + math + english;}

}

} } StudentList 类:

using System;using System.Collections.Generic;using System.Text;namespace Test2_6 {

public class StudentList:Student

{

int snums;

public Student[] stu=new Student[50];

public StudentList()

{

snums = 0;

}

public void addstu(Student s)

{

stu[snums] = s;

snums++;

}

public int searchstu(string name)

{

int i;

for(i = 0;i < snums;i++)

{

if(stu[i].name == name)break;

}

if(i == snums)return-1;

else return i;

}

//给所有成绩排序,用后面实现前三名的排名

public void ProThree()

{

for(int i = 0;i < snums;i++)

{

int k = i;

for(int j = i + 1;j < snums;j++)

if(stu[j].sumScore > stu[k].sumScore)k = j;

if(k!= i)

{

Student temp;

temp = stu[k];

stu[k] = stu[i];

stu[i] = temp;

}

}

}

//显示单科成绩的最高分

public int HighScore(int k)

{

int p = 0;

if(k == 0)

{

for(int i = 1;i < snums;i++)

if(stu[i].math > stu[p].math)p = i;

}

else if(k == 1)

{

for(int i = 1;i < snums;i++)

if(stu[i].chinese > stu[p].chinese)p = i;

}

else

{

for(int i = 1;i < snums;i++)

if(stu[i].chinese > stu[p].chinese)p = i;

}

return p;

}

//显示不及格名单

public string

BuhgName(int k)

{

string name=“ ”;

if(k == 0)

{

for(int i = 0;i < snums;i++)

if(stu[i].math < 60)name +=stu[i].name+“n”;

}

else if(k == 1)

{

for(int i = 0;i < snums;i++)

if(stu[i].chinese < 60)name += stu[i].name + “n”;

}

else

{

for(int i = 0;i < snums;i++)

if(stu[i].english < 60)name += stu[i].name + “n”;

}

return name;

}

public string getHL()

{

string Maxer = “ ”, Loser = “ ”;

Maxer += “ 单 科 数 学 最 高 :

” + stu[HighScore(0)].name + “n”;

Maxer += “ 单 科 语 文 最 高 :

” +

stu[HighScore(1)].name + “n”;

Maxer += “ 单 科 英 语 最 高 :

” + stu[HighScore(2)].name + “n”;

Loser += “单科数学挂科名单:” +BuhgName(0)+ “n”;

Loser += “单科语文挂科名单:” + BuhgName(1)+ “n”;

Loser += “单科英语挂科名单:” + BuhgName(2)+ “n”;

return Maxer + “n” + Loser;

}

//全班的平均成绩

public string SumScore()

{

double sum = 0;

double avg=0;

for(int i = 0;i < snums;i++)

{

sum = sum + stu[i].sumScore;

}

avg = sum / snums;

return “班级总分平均分:”+avg;

}

//各科成绩不同分数段的学生百分比

//英语成绩各分数段百分比

public string PerC()

{

double per1, per2, per3, per4, per5;

double sumC1 = 0, sumC2 = 0, sumC3 = 0, sumC4 = 0, sumC5 = 0;

for(int i = 0;i < snums;i++)

{

if((stu[i].chinese > 90)&&(stu[i].chinese <= 100))

{

sumC1++;

}

else if((80 <= stu[i].chinese)&&(stu[i].chinese < 90))

{

sumC2++;

}

else if((70<=stu[i].chinese)&&(stu[i].chinese < 80))

{

sumC3++;

}

else if((60<=stu[i].chinese)&&(stu[i].chinese < 70))

{

sumC4++;

}

else

{sumC5++;}

}

per1 = sumC1 / snums;

per2 = sumC2 / snums;

per3 = sumC3 / snums;

per4 = sumC4 / snums;

per5 = sumC5 / snums;

return “ 语 文 成 绩 百 分 比 :”+“n”+“90~100:”+per1+“

80~90:”+per2+“

80~70:”+per3+“

70~60:”+per4+“

以下的:”+per5;

}

//数学成绩各分数段百分比

public string PerM()

{

double per1, per2, per3, per4, per5;

double sumC1 = 0, sumC2 = 0, sumC3 = 0, sumC4 = 0, sumC5 = 0;

for(int i = 0;i < snums;i++)

{

if((stu[i].math> 90)&&(stu[i].math <= 100))

{

sumC1++;

}

else if((80 <= stu[i].math)&&(stu[i].math < 90))

{

sumC2++;

}

else if((70 <= stu[i].math)&&(stu[i].math < 80))

{

sumC3++;

}

else if((60 <= stu[i].math)&&(stu[i].math < 70))

{

sumC4++;

}

else

{ sumC5++;}

}

per1 = sumC1 / snums;

per2 = sumC2 / snums;

per3 = sumC3 / snums;

per4 = sumC4 / snums;

per5 = sumC5 / snums;

return string.Format(“数学成绩百分比:” + “n” + “90~100:” + per1 + “

80~90:” + per2 + “

80~70:” + per3 + “

70~60:” + per4 + “

以下的:” + per5);

}

//英语成绩各分数段百分比

public string PerE()

{

double per1, per2, per3, per4, per5;

double sumC1 = 0, sumC2 = 0, sumC3 = 0, sumC4 = 0, sumC5 = 0;

for(int i = 0;i < snums;i++)

{

if((stu[i].english > 90)&&(stu[i].english <= 100))

{

sumC1++;

}

else if((80 <= stu[i].english)&&(stu[i].english < 90))

{

sumC2++;

}

else if((70 <= stu[i].english)&&(stu[i].english < 80))

{

sumC3++;

}

else if((60 <= stu[i].english)&&(stu[i].english < 70))

{

sumC4++;

}

else

{ sumC5++;}

}

per1 = sumC1 / snums;

per2 = sumC2 / snums;

per3 = sumC3 / snums;

per4 = sumC4 / snums;

per5 = sumC5 / snums;

return string.Format(“数学成绩百分比:” + “n” + “90~100:” + per1 + “

80~90:” + per2 + “

80~70:” + per3 + “

70~60:” + per4 + “

以下的:” + per5);

}

} } From 窗体代码:

using System;using System.Collections.Generic;

using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace Test2_6 {

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

public StudentList sl = new StudentList();

private void btnAdd_Click(object sender, EventArgs e)

{

Student s = new Student();

s.stuNo = txtStuNo.Text;

s.name = txtName.Text;

s.chinese = Convert.ToDouble(txtChina.Text);

s.math = Convert.ToDouble(txtMath.Text);

s.english = Convert.ToDouble(txtEng.Text);

sl.addstu(s);

MessageBox.Show(“添加成功”);

}

private void btnSearch_Click(object sender, EventArgs e)

{

int pos = sl.searchstu(this.textBox1.Text);

if(pos!=-1)

{

label7.Text = this.textBox1.Text + “的总成绩:” + sl.stu[pos].sumScore;

}

else { MessageBox.Show(“不存在这个人!”);}

}

private void btnFinish_Click(object sender, EventArgs e)

{

label7.Text = “前 3 名:”+“n”;

for(int i = 0;i < 3;i++)

{

sl.ProThree();

label7.Text+= sl.stu[i].name+“n”;

}

label7.Text += sl.getHL()+“n”;

label7.Text += Convert.ToString(sl.SumScore())+“n”;

label7.Text += sl.PerC()+“n”;

label7.Text += sl.PerM()+“n”;

label7.Text += sl.PerE()+“n”;

}

} }

六、实验体会(遇到问题及解决办法,编程后的心得体会)

通过本次实验,我掌握了类的定义与使用;掌握了类的数据成员,属性的定义和使用;掌握了方法的定义,调用和重载以及方法参数的传递以及构造函数的定义和使用。值得注意的是:本次实验中 return的使用以及所在的位置,类型转换时也经常用到

实验项目名称:

继承与多态

实验学时:

同组学生姓名:

实验地点:

1318

实验日期:月 16 日-11 月 30 日 实验成绩:

批改教师:

批改时间:

实验 3

继承与多态

一、实验目的、要求

(1)掌握类的继承性与多态性;(2)掌握虚方法的定义以及如何使用虚方法实现多态;(3)掌握抽象类的定义以及如何使用抽象方法实现多态; 二、实验要求

(1)编写程序要规范、正确,上机调试过程和结果要有记录;(2)做完实验后给出本实验的实验报告。

三、实验设备、环境

安装有 Visual Studio.NET 软件。

四、实验步骤

1、分析题意; 2、根据题目要求,新建项目; 3、编写并输入相关的程序代码; 5、运行与调试项目; 6、保存项目。

五、实验内容

1、设计一个 Windows 应用程序,在该程序中首先构造一个学生基本类,再分别构造小学生、中学生、大学生派生类,当输入相关数据,单击不用的按钮时,将分别创建不同的学生类对象,并输出当前学生的总人数,该学生的姓名,学生类型,平均成绩。

Student 类:

using System;using System.Collections.Generic;using System.Text;namespace Test3_1 {

public abstract class Student

{

protected string name;

protected int age;

public static int number;

public Student(string name, int age)

{

this.name = name;

this.age = age;

number++;

}

public string Name

{

get { return name;}

}

public abstract double Average();

}

public class Pupil : Student

{

protected double chinese;

protected double math;

public Pupil(string name, int age, double chinese, double math)

: base(name, age)

{

this.chinese = chinese;

this.math = math;

}

public override double Average()

{

return(chinese + math)/ 2;

}

}

public class Middle : Student

{

protected double chinese;

protected double math;

protected double english;

public Middle(string name, int age, double

chinese, double math, double english)

: base(name, age)

{

this.chinese = chinese;

this.math = math;

this.english = english;

}

public override double Average()

{

return(chinese + math + english)/ 3;

}

}

public class College : Student

{

protected double required;

protected double elective;

public College(string name, int age, double required, double elective)

: base(name, age)

{

this.required = required;

this.elective = elective;

}

public override double Average()

{

return(required + elective)/ 2;

}

} } Form 窗体内的代码:

using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace Test3_1 {

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void btnSmall_Click(object sender, EventArgs e)

{

Pupil p = new Pupil(txtName.Text,Convert.ToInt32(txtAge.Text),Convert.ToDouble(txtChinese.Text),Convert.ToDouble(txtMath.Text));

lblShow.Text += “ 总 人 数 :” +Convert.ToString(Student.number)+ “,” + “姓名:” + p.Name + “,” + “小学生” + “,” + “平均成绩为:” + p.Average()+“n”;

}

private void btnMiddle_Click(object sender, EventArgs e)

{

Middle m = new Middle(txtName.Text, Convert.ToInt32(txtAge.Text), Convert.ToDouble(txtChinese.Text), Convert.ToDouble(txtMath.Text),Convert.ToDouble(TxtEnglish.Text));

lblShow.Text += “ 总 人 数 :” + Convert.ToString(Student.number)+ “,” + “姓名:” + m.Name +

“,” + “中学生” + “,” + “平均成绩为:” + m.Average()+ “n”;

}

private void btnBig_Click(object sender, EventArgs e)

{

College c = new College(txtName.Text, Convert.ToInt32(txtAge.Text), Convert.ToDouble(txtChinese.Text), Convert.ToDouble(txtMath.Text));

lblShow.Text += “ 总 人 数 :” + Convert.ToString(Student.number)+ “,” + “姓名:” + c.Name + “,” + “大学生” + “,” + “平均成绩为:” + c.Average()+ “n”;

}

} } 2、设计一个 Windows 应用程序,在该程序中定义平面图形抽象类和派生类圆,矩形和三角形。

Figure 类代码:

using System;using System.Collections.Generic;using System.Text;namespace Test3_2

{

public abstract class Figure

{

public abstract double Area();

}

public class Circle:Figure

{

double radius;

public Circle(double r)

{

radius = r;

}

public override double Area()

{

return radius * radius * 3.14;

}

}

public class JUxing:Figure

{

double chang;

double kuan;

public JUxing(double c, double k)

{

this.chang = c;

this.kuan = k;

}

public override double Area()

{

return chang * kuan;

}

}

public class San:Figure

{

double bian;

double heigth;

public San(double b, double h)

{

this.bian = b;

this.heigth = h;

}

public override double Area()

{

return bian * heigth / 2;

}

} } Form 窗体代码:

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace Test3_2 {

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void btnCircle_Click(object sender, EventArgs e)

{

Circle c=new

Circle(Convert.ToInt32(TxtChang.Text));

lblShow.Text = “圆的面积为:” + c.Area();

}

private void btnJu_Click(object sender, EventArgs e)

{

JUxing j = new JUxing(Convert.ToInt32(TxtChang.Text),Convert.ToInt32(TxtHigh.Text));

lblShow.Text = “矩形的面积为:” + j.Area();

}

private void btnSan_Click(object sender, EventArgs e)

{

San s = new San(Convert.ToInt32(TxtChang.Text), Convert.ToInt32(TxtHigh.Text));

lblShow.Text = “三角形的面积为:” + s.Area();

}

} }

3、定义一个 Person 类,包含姓名字段和一个方法,早上 8:30学生开始上课,教师开始讲课。分别用 new 关键字,虚方法,抽象类实现多态性。

New 关键字:

using System;using System.Collections.Generic;using System.Text;

namespace third.three {

class Program

{

static void Main(string[] args)

{

Student s=new Student(“学生”);

Teacher t=new Teacher(“教师”);

Console.WriteLine(s.name+s.work());

Console.WriteLine(t.name+t.work());

Console.ReadLine();

}

}

public class Person

{

public string name;

public interface method

{ string work();}

}

public class Student:Person

{

public Student(string name)

{ this.name = name;}

public string work()

{ return “早上 8:30 开始上课”;}

}

public class Teacher:Person

{

public Teacher(string name)

{ this.name = name;}

public string work()

{ return “开始讲课”;}

} } 虚方法:

using System;

using System.Collections.Generic;using System.Text;

namespace third.three.two {

class Program

{

static void Main(string[] args)

{

Student s = new Student(“张三”,“学生”);

PersonWork(s);

Teacher t=new Teacher(“李斯”,“教师”);

PersonWork(t);

}

private static void PersonWork(Person Person)

{ Console.WriteLine(Person.Work());}

}

public class Person

{

public string name;

public Person(string name)

{ this.name = name;}

public virtual string Work()

{ return string.Format(“Person{0}:早上 8:30 开始”,name);}

}

public class Student : Person

{

private string type;

public Student(string name, string type)

: base(name)

{ this.type = type;}

public override string Work()

{

return string.Format(“Person{0}:早上 8:30 开始上课”, name);

}

}

public class Teacher : Person

{

private string type;

public Teacher(string name, string type)

: base(name)

{ this.type = type;}

public override string Work()

{

return string.Format(“Person{0}:开始讲课”, name);

}

} }

抽象类:

using System;using System.Collections.Generic;using System.Text;

namespace third.three.three {

class Program

{

static void Main(string[] args)

{

Student s = new Student(“张三”, “学生”);

PersonWork(s);

Teacher t = new Teacher(“李斯”, “教师”);

PersonWork(t);

}

private static void PersonWork(Person person)

{

Console.WriteLine(person.Work());

}

}

public abstract class Person

{

public string name;

public Person(string name)

{ this.name = name;}

public abstract string Work();

}

public class Student : Person

{

private string type;

public Student(string name, string type)

: base(name)

{

this.type = type;

}

public override string Work()

{

return string.Format(“Person{0}:早上 8:30 开始上课”, name);

}

}

public class Teacher : Person

{

private string type;

public Teacher(string name, string type)

: base(name)

{

this.type = type;

}

public override string Work()

{

return string.Format(“Person{0}:开始讲课”, name);

}

}

}

六、实验体会(遇到问题及解决办法,编程后的心得体会)

通过本次实验,我理解了类的继承性与多态性;掌握了虚方法的定义以及如何用虚方法来实现多态;掌握了抽象类的定义以及如何用抽象方法来实现多态。

这次实验与前两次不同,采用 Windows 应用程序,既涉及到代码段也涉及到界面的设计。所以,勉强通过实验。

实验项目名称:

接口、文件和流

实验学时:

同组学生姓名:

实验地点:

A205

实验日期:月 7 日-12 月 21 日 实验成绩:

批改教师:

批改时间:

实验 4

接口、文件和流

一、实验目的

(1)掌握接口的定义及使用方法;(2)掌握流,序列化和反序列化的概念和使用方法;(3)掌握流文件的读写操作类及其使用方法;(4)掌握 OpenFileDialog,SaveFileDialog 等控件的使用。

二、实验要求

(1)编写程序要规范、正确,上机调试过程和结果要有记录;(2)做完实验后给出本实验的实验报告。

三、实验设备、环境

安装有 Visual Studio.NET 软件。

四、实验步骤

1、分析题意; 2、根据题目要求,新建项目; 3、编写并输入相关的程序代码; 5、运行与调试项目; 6、保存项目。

五、实验内容

1、定义一个 Person 类,包含姓名字段和一个方法,早上 8:30学生开始上课,教师开始讲课。用接口来实现。

using System;using System.Collections.Generic;

using System.Text;namespace Test4_1 {

class Program

{

static void Main(string[] args)

{

Student s = new Student(“张三”,“学生”);

Console.WriteLine(s.Work());

Teacher t = new Teacher(“李四”,“老师”);

Console.WriteLine(t.Work());

}

public abstract class Person

{

public string name;

public Person(string name)

{

this.name = name;

}

}

interface IPerson

{

string type { get;}

string Work();

}

public class Student :Person, IPerson

{

public string type

{

get { return string.Format(“老师”);}

}

public Student(string name, string type)

: base(name)

{

this.name=name;

}

public string Work()

{

return string.Format(“Person{0}:早上 8:30 开始上课”, name);

}

}

...

第五篇:机械制造技术基础小结1

1、0是 前角 的符号,是在 正交平面内测量的 前刀 面与 基 面的夹角。

2、s是 刃倾角 的符号,是在 切削平面内测量的 主切削刃 与 基 面的夹角。

3、过选定点,垂直于切削刃在 基 面内投影的剖面叫 正交平面。

4、在刀具寿命关系式vT中,m代表的是v对T的影响程度,m越大,影响 越小,m越小,影响 越大。

5、砂轮的硬度是 磨粒受力后从砂轮表面脱落的难易程度,工作材料硬,应选用硬度 较软 砂轮,磨削有色金属等软材料时,应选用 较硬 砂轮。

6、为减小加工表面的理论粗糙度,f应 减小。

7、车床主轴轴线与车床导轨在水平面内不平行,加工出的工件形状是 锥形 ;

在铅垂面内不平行,加工出的工件形状是 鞍形。

8、按工序的加工要求,工件应限制的自由度数未予限制的定位,称为 欠定位 ;工件的同一自由度被两个或两个以上的支承点重复限制的定位,称为 过定位。

1、YT30、YG8、YT5、YG3、WI8Gr4V是什么刀具材料?其组成成分是什么?各适合于加工哪类工件材料?在怎样 的加工要求下选用?(4分)答:

YT30是硬质合金、含TiC30%、适合加工钢、粗加工;(1分)

YG8是硬质合金、含Co8%、其余成分为WC、适合加工铸铁及有色金属、粗加工;(1分)

YT5是硬质合金、含TiC5%、适合加工钢、精加工;(1分)W18Gr4V是高速钢刀具材料,表示含W18%、含Gr4%,含V1%。高速钢刀具材料适合加工钢,易做成复杂刀具使用。(1分)

3、叙述粗、精基准的选择原则,加工顺序安排原则。(4分)答:

粗基准的选择原则:保证加工表面相对于不加工表面具有一定位置精度的原则;合理分配加工余量的原则;便于装夹的原则;粗基准一般不得重复使用的原则。(2分)

粗基准的选择原则:基准统一、基准重合、互为基准、自为基准的原则。(2分)

4、试述夹紧力的确定原则。(4分)答:

夹紧力的方向:应使定位基面与定位元件接触良好,保证零件定位准确可靠;应与工件刚度最大的方向一致;尽量与切

削力重力方向一致。(2分)

夹紧力的作用点:应正对支承元件或位于支承元件所形成的支承面内。应位于工件刚度较好的部位应尽量靠近加工表面。(1分)夹紧力的大小:类比法和计算法。(1分)

如图所示,工作以外圆为定位表面加工键槽,Ⅴ形块夹角为ɑ。求定位误差△dw(H1)、△dw(H2)、△dw(H3)、△dw(对称).答:(10分)

dw(H1)Tda2sin2,dw(H2)定 误差分)

(2.5分)

Td11a2sin2,(2.5

dw(H3)Td112asin2,(2.5

分)dw(对称)0(2.5分)

下载C#语言和数据库技术基础学习小结(5篇材料)word格式文档
下载C#语言和数据库技术基础学习小结(5篇材料).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    操作数据库小结

    一.查询操作 对数据进行查询操作时,有两种情况:一是查询单个值,二是 查询若干条记录。 1、 查询单个值 需要使用Command对象的ExecuteScalar()方法:步骤如下: (1)、创建Connection对象......

    数据库问题小结

    学习小结 1.前言: 前段时间的学习一直都没有融入实际的操作,因此这个阶段的学习我想结合着数据库来对配置数据进行一个定位。为了达到这个目的我就决定再我自己机子上安装orac......

    C#实训个人小结

    经过4个礼拜的实训,让我受益匪浅,给我收获最大的是我觉得很多工作需要我去摸索和探讨,要不怕吃苦,勇于激流勇进,有的工作虽然单挑又重复,但这是磨练意志最有效的方法,我告诫自己要......

    PowerPoint基础学习小结

    学习内容 工作环境即PowerPoint窗口 • 标题栏:移动窗口,改变窗口大小,关闭窗口。 • 菜单栏:包含9大菜单,几乎包含了演示文稿操作的所有命令。 • 工具栏:快速的图标按钮命令,比利......

    数据库应用基础实验报告

    电子科技大学计算机学院实验中心 电 子 科 技 大 学 实 验 报 告 一、实验一: 名称 创建数据库 二、实验学时:4 三、实验内容和目的:实验要求学生掌握创建数据库的方法及相关......

    T1_Oracle数据库基础_教案范文

    T1 Oracle数据库基础 【本讲主要目标】 1、Oracle数据库概述 2、Oracle数据库系统结构  逻辑结构 物理结构 系统结构  内存结构(PGA 和SGA ) 后台进程 服务器进程 3、数据库......

    《数据库基础教案》-access

    《数据库基础》教案 (56学时) 主讲: 专业: 班级: 第1章 数据库系统概述(4学时) 教学目标:了解数据库技术的发展史,了解每个阶段具有代表性的数据库管理系统的特点和划分依据,了解关系......

    数据库应用基础2011教学大纲

    《数据库应用基础》课程教学大纲 BasicsofDatabase Application 课程编号:0411018 课程性质:必修 适用专业: 全院各经济类专业学时数:64学时(讲课:32学时,上机实践:32学时)学分:4 执笔......