合工大.net程序設(shè)計與系統(tǒng)開發(fā)實驗報告_第1頁
合工大.net程序設(shè)計與系統(tǒng)開發(fā)實驗報告_第2頁
合工大.net程序設(shè)計與系統(tǒng)開發(fā)實驗報告_第3頁
合工大.net程序設(shè)計與系統(tǒng)開發(fā)實驗報告_第4頁
合工大.net程序設(shè)計與系統(tǒng)開發(fā)實驗報告_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、.NET程序設(shè)計與系統(tǒng)開發(fā)課程實驗報告姓名(學號)分工成績實驗時間 2016實驗地點專業(yè)電子商務(wù)13-01班所在學院管理學院指導老師一、實驗?zāi)康膶嶒炓唬篊#語法基礎(chǔ)實驗配合課程教學,通過實際上機練習,熟練掌握和運用C#基本語法,能運用它進行控制臺應(yīng)用程序設(shè)計;熟悉VISUAL STUDIO.NET開發(fā)平臺;熟悉控制臺應(yīng)用程序的調(diào)試經(jīng)驗和技巧。實驗二:C#語法高級實驗進一步熟悉和掌握C#語言,增強程序調(diào)試經(jīng)驗和技巧;鍛煉綜合運用所學知識能力,能設(shè)計和解決適當問題。二、實驗要求實驗一:C#語法基礎(chǔ)實驗實現(xiàn)實驗內(nèi)容提要中規(guī)定的各項需求;獨立(或合作或在別人協(xié)助下或老師指導下)創(chuàng)造性地完成實驗,嚴禁抄

2、襲;實驗結(jié)束,提交實驗報告。基于VISUAL STUDIO.NET平臺開展實驗,學會如何建立控制臺應(yīng)用的項目工程。掌握以下語法知識:(1)數(shù)據(jù)類型;(2)運算符、表達式、語句;(3)數(shù)組、字符串、迭代器;(4)異常處理與預(yù)處理指令;(5)類與接口;(6)事件與委托。實驗二:C#語法高級實驗實現(xiàn)實驗內(nèi)容提要中規(guī)定的各項需求;獨立(或合作或在別人協(xié)助下或老師指導下)創(chuàng)造性地完成實驗,嚴禁抄襲;實驗結(jié)束,提交實驗報告。所建工程類型可以為:控制臺應(yīng)用、windows窗體應(yīng)用、ASP.NET web應(yīng)用。三、實驗內(nèi)容實驗一:C#語法基礎(chǔ)實驗任務(wù)1 判斷每個輸入的數(shù)是否可被3,5和7整除,并將整除狀態(tài)輸出

3、。要求:(1) 掌握VISUAL C#.NET的基本調(diào)試技巧。演示調(diào)試情況,會跟蹤變量的值,會設(shè)置和取消斷點,會跟蹤如何進入函數(shù)內(nèi)部(2) 對每個輸入數(shù),分別輸出對3,5和7的整除狀態(tài);(3) 能實現(xiàn)多次輸入輸出,最好能有一些輸入提示;(4) 亦可同時輸入和處理多個數(shù),并輸出多個數(shù)的整除狀態(tài)。(5) 考慮使用switch 或if。任務(wù)2 練習使用for、while、do while、foreach in等循環(huán)語句。輸出背靠背字符三角形W WWW WWWWW WWWWWWW WWWWB BBB BBBBB BBB輸出字符三角形AAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBB輸

4、出交替字符倒三角形STSTSSTSSSTSTSTSTSTSTSTSTSTSSTSTSTSTSTSTSTSTSSTSTSTSTSTSTSTSSTSTSTSTSTSTSSTSTSTSTSTSSTSTSTSTSSTSTSTSSTSTSSTSS輸出字符菱形AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBB要求:(1) 上述循環(huán)語句至少使用1次;(2) 至少有1題采用了string類實現(xiàn);(3) 至少有1題采用了集合類實現(xiàn);任務(wù)3 繪圖輸出y=a*sin(c*x + b)要求:(1) 系數(shù)a, b和c是可以變化的,可考慮是從鍵盤輸入的,或通過Ma

5、in方法參數(shù)傳遞的;(2) x的取值范圍在04之間,x,y值采用四舍五入;提示:根據(jù)輸入?yún)?shù),先生成一組數(shù)據(jù)(x, y),可考慮循環(huán)生成,四舍五入;在相應(yīng)位置輸出*或#。 * * * * * * * * * * * * * * * * # # # # # # # #任務(wù)4 練習使用文件操作(選做)要求:(1)采用程序生成楊輝三角,在屏幕上顯示;(2)創(chuàng)建目錄,并將文件存入硬盤;(3)讀取文件并在屏幕上顯示;(4)復制文件、獲取文件屬性和其所在驅(qū)動器信息,并在屏幕上顯示;(5)創(chuàng)建目錄列表,并在屏幕上顯示;提示:(1) 使用.NET框架中的相關(guān)操作類。實驗二:C#語法高級實驗任務(wù)1實驗結(jié)果分析。

6、遺傳算法(genetic algorithm)是模仿生物進化的智能算法,廣泛用于組合優(yōu)化等各類優(yōu)化問題。其過程包括編碼(coding)、初始化(initialization)、選擇selection/reproduction、交叉(crossover)、變異(mutation)、解碼(decoding)、評估(evaluation)等過程,其中交叉算子、選擇方式和適應(yīng)度值的定標處理對算法的性能有很大影響。通常,針對不同問題選擇不同組合,才能更好地解決問題。常用的交叉算子、選擇方式和定標處理方法如表13所示。下面文件(scheme48.dat)是為了測試某一組合優(yōu)化問題的最佳參數(shù)組合得到,參數(shù)組

7、合的個數(shù)為4*6*5=120,每個組合運行10次,得到該文件,示例如下:50612.9(最小值)OnePointCrossover,GARouletteWheelSelector,GANoScaling(參數(shù)組合)run no.genvalue(第幾次運行最佳個體首次出現(xiàn)代適應(yīng)度值)075750626.9153750612.9272050612.9361550626.9472250612.9573850626.9667250626.9777050612.9850550612.9970450626.9OnePointCrossover,GARouletteWheelSelector,GALine

8、arScalingrun no.genvalue074650612.9163650612.9試進行以下分析:l統(tǒng)計每個組合的10次運行中,達到最小值的次數(shù);l每個組合的10次運行中,最佳個體首次出現(xiàn)代的最大、最小、平均值及方差;要求:(6)掌握VISUAL C#.NET的基本調(diào)試技巧。演示調(diào)試情況,會跟蹤變量的值,會設(shè)置和取消斷點,會跟蹤如何進入函數(shù)內(nèi)部(7)為簡化輸出,根據(jù)表13中的簡寫,簡寫每個參數(shù)組合,如:OnePointCrossover,GARouletteWheelSelector,GANoScaling的簡寫是cO,rW,sN(8)輸出格式要求如下:The minimal is

9、50612.9.num min max mean fdevcO,rW,sN: 5 505 770 650 120.704cO,rW,sL: 7 570 800 697 81.8199cO,rW,sP: 9 475 792 658 108.15cO,rW,sT: 7 419 749 557 130.321cO,rW,sS: 6 445 780 625 119.749cO,rT,sN: 8 451 764 640 125.493cO,rT,sL: 8 290 800 610 191.336cO,rT,sP: 8 174 795 481 277.053cO,rT,sT: 10 63 784 425

10、228.205cO,rT,sS: 7 293 700 509 172.407數(shù)字為右對齊num min max mean fdev分別表示10次運行中達最小值的次數(shù)、最小代、最大代、達最小值代的平均值以及方差。(9)將結(jié)果存入文件,輸入和輸出文件名均采用鍵盤輸入方式,即使用main函數(shù)的參數(shù)實現(xiàn);(10)程序要通用,可處理類似問題。提示:(1)需采用循環(huán)讀入方式,如for;(2)每讀完12行做1次處理,第一次是讀13行,可通過增加1循環(huán)狀態(tài)變量實現(xiàn);(3)使用System.IO.File類/StreamWriter/ StreamReader進行文件操作(4)采用集合類,如List, Arra

11、yList等;(5)使用字符串函數(shù)IndexOf、LastIndexOf、StartsWith、EndsWith、substr;(6)使用數(shù)學函數(shù):冪函數(shù)Pow(x,y)、平方根Sqrt(x);(7)輸出方式控制WriteLine,(8)集合類中的Equals和CompareTo方法實現(xiàn)比較和排序(9)標準方差和均值的計算公式如下:表1交叉算子一覽表交叉算子英文簡稱單點OnePointCrossovercO兩點TwoPointCrossovercT均勻UniformCrossovercU奇偶EvenOddCrossovercE表2選擇方式一覽表選擇方式英文簡稱賭輪GARouletteWheel

12、SelectorrW聯(lián)賽GATournamentSelectorrT排序GARankSelectorrR均勻GAUniformSelectorrU確定性采樣GADSSelector, deterministic sampling selectorrD隨機余數(shù)采樣GASRSSelector, stochastic remainder sampling selectorrS表3適應(yīng)度值定標處理方法一覽表定標處理方法英文簡稱無定標GANoScalingsN線性GALinearScalingsL冪函數(shù)GAPowerLawScalingsP截斷GASigmaTruncationScalingsT適應(yīng)值共

13、享GASharing fitness sharingsS任務(wù)2 日期處理類的設(shè)計、實現(xiàn)與測試基本描述有許多日期處理的工作需要做。1)統(tǒng)計天數(shù)旅游公司要統(tǒng)計每個人出差在外的總天數(shù),手頭上有每個人出差在外的起始和回來的考勤時間,給定一堆日期區(qū)間,將其所有的天數(shù)統(tǒng)計出來。2)推排日期旅游公司要估計某個導游何時可以接受下一次任務(wù),并開列了一張當前導游們還需要幾天才能將手頭工作做完的清單,請按接受任務(wù)的早晚列出導游名字和可以接受任務(wù)的日期。3)確定天數(shù)某月某日是個重要的旅游旺日,為了準備迎接這個日子,須知道該日子離現(xiàn)在還有幾天,以便倒計時。4)星期幾某個日子是星期幾,這是首先應(yīng)該知道的,甚至是幾年以后的

14、某一天也不例外。5)安排會議會議議程橫跨某個時間區(qū)間,但是已經(jīng)有一些日子安排了其他工作,需要在沒有被安排的時間段中,找出最適合開會的時間。為了使開會時間最大程度地避開其他占用的時間,會議安排應(yīng)選擇盡可能長的未安排時間區(qū)段,并且從中間劃出開會區(qū)段。如果最長的未安排區(qū)段有多個,則應(yīng)盡量早安排會議,所以如果兩邊間隔不對稱,則也應(yīng)取靠前安排。這就是所謂的最適合開會的時間。請編程將這幾個功能串在一起,用一個菜單驅(qū)動。輸入描述:1)統(tǒng)計天數(shù)輸入中含有若干組數(shù)據(jù),每組數(shù)據(jù)包括名字、日期和出去(out)的回來(back)的標記。名字長度在1,10之間,日期為合法的yyyy-mm-dd格式的日期。對于某個人來說

15、,出去與回來的日期成對出現(xiàn),先出去后回來,出去與回來的日期區(qū)間也不交叉。示例:days.txtZhangsan 2005-10-23 outLisi 2005-08-09 outZhangsan 2005-12-01 backLisi 2005-08-15 back2)推排日期第一行是當前日期(yyyy-mm-dd),以后是每個導游的名字(名字長度在1,10之間)以及完成當前工作的所需要的天數(shù)n(0n1000)。示例:date.txt2006-10-22Zhangsan 12Lisi 33)確定天數(shù)第一行是當前日期(yyyy-mm-dd),后面是若干行日期,分別表示各個節(jié)日名稱(沒有空格隔開的

16、字串)和日期(yyyy-mm-dd)。示例:future.txt2006-12-22LabourDay 2008-05-01NewYear 2008-01-01NationalDay 2008-10-01BeijingOlympiad 2008-08-084)星期幾輸入有若干個日期,日期之間以空格或回車隔開。示例:week.txt2008-02-222006-11-202008-03-085)安排會議第一行是兩個日期和一個整數(shù),表示會議只能是這個日期區(qū)段中的某個子集,整數(shù)表示會議需要的天數(shù)。接著若干行中每行用2個日期表示時間區(qū)段,那是已經(jīng)有了其他安排的日期,如果每行中只有一個日期,說明該時間區(qū)

17、段只包含1天。示例:meeting.txt2006-10-23 2006-12-24 52006-10-27 2006-11-022006-11-06 2006-11-072006-11-14 2006-11-192006-11-212006-11-29 2006-12-092006-12-14 2006-12-20輸出描述1)統(tǒng)計天數(shù)按名字的字母順序輸出,輸出其名字和合計天數(shù),每個人的數(shù)據(jù)占一行。名字按10位的寬度并且左對齊,而合計天數(shù)按5位寬度并且右對齊。在開始輸出前,首先輸出一行“統(tǒng)計天數(shù):”。輸出至文件days.out或屏幕2)推排日期按完成工作的先后順序排列,如果完成工作日期相同,則

18、按名字字母順序排列。每人信息占一行,名字將按寬度11個字符左對齊。開始輸出前,輸出一行“推排日期:”。輸出至文件date.out或屏幕3)確定天數(shù)按節(jié)日離當前日期的遠近排列,近者靠前。若2個日期一樣,則按字母順序排列。每個節(jié)日名稱與天數(shù)列一行,節(jié)日名稱與天數(shù)之間空一行。開始輸出前,首先輸出一行“確定天數(shù):”。輸出至文件future.out或屏幕4)星期幾輸出每個日期所對應(yīng)的星期幾,星期幾以三位英文縮寫字母表示,每個日期占一行。開始輸出前。輸出“星期幾:”。輸出至文件week.out或屏幕5)安排會議要從未被安排的日期區(qū)段中尋找最適合開會的時間,輸出該日期。在開始輸出前,輸出“安排會議:”。輸出

19、至文件meeting.out或屏幕要求:(1)考慮自定義拷貝構(gòu)造函數(shù)、構(gòu)造函數(shù)默認參數(shù)、字符串參數(shù)、c串參數(shù)、整數(shù)參數(shù);(2)使用抽象類做基類,考慮使用虛函數(shù);(3)數(shù)據(jù)成員為私有;(4)考慮內(nèi)聯(lián)函數(shù);體現(xiàn)成員函數(shù)重載;(5)考慮異常處理;(6)考慮使用委托;(7)能檢查日期的合法性,不合法給出提示;(8)有日期輸出功能;日期輸出時注意格式的設(shè)定,可根據(jù)枚舉型值決定輸出格式;(9)可更改日期值;(10)可直接進行日期對象賦值操作;(11)可根據(jù)日期判定是否閏年;(12)能實現(xiàn)絕對天數(shù)與年月日間的相互轉(zhuǎn)換;(13)借助new可創(chuàng)建類對象;(14)體現(xiàn)操作符重載,如+,+, <<,&g

20、t;>,-,=,+=,!=,<,-,-=;(15)實現(xiàn)菜單操作。提示:(1)需使用using system,用于清屏和獲取屏幕輸入ReadKey(),ReaLline();(2)將每個功能作為一個函數(shù),它們是同類型的,為了調(diào)用方便,可將它們做成函數(shù)指針數(shù)組,調(diào)用起來比較方便。(3)老師可先講解主程序結(jié)構(gòu),即菜單實現(xiàn),可指導學生一塊一塊實現(xiàn);(4)可考慮采用日期的天數(shù)版四、實驗步驟實驗一:C#語法基礎(chǔ)實驗實驗方法:在VISUAL STUDIO.NET平臺編程完成相應(yīng)任務(wù),并測試通過。實驗步驟:1、組長確定組員任務(wù)分工;2、分別熟悉實驗任務(wù),熟悉實驗環(huán)境;3、各組員開發(fā)和測試各自的任務(wù)

21、;4、各組員撰寫各自任務(wù)的實驗報告,形成自己的實驗報告;5、組長將組員的報告合并,包括整體工作,形成本組報告,封面寫上所有組員名字,內(nèi)部在相應(yīng)部分標示組員工作。設(shè)備或工具使用說明硬件平臺:計算機、服務(wù)器、集線器、交換機;系統(tǒng)平臺:Windows開發(fā)語言: Visual C#.NET開發(fā)平臺:VISUAL STUDIO.NET實驗二:C#語法高級實驗實驗方法:在VISUAL STUDIO.NET平臺編程完成相應(yīng)任務(wù),并測試通過。實驗步驟:1、組長確定組員任務(wù)分工;2、分別熟悉實驗任務(wù),熟悉實驗環(huán)境;3、各組員開發(fā)和測試各自的任務(wù);4、各組員撰寫各自任務(wù)的實驗報告,形成自己的實驗報告;5、組長將組

22、員的報告合并,包括整體工作,形成本組報告,封面寫上所有組員名字,內(nèi)部在相應(yīng)部分標示組員工作。設(shè)備或工具使用說明硬件平臺:計算機、服務(wù)器、集線器、交換機;系統(tǒng)平臺:Windows開發(fā)語言: Visual C#.NET開發(fā)平臺:VISUAL STUDIO.NET五、實驗結(jié)果系統(tǒng)的運行及測試情況。測試情況:實驗一:任務(wù)一:任務(wù)二:任務(wù)三:任務(wù)四:實驗二:任務(wù)一:任務(wù)二:六、實驗體會及思考題討論(1)梳理和總結(jié)自己的收獲,積累經(jīng)驗;(2)對有關(guān)思考題的討論。實驗一思考題:1、如何添加和移除文件的訪問控制列表?要在文件中添加或從文件中移除訪問控制列表 (ACL) 項,必須從文件或目錄中獲得 FileSe

23、curity 或 DirectorySecurity 對象,對其進行修改,然后重新應(yīng)用回相應(yīng)的文件或目錄。在文件中添加或移除 ACL 項 調(diào)用 GetAccessControl 方法以獲取包含文件的當前 ACL 項的 FileSecurity 對象。 在從步驟 1 返回的 FileSecurity 對象中添加或移除 ACL 項。 將 FileSecurity 對象傳遞到 SetAccessControl 方法以應(yīng)用更改。在目錄中添加或移除 ACL 項 調(diào)用 GetAccessControl 方法以獲取包含目錄的當前 ACL 項的 DirectorySecurity 對象。 在從步驟 1 返回的

24、 DirectorySecurity 對象中添加或移除 ACL 項。 將 DirectorySecurity 對象傳遞到 SetAccessControl 方法以應(yīng)用更改。示例using System;using System.IO;usingSystem.Security.AccessControl;namespaceFileSystemExampleclassFileExample public static void Main() try stringfileName = "test.xml"Console.WriteLine("Adding access

25、control entry for " + fileName); / Add the access control entry to the file.AddFileSecurity(fileName,"DomainNameAccountName",FileSystemRights.ReadData, AccessControlType.Allow);Console.WriteLine("Removing access control entry from " + fileName); / Remove the access control e

26、ntry from the file.RemoveFileSecurity(fileName, "DomainNameAccountName", FileSystemRights.ReadData, AccessControlType.Allow);Console.WriteLine("Done.");catch (Exception e) Console.WriteLine(e); / Adds an ACL entry on the specified file for the specified account.public static void

27、 AddFileSecurity(string fileName, string account, FileSystemRights rights, AccessControlTypecontrolType) / Get a FileSecurity object that represents the / current security settings.FileSecurityfSecurity = File.GetAccessControl(fileName); / Add the FileSystemAccessRule to the security settings. fSecu

28、rity.AddAccessRule(new FileSystemAccessRule(account,rights, controlType);/ Set the new access settings.File.SetAccessControl(fileName, fSecurity); / Removes an ACL entry on the specified file for the specified account.public static void RemoveFileSecurity(string fileName, string account, FileSystemR

29、ights rights,AccessControlTypecontrolType) / Get a FileSecurity object that represents the / current security settings.FileSecurityfSecurity = File.GetAccessControl(fileName); / Add the FileSystemAccessRule to the security settings. fSecurity.RemoveAccessRule(new FileSystemAccessRule(account,rights,

30、controlType); / Set the new access settings.File.SetAccessControl(fileName, fSecurity); 編譯代碼您必須提供有效的用戶或組帳戶才能運行此示例。此示例使用 File 對象;不過,對于 FileInfo、Directory 和 DirectoryInfo 類使用同一過程。2、控制臺應(yīng)用程序的主菜單實現(xiàn)?控制臺菜單選項的實現(xiàn)(1)使用if else入門      程序清單 1   用if else

31、作分支處理(V0.1) void CmdRunning()      int iCmdNum;     do                    printf("請選擇:0. 退出;1. 新建文件;2. 打開文件;3.

32、保存文件n");                   scanf("%d",& iCmdNum);                   if (0 =&

33、#160;iCmdNum)                           printf("謝謝使用,再見!n");                

34、;                      else if (1 = iCmdNum)                     

35、      CreateFile();                                      else if (2

36、60;= iCmdNum)                           OpenFile();                  &

37、#160;                   else if (3 = iCmdNum)                       &#

38、160;   SaveFile();                                    else        

39、;                   printf("對不起,你選擇的數(shù)字不存在,請重新選擇!n");                        

40、;   while(iCmdNum!=0);      細心的同學可能會發(fā)現(xiàn),這段程序存在一個很嚴重的Bug,比如,運行程序后輸入字符a(非數(shù)字),回車,死循環(huán)出現(xiàn)了。為什么會出現(xiàn)這種情況呢?原因是scanf只能將緩沖區(qū)中的數(shù)字(使用了%d)讀入iCmdNum,并清空緩沖區(qū),而我們輸入的是非數(shù)字,那么scanf讀入失敗,失敗了它也就不會去清空緩沖區(qū),這樣造成的結(jié)果就是,我們不需要再輸入其它字符,scanf每次都會去讀緩沖區(qū)。(2)入口檢查  “scanf("%d",

41、&iCmdNum);”語句是V0.1版本出現(xiàn)死循環(huán)的關(guān)鍵,那么我們不妨先從這里入手。其實只要將“%d“改為“%c”,即可解決死循環(huán)問題。比如:     scanf("%c", &chCmd);                          

42、              / chCmd是一個字符變量     iCmdNum = atoi(&chCmd);                     

43、0;                                                 

44、0;              / 將chCmd轉(zhuǎn)換為整型數(shù)值    這樣做就能夠解決死循環(huán)問題(3)用switch簡化邏輯      由于使用if else處理多分支選項顯得更加繁瑣且效率低下,它必須一個一個分支的判斷,而處理多分支比較容易想到的就是switch 語句了。為了避免出現(xiàn)V0.1中的死循環(huán),我們后面的例子將使用另外

45、一個輸入函數(shù),代碼詳見程序清單3。                           程序清單 3  用switch語句做分支處理(V0.3)   1voidCmdRunning()  2     

46、  3  int iCmdNum = 0;1 4 5         do  6 printf("請選擇:0. 退出;1. 新建文件;2. 打開文件;3. 保存文件n"); 7            

47、            iCmdNum = getchar();                                 

48、     / 獲得一個字符 8                        fflush(stdin);               &#

49、160;                                                 &#

50、160;                                     / 清空緩沖區(qū) 9         &

51、#160;              switch(iCmdNum)  10                             case

52、0;'0': 11                                            printf("謝

53、謝使用,再見!n"); 12                                            break; 

54、13                            case '1': 14                

55、0;                          CreateFile(); 15                    &

56、#160;                      break; 16                         

57、;   case '2': 17                                          

58、; OpenFile(); 18                                           break; 19&#

59、160;                           case '3': 20                 &#

60、160;                         SaveFile(); 21                     &

61、#160;                     break; 22                          

62、;     default: 23                                          &

63、#160;printf("對不起,你選擇的數(shù)字不存在,請重新選擇!n"); 24                          25              

64、60;while('0' != iCmdNum); 26        實驗二思考題:1、如何實現(xiàn)數(shù)據(jù)的比較和排序?見實例對DATETABLE的比較排序:protected void Page_Load(object sender, EventArgs e) DataTabledt = new DataTable();dt.Columns.Add("Name");dt.Columns.Add("Age");/因為是字符串,所以排序

65、不對dt.Rows.Add("小明", "21");dt.Rows.Add("小張", "10");dt.Rows.Add("小紅", "9");dt.Rows.Add("小偉", "7");dt.Rows.Add("小美", "3");dt.DefaultView.Sort = "Age ASC"dt = dt.DefaultView.ToTable();foreach (D

66、ataRow s in dt.Rows) Response.Write(s"Age".ToString() + "-" + s"Name".ToString() + "<br/>"); Response.Write("-1-<br/>"); #region 方法1:將年齡補齊為2位,然后再進行排序,但是實際不應(yīng)該有0(僅作參考)for (int i = 0; i <dt.Rows.Count; i+) dt.Rowsi"Age" = dt.Row

67、si"Age".ToString().PadLeft(2, '0'); dt.DefaultView.Sort = "Age ASC"dt = dt.DefaultView.ToTable();foreach (DataRow s in dt.Rows) Response.Write(s"Age".ToString() + "-" + s"Name".ToString() + "<br/>"); #endregionResponse.Write(&

68、quot;-2-<br/>"); #region 方法2:創(chuàng)建新的DataTable,將Age類型變更為int類型DataTabledtNew = dt.Clone();dtNew.Columns"Age".DataType = typeof(int);/指定Age為Int類型foreach (DataRow s in dt.Rows) dtNew.ImportRow(s);/導入舊數(shù)據(jù) dtNew.DefaultView.Sort = "Age ASC"dtNew = dtNew.DefaultView.ToTable();for

69、each (DataRow s in dtNew.Rows) Response.Write(s"Age".ToString() + "-" + s"Name".ToString() + "<br/>"); #endregionResponse.Write("-3-<br/>"); #region 方法3:添加一列,主要用于排序dt.Columns.Add("AgeLength", typeof(int), "len(Age)");/

70、添加該列時,DataTable列數(shù)據(jù)即生成dt.DefaultView.Sort = "AgeLength,Age ASC"dt = dt.DefaultView.ToTable();foreach (DataRow s in dt.Rows) Response.Write(s"Age".ToString() + "-" + s"Name".ToString() + "<br/>"); #endregionResponse.Write("-4-<br/>&quo

71、t;); #region 方法4:運用LinQ,將DataTable轉(zhuǎn)換為集合,再調(diào)用集合自帶的排序方法進行排序foreach (DataRow s in dt.Rows.Cast<DataRow>().OrderBy(r =>int.Parse(r"Age".ToString() Response.Write(s"Age".ToString() + "-" + s"Name".ToString() + "<br/>"); #endregion 2、如何事件與委托模

72、式?事件是對象發(fā)送信號的行動發(fā)生的消息。該操作可能引起的用戶交互,例如鼠標單擊,或可能會引起一些其他的程序邏輯。該事件引發(fā)(觸發(fā)器)的對象稱為事件發(fā)送方。捕獲事件,并對其作出響應(yīng)的對象稱為事件接收器。在事件通訊中,發(fā)件人的事件類不知道哪個對象或方法將接收(句柄)它引發(fā)的事件。我們需要的是中介人(或類似于指針機制)源和接收方之間。.NET 框架定義了一種特殊類型(委托)所提供的功能的函數(shù)指針。委托是一類可以包含對方法的引用。與其他類不同,委托類具有一個簽名,按住它可以只對匹配其簽名的方法的引用。七、附件1、程序流程圖2、關(guān)鍵核心代碼實驗一:任務(wù)一:using System;usingSystem

73、.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespace Mission_1class Program static void Main(string args) int a;string x;string y;string z;stringfff; Boolean w; w = true;for (int b = 1; w = true; b+) Console.WriteLine("n請輸入第" + b + "輪數(shù)字(數(shù)字之間使用空格)");stringsss = Console.ReadL

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論