版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
千里之行,始于足下讓知識帶有溫度。第第2頁/共2頁精品文檔推薦c#習(xí)題1-5附答案解讀1、簡要回答下列問題。
(1)舉例說明new關(guān)鍵字可用于哪些方面?
(2)sealed關(guān)鍵字的作用是什么?什么狀況下需要使用sealed關(guān)鍵字?
(3)哪些關(guān)鍵字可以用于版本控制?
【解答】
1)在C#中,new關(guān)鍵字可用作運算符或修飾符。作為運算符用于在堆上創(chuàng)建對象和調(diào)用構(gòu)造函數(shù)。作為修飾符用于躲藏基類成員的繼承成員。
2)在類聲明中使用sealed修飾符可防止其它類繼承此類。在辦法聲明中使用sealed修飾符可防止擴充類重寫此辦法。
sealed修飾符主要用于防止非故意的派生,但是它還能促使某些運行時優(yōu)化。詳細說來,因為密封類永久不會有任何派生類,所以對密封類的實例的虛擬函數(shù)成員的調(diào)用可以轉(zhuǎn)換為非虛擬調(diào)用來處理。
3)override關(guān)鍵字和new關(guān)鍵字均可用于版本控制。
在C#中,默認狀況下辦法不是虛擬的。若要使辦法成為虛擬辦法,必需在基類的辦法聲明中使用virtual修飾符。然后,派生類可以使用override關(guān)鍵字重寫基類中的虛擬辦法,或使用new關(guān)鍵字躲藏基類中的虛擬辦法。假如override關(guān)鍵字和new關(guān)鍵字均未指定,編譯器將發(fā)出警告,并且派生類中的辦法將躲藏基類中的辦法。
2、簡要回答抽象類和接口的主要區(qū)分。
【解答】
抽象類和接口的一個主要差別是:類可以實現(xiàn)多個接口,但僅能從一個抽象類或任何其它類型的類繼承。
3、編寫一個控制臺應(yīng)用程序,完成下列功能,并回答提出的問題。
(1)創(chuàng)建一個類A,在構(gòu)造函數(shù)中輸出“A”,再創(chuàng)建一個類B,在構(gòu)造函數(shù)中輸出“B”。(2)從A繼承一個名為C的新類,并在C內(nèi)創(chuàng)建一個成員B。不要為C創(chuàng)建構(gòu)造函數(shù)。(3)在Main辦法中創(chuàng)建類C的一個對象,寫出運行程序后輸出的結(jié)果。
(4)假如在C中也創(chuàng)建一個構(gòu)造函數(shù)輸出“C”,囫圇程序運行的結(jié)果又是什么?
【解答】
usingSystem;
publicclassA
{
publicA()
{
Console.WriteLine("A");
}
}
publicclassB
{
publicB()
{
Console.WriteLine("B");
}
}
publicclassC:A
{
Bnewb=newB();
}
classMainClass
{
publicstaticvoidMain()
{
Cnewc=newC();
Console.ReadLine();
}
}
輸出結(jié)果:
B
A
假如在C中也創(chuàng)建一個構(gòu)造函數(shù)輸出“C”,即添加:
publicC()
{
Console.WriteLine("C");
}
則囫圇程序運行的結(jié)果為:
B
A
C
4、編寫一個控制臺應(yīng)用程序,完成下列功能,并寫出運行程序后輸出的結(jié)果。
(1)創(chuàng)建一個類A,在A中編寫一個可以被重寫的帶int類型參數(shù)的辦法MyMethod,并在該辦法中輸出傳遞的整型值加10后的結(jié)果。
(2)再創(chuàng)建一個類B,使其繼承自類A,然后重寫A中的MyMethod辦法,將A中接收的整型值加50,并輸出結(jié)果。
(3)在Main辦法中分離創(chuàng)建類A和類B的對象,并分離調(diào)用MyMethod辦法。
【解答】
usingSystem;
publicclassA
{
publicvirtualvoidMyMethod(intnum)
{
num+=10;
Console.WriteLine(num);
}
}
publicclassB:A
{
publicoverridevoidMyMethod(intnum)
{
num+=50;
Console.WriteLine(num);
}
}
classMainClass
{
publicstaticvoidMain()
{
Anewa=newA();
newa.MyMethod(2);
Bnewb=newB();
newb.MyMethod(2);
Console.ReadLine();
}
}
輸出結(jié)果:
12
52
5、假設(shè)Node類的每一個節(jié)點包括有兩個字段:m_data(引用節(jié)點的數(shù)據(jù))和m_next(引用鏈接列表中的下一項)。這兩個字段都是由構(gòu)造函數(shù)辦法設(shè)置的。該類有兩個功能,第一個功能是通過名為Data和Next的只讀屬性拜訪m_data和m_next字段。其次個功能是對System.Object的ToString虛擬辦法舉行重寫。試分離用類和泛型兩種辦法編寫程序?qū)崿F(xiàn)上述功能。
【解答】
usingSystem;
classNode
{
Objectm_data;
Nodem_next;
publicNode(Objectdata,Nodenext)
{
m_data=data;
m_next=next;
}
//拜訪結(jié)點數(shù)據(jù)
publicObjectData
{
get{returnm_data;}
}
//拜訪下一個結(jié)點
publicNodeNext
{
get{returnm_next;}
}
//獵取結(jié)點數(shù)據(jù)描述
publicoverrideStringToString()
{
returnm_data.ToString();
}
}
//鏈表結(jié)點類的泛型定義
classNode
{
Tm_data;
Nodem_next;
publicNode(Tdata,Nodenext)
{
m_data=data;
m_next=next;
}
//拜訪結(jié)點數(shù)據(jù)
publicTData
{
get{returnm_data;}
set{m_data=value;}
}
//拜訪下一個結(jié)點
publicNodeNext
{
get{returnm_next;}
set{m_next=value;}
}
//獵取結(jié)點數(shù)據(jù)描述
publicoverrideStringToString()
{
returnm_data.ToString();
}
}
//使用結(jié)點類型或泛型結(jié)點類型
classLinkedList
{
staticvoidMain(string[]args)
{
////創(chuàng)建整數(shù)鏈表
//Nodehead=newNode(5,null);
//head=newNode(10,head);
//head=newNode(15,head);
////遍歷鏈表求整數(shù)和
//Int32sum=0;
//for(Nodecurrent=head;current!=null;
//current=current.Next)
//{
//sum+=(Int32)current.Data;
//}
////輸出結(jié)果
//Console.WriteLine("Sumofnodes={0}",sum);
//用泛型創(chuàng)建整數(shù)鏈表
Nodehead=newNode(5,null);
head=newNode(10,head);
head=newNode(15,head);
//遍歷求和
Int32sum=0;
for(Nodecurrent=head;current!=null;
current=current.Next)
{
sum+=current.Data;
}
//輸出
Console.WriteLine("Sumofnodes={0}",sum.ToString());
}
}
1、使用保持銜接方式編寫程序,計算各年級平均成果,并顯示結(jié)果?!窘獯稹?/p>
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
namespace習(xí)題9_1
{
publicpartialclassForm1:Form
{
publicForm1()
{
InitializeComponent();
}
//添加Button按鈕在ListBox中顯示結(jié)果
privatevoidbutton1_Click(objectsender,EventArgse)
{
listBox1.Items.Add("年級平均成果");
stringconnectionString=Properties.Settings.Default.MyDatabaseConnectionString;
//按照銜接字符串創(chuàng)建SqlConnection實例
SqlConnectionconn=newSqlConnection(connectionString);
//創(chuàng)建SqlCommand實例,并設(shè)置SQL語句和使用的銜接實例
SqlCommandcmd=newSqlCommand();
cmd.CommandText="selectsubstring(學(xué)號,1,2)as年級,avg(成果)as平均成果fromMyTable2groupbysubstring(學(xué)號,1,2)";
cmd.Connection=conn;
try
{
conn.Open();
SqlDataReaderr=cmd.ExecuteReader();
while(r.Read()==true)
{
listBox1.Items.Add(string.Format("{0}級{1}",r[0],r[1]));
}
r.Close();
}
catch(Exceptionerr)
{
MessageBox.Show(err.Message,"計算成果失敗");
}
finally
{
conn.Close();
}
}
}
}
2、使用保持銜接方式編寫程序,查詢MyTable2中不及格同學(xué)的學(xué)號、姓名、性別和成果。并將結(jié)果在ListBox中顯示出來。
【解答】
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
namespace習(xí)題9_2
{
publicpartialclassForm1:Form
{
publicForm1()
{
InitializeComponent();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
listBox1.Items.Add("學(xué)號姓名性別成果");
stringconnectionString=Properties.Settings.Default.MyDatabaseConnectionString;
//按照銜接字符串創(chuàng)建SqlConnection實例
SqlConnectionconn=newSqlConnection(connectionString);
//創(chuàng)建SqlCommand實例,并設(shè)置SQL語句和使用的銜接實例
SqlCommandcmd=newSqlCommand();
cmd.CommandText=
"Select學(xué)號,姓名,性別,成果FromMyTable2Where(成果18",conn);
DataSetdataset=newDataSet();
adapter.Fill(dataset,"person");
dataGridView1.DataSource=dataset.Tables["person"];
adapter.Dispose();
}
catch(Exceptionerr)
{
MessageBox.Show(err.Message);
}
finally
{
conn.Close();
}
}
}
}
5、調(diào)用存儲過程,設(shè)計程序完成下列功能:隨意給出一個漢字,統(tǒng)計MyTable2中全部包含該漢字的人數(shù),并顯示統(tǒng)計結(jié)果。
【解答】
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
namespace習(xí)題9_5
{
publicpartialclassForm1:Form
{
publicForm1()
{
InitializeComponent();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
SqlConnectionconn=
newSqlConnection(Properties.Settings.Default.MyDatabaseConnectionString);
SqlCommandcmd=newSqlCommand();
cmd.Connection=conn;
//設(shè)置SQL語句為存儲過程名,命令類型為存儲過程
cmd.CommandText="
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年高絕緣稀土永磁材料合作協(xié)議書
- 2024年絕緣材料:絕緣套管項目發(fā)展計劃
- 2024年新型配電變壓器項目合作計劃書
- 2024年地板護理品項目發(fā)展計劃
- 2024年數(shù)控車銑中心項目合作計劃書
- 2024年高效的鍋爐鼓、引風(fēng)機項目建議書
- 2024年鉑族金屬用絡(luò)合物合作協(xié)議書
- 2024年10月自考03004社區(qū)護理學(xué)(一)押題及答案含解析
- 2024年數(shù)字電視復(fù)用器項目合作計劃書
- 2024動物防疫與檢疫專業(yè)考核標(biāo)準(zhǔn)
- 《應(yīng)急預(yù)案火災(zāi)》課件
- 漸凍人匯報演示課件
- 統(tǒng)編版語文五年級上冊第六單元集體備課 課件
- 幼兒園小班數(shù)學(xué)教案《認識正方形》及教學(xué)反思
- 2023年度省綜合專家?guī)煸u標(biāo)專家繼續(xù)教育培訓(xùn)試題及答案解析(4套)
- 新視野大學(xué)英語(第四版)讀寫教程2(思政智慧版) 課件 Unit3 The young generation making a difference Section A
- Zemax中文版光學(xué)設(shè)計從入門到精通
- 人教版九年級物理:典型電路作圖題20道(含答案及解析)
- 電磁超材料與天線設(shè)計
- 高考勵志名言課件
- GB/T 43389-2023市場、民意和社會調(diào)查數(shù)據(jù)分析方法
評論
0/150
提交評論