久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

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 執筆......

主站蜘蛛池模板: 国产成人啪精品视频免费网站软件| 疯狂做受xxxx高潮不断| 无码h黄肉动漫在线观看| 成年女人黄小视频| 无遮挡啪啪摇乳动态图gif| 亚洲国产欧美动漫在线人成| 国产精品久久久久影院| 国产精品亚洲lv粉色| 国产99久久亚洲综合精品| 国产中文字字幕乱码无限| 少妇高潮潮喷到猛进猛出小说| 全黄性性激高免费视频| 制服 丝袜 人妻 专区一本| 精品日产一区二区三区| 成av人片一区二区三区久久| 欧美激情一区二区三区高清视频| 天天拍夜夜添久久精品| 久久亚洲中文字幕伊人久久大| 欧洲熟妇牲交| 性xxxx视频播放免费| 男人的天堂va在线无码| 在线精品动漫一区二区无码| 老太脱裤让老头玩ⅹxxxx| 18禁黄久久久aaa片| 狠狠色综合tv久久久久久| 好男人视频社区在线观看www| 日本中文字幕一区二区有码在线| 午夜精品久久久久久久久久久久| 国产欧美国日产高清| 久久精品国产99国产精2020丨| 国产精品国产精品国产专区不卡| 国产另类ts人妖一区二区| 亚洲一区在线日韩在线深爱| 国产伦久视频免费观看视频| 2021精品亚洲中文字幕| 久久理论片午夜琪琪电影网| 蜜臀av在线播放| 97爱亚洲综合成人| 亚洲日韩成人av无码网站| 国产亚洲人成无码网在线观看| 亚洲AV无码成人精品区国产|