




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、項目一統(tǒng)計(tngj)學生成績 【項目需求】 建議配置(pizh):2.2 GHz或速度更快的CPUIGB或更大容量的RAM,分辨率1 2801 024的顯示器,7 200 RPM或更高轉速的硬盤。 操作系統(tǒng):Windows XP以上。 開發(fā)軟件:Visual Studio 2005/2008中文版(含MSDN)。 【相關知識點】 建議課時:8節(jié)課。 相關知識:類和對象的基礎知識,定義和構造類,構造函數(shù)和析構函數(shù)的用法,定義屬性和方法。 【項目分析】 設計該項目的主要步驟:上一頁下一頁返回(fnhu)第1頁/共44頁第一頁,共45頁。項目一統(tǒng)計學生(xu sheng)成績 創(chuàng)建學生類,確定學生
2、類的數(shù)據(jù)成員(姓名、學號、年齡、性別和成績數(shù)組),以及公共屬性(shxng)的讀寫性; 統(tǒng)計每個學生成績總分和平均分; 輸入與輸出學生基本信息。上一頁下一頁返回(fnhu)第2頁/共44頁第二頁,共45頁。項目一統(tǒng)計(tngj)學生成績 任務一定義學生類(Stu) 【任務描述】 新建項目并創(chuàng)建學生類,指定數(shù)據(jù)成員,以及公有屬性和方法。 【任務實施】 新建一個控制臺應用程序。在模板中選擇“控制臺應用程序”,將項目名稱設為ConAppStu,位置設為“E:CspharpAppExamples (也可以為其他位置),如圖1-1所示。 新建一個Stu類。選擇菜單(ci dn)“項目” “添加類”,如圖
3、1-2所示。 在“添加新項”的模板中選擇“類”,將默認名稱Classl.cs更名為Stu.cs,單擊“添加”按鈕,生成Stu類并打開代碼窗口,如圖1-3圖1-5所示。上一頁下一頁返回(fnhu)第3頁/共44頁第三頁,共45頁。項目一統(tǒng)計(tngj)學生成績 確定學生個人的基本信息。其包含的數(shù)據(jù)成員如表1-1所示。 輸入(shr)Stu類的數(shù)據(jù)成員,相關代碼如下:上一頁下一頁返回(fnhu)第4頁/共44頁第四頁,共45頁。項目一統(tǒng)計(tngj)學生成績 將第一個學生信息通過創(chuàng)建(chungjin)的類對象進行賦值,相關代碼如下所示;但出現(xiàn)了圖1-6所示的錯誤提示。上一頁下一頁返回(fnhu)
4、第5頁/共44頁第五頁,共45頁。項目一統(tǒng)計學生(xu sheng)成績 類的數(shù)據(jù)成員默認為private類型,在類外部(wib)不可訪問,將類數(shù)據(jù)成員改換為public(公有),則可解決該問題,相關代碼如下: 提示/備注 多個學生信息需要輸入,每次都需要通過4條語句進行賦值,輸入過于煩瑣,可通過構造方法對類對象賦值。上一頁下一頁返回(fnhu)第6頁/共44頁第六頁,共45頁。項目一統(tǒng)計學生(xu sheng)成績 創(chuàng)建(chungjin)Stu類的構造方法,相關代碼如下:上一頁下一頁返回(fnhu)第7頁/共44頁第七頁,共45頁。項目一統(tǒng)計學生(xu sheng)成績 在Main()方法
5、中賦值,相關代碼如下: 提示/備注 通過構造方法來傳遞初始值比用“=”賦值更具有安全性。而且,將5個基本信息字段由public修改為private則更能提高數(shù)據(jù)訪問的安全性,使得構造方法成為(chngwi)對象初始化的唯一途徑。上一頁下一頁返回(fnhu)第8頁/共44頁第八頁,共45頁。項目一統(tǒng)計(tngj)學生成績 創(chuàng)建(chungjin)Display()方法,將學生基本信息輸出,相關代碼如下:上一頁下一頁返回(fnhu)第9頁/共44頁第九頁,共45頁。項目一統(tǒng)計學生(xu sheng)成績 在Main()方法中輸出顯示實驗數(shù)據(jù),相關代碼(di m)如下: 在Totle()方法中統(tǒng)計3
6、門課程的總分,相關代碼(di m)如下:上一頁下一頁返回(fnhu)第10頁/共44頁第十頁,共45頁。項目一統(tǒng)計(tngj)學生成績 在Avg()方法中統(tǒng)計3門課程的平均分,相關代碼如下: 【理論知識】 1.類和對象 面向對象思想來源于對現(xiàn)實世界的認知,人們將錯綜復雜的事物進行分類,從而使世界變得井井有條。比如,人類是一個(y )類(class),你是人,我是人,都是人類的實例(instance)或稱對象(object)。上一頁下一頁 返回(fnhu)第11頁/共44頁第十一頁,共45頁。項目(xingm)一統(tǒng)計學生成績 每個類描述一類事物,這些事物應具有相關的屬性狀態(tài),如人有身高、體重、文
7、化程度、性別、年齡、民族等。一個(y )對象是類的一個(y )實例,它應具有具體的屬性狀態(tài),如張二(人的實例)身高1.801 m、體重70 kg、大學本科學歷、男、21歲、漢族;每類事物也都有一定的行為,如人類具有走、跑、跳等行為。這些不同的狀態(tài)和行為將各類事物區(qū)分開來。類只有一個(y ),而類的實例可以有無數(shù)個。 2.類的成員 類的主要成員包括兩種類型:描述狀態(tài)的數(shù)據(jù)成員和描述操作的函數(shù)成員。 數(shù)據(jù)成員包括:字段(field)和常量(constant)。上一頁下一頁 返回(fnhu)第12頁/共44頁第十二頁,共45頁。項目(xingm)一統(tǒng)計學生成績 函數(shù)成員包括:方法、屬性、索引器、事件
8、、運算符、構造函數(shù)和析構函數(shù)。 3.定義類,類實例及成員引用 (1)類的定義 訪問修飾符Class ClassName :Class-base Class-body;/數(shù)據(jù)(shj)成員和函數(shù)成員 常用訪問修飾符及應用范圍如表1-2所示。上一頁下一頁返回(fnhu)第13頁/共44頁第十三頁,共45頁。項目一統(tǒng)計(tngj)學生成績 (2)類的實例化 ClassName ObjName-new ClassName(參數(shù)); 其中:C1assName為類的名字,ObjName為對象名,參數(shù)表示是否有參數(shù)、多少個參數(shù)由類的構造函數(shù)決定,本項目都不帶參數(shù)創(chuàng)建對象。 注意:用new創(chuàng)建一個類的對象時,
9、將在托管堆中為對象分配一塊(y kui)內存,每個對象都有不同的內存。代表對象的變量存儲的是存放對象的內存的地址。上一頁下一頁 返回(fnhu)第14頁/共44頁第十四頁,共45頁。項目一統(tǒng)計(tngj)學生成績 4.構造方法 構造方法是一種特殊的方法,在類實例(shl)創(chuàng)建之前執(zhí)行,用來初始化對象,完成對象創(chuàng)建前所需的相關設定。構造方法通常是public訪問類型,方法的名稱必須與類名相同,無返回類型,不使用void。另外,在從構造函數(shù)返回之前,對象都是不確定的,不能用于執(zhí)行任何操作。只有在構造函數(shù)執(zhí)行完成之后,存放對象的內存塊中才存放這個類的實例(shl)。上一頁下一頁返回(fnhu)第15
10、頁/共44頁第十五頁,共45頁。項目(xingm)一統(tǒng)計學生成績 任務二設計(shj)主方法 【任務描述】 輸入一個班的人數(shù)num(整數(shù));保留多個學生對象信息到一個類數(shù)組中;學生基本信息和成績總分輸出顯示。 【任務實施】 輸入班級最大容納學生人數(shù): 若步驟1中輸入班級學生總人數(shù)有40人,則需創(chuàng)建40個Stu類對象,相關代碼如下:上一頁下一頁返回(fnhu)第16頁/共44頁第十六頁,共45頁。項目一統(tǒng)計(tngj)學生成績 Stu s2=new Stu(王恒”,02;18,男;new double85;80,78); Stu s3=new Stu(李明”,03,19,男,new double
11、95,74,88); Stu s40=new Stu(“張華”,40,19,男,new double100,89,92); 注意:顯然這么輸入的做法煩瑣而不易管理數(shù)據(jù)。因此,可以考慮將創(chuàng)建的類對象看做(kn zu)是同類型的數(shù)據(jù)以數(shù)組的方式來存放,通過改變數(shù)組的下標可獲得不同的對象信息。 創(chuàng)建學生類數(shù)組,相關代碼如下: Stu student=new Stus1,s2,s3,s40;上一頁下一頁返回(fnhu)第17頁/共44頁第十七頁,共45頁。項目(xingm)一統(tǒng)計學生成績 進一步簡化類數(shù)組的初始化,相關(xinggun)代碼如下: Stu student=new Stu new Stu
12、(張莉,01,19,女,new double70,80,90), new Stu(王恒,02,18,男,new double85,80,78), new Stu (李明,03, 19,男,new double95,74,88), new Stu(張華,40,19,男,new double100,89,92) 上一頁下一頁返回(fnhu)第18頁/共44頁第十八頁,共45頁。項目一統(tǒng)計(tngj)學生成績 進一步完善學生的基本信息,通過提示信息輸入,相關代碼(di m)如下:上一頁下一頁返回(fnhu)第19頁/共44頁第十九頁,共45頁。項目(xingm)一統(tǒng)計學生成績上一頁下一頁返回(fnh
13、u)第20頁/共44頁第二十頁,共45頁。項目一統(tǒng)計學生(xu sheng)成績 運行結果如圖1-7所示。 每個學生總分和平均分輸出顯示,修改Stu類中Display()方法的輸出信息(xnx),相關代碼如下:上一頁下一頁返回(fnhu)第21頁/共44頁第二十一頁,共45頁。項目一統(tǒng)計學生(xu sheng)成績 運行結果如圖1-8所示。 提示/備注 程序尚未完善,應考慮輸出的平均分應保留小數(shù)有效(yuxio)位、每個學生基本信息輸入有效(yuxio)后能否給出提示等情況。上一頁下一頁返回(fnhu)第22頁/共44頁第二十二頁,共45頁。項目一統(tǒng)計學生(xu sheng)成績 任務三完善程
14、序功能 【任務描述】 輸入學生基本信息的有效性檢驗;每個學生基本信息輸入有效后的信息提示(tsh);輸入學生姓名為exit時,可結束輸入,并統(tǒng)計實際學生人數(shù)信息。上一頁下一頁返回(fnhu)第23頁/共44頁第二十三頁,共45頁。項目一統(tǒng)計學生(xu sheng)成績 【任務實施】 創(chuàng)建(chungjin)學生年齡的公開屬性,對其為負值情況的判斷,相關代碼如下:上一頁下一頁返回(fnhu)第24頁/共44頁第二十四頁,共45頁。項目一統(tǒng)計(tngj)學生成績 注意:在構造方法中將stuAge=age;代碼修改為Age=age;在對象初始化數(shù)值時能通過屬性賦值給內部數(shù)據(jù)變量,同時進行數(shù)值有效性判
15、斷。 添加一個(y )布爾類型字段isSucc,以判斷是否成功錄入數(shù)據(jù)。若有無效數(shù)據(jù)錄入,則設置為false,否則為true,相關代碼如下: private bool isSucc; 修改構造函數(shù),將isSucc初始化:上一頁下一頁返回(fnhu)第25頁/共44頁第二十五頁,共45頁。項目一統(tǒng)計(tngj)學生成績 public Stu(string name,string no,int age,string sex,doublescore) /初始化數(shù)據(jù)(shj)成員的構造函數(shù)上一頁下一頁 返回(fnhu)第26頁/共44頁第二十六頁,共45頁。項目一統(tǒng)計學生(xu sheng)成績 在錄
16、入(l r)數(shù)據(jù)結束后,如何讓private類型的isSucc的值傳遞到Main()方法中呢?可通過在Stu類中設置一個對應于isSucc的公開屬性。 Main()方法接收傳遞的公開屬性IsSucc,并進行判斷,在任務一的步驟4的循環(huán)中進行修改,相關代碼如下:上一頁下一頁返回(fnhu)第27頁/共44頁第二十七頁,共45頁。項目一統(tǒng)計學生(xu sheng)成績上一頁下一頁 返回(fnhu)第28頁/共44頁第二十八頁,共45頁。項目(xingm)一統(tǒng)計學生成績 輸入學生姓名(xngmng)為exit時,可結束輸入。在任務一的步驟4的循環(huán)中進行修改,相關代碼如下:上一頁下一頁返回(fnhu)
17、第29頁/共44頁第二十九頁,共45頁。項目(xingm)一統(tǒng)計學生成績 在Main()方法中添加一個整型類型的變量count,統(tǒng)計輸入的實際人數(shù)。在任務一的步驟(bzhu)4的循環(huán)外和循環(huán)內進行修改,相關代碼如下:上一頁下一頁返回(fnhu)第30頁/共44頁第三十頁,共45頁。項目一統(tǒng)計學生(xu sheng)成績 學生信息和成績總分、平均分顯示,相關代碼如下: 注意:該部分程序若沒有對象為空的判斷,則會按照(nzho)最初輸入的班級人數(shù)全部顯示。若沒有count變量,則任務三中計算每門課程的平均分無法統(tǒng)計出正確人數(shù)。 運行結果如圖1-9所示。上一頁下一頁返回(fnhu)第31頁/共44頁
18、第三十一頁,共45頁。項目(xingm)一統(tǒng)計學生成績 【理論知識】 1.屬性 語法格式(g shi): ptype pname get/取字段數(shù)據(jù)程序代碼,即讀取(取值) set/設定字段數(shù)據(jù)程序代碼,即寫入(賦值) 上一頁下一頁返回(fnhu)第32頁/共44頁第三十二頁,共45頁。項目一統(tǒng)計(tngj)學生成績 ptype為屬性類型(lixng),pname為屬性的名稱,set和get為訪問器,用來控制私有數(shù)據(jù)成員的讀寫性。在get訪問器中必須用return關鍵字,將其對應的字段值返回給引用此屬性的程序代碼。在set訪問器中有一個隱式參數(shù)value,必須將value這個變量指定給對應的字
19、段。 Visual Studio(VS)提供了一個自動封裝字段的方法:在類中定義一個字段“string a;,接著把鼠標停放到a處,點擊右鍵選擇“重構” “封裝字段”,VS會自動封裝a字段,并目取名為A,也可以更改屬性的名字,單擊“確定”按鈕,a字段的A屬性就封裝好了。 2.屬性的4種形式 讀寫屬性:包含get和set訪問器。 只讀屬性:只有get訪問器。上一頁下一頁返回(fnhu)第33頁/共44頁第三十三頁,共45頁。項目一統(tǒng)計學生(xu sheng)成績 只寫屬性:只有set訪問器。 靜態(tài)屬性:只能封裝靜態(tài)數(shù)據(jù)。 【項目小結】 學習者練習了從設計Stu類結構到各種數(shù)據(jù)的輸入和統(tǒng)計的任務,通過本項目,學生學會類基本結構的設計、公共屬性、創(chuàng)建(chungjin)方法等的使用,為后續(xù)更好地理解類和對象打下基礎。上一頁 返回(fnhu)第34頁/共44頁第三十四頁,共45頁。圖1-1“新建項目(xingm)”對話框返回(fnhu)第35
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 勞斯萊斯魅影購車合同范本
- 為要使用合同范本
- pvc銷售合同范本
- 代辦旅游合同范本
- 兼職司機 合同范本
- 養(yǎng)生店合同范本
- 分期車輛協(xié)議合同范本
- 2024年上海健康醫(yī)學院招聘考試真題
- 北京一對一合伙合同范本
- 下鋪門店轉讓合同范本
- 2025年山西杏花村汾酒集團限責任公司人才招聘71名高頻重點提升(共500題)附帶答案詳解
- 貴州黔源電力股份有限公司招聘筆試沖刺題2025
- 2025年江蘇省環(huán)保集團招聘筆試參考題庫含答案解析
- 新修訂中華人民共和國畜牧法全文解讀學習
- 物業(yè)管理服務內容標準及質量保證措施
- 統(tǒng)編版語文五年級下冊第二單元習作:寫讀后感課件
- 學校提高《規(guī)范書寫水平、傳承漢字文化》活動方案3篇
- 幕墻施工現(xiàn)場安全檢查方案
- 2023年4月2日湖北事業(yè)單位聯(lián)考C類《職業(yè)能力傾向測驗》試題
- 主持課課件教學課件
- 第四節(jié)-全電路歐姆定律
評論
0/150
提交評論