九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

c#網(wǎng)絡(luò)編程及應(yīng)用課后答案(劉瑞新 著) 機(jī)械工業(yè)出版社

  • 資源ID:81527527       資源大小:251.50KB        全文頁數(shù):55頁
  • 資源格式: DOC        下載積分:16積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要16積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

c#網(wǎng)絡(luò)編程及應(yīng)用課后答案(劉瑞新 著) 機(jī)械工業(yè)出版社

1. C/S結(jié)構(gòu)模式與B/S結(jié)構(gòu)模式的主要區(qū)別是什么? 【解答】首先,在系統(tǒng)的性能方面。只要擁有可上網(wǎng)的瀏覽器,就可以使用B/S系統(tǒng)。不過,B/S結(jié)構(gòu)的客戶端只能完成瀏覽、查詢、數(shù)據(jù)輸入等簡單功能,絕大部分工作要由服務(wù)器承擔(dān),這就對服務(wù)器提出了很高的要求,無形中增加了用戶在這一方面的投入。采用C/S結(jié)構(gòu)時,客戶端和服務(wù)器都承擔(dān)部分工作,有效利用了客戶端和服務(wù)器端的資源,使用戶不必在硬件上有更多的投入。另外,瀏覽器頁面不便于修改,這為用戶定制自己的文件時帶來了不便,比如用戶想自定義一個報表,用B/S結(jié)構(gòu)的系統(tǒng)就比較難完成。其次,在系統(tǒng)的開發(fā)方面,C/S結(jié)構(gòu)的開發(fā)對開發(fā)者提出了較高的要求,整個開發(fā)過程比較復(fù)雜。與B/S結(jié)構(gòu)相比,C/S技術(shù)的歷史更為“悠久”,從技術(shù)成熟度和開發(fā)人員普遍掌握的水平來看更為成熟。第三,系統(tǒng)升級方面。C/S結(jié)構(gòu)中若有某一模塊發(fā)生改變,可能要關(guān)聯(lián)到其它模塊的變動,使系統(tǒng)升級的成本較大;而B/S結(jié)構(gòu)在開發(fā)、維護(hù)階段幾乎所有的工作都集中在服務(wù)器端,只需更新服務(wù)器端的軟件就可以了。如果系統(tǒng)升級比較頻繁,那么B/S架構(gòu)的產(chǎn)品就具有維護(hù)工作量少的優(yōu)勢。第四,安全性方面。在安全性上,B/S結(jié)構(gòu)則略顯不足,畢竟現(xiàn)在網(wǎng)絡(luò)安全系數(shù)不高,只要擁有密碼,任何人都可以進(jìn)入到用戶的系統(tǒng)中;而C/S結(jié)構(gòu)由于需要特定的客戶端軟件,并且一般來說都要對客戶端加密,甚至可以限定只有某一臺計算機(jī)可以使用這個客戶端,因而對安全性有更多的保障。2. 可以用C#編寫哪些類型的應(yīng)用程序?【解答】1) 控制臺應(yīng)用程序。2) Windows應(yīng)用程序。3) 水晶報表應(yīng)用程序。4) ASP.NET Web應(yīng)用程序。5) ASP.NET Web服務(wù)應(yīng)用程序。6) ASP.NET 水晶報表Web應(yīng)用程序。7) 智能設(shè)備應(yīng)用程序。3. 什么是命名空間?命名空間和類庫的關(guān)系是什么?【解答】1) 名稱空間是對類的一種邏輯上的分組,即將類按照某種關(guān)系或聯(lián)系劃分到不同的名稱空間下。2) 名稱空間又可以包含其它的名稱空間,例如System.Windows.Forms,是指System名稱空間下有Windows名稱空間,Windows名稱空間下有Forms名稱空間。3) 所有類庫都在規(guī)定的名稱空間下。1. C#支持的數(shù)據(jù)類型有那些?與C+相比有哪些特點(diǎn)? 【解答】C#支持的數(shù)據(jù)類型有:(1) 值類型包括:簡單類型、結(jié)構(gòu)類型、枚舉類型。其中,簡單類型又分為:整型、布爾型、字符型、浮點(diǎn)型、小數(shù)型。(2) 引用類型包括:對象類型、類類型、接口、元數(shù)據(jù)、字符串類型、數(shù)組。與C+相比,C#的主要特點(diǎn)有:1) C#語言自C/C+演變而來。但是,它是完全按照面向?qū)ο蟮乃枷雭碓O(shè)計的,并保證了類型的安全性。2) C#簡化了C+在類、名稱空間、方法重載和異常處理等方面的使用。摒棄了C+的復(fù)雜性,使它更易用、更少出錯。3) C#減少了C+的一些特性,不再有宏、多重繼承。特別對企業(yè)開發(fā)者來說,上述功能只會產(chǎn)生更多的麻煩而不是效益。4) C#采用嚴(yán)格的類型安全、版本控制、垃圾收集(garbage collect)等等。所有的這些功能的目標(biāo)都是瞄準(zhǔn)了開發(fā)面向組件的軟件開發(fā)。5) C#中不再有“:”、“.”、和“->”操作符,僅使用單個操作符“.”。6) C#使用統(tǒng)一的類型系統(tǒng),摒棄了C+多變的類型系統(tǒng)。7) 在C#中,不能在類的外部定義全局函數(shù)、變量或者是常量等。所有的東西都必須封裝在類中,包括實例成員或靜態(tài)成員。從而使C#代碼更加易讀且有助于減少潛在的命名沖突。8) 在C#中,不能使用沒有初始化的變量。從而避免了由于使用不經(jīng)初始化的變量而導(dǎo)致的計算結(jié)果錯誤。2. C#語言中,值類型和引用類型有何不同?【解答】值類型和引用類型的區(qū)別在于,值類型的變量直接存放實際的數(shù)據(jù),而引用類型的變量存放的則是數(shù)據(jù)的地址,即對象的引用。值類型變量直接把變量的值保存在堆棧中,引用類型的變量把實際數(shù)據(jù)的地址保存在堆棧中,而實際數(shù)據(jù)則保存在堆中。注意,堆和堆棧是兩個不同的概念,在內(nèi)存中的存儲位置也不相同,堆一般用于存儲可變長度的數(shù)據(jù),如字符串類型;而堆棧則用于存儲固定長度的數(shù)據(jù),如整型類型的數(shù)據(jù)int(每個int變量占用四個字節(jié))。由數(shù)據(jù)存儲的位置可以得知,當(dāng)把一個值變量賦給另一個值變量時,會在堆棧中保存兩個完全相同的值;而把一個引用變量賦給另一個引用變量,則會在堆棧中保存對同一個堆位置的兩個引用,即在堆棧中保存的是同一個堆的地址。在進(jìn)行數(shù)據(jù)操作時,對于值類型,由于每個變量都有自己的值,因此對一個變量的操作不會影響到其它變量;對于引用類型的變量,對一個變量的數(shù)據(jù)進(jìn)行操作就是對這個變量在堆中的數(shù)據(jù)進(jìn)行操作,如果兩個引用類型的變量引用同一個對象,實際含義就是它們在堆棧中保存的堆的地址相同,因此對一個變量的操作就會影響到引用同一個對象的另一個變量。3. 結(jié)構(gòu)和類的區(qū)別是什么?【解答】1) 結(jié)構(gòu)是一個值類型,保存在棧上,而類是一個引用類型,保存在受管制的堆上。2) 對結(jié)構(gòu)中的數(shù)據(jù)進(jìn)行操作比對類或?qū)ο笾械臄?shù)據(jù)進(jìn)行操作速度要快。3) 一般用結(jié)構(gòu)存儲多種類型的數(shù)據(jù),當(dāng)創(chuàng)建一個很多類或?qū)ο蠊灿玫男⌒蛯ο髸r,使用結(jié)構(gòu)效率更高。4. C#中的數(shù)組類型有何特點(diǎn)?【解答】1) 數(shù)組一般用于存儲同一種類型的數(shù)據(jù),包括Object類型。2) 數(shù)組是一種引用類型,而不是值類型。3) C#中除了可以有一維數(shù)組、多維數(shù)組外,還有交錯型數(shù)組。5. C#中不同整型之間進(jìn)行轉(zhuǎn)換的原則是什么?【解答】在整型之間進(jìn)行轉(zhuǎn)換時,小范圍類型可以隱式轉(zhuǎn)換為大范圍類型,但大范圍類型轉(zhuǎn)換為小范圍類型時需要使用顯式轉(zhuǎn)換。6. 簡述裝箱和拆箱的過程?!窘獯稹垦b箱是將值類型隱式地轉(zhuǎn)換為object類型或者轉(zhuǎn)換為由該值類型實現(xiàn)了的接口類型。裝箱一個數(shù)值會為其分配一個對象實例,并把該數(shù)值拷貝到新對象中。拆箱是顯式地把object類型轉(zhuǎn)換成值類型,或者把值類型實現(xiàn)了的接口類型轉(zhuǎn)換成該值類型。7. 下列寫法哪些是錯誤的?為什么?1) if (nMyValue1=5) i=1;2) if(nMyValue2=1)i=1;3) int myInt=1,2,3;foreach(int test in myInt)test+;Console.WriteLine(temp);4) int myInt1=1,2,3;foreach(int test in myInt1)Console>WriteLine(test);【解答】1) 錯誤。if中的條件表達(dá)式結(jié)果不是布爾型。2) 正確。3) 錯誤一:temp沒有定義。錯誤二:在foreach塊內(nèi),test作為枚舉成員是只讀的,不能使用test+修改其值。4) 錯誤。Console后應(yīng)該是點(diǎn),而不應(yīng)該是大于號。8. 錯誤和異常有什么區(qū)別,為什么要進(jìn)行異常處理,用于異常處理的語句有哪些?【解答】錯誤是指在執(zhí)行代碼過程中發(fā)生的事件,它中斷或干擾代碼的正常流程并創(chuàng)建異常對象。當(dāng)錯誤中斷流程時,該程序?qū)L試尋找異常處理程序(一段告訴程序如何對錯誤做出響應(yīng)的代碼),以幫助程序恢復(fù)流程。換句話說,錯誤是一個事件,而異常是該事件創(chuàng)建的對象。當(dāng)使用短語“產(chǎn)生異?!睍r,表示存在問題的方法發(fā)生錯誤,并創(chuàng)建異常對象(包含該錯誤的信息及發(fā)生的時間和位置)來響應(yīng)該錯誤。導(dǎo)致出現(xiàn)錯誤和隨后異常的因素包括用戶錯誤、資源失敗和編程邏輯失敗。這些錯誤與代碼實現(xiàn)特定任務(wù)的方法有關(guān),而與該任務(wù)的目的無關(guān)。如果不進(jìn)行異常處理,即不對錯誤做出響應(yīng),程序的健壯性就會大打折扣,甚至無法保證正常運(yùn)行,所以必須要進(jìn)行異常處理。用于異常處理的語句有:try-catch語句、try-catch-finally語句、throw語句。9. 編寫一個控制臺應(yīng)用程序,輸出1到5的平方值,要求:1) 用for語句實現(xiàn)。2) 用while語句實現(xiàn)。3) 用do-while語句實現(xiàn)?!窘獯稹恳韵率且闷危簎sing System; using System.Collections.Generic; using System.Text; namespace outputSquareValue class Program static void Main() /用for語句實現(xiàn) for (int i = 1; i <= 5; i+) Console.WriteLine("0的平方值為1", i, i * i); /用while語句實現(xiàn) int j = 0; while (j+ < 5) Console.WriteLine("0的平方值為1", j, j * j); /用do-while語句實現(xiàn) int k = 1; do Console.WriteLine("0的平方值為1", k, k * k); while (k+ < 5); Console.ReadLine(); 10. 編寫一個控制臺應(yīng)用程序,要求用戶輸入5個大寫字母,如果用戶輸入的信息不滿足要求,提示幫助信息并要求重新輸入?!窘獯稹恳韵率且闷危簎sing System; using System.Collections.Generic; using System.Text; namespace inputCapitalLetter class Program static void Main() bool ok = false; while (ok = false) Console.Write("請輸入5個大寫字母:"); string str = Console.ReadLine(); if (str.Length != 5) Console.WriteLine("你輸入的字符個數(shù)不是5個,請重新輸入。"); else ok = true; for (int i = 0; i < 5; i+) char c = stri; if (c < 'A' | c > 'Z') Console.WriteLine("第0個字符“1”不是大寫字母,請重新輸入。", i + 1, c); ok = false; break; 11. 編寫一個控制臺應(yīng)用程序,要求完成下列功能。1) 接收一個整數(shù)n。2) 如果接收的值n為正數(shù),輸出1到n間的全部整數(shù)。3) 如果接收的值為負(fù)值,用break或者return退出程序。4) 轉(zhuǎn)到(1)繼續(xù)接收下一個整數(shù)?!窘獯稹恳韵率且闷危簎sing System; using System.Collections.Generic; using System.Text; namespace testOutput class Program static void Main() while (true) Console.Write("請輸入一個整數(shù)(負(fù)值結(jié)束):"); string str = Console.ReadLine(); try int i = Int32.Parse(str); if (i < 0) break; for (int j = 1; j <= i; j+) Console.WriteLine(j); catch Console.WriteLine("你輸入的不是數(shù)字或超出整數(shù)的表示范圍,請重新輸入"); 12. 編寫一個控制臺應(yīng)用程序,求1000之內(nèi)的所有“完數(shù)”。所謂“完數(shù)”是指一個數(shù)恰好等于它的所有因子之和。例如,6是完數(shù),因為6=1+2+3?!窘獯稹恳韵率且闷危簎sing System; using System.Collections.Generic; using System.Text; namespace completeNumber class Program static void Main(string args) for (int i = 2; i <= 1000; i+) int s = 1; string str = "1" for (int j = 2; j <= (int)Math.Sqrt(i); j+) if (j * (i / j) = i) if (j != i / j) s += j + i / j; str += string.Format("+0+1", j, i / j); else s += j; str += string.Format("+0", j); if (s = i) Console.WriteLine("0=1", i, str); Console.ReadLine(); 1. 編寫一個控制臺應(yīng)用程序,完成下列功能。1) 創(chuàng)建一個類,用無參數(shù)的構(gòu)造函數(shù)輸出該類的類名。2) 增加一個重載的構(gòu)造函數(shù),帶有一個string類型的參數(shù),在此構(gòu)造函數(shù)中將傳遞的字符串打印出來。3) 在Main方法中創(chuàng)建屬于這個類的一個對象,不傳遞參數(shù)。4) 在Main方法中創(chuàng)建屬于這個類的另一個對象,傳遞一個字符串“This is a string.”。5) 在Main方法中聲明類型為這個類的一個具有5個對象的數(shù)組,但不要實際創(chuàng)建分配到數(shù)組里的對象。6) 寫出運(yùn)行程序應(yīng)該輸出的結(jié)果?!窘獯稹恳韵率且闷危簎sing System; class Test1 public Test1() Console.WriteLine(this); public Test1(string str) Console.WriteLine(str); public static void Main() Test1 t1 = new Test1(); Test1 t2 = new Test1("This is a string."); Test1 t3 = new Test15; 輸出結(jié)果:Test1This is a string.2. 編寫一個控制臺應(yīng)用程序,定義一個類MyClass,類中包含有public、private以及protected數(shù)據(jù)成員及方法。然后定義一個從MyClass類繼承的類MyMain,將Main方法放在MyMain中,在Main方法中創(chuàng)建MyClass類的一個對象,并分別訪問類中的數(shù)據(jù)成員及方法。要求注明在試圖訪問所有類成員時哪些語句會產(chǎn)生編譯錯誤?!窘獯稹恳韵率且闷危簎sing System; class MyClass public int i; private int j; protected int k; public void method1() Console.WriteLine("public method."); private void method2() Console.WriteLine("private method."); protected void method3() Console.WriteLine("protected method."); class MyMain : MyClass public static void Main() MyClass t = new MyClass(); Console.WriteLine("i=0", t.i); Console.WriteLine("j=0", t.j); /會出現(xiàn)編譯錯誤,私有成員不允許在其它類中訪問 Console.WriteLine("k=0", t.k); /會出現(xiàn)編譯錯誤,應(yīng)該創(chuàng)建MyMain的對象,然 /后通過MyMain的對象訪問 t.method1(); t.method2(); /會出現(xiàn)編譯錯誤,私有的方法不允許在其它類中調(diào)用 t.method3(); /會出現(xiàn)編譯錯誤,應(yīng)該創(chuàng)建MyMain的對象,然后通過MyMain的 /對象調(diào)用該方法 3. 創(chuàng)建一個類包含有protected數(shù)據(jù)。在相同的文件里創(chuàng)建第二個類,用一個方法操縱第一個類里的protected數(shù)據(jù)?!窘獯稹恳韵率且闷危簎sing System; class Class1 protected int i = 5; protected void MyMethod() Console.WriteLine("protected method."); class Class2 : Class1 private void NewMethod() Console.WriteLine(this.i); this.i += 10; Console.WriteLine(this.i); public static void Main() Class2 t = new Class2(); t.NewMethod(); 4. 分別寫出下列語句執(zhí)行的結(jié)果。1) Console.WriteLine("0-0:pgood",12.34F);2) Console.WriteLine("0-0:#good",0);3) Console.WriteLine("0-0:00000good",456);【解答】12.34-1,234.00%good0-good456-00456good5. 編寫一個控制臺應(yīng)用程序,計算要求精度為10-8。【解答】以下是引用片段:using System; class Test5 public static void Main() int n = 50; double x = 3; double s = 0; double a = 1; for (int i = 1; i <= n; i+) a *= i; s += Math.Pow(-1, i + 1) * Math.Pow(x, i) / a; Console.WriteLine("n=0,s=1:0.00000000", n, s); 6. 編寫一個控制臺應(yīng)用程序,接收一個長度大于3的字符串,完成下列功能1) 輸出字符串的長度。2) 輸出字符串中第一個出現(xiàn)字母a的位置。3) 在字符串的第3個字符后面插入子串“hello”,輸出新字符串。4) 將字符串“hello”替換為“me”,輸出新字符串。5) 以字符“m”為分隔符,將字符串分離,并輸出分離后的字符串?!窘獯稹恳韵率且闷危簎sing System; class Test6 public static void Main() string str = "" while (str.Length <= 3) Console.Write("請輸入一個長度大于3的字符串:"); str = Console.ReadLine(); /(1) Console.WriteLine("字符串的長度為:0", str.Length); /(2) int i = str.IndexOf('a'); if (i > -1) Console.WriteLine("第一個出現(xiàn)字母a的位置是:0", i); else Console.WriteLine("字符串中不包含字母a。"); /(3) string str1 = str.Insert(3, "hello"); /在第3個(初始序號為)字符前插入hello Console.WriteLine("插入hello后的結(jié)果為:0", str1); /(4) string str2 = str1.Replace("hello", "me"); Console.WriteLine("將hello替換為me后的結(jié)果為:0", str2); /(5) string arr = str2.Split('m'); Console.WriteLine("以m為分隔符分離后的字符串有:"); for (int j = 0; j < arr.Length; j+) Console.WriteLine(arrj); 1. 使用保持連接的方式編寫程序,計算各年級平均成績,并顯示結(jié)果?!窘獯稹恳韵率且闷危簎sing System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace 習(xí)題8_6_1 public partial class Form1 : Form public Form1() InitializeComponent(); /添加Button按鈕在ListBox中顯示結(jié)果 private void button1_Click(object sender, EventArgs e) listBox1.Items.Add("年級 平均成績"); string connectionString = Properties.Settings.Default.MyDatabaseConnectionString; /根據(jù)連接字符串創(chuàng)建SqlConnection實例 SqlConnection conn = new SqlConnection(connectionString); /創(chuàng)建SqlCommand實例,并設(shè)置SQL語句和使用的連接實例 SqlCommand cmd = new SqlCommand(); cmd.CommandText = "select substring(學(xué)號,1,2) as 年級,avg(成績) as 平均成績 from MyTable2 group by substring(學(xué)號,1,2)" cmd.Connection = conn; try conn.Open(); SqlDataReader r = cmd.ExecuteReader(); while (r.Read() = true) listBox1.Items.Add(string.Format("0級 1", r0, r1); r.Close(); catch (Exception err) MessageBox.Show(err.Message, "計算成績失敗"); finally conn.Close(); 2. 使用保持連接的方式編寫程序,查詢MyTable2中不及格學(xué)生的學(xué)號,姓名,性別,成績。并將結(jié)果在ListBox中顯示出來?!窘獯稹恳韵率且闷危簎sing System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace 習(xí)題8_6_2 public partial class Form1 : Form public Form1() InitializeComponent(); private void button1_Click(object sender, EventArgs e) listBox1.Items.Add(" 學(xué)號 姓名 性別 成績"); string connectionString = Properties.Settings.Default.MyDatabaseConnectionString; /根據(jù)連接字符串創(chuàng)建SqlConnection實例 SqlConnection conn = new SqlConnection(connectionString); /創(chuàng)建SqlCommand實例,并設(shè)置SQL語句和使用的連接實例 SqlCommand cmd = new SqlCommand(); cmd.CommandText = "Select 學(xué)號,姓名,性別, 成績 From MyTable2 Where (成績<60)" cmd.Connection = conn; try conn.Open(); SqlDataReader r = cmd.ExecuteReader(); while (r.Read() = true) listBox1.Items.Add( string.Format("0 1 2 3", r0, r1, r2, r3); r.Close(); catch (Exception err) MessageBox.Show(err.Message, "查詢成績失敗"); finally conn.Close(); 3. 編寫程序,以“編碼名稱”的樣式在comboBox1中顯示MyTable1的內(nèi)容?!窘獯稹恳韵率且闷危簎sing System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace 習(xí)題8_6_3 public partial class Form1 : Form public Form1() InitializeComponent(); private void Form1_Load(object sender, EventArgs e) string connectionString = Properties.Settings.Default.MyDatabaseConnectionString; /根據(jù)連接字符串創(chuàng)建SqlConnection實例 SqlConnection conn = new SqlConnection(connectionString); /創(chuàng)建SqlCommand實例,并設(shè)置SQL語句和使用的連接實例 SqlCommand cmd = new SqlCommand(); cmd.CommandText = "Select * From MyTable1" cmd.Connection = conn; try conn.Open(); SqlDataReader r = cmd.ExecuteReader(); while (r.Read() = true) comboBox1.Items.Add(string.Format("0 1", r0, r1); comboBox1.SelectedIndex = 0; r.Close(); catch (Exception err) MessageBox.Show(err.Message, "顯示數(shù)據(jù)失敗"); finally conn.Close(); 4. 在畫線處填上合適的內(nèi)容,使程序變得正確完整。以下是引用片段:string connString="server=localhost;Integrated Security=SSPI;database=pubs" SqlConnection conn=_ string strsql="select * from MyTable2" SqlDataAdapter adapter=new SqlDataAdapter(_); dataset=new DataSet(); adapter.Fill(_,"MyTable2"); this.dataGridView1.DataSource=dataset.Tables"MyTable2"【解答】以下是引用片段:string connString="server=localhost;Integrated Security=SSPI;database=pubs" SqlConnection conn= new SqlConnection(Properties.Settings.Default.MyDatabaseConnectionString); string strsql="select * from MyTable2" SqlDataAdapter adapter=new SqlDataAdapter(conn); dataset=new DataSet(); adapter.Fill(dataset,"MyTable2"); this.dataGridView1.DataSource=dataset.Tables"MyTable2"5. 已知數(shù)據(jù)庫中定義了一張person表,表的數(shù)據(jù)結(jié)構(gòu)如下:字段名稱字段類型字段含義id數(shù)字編號xm文本姓名xb文本性別nl數(shù)字年齡zip文本郵政編碼用編寫代碼的方法在DataGridView中顯示該數(shù)據(jù)表中年齡大于18的所有紀(jì)錄,顯示時以編號的升序排序,要求禁止用戶編輯數(shù)據(jù)。【解答】以下是引用片段:using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace 習(xí)題8_6_5 public partial class Form1 : Form public Form1() InitializeComponent(); private void button1_Click(object sender, EventArgs e) string connectionstring = Properties.Settings.Default.MyDatabaseConnectionString ; SqlConnection conn = new SqlConnection(connectionstring); try conn.Open(); SqlDataAdapter adapter = new SqlDataAdapter( "select id,xm,xb,nl from person where nl > 18 order by id", conn); DataSet dataset = new DataSet(); /如果不指定表名,則系統(tǒng)自動生成一個默認(rèn)的表名 adapter.Fill(dataset, "person"); /可以使用索引引用生成的表 dataGridView1.DataSource = dataset.Tables"person" adapter.Dispose(); catch (Exception err) MessageBox.Show(err.Message); finally conn.Close(); private void Form1_Load(object sender, EventArgs e) /不允許用戶直接在最下面的行添加新行 dataGridView1.AllowUserToAddRows = false; /不允許用戶直接按Delete鍵刪除行 dataGridView1.AllowUserToDeleteRows = false; 6.例8-18的存儲過程定義中,將“surname nvarchar(2),”改為“surname nchar(2),”,是否仍然能夠得到正確結(jié)果,為什么?【解答】不一定。因為如果傳遞的參數(shù)值為“王”,在存儲過程中會自動變?yōu)椤巴?”。7. 調(diào)用存儲過程,設(shè)計程序完成下列功能:任意給出一個漢字,統(tǒng)計MyTable2中所有包含該漢字的人數(shù),并顯示統(tǒng)計結(jié)果?!窘獯稹恳韵率且闷危簎sing System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace 習(xí)題8_6_7 public partial class Form1 : Form public Form1() InitializeComponent(); private void button1_Click(object sender, EventArgs e) SqlConnection conn = new SqlConnection(Properties.Settings.Default.MyDatabaseConnectionString); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; /設(shè)置SQL語句為存儲過程名,命令類型為存儲過程 cmd.CommandText = "SelectFilterStudentsNum" cmd.CommandType = CommandType.StoredProcedure; /添加存儲過程中參數(shù)需要的初始值,注意參數(shù)名要和存儲過程定義的參數(shù)名相同 if( textBox1.Text="") MessageBox.Show("請輸入有效信息","錯誤"); textBox1.Focus(); return ; cmd.Parameters.AddWithValue("surname", textBox1.Text); cmd.Parameters.AddWithValue("record", 0); /指定哪些參數(shù)需要返回結(jié)果 cmd.Parameters"record".Direction = ParameterDirection.Output; try conn.Open(); /執(zhí)行存儲過程 cmd.ExecuteNonQuery(); /顯示返回的結(jié)果 MessageBox.Show(string.Format("有0條含 1 的記錄", cmd.Parameters"record".Value,textBox1.Text); catch (Exception err) MessageBox.Show(err.Message); finally conn.Close(); 1. 簡述三類二維坐標(biāo)系統(tǒng)之間的相同點(diǎn)和區(qū)別。【解答】GDI+中的二維笛卡兒坐標(biāo)系統(tǒng)分為三類:全局坐標(biāo)系統(tǒng)、頁面坐標(biāo)系統(tǒng)和設(shè)備坐標(biāo)系統(tǒng)。三類坐標(biāo)系統(tǒng)的相同點(diǎn):它們都有坐標(biāo)原點(diǎn)以及向右和向下的x軸和y軸。三類坐標(biāo)系統(tǒng)的區(qū)別:全局坐標(biāo)系統(tǒng)可以進(jìn)行旋轉(zhuǎn)、平移等操作。頁面坐標(biāo)系統(tǒng)與設(shè)備坐標(biāo)系統(tǒng)都是以設(shè)備的左上角為坐標(biāo)原點(diǎn),X水平向右為正,Y垂直向下為正。頁面坐標(biāo)系統(tǒng)與設(shè)備坐標(biāo)系統(tǒng)的差異在于X,Y的單位不同:頁面坐標(biāo)系中的X,Y單位可以任意設(shè)定,如英寸、毫米等;而設(shè)備坐標(biāo)系中,只有一種單位,那就是點(diǎn)(point)或者像素(pixel)。頁面坐標(biāo)系是不能更改的,它是一個參照標(biāo)準(zhǔn),將全局坐標(biāo)最終轉(zhuǎn)換為設(shè)備坐標(biāo)。2. 簡述創(chuàng)建Graphics類對象的三種方法?!窘獯稹?1) 在窗體或控件的Paint事件中直接引用Graphics對象。在為窗體創(chuàng)建繪制代碼時,一般使用此方法獲取對圖像的引用。(2) 從當(dāng)前窗體獲取對Graphics對象的引用。注意這種對象只有在處理當(dāng)前Windows窗體消息的過程中有效。如果想在已經(jīng)存在的窗體或控件中繪圖,可以使用此種方法。(3) 從繼承自圖像的任何對象創(chuàng)建Graphics對象。這個方法適用于需要更改已經(jīng)存在的圖像。3. 同時創(chuàng)建多個矩形并用紅黑相間的顏色進(jìn)行填充?!窘獯稹?1) 新建一個Windows應(yīng)用程序,命名為“FillMultiRectangle”,調(diào)整窗體到適當(dāng)大小。更改“Form1.cs”為“FormFillMultiRectangle.cs”。(2) 切換到代碼方式,添加名稱空間引用:using System.Drawing.Drawing2D;(3) 雙擊窗體的屬性面板里事件頁中的Paint事件,添加FormFillMultiRectangle_Paint事件代碼。以下是引用片段:private void FormFillMultiRetangle_Paint(object sender, PaintEventArgs e) Graphics g = e.Graphics; HatchBrush mybrush=new HatchBrush (HatchStyle.Cross,Color .Red,Color .Black); Rectangle rect= new Rectangle( 0, 0, 50, 100), new Rectangle(50,100, 100, 50), new Rectangle(150, 150, 50, 100), ; g.FillRectangles(mybrush, rect); g.Dispose(); (4) 結(jié)果如圖所示。4. 使用Label控件分別以矩形、橢圓和圓形的方式顯示圖片,并保證圖片完全由繪制對象的邊框決定?!窘獯稹?1)新建一個Windows應(yīng)用程序,命名為“ShowImageExe”,調(diào)整窗體到適當(dāng)大小。更改“Form1.cs”為“FromShowImageExe.cs”。(2)切換到代碼方式,添加名稱空間引用:using System.Drawing.Drawing2D;(3) 添加四個Button控件分別命名為“buttonOpenFile”、“buttonRectangle”、“buttonEllipse”、“buttonRound”,以及一個openFileDiolog和label控件。(4)在Form類下聲明兩個私有變量filename和flag,分別用來記錄打開的文件名和判斷哪個按鈕的click時間被觸發(fā)。private string filename = ""private int flag = 0;(5) 添加【打開文件】按鈕的click事件以下是引用片段:private void buttonOpenFile_Click(object sender, EventArgs e) openFileDialog1.ShowDialog(); filename = openFileDialog1.FileName; label1.Refresh(); (6) 在label1控件的paint事件下添加如下代碼:以下是引用片段:private void label1_Paint(object sender, PaintEventArgs e) if (filename.Trim() = "") return; Bitmap mybitmap = new Bitmap(filename); Graphics g = e.Graphics; TextureBrush mybrush = new TextureBrush(mybitmap,WrapMode.Clamp); /保證圖片完全由繪制對象的邊框決定 switch (flag) case 1: g.FillRectangle(mybrush, label1.ClientRectangle);

注意事項

本文(c#網(wǎng)絡(luò)編程及應(yīng)用課后答案(劉瑞新 著) 機(jī)械工業(yè)出版社)為本站會員(馬***)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!