版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 課 程 設(shè) 計(jì)</p><p><b> ?。〝?shù)據(jù)結(jié)構(gòu))</b></p><p> 一、題目的目的和要求</p><p><b> 1.設(shè)計(jì)目的</b></p><p> 鞏固和加深對(duì)數(shù)據(jù)結(jié)構(gòu)的理解,通過上機(jī)實(shí)驗(yàn)、調(diào)試程序,加深對(duì)課本知識(shí)的理解,最終使學(xué)生能夠熟練應(yīng)
2、用數(shù)據(jù)結(jié)構(gòu)的知識(shí)寫程序。</p><p> ?。?)通過本課程的學(xué)習(xí),能熟練掌握幾種基本數(shù)據(jù)結(jié)構(gòu)的基本操作。</p><p> ?。?)能針對(duì)給定題目,選擇相應(yīng)的數(shù)據(jù)結(jié)構(gòu),分析并設(shè)計(jì)算法,進(jìn)而給出問題的正確求解過程并編寫代碼實(shí)現(xiàn)。</p><p><b> 2.設(shè)計(jì)題目要求</b></p><p> 設(shè)計(jì)內(nèi)容:本系統(tǒng)
3、應(yīng)完成以下幾方面的功能:</p><p> 學(xué)生信息的建立:create();</p><p> 學(xué)生信息的插入:insert();</p><p> 學(xué)生信息的查詢:search();</p><p> 學(xué)生信息的修改:change();</p><p> 學(xué)生信息的刪除:delete();</p&g
4、t;<p> 學(xué)生信息的輸出:print()。</p><p><b> 設(shè)計(jì)要求:</b></p><p> ?。?)每條記錄至少包含 :姓名(name )、(xuehao),(kemu),(chengji)屬性。</p><p> ?。?)作為一個(gè)完整的系統(tǒng),應(yīng)具有友好的界面和較強(qiáng)的容錯(cuò)能力</p><
5、p> ?。?)程序能正常運(yùn)行,并寫出課程設(shè)計(jì)報(bào)告</p><p> 二、設(shè)計(jì)進(jìn)度及完成情況</p><p> 三、主要參考文獻(xiàn)及資料</p><p> [1] 葉核亞編著. 數(shù)據(jù)結(jié)構(gòu)(Java版)(第3版). 北京:電子工業(yè)出版社,2011</p><p> [2] 施平安等譯. JAVA程序設(shè)計(jì)教程(第5版). 北京:清華大學(xué)
6、出版社,2007</p><p> [3] Java相關(guān)資料</p><p><b> 四、成績(jī)?cè)u(píng)定</b></p><p> 設(shè)計(jì)成績(jī): (教師填寫)</p><p> 指導(dǎo)老師: (簽字)</p><p><b&
7、gt; 目 錄</b></p><p> 第一章 系統(tǒng)概述1</p><p> 第二章 系統(tǒng)分析1</p><p> 第三章 系統(tǒng)設(shè)計(jì)2</p><p> 第四章 系統(tǒng)實(shí)現(xiàn)9</p><p> 第五章 系統(tǒng)運(yùn)行與測(cè)試9</p><p> 第六章 總結(jié)與心得
8、12</p><p><b> 參考文獻(xiàn)13</b></p><p><b> 第一章 系統(tǒng)概述</b></p><p> 在這次的課程設(shè)計(jì)中我們選擇的題目是:學(xué)生信息系統(tǒng),能夠添加、刪除、查詢聯(lián)系人等。 由于自己的 知識(shí)有限,程序可能不是太完美,但是我會(huì)認(rèn)真對(duì)待,盡自己最大女里去完成此次任務(wù)?。。?lt;/p&g
9、t;<p><b> 第二章 系統(tǒng)分析</b></p><p> 學(xué)生信息系統(tǒng)主要用于幫助用戶保存學(xué)生信息,方便用戶查詢聯(lián)系人的相關(guān)信息。同時(shí)應(yīng)該具備添加、修改、刪除等基本功能。</p><p> 每個(gè)學(xué)生有哪些基本屬性?</p><p> 我定義了4個(gè):(name,xuehao,kemu,chengji)</p&g
10、t;<p><b> 2.學(xué)生信息的建立</b></p><p> 在學(xué)生信息的建立階段,要求能一次創(chuàng)建多條記錄。 </p><p> 3. 學(xué)生信息的插入</p><p> 用戶選擇插入記錄時(shí)系統(tǒng)需判斷該記錄是否已存在,如果存在則不能插入。在此為了簡(jiǎn)化實(shí)現(xiàn),約定通訊錄中的name不能重復(fù)、xuehao不能重復(fù)。</
11、p><p> 4. 學(xué)生信息的查詢</p><p> 要求用戶能夠根據(jù)name,xuehao進(jìn)行查詢,不論成功與否都應(yīng)該有相應(yīng)反饋信息。為了簡(jiǎn)化實(shí)現(xiàn),只做精確查詢。</p><p> 5. 學(xué)生信息的修改</p><p> 允許用戶修改某一通訊記錄,修改成功與否要有相應(yīng)提示。</p><p> 6. 學(xué)生信息的刪
12、除</p><p> 用戶查找到某個(gè)記錄時(shí)允許刪除該記錄。沒有找到則提示用戶。</p><p> 7. 學(xué)生信息的輸出</p><p> 要求用戶以xuehao順序?yàn)樾蝻@示學(xué)生信息中的所有記錄。如果系統(tǒng)中無(wú)記錄則應(yīng)該提示用戶。</p><p><b> 第三章 系統(tǒng)設(shè)計(jì)</b></p><p&
13、gt; 學(xué)生信息系統(tǒng)的設(shè)計(jì)采用自頂向下的設(shè)計(jì)方法,它是一種逐步求精的設(shè)計(jì)程序的方法和過程,即對(duì)要完成的任務(wù)進(jìn)行分解,先對(duì)最高層次中的問題進(jìn)行定義、設(shè)計(jì),然后把其中未解決的問題作為一個(gè)子任務(wù)放到下層中去求解,這樣逐層、逐個(gè)進(jìn)行定義、設(shè)計(jì),直到所有層上的問題解決為止。</p><p> 因此,為了實(shí)現(xiàn)完整的學(xué)生信息系統(tǒng)功能,首先設(shè)計(jì)學(xué)生信息系統(tǒng)的各個(gè)功能模塊。</p><p> 1.通訊
14、錄系統(tǒng)的整體設(shè)計(jì)</p><p> 通訊錄系統(tǒng)主要包括通訊錄的建立、插入、查詢、修改、刪除、輸出、退出系統(tǒng)等功能,功能模塊圖如下所示:</p><p><b> ?。?)功能菜單設(shè)計(jì)</b></p><p> 為了方便用戶在使用系統(tǒng)時(shí)進(jìn)行功能選擇,可以設(shè)計(jì)成如下菜單的形式提示用戶選擇要執(zhí)行的操作。</p><p>&
15、lt;b> 1-學(xué)生信息的建立</b></p><p><b> 2-學(xué)生信息的插入</b></p><p><b> 3-學(xué)生信息的查詢</b></p><p><b> 4學(xué)生信息的修改</b></p><p><b> 5-學(xué)生信息的
16、刪除</b></p><p><b> 6-學(xué)生信息的輸出</b></p><p><b> 0-退出系統(tǒng)</b></p><p> 請(qǐng)選擇操作序號(hào)(0-6):</p><p> 在此可以設(shè)計(jì)一個(gè)menu_select()方法供用戶選擇某一菜單項(xiàng)。該方法設(shè)計(jì)如下:</p&g
17、t;<p> private static int menu_select()//選擇菜單序號(hào)</p><p><b> {</b></p><p> System.out.println("===============");</p><p> System.out.println("1-
18、學(xué)生信息的建立");</p><p> System.out.println("2-學(xué)生信息的插入");</p><p> System.out.println("3-學(xué)生信息的查詢");</p><p> System.out.println("4-學(xué)生信息的修改");</p>
19、<p> System.out.println("5-學(xué)生信息的刪除");</p><p> System.out.println("6-學(xué)生信息的輸出");</p><p> System.out.println("0-退出系統(tǒng)");</p><p> System.out.pri
20、ntln("===============");</p><p> System.out.println("請(qǐng)選擇操作序號(hào)(0-6):");</p><p> Scanner scanner=new Scanner(System.in);</p><p> int i=scanner.nextInt();</p&g
21、t;<p> while(i<0||i>6){</p><p> System.out.println("必須輸入0-6之間的數(shù)據(jù),請(qǐng)重新輸入");</p><p> i=scanner.nextInt();</p><p><b> }</b></p><p>&l
22、t;b> return i;</b></p><p><b> }</b></p><p> 該方法要求用戶輸入0到6之間的某個(gè)序號(hào),對(duì)應(yīng)選擇某個(gè)菜單項(xiàng),如果輸入其它的數(shù),將提示再次輸入合法序號(hào)。</p><p> (2)菜單選擇需能夠循環(huán)執(zhí)行</p><p> 用戶進(jìn)入系統(tǒng)后,可能需要反復(fù)不
23、斷地調(diào)用系統(tǒng)的各個(gè)功能,因此需要實(shí)現(xiàn)菜單選擇的循環(huán)執(zhí)行,可以通過循環(huán)語(yǔ)句控制反復(fù)調(diào)用各個(gè)菜單項(xiàng)。</p><p> while(true)</p><p> switch(menu_select()){</p><p><b> case 1:{</b></p><p> System.out.println(&
24、quot;開始建立學(xué)生信息......");</p><p> //調(diào)用相關(guān)操作實(shí)現(xiàn)通訊錄的建立</p><p> System.out.println("學(xué)生信息創(chuàng)建完畢!");</p><p><b> break;</b></p><p><b> }</b&g
25、t;</p><p><b> case 2:{</b></p><p> System.out.println("學(xué)生信息的插入:");</p><p> //調(diào)用相關(guān)操作實(shí)現(xiàn)通訊錄的插入</p><p><b> break;</b></p><p
26、><b> }</b></p><p><b> case 3:{</b></p><p> System.out.println("學(xué)生信息的查詢:");</p><p> //調(diào)用相關(guān)操作實(shí)現(xiàn)通訊錄的查詢</p><p><b> break;<
27、;/b></p><p><b> }</b></p><p><b> case 4:{</b></p><p> System.out.println("學(xué)生信息的修改:");</p><p> //調(diào)用相關(guān)操作實(shí)現(xiàn)通訊錄的修改</p><p
28、><b> break;</b></p><p><b> }</b></p><p><b> case 5:{</b></p><p> System.out.println("學(xué)生信息的刪除:");</p><p> //調(diào)用相關(guān)操作實(shí)
29、現(xiàn)通訊錄的刪除</p><p><b> break;</b></p><p><b> }</b></p><p><b> case 6:{</b></p><p> System.out.println("學(xué)生信息的輸出:");</p&g
30、t;<p> //調(diào)用相關(guān)操作實(shí)現(xiàn)通訊錄的輸出</p><p><b> break;</b></p><p><b> }</b></p><p><b> case 0:{</b></p><p> System.out.println("
31、再見!");</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> 在這里通過switch語(yǔ)句判斷用戶的菜單選項(xiàng),根據(jù)相應(yīng)選擇實(shí)現(xiàn)學(xué)生信息的某個(gè)功能,只要不退出系統(tǒng),可
32、以借助while語(yǔ)句繼續(xù)選擇執(zhí)行某個(gè)功能。</p><p> 2.通訊錄系統(tǒng)的各個(gè)功能設(shè)計(jì)</p><p> 在通訊錄系統(tǒng)的整體設(shè)計(jì)中我們僅僅列出了系統(tǒng)需要實(shí)現(xiàn)的功能,并沒有給出具體設(shè)計(jì),現(xiàn)針對(duì)其各個(gè)功能進(jìn)行設(shè)計(jì)。</p><p> ?。?)學(xué)生信息的建立(create()方法的設(shè)計(jì))</p><p> 建立通訊錄時(shí)允許逐個(gè)錄入多條通訊
33、錄記錄,錄完一個(gè),有相應(yīng)提示詢問是否繼續(xù)錄入。</p><p> public void create() </p><p><b> {</b></p><p> String flag="y";</p><p> while(flag.equalsIgnoreCase("y&
34、quot;)){</p><p> //在此調(diào)用insert()操作錄入一條記錄</p><p> System.out.println("繼續(xù)輸入嗎?(y/n):");</p><p> Scanner sc=new Scanner(System.in);</p><p> flag=sc.next();<
35、/p><p><b> }</b></p><p><b> }</b></p><p> 如何錄入一條記錄需要調(diào)用學(xué)生信息的插入insert()操作來(lái)完成的(insert()如何設(shè)計(jì)參看后續(xù)代碼)。</p><p> (2)學(xué)生信息的插入(insert()方法的設(shè)計(jì))</p>&
36、lt;p> 向通訊錄中插入一條記錄的設(shè)計(jì)如下:首先讀入一條記錄的信息(包括姓名和電話號(hào)碼);接下來(lái)判斷記錄是否已經(jīng)存在(在這里要求name和xuehao都不能重復(fù)),若存在,則提示插入失?。∪舨淮嬖?,則調(diào)用有序順序表list的插入操作(至于如何設(shè)計(jì)參見后續(xù)內(nèi)容)插入一條記錄。</p><p> public void insert()//插入一條記錄</p><p><b&
37、gt; {</b></p><p> String name,xuehao,kemu,chengji;</p><p> GuanLiXinXi tbe1,tbe2;</p><p> Scanner sc=new Scanner(System.in);</p><p> System.out.println("
38、;請(qǐng)輸入一條記錄,name,xuehao,kemu,chengji :");</p><p> name = sc.next();</p><p> xuehao=sc.next();</p><p> kemu = sc.next();</p><p> chengji=sc.next();</p><
39、p> for(int i=0;i<list.length();i++){</p><p> tbe1=list.get(i);</p><p> if(tbe1.getName().equals(name)||tbe1.getXuehao().equals(xuehao)){</p><p> System.out.println("該
40、記錄已存在,插入失??!");</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> tbe2=new GuanLiXinXi(name,xuehao,kemu,cheng
41、ji);</p><p> list.insert(tbe2);</p><p> System.out.println("插入成功!學(xué)生信息如下:");</p><p> this.print();</p><p> }(3)學(xué)生信息的查詢(search()方法的設(shè)計(jì))</p><p>
42、 在通訊錄中查找一條記錄的設(shè)計(jì)如下:根據(jù)用戶的需要,我們?cè)试S用戶既可以依據(jù)name查詢,又可以根據(jù)xuehao查詢。查詢到該記錄則輸出該記錄并返回記錄在有序順序表list中的位置,否則返回-1。</p><p> public int search()//查詢一條記錄</p><p><b> {</b></p><p> String
43、 str;</p><p> GuanLiXinXi tbe;</p><p> System.out.println("############");</p><p> System.out.println("1-按name查詢");</p><p> System.out.println(&
44、quot;2-按xuehao查詢:");</p><p> System.out.println("############");</p><p> System.out.println("請(qǐng)選擇(1或2):");</p><p> Scanner sc=new Scanner(System.in);</
45、p><p> int j=sc.nextInt();</p><p> while(j<1||j>2){</p><p> System.out.println("選擇的序號(hào)不正確,請(qǐng)?jiān)俅芜x擇(1或2):");</p><p> j=sc.nextInt();</p><p><
46、;b> }</b></p><p><b> if(j==1){</b></p><p> System.out.println("請(qǐng)輸入name:");</p><p> str=sc.next();</p><p> for(int i=0;i<list.leng
47、th();i++){</p><p> tbe=list.get(i);</p><p> if(tbe.getName().equals(str)){</p><p> System.out.println("name"+"\t\t"+"xuehao"+"\t\t"+"
48、kemu"+"\t\t"+"chengji");</p><p> System.out.println("-----------------------------------------------------");</p><p> System.out.println(tbe.toString());<
49、/p><p> System.out.println("-----------------------------------------------------");</p><p><b> return i;</b></p><p><b> }</b></p><p>
50、<b> }</b></p><p><b> }</b></p><p><b> else{</b></p><p> System.out.println("請(qǐng)輸入xuehao:");</p><p> str=sc.next();&l
51、t;/p><p> for(int i=0;i<list.length();i++){</p><p> tbe=list.get(i);</p><p> if(tbe.getXuehao().equals(str)){</p><p> System.out.println(tbe.toString());</p>
52、<p><b> return i;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> return -1;</p><p
53、> }(4)學(xué)生信息的修改(change()方法的設(shè)計(jì))</p><p> 修改學(xué)生信息記錄的設(shè)計(jì)是:首先調(diào)用search()操作查詢,如果沒有查詢到則不用修改,否則開始修改,修改記錄時(shí)要避免出現(xiàn)name或xuehao重復(fù)的情況。</p><p> public void change()//修改一條記錄</p><p><b> {<
54、;/b></p><p> int k=this.search();</p><p><b> if(k==-1)</b></p><p> System.out.println("要修改的記錄不存在!");</p><p><b> else{</b></p
55、><p> String name,xuehao,kemu ,chengji;</p><p> GuanLiXinXi tbe1,tbe2;</p><p> Scanner sc=new Scanner(System.in);</p><p> System.out.println("請(qǐng)輸入新的name和xuehao....
56、:");</p><p> name = sc.next();</p><p> xuehao=sc.next();</p><p> kemu = sc.next();</p><p> chengji=sc.next();</p><p> for(int i=0;i<list.len
57、gth();i++){</p><p> tbe1=list.get(i);</p><p> if(tbe1.getName().equals(name)||tbe1.getXuehao().equals(xuehao)){</p><p> System.out.println("該記錄已經(jīng)存在,修改失?。?quot;);</p>
58、<p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> tbe2=new GuanLiXinXi(name,xuehao,kemu,chengji);</p><p> list
59、.set(k, tbe2);</p><p> System.out.println("修改成功!");</p><p> this.print();</p><p><b> }</b></p><p> }(5)通訊錄的刪除(delete()方法的設(shè)計(jì))</p><p&
60、gt; 刪除通訊錄記錄的設(shè)計(jì)是:首先調(diào)用search()操作查詢,如果沒有查詢到則不用刪除,否則調(diào)用有序順序表list的刪除操作(至于如何設(shè)計(jì)參見后續(xù)內(nèi)容)刪除一條記錄。</p><p> public void delete()//刪除一條記錄</p><p><b> {</b></p><p> int i=this.searc
61、h();</p><p><b> if(i==-1)</b></p><p> System.out.println("要?jiǎng)h除的記錄不存在!");</p><p><b> else{</b></p><p> list.remove(i);</p>&l
62、t;p> System.out.println("刪除成功!");</p><p> this.print();</p><p><b> }</b></p><p><b> }</b></p><p> (6)通訊錄的輸出(print()方法的設(shè)計(jì))</
63、p><p> 通訊錄的輸出通過循環(huán)輸出有序順序表中的所有元素即可。</p><p> public void print()//輸出通信錄所有記錄</p><p><b> {</b></p><p> System.out.println("姓名"+"\t\t"+"
64、;電話號(hào)碼");</p><p> System.out.println("---------------------------");</p><p> if(list.length()==0)</p><p> System.out.println("通訊錄為空!");</p><p&g
65、t;<b> else</b></p><p> for(int i=0;i<list.length();i++){</p><p> System.out.println(list.get(i).toString());</p><p> System.out.println("--------------------
66、-------");</p><p><b> }</b></p><p><b> }</b></p><p> 3.有序順序表list的設(shè)計(jì)(雙鏈表中間不太會(huì)寫,所以用了順序表,希望老師理解)</p><p> 從上述學(xué)生信息的各個(gè)功能模塊的設(shè)計(jì)來(lái)看,我們需要借助一個(gè)數(shù)據(jù)結(jié)構(gòu)來(lái)
67、完成所有學(xué)生信息記錄的存儲(chǔ),在此選擇簡(jiǎn)單、快捷的有序順序表來(lái)完成設(shè)計(jì)。</p><p> 有序順序表,顧名思義,要求該順序表中的所有元素按照元素值大小有序。這就要求向順序表中插入元素或修改元素值時(shí)注意保持順序表元素值的有序性,因此問題的關(guān)鍵是順序表的插入操作和修改操作設(shè)計(jì),現(xiàn)給出這兩種操作的設(shè)計(jì),其他操作跟普通順序表一致,不再贅述。</p><p> ?。?)有序順序表的插入(inser
68、t()方法的設(shè)計(jì))</p><p> 有序順序表的插入元素之前需要判斷容器(element數(shù)組)是否滿,如果滿則先擴(kuò)充容量。插入元素x時(shí)需從順序表的尾部開始跟已有元素進(jìn)行比較,邊比較邊后移元素,最后找到插入的位置,把元素x放置進(jìn)來(lái)即可。</p><p> public void insert(T x) //順序表的插入操作,插入之后需要有序。 </p><p&g
69、t; { </p><p> if (x==null)</p><p> return; </p><p> if (this.len==element.length) //如果順序表滿,進(jìn)行容量擴(kuò)充。 </p><p><b>
70、; {</b></p><p> Object[] temp = this.element; </p><p> this.element = new Object[temp.length*2]; </p><p> for (int j=0; j<temp.length; j++) </p><
71、p> this.element[j] = temp[j];</p><p><b> } </b></p><p><b> int j;</b></p><p> for (j=this.len-1; j>=0&&x.compareTo(this.element[j])<0; j
72、--) </p><p> this.element[j+1]=this.element[j];</p><p> this.element[j+1] = x;</p><p> this.len++; </p><p><b> }</b></p><p> ?。?)有序順序表的置
73、值(set()方法的設(shè)計(jì))</p><p> 有序順序表的置值操作設(shè)計(jì)是:首先對(duì)i號(hào)位置的元素值進(jìn)行修改,然后借助直接插入排序算法把順序表中的元素重新排成升序。</p><p> public void set(int i,T x) //順序表的置值操作,置值之后需要排序。 </p><p> {
74、 </p><p> if (i>=0 && i<this.len){</p><p> this.element[i]=x; </p><p> for (int k=1; k<this.len; k++) //使用直接插入排序算法進(jìn)行排序 </p><p&g
75、t;<b> {</b></p><p><b> int j;</b></p><p> T temp=(T)this.element[k]; </p><p> for (j=k-1; j>=0 && temp.compareTo(this.
76、element[j])<0; j--) </p><p> this.element[j+1] = this.element[j];</p><p> this.element[j+1] = temp; </p><p><b> } </b></p>
77、<p><b> }</b></p><p> ?。?)學(xué)生成績(jī)的平均數(shù)</p><p> public void avg(){</p><p> System.out.println("avg=");</p><p><b> }</b></p>
78、<p> ?。?)把學(xué)生的成績(jī)分為5 個(gè)等級(jí)</p><p> 即是:A,B,C,D,E</p><p> 利用public void dengji(){</p><p> /*switch () {</p><p><b> case 1:</b></p><p> S
79、ystem.out.println("A");</p><p><b> break;</b></p><p><b> case 2:</b></p><p> System.out.println("B");</p><p><b> b
80、reak;</b></p><p><b> case 3:</b></p><p> System.out.println("C");</p><p><b> break;</b></p><p><b> case 4:</b>&l
81、t;/p><p> System.out.println("D");</p><p><b> break;</b></p><p><b> case 5:</b></p><p> System.out.println("E");</p>
82、<p><b> break;</b></p><p><b> default:</b></p><p><b> break;</b></p><p><b> }*/</b></p><p><b> }</b&
83、gt;</p><p> 4.學(xué)生信息錄的設(shè)計(jì)</p><p> 本系統(tǒng)要求每條學(xué)生信息記錄都有name,xuehao,kemu,chengji 4個(gè)屬性,因此提取所有學(xué)生信息記錄的共性,設(shè)計(jì)成學(xué)生信息記錄類GuanLiXinXi該類有name和xuehao,kemu,chengji 4個(gè)成員變量;另外GuanLiXinXi類實(shí)例化出的學(xué)生信息記錄作為有序順序表中的元素需要比較大小,因
84、此該類要實(shí)現(xiàn)Comparable接口,GuanLiXinXi類的設(shè)計(jì)如下:</p><p> public class GuanLiXinXi implements java.lang.Comparable<GuanLiXinXi>{</p><p> private String name;</p><p> private String xue
85、hao;</p><p> private String kemu;</p><p> private String chengji;</p><p> public int compareTo(GuanLiXinXi t) //比較兩個(gè)對(duì)象大小,實(shí)現(xiàn)Comparable接口</p><p> {
86、 </p><p> return this.xuehao.compareTo(t.xuehao);//指定排序的自然次序,以及比較兩對(duì)象相等的規(guī)則</p><p><b> }設(shè)計(jì)略</b></p><p><b> }</b></p><p>
87、 5,學(xué)生信息的輸出到一個(gè)文件(此方法我不太會(huì)結(jié)合使用,僅是寫出了一個(gè)框架),</p><p> 利用 轉(zhuǎn)換流inputStreamReader 把字節(jié)流轉(zhuǎn)換為字符流</p><p> public void inputStreamReaderTest(String file){</p><p> InputStreamReader isr = null;&
88、lt;/p><p> FileReader fr = null;</p><p> FileWriter fw = null;</p><p> BufferedReader br = null, br2 = null;</p><p> BufferedWriter bw = null;</p><p> St
89、ring s = null;</p><p> //1.建立一個(gè)輸入流,數(shù)據(jù)源來(lái)自鍵盤</p><p> isr = new InputStreamReader(System.in);//鍵盤in是一個(gè)字節(jié)流,轉(zhuǎn)換為字符流</p><p> br = new BufferedReader(isr);</p><p> //2.從br中
90、讀取數(shù)據(jù)后寫入到文件中,設(shè)定輸入bye為結(jié)束標(biāo)記</p><p><b> try {</b></p><p> fw = new FileWriter(file);</p><p> bw = new BufferedWriter(fw);</p><p> System.out.println("\
91、n請(qǐng)輸入數(shù)據(jù),輸入bye時(shí)將結(jié)束輸入狀態(tài)...\n");</p><p> while(true){</p><p> s = br.readLine() ;//從鍵盤上按行讀取</p><p> if(s.equals("bye")){</p><p><b> break;</b>
92、;</p><p><b> }</b></p><p> bw.write(s);//寫入bw中</p><p><b> }</b></p><p> bw.flush();</p><p> } catch (IOException e1) {&l
93、t;/p><p> e1.printStackTrace();</p><p><b> }</b></p><p> //3.從文件中讀取數(shù)據(jù)后顯示出來(lái)</p><p><b> try {</b></p><p> fr = new FileReader(fil
94、e);</p><p> br2 = new BufferedReader(fr);</p><p> System.out.println("讀取開始...");</p><p> while((s=br2.readLine())!= null){</p><p> System.out.print(s);<
95、;/p><p><b> }</b></p><p> System.out.println("\n讀取完畢...");</p><p> } catch (FileNotFoundException e1) {</p><p> e1.printStackTrace();</p>
96、;<p> }catch(IOException e){</p><p> e.printStackTrace();</p><p><b> }</b></p><p><b> //4.關(guān)閉流</b></p><p><b> try {</b>
97、;</p><p> bw.close();</p><p> br.close();</p><p> fw.close();</p><p> fr.close();</p><p> br2.close();</p><p> } catch (IOException e) {
98、</p><p> e.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p><b> 第四章 系統(tǒng)實(shí)現(xiàn)</b></p><p> 學(xué)生信息系統(tǒng)是通過4個(gè)Jav
99、a類來(lái)實(shí)現(xiàn)的。</p><p> 1.通訊錄記錄(GuanLiXinXi)類,位于GuanLiXinXi.java源文件中,實(shí)現(xiàn)通訊錄記錄的描述。</p><p> 2.有序順序表(SortedSeqList)類,位于SortedSeqList.java源文件中,用來(lái)實(shí)現(xiàn)有序順序表的各種操作。</p><p> 3.通訊錄(GuoCheng)類,位于GuoCh
100、eng.java源文件中,用來(lái)實(shí)現(xiàn)通訊錄系統(tǒng)的各種功能。</p><p> 4.通訊錄系統(tǒng)主程序(YunXing)類,位于YunXing.java源文件中,通訊錄系統(tǒng)運(yùn)行入口,向用戶提供程序界面,供用戶進(jìn)行菜單選擇。</p><p> 第五章 系統(tǒng)運(yùn)行與測(cè)試</p><p> 上述源文件編譯運(yùn)行后顯示如下菜單,等候用戶選擇:</p><p&
101、gt; ===============</p><p><b> 1-學(xué)生信息的建立</b></p><p><b> 2-學(xué)生信息的插入</b></p><p><b> 3-學(xué)生信息的查詢</b></p><p><b> 4-學(xué)生信息的修改</b
102、></p><p><b> 5-學(xué)生信息的刪除</b></p><p><b> 6-學(xué)生信息的輸出</b></p><p> 0-學(xué)生信息退出系統(tǒng)</p><p> ===============</p><p> 請(qǐng)選擇操作序號(hào)(0-6):</p&
103、gt;<p> 選“1”后回車,顯示:</p><p> 請(qǐng)選擇操作序號(hào)(0-6):</p><p><b> 1</b></p><p> 開始建立學(xué)生信息......</p><p> 請(qǐng)輸入一條記錄,name,xuehao,kemu,chengji :</p><p>
104、; aa 01 yuwen 88</p><p> 插入成功!學(xué)生信息如下:</p><p> namexuehaokemuchengji</p><p> -----------------------------------------------------</p><p> aa01yuwen88&l
105、t;/p><p> ----------------------------------------------------</p><p> 繼續(xù)輸入嗎?(y/n):y</p><p> 請(qǐng)輸入一條記錄,name,xuehao,kemu,chengji :</p><p> bb 02 shuxue 99</p><
106、p> 插入成功!學(xué)生信息如下:</p><p> namexuehaokemuchengji</p><p> -----------------------------------------------------</p><p> aa01yuwen88</p><p> ------------
107、----------------------------------------</p><p> bb02shuxue99</p><p> ----------------------------------------------------</p><p> 繼續(xù)輸入嗎?(y/n):n</p><p> 輸入“n”
108、后完成學(xué)生信息的創(chuàng)建,返回到系統(tǒng)主菜單</p><p><b> 學(xué)生信息創(chuàng)建完畢!</b></p><p> ===============</p><p><b> 1-學(xué)生信息的建立</b></p><p><b> 2-學(xué)生信息的插入</b></p>
109、<p><b> 3-學(xué)生信息的查詢</b></p><p><b> 4-學(xué)生信息的修改</b></p><p><b> 5-學(xué)生信息的刪除</b></p><p><b> 6-學(xué)生信息的輸出</b></p><p> 0-學(xué)
110、生信息退出系統(tǒng)</p><p> 選“2”后回車,顯示:</p><p><b> 學(xué)生信息創(chuàng)建完畢!</b></p><p> ===============</p><p><b> 1-學(xué)生信息的建立</b></p><p><b> 2-學(xué)生信息的
111、插入</b></p><p><b> 3-學(xué)生信息的查詢</b></p><p><b> 4-學(xué)生信息的修改</b></p><p><b> 5-學(xué)生信息的刪除</b></p><p><b> 6-學(xué)生信息的輸出</b><
112、/p><p> 0-學(xué)生信息退出系統(tǒng)</p><p> ===============</p><p> 請(qǐng)選擇操作序號(hào)(0-6):</p><p><b> 2</b></p><p><b> 學(xué)生信息的插入:</b></p><p> 請(qǐng)
113、輸入一條記錄,name,xuehao,kemu,chengji :</p><p> cc 03 liunx 87</p><p> 插入成功!學(xué)生信息如下:</p><p> namexuehaokemuchengji</p><p> ------------------------------------------
114、-----------</p><p> aa01yuwen88</p><p> ----------------------------------------------------</p><p> bb02shuxue99</p><p> ------------------------------
115、----------------------</p><p> cc03liunx87</p><p> ----------------------------------------------------</p><p> 選“3”后回車,顯示:</p><p><b> 3</b></p
116、><p><b> 學(xué)生信息的查詢:</b></p><p> ############</p><p><b> 1-按name查詢</b></p><p> 2-按xuehao查詢:</p><p> ############</p><p>
117、;<b> 請(qǐng)選擇(1或2):</b></p><p><b> 1</b></p><p><b> 請(qǐng)輸入name:</b></p><p><b> aa</b></p><p> namexuehaokemuchengji&l
118、t;/p><p> -----------------------------------------------------</p><p> aa 01 yuwen 88</p><p> -----------------------------------------------------</p><p&
119、gt; 選“4”后回車,顯示:</p><p><b> 4</b></p><p><b> 學(xué)生信息的修改:</b></p><p> ############</p><p><b> 1-按name查詢</b></p><p> 2-
120、按xuehao查詢:</p><p> ############</p><p><b> 請(qǐng)選擇(1或2):</b></p><p><b> 1</b></p><p><b> 請(qǐng)輸入name:</b></p><p><b>
121、 aa</b></p><p> namexuehaokemuchengji</p><p> -----------------------------------------------------</p><p> aa01yuwen88</p><p> ------------------
122、-----------------------------------</p><p> 請(qǐng)輸入新的name和xuehao....:</p><p> ww 08 jisuji 100</p><p><b> 修改成功!</b></p><p> namexuehaokemuchengji</
123、p><p> -----------------------------------------------------</p><p> bb 02 shuxue99</p><p> ----------------------------------------------------</p><p> cc
124、 03 liunx87</p><p> ----------------------------------------------------</p><p> ww 08 jisuji100</p><p> -------------------------------------------------
125、---</p><p> 選“5”后回車,顯示:</p><p><b> 5</b></p><p><b> 學(xué)生信息的刪除:</b></p><p> ############</p><p><b> 1-按name查詢</b><
126、/p><p> 2-按xuehao查詢:</p><p> ############</p><p><b> 請(qǐng)選擇(1或2):</b></p><p><b> 1</b></p><p><b> 請(qǐng)輸入name:</b></p>
127、<p><b> cc</b></p><p> namexuehaokemuchengji</p><p> -----------------------------------------------------</p><p> cc 03 liunx87</p>
128、<p> -----------------------------------------------------</p><p><b> 刪除成功!</b></p><p> namexuehaokemuchengji</p><p> ------------------------------------
129、-----------------</p><p> bb 02shuxue99</p><p> ----------------------------------------------------</p><p> ww 08jisuji100</p><p> --------
130、--------------------------------------------</p><p> 選“6”后回車,顯示:</p><p><b> 6</b></p><p><b> 學(xué)生信息的輸出:</b></p><p> namexuehaokemuchengj
131、i</p><p> -----------------------------------------------------</p><p> bb 02 shuxue 99</p><p> ----------------------------------------------------</p><
132、p> ww 08 jisuji 100</p><p> ----------------------------------------------------</p><p> 選“0”后回車,顯示:</p><p> 還有就是把學(xué)生信息輸入到一個(gè)文件便于查閱,雖然我不能更好的結(jié)合,但是我可以再這里演示一下:</p
133、><p> aa 01 yuwen 88</p><p> bb 02 shuxue 99</p><p><b> bye</b></p><p><b> 讀取開始...</b></p><p> aa 01 yuwen 88bb 02 shuxue 99</
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生信息管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——圖書管理信息系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)-課程設(shè)計(jì)--學(xué)生管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生籍貫管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---學(xué)生選課系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)----huffman編碼
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--員工信息管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)----學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-學(xué)生成績(jī)查詢系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---學(xué)生學(xué)籍管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--- 學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---學(xué)生搭配問題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---學(xué)生搭配問題
評(píng)論
0/150
提交評(píng)論