利用單向鏈表-實現(xiàn)學生管理系統(tǒng)java練習_第1頁
利用單向鏈表-實現(xiàn)學生管理系統(tǒng)java練習_第2頁
利用單向鏈表-實現(xiàn)學生管理系統(tǒng)java練習_第3頁
利用單向鏈表-實現(xiàn)學生管理系統(tǒng)java練習_第4頁
利用單向鏈表-實現(xiàn)學生管理系統(tǒng)java練習_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上Java作業(yè):4-13.參照例4-23,利用單向鏈表,實現(xiàn)學生管理系統(tǒng)。解:運行圖:A. 主菜單B. 增加學生并且打印學生信息C. 刪除學生信息D. 修改學生信息E. 查找學生信息代碼實現(xiàn):(1).單向鏈結點LinkListElement類public class LinkListElement protected Object data;protected LinkListElement nextElement;public LinkListElement(Object v ,LinkListElement next)data=v;nextElement=next;

2、public LinkListElement(Object v)data=v;nextElement=null;public LinkListElement next()return nextElement;public void setNext (LinkListElement next)nextElement=next;public Object value()return data;public void setValue (Object value)data=value;(2).單向鏈表LinkList類描述public class LinkList protected int cou

3、nt;protected LinkListElement head;public LinkList()head=null;count=0;public boolean isEmpty()return count=0;public void addToTail(Object value)LinkListElement temp=new LinkListElement(value,null);if(head!=null)LinkListElement finger=head;while(finger.next()!=null)finger=finger.next();finger.setNext(

4、temp);else head=temp;count+;public Object remove(Object value)LinkListElement finger=head;LinkListElement previous=null;while(finger!=null&&!finger.value().equals(value)previous=finger;finger=finger.next();if(finger!=null)if(previous=null)head=finger.next();elseprevious.setNext(finger.next()

5、;count-;return finger.value();return null;(3).封裝好的學生類import java.io.*;public class Student public String id;public String name;public String grade;public String sclass;public String qq;public static InputStreamReader isr=new InputStreamReader(System.in);public static BufferedReader br= new BufferedR

6、eader(isr);public String getId() return id;public void setId(String id) this.id = id;public String getName() return name;public void setName(String name) = name;public String getGrade() return grade;public void setGrade(String grade) this.grade = grade;public String getSclass() return scla

7、ss;public void setSclass(String sclass) this.sclass = sclass;public String getQq() return qq;public void setQq(String qq) this.qq = qq;public Student(String id, String name, String grade,String sclass,String qq )this.id=id; =name;this.grade=grade;this.sclass=sclass;this.qq=qq;public Student

8、()throws ExceptionSystem.out.println("輸入學生學號");id=br.readLine();System.out.println("輸入學生姓名");name=br.readLine();System.out.println("輸入學生年級");grade=br.readLine();System.out.println("輸入學生班級");sclass=br.readLine();System.out.println("輸入學生qq");qq=br.read

9、Line();(4).學生信息管理的接口類public interface StudentDataBaseInterface void addStudent(Student s)throws Exception;void removeStudent(String name);void updateStudent(String name)throws Exception;void findStudent(String name);void listAll();(5).學生信息管理manage類import java.io.BufferedReader;import java.io.InputSt

10、reamReader;public class Manage extends LinkList implements StudentDataBaseInterfacepublic static InputStreamReader isr=new InputStreamReader(System.in);public static BufferedReader br= new BufferedReader(isr);public static void main(String args) throws Exception int i=1;Manage m=new Manage();System.

11、out.println("歡迎進入學生管理系統(tǒng)");System.out.println("請選擇:1.增加學生,2.刪除學生,3.修改學生," +"4.查找學生,5.打印學生,其他鍵.退出");i=Integer.parseInt(br.readLine();while(i>0&&i<6)switch(i)case 1:Student s=new Student();m.addStudent(s);break;case 2:System.out.println("請輸入要刪除學生的名字"

12、;);String name;name=br.readLine();m.removeStudent(name);break;case 3:System.out.println("請輸入要修改學生的名字");String name1;name1=br.readLine();m.updateStudent(name1);break;case 4:System.out.println("請輸入要查找學生的名字");String name2;name2=br.readLine();m.findStudent(name2);break;case 5:m.listA

13、ll();break;System.out.println("請選擇:1.增加學生,2.刪除學生,3.修改學生," +"4.查找學生,5.打印學生,其他鍵.退出");i=Integer.parseInt(br.readLine();m.listAll();public Manage()super();Overridepublic void addStudent(Student s) throws Exception / TODO Auto-generated method stubaddToTail(s);Overridepublic void remo

14、veStudent(String name) / TODO Auto-generated method stubLinkListElement finger=head;while(finger!=null)Student s=(Student)finger.value();if(s.getName().equals(name)remove(s);System.out.println("成功刪除: 學號:"+s.getId()+" 姓名:"+s.getName()+" 年級:"+s.getGrade()+" 班別:"

15、+s.getSclass()+" qq:"+s.getQq();break;elsefinger=finger.next();Overridepublic void updateStudent(String name) throws Exception / TODO Auto-generated method stubLinkListElement finger=head;while(finger!=null)Student s=(Student)finger.value();if(s.getName().equals(name)System.out.println(&qu

16、ot;成功找到: 學號:"+s.getId()+" 姓名:"+s.getName()+" 年級:"+s.getGrade()+" 班別:"+s.getSclass()+" qq:"+s.getQq();System.out.println("輸入學生新學號");s.setId(br.readLine();System.out.println("輸入學生新姓名");s.setName(br.readLine();System.out.println("輸入學

17、生新年級");s.setGrade(br.readLine();System.out.println("輸入學生新班級");s.setSclass(br.readLine();System.out.println("輸入學生新qq");s.setQq(br.readLine();System.out.println("成功修改: 學號:"+s.getId()+" 姓名:"+s.getName()+" 年級:"+s.getGrade()+" 班別:"+s.getScl

18、ass()+" qq:"+s.getQq();break;elsefinger=finger.next();Overridepublic void findStudent(String name) / TODO Auto-generated method stubLinkListElement finger=head;while(finger!=null)Student s=(Student)finger.value();if(s.getName().equals(name)System.out.println("成功找到: 學號:"+s.getId()

19、+" 姓名:"+s.getName()+" 年級:"+s.getGrade()+" 班別:"+s.getSclass()+" qq:"+s.getQq();break;elsefinger=finger.next();Overridepublic void listAll() / TODO Auto-generated method stubLinkListElement finger=head;int i=1;while(finger!=null)Student s=(Student)finger.value()

20、;System.out.println("序號"+i+": 學號:"+s.getId()+" 姓名:"+s.getName()+" 年級:"+s.getGrade()+" 班別:"+s.getSclass()+" qq:"+s.getQq();i+;finger=finger.next();補充題:1. 設計一個Java源程序,用來創(chuàng)建一個圖形類Shape,由它派生出矩形Rectangle和圓形Circle并計算及顯示出相應圖形的面積和周長.(1)使用繼承方法:ShapeTe

21、st.java;A. Shape類 public class Shape protected int x;protected int y;protected int r;protected Shape(int x, int y,int r)this.x=x;this.y=y;this.r=r;public void length(int x, int y,int r)System.out.println("周長");public void square(int x, int y,int r)System.out.println("面積");B. 繼承方法

22、:ShapeTestpublic class ShapeTest extends Shapefloat Pi = 3.14f;protected ShapeTest(int x, int y,int r) super(x, y, r);public void length(int x, int y,int r)System.out.println("矩形周長"+(2*x+2*y);System.out.println("圓形周長"+(2*Pi*r);public void square(int x, int y,int r)System.out.prin

23、tln("矩形面積"+x*y);System.out.println("圓形面積"+(Pi*(float)Math.pow(r, 2.0);public static void main(String args) int x=4;int y=4;int r=3;System.out.println("當x=4,y=3,r=3時有:");ShapeTest st=new ShapeTest(x, y,r);st.length(x,y,r);st.square(x, y, r);程序運行圖:(2)使用抽象方法:ShapeTest1.jav

24、a;A.abstract class Shape abstract double area(); abstract double perimeter();public class Rectangle extends Shapeprivate double length;private double hight;public Rectangle(double length, double hight)this.length = length ;this.hight = hight;Overridepublic double area() return length*hight;Overridep

25、ublic double perimeter() return 2*(length+hight);B.public class Circle extends Shapedouble radius;public Circle(double radius)this.radius = radius;Overridepublic double area() return Math.PI*radius*radius;Overridepublic double perimeter() return 2*Math.PI *radius;C.public class ShapeTest1 public sta

26、tic void main(Stringargs)Rectangle rec = new Rectangle(4,5);System.out.println("矩形的面積為:"+rec.area();System.out.println("矩形的周長為:"+rec.perimeter();Circle cir = new Circle(5);System.out.println("愿的面積為:"+cir.area();System.out.println("圓的周長為:"+cir.perimeter();(3)使用

27、接口方法:ShapeTest2.java;A.接口類 public interface ShapeInterface void length(int x, int y,int r);void square(int x, int y,int r);B. 接口方法ShapeTest2public class ShapeTest2 implements ShapeInterface float Pi = 3.14f;public static void main(String args) int x=4;int y=4;int r=3;System.out.println("當x=4,y=

28、3,r=3時有:");ShapeTest st=new ShapeTest(x, y,r);st.length(x,y,r);st.square(x, y, r);Overridepublic void length(int x, int y, int r) System.out.println("矩形周長"+(2*x+2*y);System.out.println("圓形周長"+(2*Pi*r);Overridepublic void square(int x, int y, int r) System.out.println("矩

29、形面積"+x*y);System.out.println("圓形面積"+(Pi*(float)Math.pow(r, 2.0);運行圖如1;5-6.編寫一個從鍵盤讀入10個字符放入一個字符數(shù)組,并在屏幕顯示讀入的字符程序,同時處理數(shù)組越界異常。解:import java.io.BufferedReader;import java.io.InputStreamReader;public class ReadChar public static InputStreamReader isr=new InputStreamReader(System.in);public

30、static BufferedReader br= new BufferedReader(isr);public static void main(String args) throws Exception / TODO Auto-generated method stubString str;char x=new char10;System.out.println("請輸入一串字符串");str=br.readLine();for(int i=0;i<str.length();i+)try xi=str.charAt(i);System.out.println("第一個字母是"+xi); catch (Exception e) / TODO Auto-generated catch blockif(i>10)System.out.println("字母"+str.charAt(i)+"數(shù)組越界了");運行圖補充題:2.編寫Java程序,要求:(1)自定義一個三角形類Triangle,該類包

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論