![《Java語言編程基礎(chǔ)立體化實(shí)用教程》教案-1.3 學(xué)生成績(jī)管理系統(tǒng)輸入功能的改進(jìn)(二)_第1頁](http://file4.renrendoc.com/view/f7f85694a801c3eaee296c24c0ab3257/f7f85694a801c3eaee296c24c0ab32571.gif)
![《Java語言編程基礎(chǔ)立體化實(shí)用教程》教案-1.3 學(xué)生成績(jī)管理系統(tǒng)輸入功能的改進(jìn)(二)_第2頁](http://file4.renrendoc.com/view/f7f85694a801c3eaee296c24c0ab3257/f7f85694a801c3eaee296c24c0ab32572.gif)
![《Java語言編程基礎(chǔ)立體化實(shí)用教程》教案-1.3 學(xué)生成績(jī)管理系統(tǒng)輸入功能的改進(jìn)(二)_第3頁](http://file4.renrendoc.com/view/f7f85694a801c3eaee296c24c0ab3257/f7f85694a801c3eaee296c24c0ab32573.gif)
![《Java語言編程基礎(chǔ)立體化實(shí)用教程》教案-1.3 學(xué)生成績(jī)管理系統(tǒng)輸入功能的改進(jìn)(二)_第4頁](http://file4.renrendoc.com/view/f7f85694a801c3eaee296c24c0ab3257/f7f85694a801c3eaee296c24c0ab32574.gif)
![《Java語言編程基礎(chǔ)立體化實(shí)用教程》教案-1.3 學(xué)生成績(jī)管理系統(tǒng)輸入功能的改進(jìn)(二)_第5頁](http://file4.renrendoc.com/view/f7f85694a801c3eaee296c24c0ab3257/f7f85694a801c3eaee296c24c0ab32575.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
山東理工職業(yè)學(xué)院?jiǎn)卧虒W(xué)過程設(shè)計(jì)首頁課程所屬院(部):軟件工程學(xué)院2019--2020學(xué)年第一學(xué)期課程名稱Java語言編程基礎(chǔ)任課教師單元標(biāo)題任務(wù)3.2學(xué)生成績(jī)輸入功能的改進(jìn)(二)上課地點(diǎn)課時(shí)4授課班級(jí)授課時(shí)間第周第周第周第周第周第周星期星期星期星期星期星期第節(jié)第節(jié)第節(jié)第節(jié)第節(jié)第節(jié)月日月日月日月日月日月日教學(xué)目標(biāo)能力目標(biāo)知識(shí)目標(biāo)1.文件類的使用、對(duì)象的定義域引用、異常的應(yīng)用對(duì)象的定義與引用FileWriter類異常的處理教學(xué)任務(wù)將輸入的學(xué)生信息與成績(jī)存入記事本文檔教學(xué)重、難點(diǎn)重點(diǎn):文件類的使用難點(diǎn):對(duì)象的定義域引用、異常的應(yīng)用教學(xué)材料或用具教材、教案、課件、課程標(biāo)準(zhǔn)、案例素材及Eclipse開發(fā)軟件課后任務(wù)在Stu類中定義output()方法,其功能是輸出學(xué)生的學(xué)號(hào)、姓名、班級(jí)、成績(jī)等信息。山東理工職業(yè)學(xué)院?jiǎn)卧虒W(xué)過程設(shè)計(jì)步驟及時(shí)間教學(xué)內(nèi)容教師活動(dòng)學(xué)生活動(dòng)5分鐘5分鐘20分鐘40分鐘90分鐘20分鐘【組織教學(xué)】1、檢查學(xué)生出勤,作好學(xué)生考勤記錄。2、課堂提問,了解學(xué)生掌握所學(xué)知識(shí)情況。3、強(qiáng)調(diào)課堂紀(jì)律,加強(qiáng)互動(dòng),活躍課堂氣氛?!菊n題導(dǎo)入】將任務(wù)二中的成績(jī)輸入功能進(jìn)行改進(jìn),通過學(xué)生類實(shí)例化對(duì)象的方法來操作學(xué)生對(duì)象的各個(gè)屬性,將輸入的學(xué)生信息與成績(jī)存入記事本文檔。系統(tǒng)最多支持一次輸入100個(gè)學(xué)生信息,支持輸入、修改、刪除、顯示學(xué)生信息,但是需要用戶檢查這些數(shù)據(jù)后,再將其寫入txt文檔。這里,需要注意的是,顯示學(xué)生信息只是針對(duì)本次輸入的學(xué)生數(shù)據(jù),修改、刪除也只是針對(duì)本次輸入的數(shù)據(jù)。一旦數(shù)據(jù)寫入txt文檔中,將無法進(jìn)行修改、刪除、顯示等操作。【新課講授】對(duì)象的定義與引用對(duì)象:是在程序執(zhí)行過程中創(chuàng)建生成的,所占空間是動(dòng)態(tài)分配的,當(dāng)對(duì)象使用完后,java垃圾回收機(jī)制會(huì)把空間收回,對(duì)象的聲明周期:創(chuàng)建-使用-銷毀。1.對(duì)象的聲明和創(chuàng)建格式:類名對(duì)象名;對(duì)象名=new類名([實(shí)參列表]);等價(jià)于類名對(duì)象名=new類名([實(shí)參列表]);例如:Studentstu1=newStudent();此時(shí)會(huì)調(diào)用Student類的無參構(gòu)造方法。2.對(duì)象的引用引用屬性: 對(duì)象名.屬性引用方法: 對(duì)象名.方法名(參數(shù)列表)【例3.2】定義立方體類classCube{ doublelength; doublewidth; doubleheight; publicdoublegetVol(){ returnlength*width*height; }}publicclassExp32{ publicstaticvoidmain(String[]args){ doublev; CubeCube1=newCube(); Cube1.length=20; Cube1.width=30; Cube1.height=40; v=Cube1.getVol(); System.out.println("v1="+v); CubeCube2=newCube(); Cube2.length=50; Cube2.width=50; Cube2.height=60; v=Cube2.getVol(); System.out.println("v2="+v); }}運(yùn)行結(jié)果:v1=24000.0v2=150000.0【注意】這里直接用賦值符號(hào)對(duì)Cube對(duì)象的屬性進(jìn)行賦值,是因?yàn)槠渌接袑傩栽贑ube類內(nèi)是可見的,類外則需要使用setter方法進(jìn)行賦值。異常1.異常處理的必要性沒有異常處理機(jī)制的語言要捕獲到可能發(fā)生的錯(cuò)誤,就必須使用大量的判斷語句,這種做法未必能捕捉到所有錯(cuò)誤,但降低了程序運(yùn)行效率。Java的異常處理機(jī)制改進(jìn)了這點(diǎn),因此可以增進(jìn)程序的穩(wěn)定性及效率。2.異常的概念系統(tǒng)運(yùn)行錯(cuò)誤,即程序運(yùn)行過程中出現(xiàn)的影響語句正常運(yùn)行順序的意外或特殊事件。簡(jiǎn)單說,異常就是正常執(zhí)行程序過程中出現(xiàn)的不正常情況。(1)編譯錯(cuò)誤編譯錯(cuò)誤是由于所編寫的程序存在語法問題,未能通過由源代碼到目標(biāo)碼(Java語言中由源代碼到字節(jié)碼)的編譯過程而產(chǎn)生的,它由語言的編譯系統(tǒng)負(fù)責(zé)檢測(cè)和報(bào)告。(2)運(yùn)行錯(cuò)誤系統(tǒng)運(yùn)行錯(cuò)誤:系統(tǒng)運(yùn)行錯(cuò)誤是指程序在執(zhí)行過程中發(fā)生的錯(cuò)誤,它會(huì)中斷程序的正常執(zhí)行。邏輯運(yùn)行錯(cuò)誤:沒有了編譯錯(cuò)誤和系統(tǒng)運(yùn)行錯(cuò)誤,還有可能有邏輯運(yùn)行錯(cuò)誤,邏輯運(yùn)行錯(cuò)誤是指程序不能實(shí)現(xiàn)程序設(shè)計(jì)人員的設(shè)計(jì)意圖和設(shè)計(jì)功能而產(chǎn)生的錯(cuò)誤,例如排序時(shí)不能正確排序。異常的處理機(jī)制Java語言有兩種異常處理機(jī)制:捕獲異常(catch):積極的處理異常的機(jī)制。當(dāng)運(yùn)行環(huán)境得到一個(gè)異常對(duì)象時(shí),它將按照方法調(diào)用的順序進(jìn)行查找,直到找到包含相應(yīng)處理的方法代碼,并把異常對(duì)象交給該方法為止。格式:try{可能出現(xiàn)異常的代碼塊}catch(Exceptionex){對(duì)異常的處理}finally{無論異常是否發(fā)生都一定要執(zhí)行的代碼}【例3.3】importjava.io.*;publicclassExp33{publicstaticvoidmain(String[]args){Strings="";System.out.print("請(qǐng)輸入一個(gè)字符串:");try{BufferedReaderin=newBufferedReader(newInputStreamReader(System.in));s=in.readLine();}catch(IOExceptione){System.out.println(“捕捉異?!?;}System.out.println("您輸入的字符串是:"+s);}}(2)拋出異常(throws和throw):消極的處理異常的機(jī)制。如果一個(gè)方法不知道如何處理出現(xiàn)的異常,則可拋出異常,即產(chǎn)生一個(gè)異常事件,生成一個(gè)異常對(duì)象,并把它交給運(yùn)行系統(tǒng),由系統(tǒng)尋找相應(yīng)的代碼處理異常。格式:thorwsIOException(或其他Exception的子類)【例3.4】importjava.io.*;publicclassExp34{publicstaticvoidmain(String[]args)throwsIOException{Strings="";System.out.print("請(qǐng)輸入一個(gè)字符串:");BufferedReaderin=newBufferedReader(newInputStreamReader(System.in));s=in.readLine();System.out.println("您輸入的字符串是:"+s);}}(3)自定義異常Java中定義了大量的異常類,雖然這些異常類可以描述編程時(shí)出現(xiàn)的大部分異常情況,但是在程序開發(fā)中有時(shí)可能需要描述程序中的異常情況。例如定義一個(gè)division()方法,要求其被除數(shù)不能為負(fù)數(shù),如是負(fù)數(shù),需要報(bào)告異常。為了解決此類問題,Java中允許用戶自定義異常,但自定義的異常需要繼承自Exception類或其子類。【例3.5】//類DivideByMinusExceptionclassDivideByMinusExceptionextendsException{publicDivideByMinusException(){ super();//調(diào)用Exception無參的構(gòu)造方法}publicDivideByMinusException(Stringmessage){ super(message);//調(diào)用Exception有參的構(gòu)造方法}}//類Exp35publicclassExp35{ publicstaticintdivision(intx,inty)throwsDivideByMinusException{ if(y<0){ thrownewDivideByMinusException("被除數(shù)為負(fù)數(shù)"); } intresult=x/y; returnresult;//返回結(jié)果 } publicstaticvoidmain(String[]args){ try{ intresult=division(10,-1); System.out.println(result); }catch(DivideByMinusExceptionex){ System.out.println("捕獲的異常信息為:"+ex.getMessage()); } }}運(yùn)行結(jié)果:圖3-2-2例3.5運(yùn)行結(jié)果【知識(shí)拓展】異常的種類與繼承關(guān)系圖3-2-2異常類的繼承關(guān)系表3-2-2常見的異常類異常說明RuntimeExceptionjava.lang包中多數(shù)異常的基類
ArithmeticException
算術(shù)錯(cuò)誤,如除以0
IllegalArgumentException
方法收到非法參數(shù)
ArrayIndexOutOfBoundsException數(shù)組下標(biāo)出界NullPointerException試圖訪問null對(duì)象引用
SecurityException
試圖違反安全性
IOException
I/O異常的根類
FileNotFoundException不能找到文件EOFException文件結(jié)束【技能訓(xùn)練】任務(wù)分析任務(wù)概覽:publicclassStudent{}publicclassSMS{menu();//主菜單add();//添加學(xué)生信息select();//顯示本次錄入學(xué)生信息modify();//修改學(xué)生信息delete();//刪除學(xué)生信息writeFile();//將確認(rèn)無誤的學(xué)生信息寫入txt文件judge();//判斷本次是否錄入了學(xué)生信息main();}操作步驟如下:步驟一:判斷輸入學(xué)生的學(xué)號(hào)是否重復(fù);步驟二:如不重復(fù)則將學(xué)生信息存儲(chǔ)到Student數(shù)組s中,如重復(fù),則提示重新輸入;步驟三:判斷是否繼續(xù)輸入,如果是,繼續(xù)輸入;如果否,判斷是否返回主菜單,如是返回,如果否退出應(yīng)用程序。二、任務(wù)實(shí)施packagecom.sdlgzy.sgmcli;importjava.io.File;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.IOException;importjava.util.Scanner;publicclassSMS{//定義學(xué)生對(duì)象數(shù)組,最多輸入100名學(xué)生信息 privatestaticStudent[]s=newStudent[100]; privateintn=0; privateScannerIn=newScanner(System.in); privateFilefile=newFile("D://stu.txt"); publicstaticvoidmain(String[]args){ SMSsms=newSMS(); for(inti=0;i<100;i++)//實(shí)例化學(xué)生數(shù)組 s[i]=newStudent(); try{ sms.menu(); }catch(IOExceptione){ e.printStackTrace(); } }publicvoidmenu()throwsIOException{ intchoice;//定義操作選擇 System.out.println("*************學(xué)生成績(jī)管理系統(tǒng)*************"); System.out.println("*****1.錄入學(xué)生成績(jī)信息******"); System.out.println("*****2.顯示學(xué)生成績(jī)信息******"); System.out.println("*****3.修改學(xué)生成績(jī)信息******"); System.out.println("*****4.刪除學(xué)生成績(jī)信息******"); System.out.println("*****5.將學(xué)生成績(jī)寫入文件******"); System.out.println("*****0.退出管理系統(tǒng)******"); System.out.println("*************************************"); System.out.print("請(qǐng)選擇(0~5):"); choice=In.nextInt(); while(choice<0||choice>5){ System.out.print("輸入無效,請(qǐng)重新輸入:"); choice=In.nextInt(); } switch(choice){ case1: this.add();//添加學(xué)生信息,最多一次輸入100個(gè)學(xué)生信息,后續(xù)任務(wù)定義 break; case2: this.select();//查詢此次輸入學(xué)生信息,后續(xù)任務(wù)定義 break; case3: this.modify();//修改此次輸入學(xué)生信息,后續(xù)任務(wù)定義 break; case4: this.delete();//刪除此次輸入學(xué)生信息,后續(xù)任務(wù)定義 break; case5: this.writeFile();//將確認(rèn)無誤的學(xué)生信息寫入txt文件,后續(xù)任務(wù)定義 break; case0: System.out.println("成功退出系統(tǒng)?。?!"); System.exit(0); break; } }publicvoidadd()throwsIOException{ Stringsno;//定義暫時(shí)存放學(xué)生學(xué)號(hào)的變量sno FileWriterfw=newFileWriter(file,true);//將學(xué)生成績(jī)存入到指定路徑的文件 intcontinueflag=1;//定義是否循環(huán)輸入學(xué)生成績(jī)信息的標(biāo)志 Stringcfirmstr;//定義是否繼續(xù)輸入學(xué)生成績(jī)信息的結(jié)果字符串//定義是否繼續(xù)輸入學(xué)生成績(jī)信息的字符串的首字符,為“Y"或"N"(包括小寫) charcfirmchar; Stringcfirmrestr;//定義存放是否返回主菜單時(shí)輸入的字符串//定義存放是否返回主菜單時(shí)輸入的字符串的首字符,為“Y"或"N"(包括小寫) charcfirmrechar; while(continueflag==1){ System.out.println("請(qǐng)輸入學(xué)生學(xué)號(hào):"); sno=In.next(); //判斷學(xué)號(hào)是否重復(fù) for(inti=0;i<n;i++){ while(s[i].getSno()==sno){ System.out.println("已存在此學(xué)號(hào),請(qǐng)重新輸入"); System.out.print("請(qǐng)輸入學(xué)號(hào):"); sno=In.next(); } } s[n].setSno(sno); sno=String.valueOf(sno); System.out.println("請(qǐng)輸入學(xué)生姓名:"); s[n].setName(In.next()); System.out.println("請(qǐng)輸入學(xué)生班級(jí):"); s[n].setClassname(In.next()); System.out.println("請(qǐng)輸入學(xué)生sql成績(jī):"); s[n].setSql(In.nextFloat()); System.out.println("請(qǐng)輸入學(xué)生java成績(jī):"); s[n].setJava(In.nextFloat()); System.out.println("請(qǐng)輸入學(xué)生網(wǎng)頁設(shè)計(jì)成績(jī):"); s[n].setWebdesign(In.nextFloat()); System.out.println("請(qǐng)輸入學(xué)生體育成績(jī):"); s[n].setGym(In.nextFloat()); n++; System.out.println(); System.out.println("是否繼續(xù)添加(Y/N)"); cfirmstr=In.next(); cfirmchar=cfirmstr.charAt(0); while(cfirmchar!='N'&&cfirmchar!='n'&&cfirmchar!='Y'&&cfirmchar!='y'){ System.out.println("輸入無效,請(qǐng)重新輸入:"); cfirmstr=In.next(); cfirmchar=cfirmstr.charAt(0); } if(cfirmchar=='N'||cfirmchar=='n'){
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年電子書閱讀器項(xiàng)目可行性研究報(bào)告
- 2025至2031年中國(guó)獨(dú)立收線機(jī)行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年機(jī)車空調(diào)電源整機(jī)測(cè)試儀項(xiàng)目可行性研究報(bào)告
- 2025年室內(nèi)型溫度傳感器/變送器項(xiàng)目可行性研究報(bào)告
- 2025至2031年中國(guó)剛性防水干混砂漿行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年沖浪板項(xiàng)目可行性研究報(bào)告
- 2025年上嘴過濾瓶項(xiàng)目可行性研究報(bào)告
- 2025至2030年高光水性高耐磨上光油項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年金屬瓷牙項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年耐磨高錳鋼軋臼壁項(xiàng)目投資價(jià)值分析報(bào)告
- 2024建筑用輻射致冷涂料
- 2024版《糖尿病健康宣教》課件
- 2024年遼寧鐵道職業(yè)技術(shù)學(xué)院高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫(kù)含答案解析
- 社區(qū)工作者經(jīng)典備考題庫(kù)(必背300題)
- 廣東省緊密型縣域醫(yī)共體雙向轉(zhuǎn)診管理中心運(yùn)行指南
- PEP人教版小學(xué)英語單詞卡片四年級(jí)下卡片
- 新部編版六年級(jí)下冊(cè)道德與法治全冊(cè)教案(教學(xué)設(shè)計(jì))
- 小學(xué)英語六年級(jí)上冊(cè)Unit1-The-king’s-new-clothes-第1課時(shí)課件
- 教練技術(shù)一階段講義(共59頁)
- 精品課程建設(shè)驗(yàn)收自評(píng)報(bào)告
- 未成年人需辦銀行卡證明(模板)
評(píng)論
0/150
提交評(píng)論