




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java作业:4-13.参照例4-23,利用单向链表,实现学生管理系统。解:运行图:A. 主菜单B. 增加学生并且打印学生信息C. 删除学生信息D. 修改学生信息E. 查找学生信息代码实现:(1).单向链结点LinkListElement类public class LinkListElement protected Object data;protected LinkListElement nextElement;public LinkListElement(Object v ,LinkListElement next)data=v;nextElement=next;public LinkLi
2、stElement(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 count;protected
3、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(temp);else he
4、ad=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();count-;retur
5、n 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 BufferedReader(isr);pu
6、blic 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 sclass;public voi
7、d 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()throws Exce
8、ptionSystem.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.readLine();(4).学生
9、信息管理的接口类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.InputStreamReader;pu
10、blic 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.out.println(&
11、quot;欢迎进入学生管理系统");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("请输入要删除学生的名字");String nam
12、e;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.listAll();break;Sy
13、stem.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 removeStudent(Str
14、ing 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()+" 班别:"+s.getSclass(
15、)+" 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("成功找到: 学号:&
16、quot;+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("输入学生新年级");s
17、.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.getSclass()+"
18、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()+" 姓名:&q
19、uot;+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();System.out.p
20、rintln("序号"+i+": 学号:"+s.getId()+" 姓名:"+s.getName()+" 年级:"+s.getGrade()+" 班别:"+s.getSclass()+" qq:"+s.getQq();i+;finger=finger.next();补充题:1. 设计一个Java源程序,用来创建一个图形类Shape,由它派生出矩形Rectangle和圆形Circle并计算及显示出相应图形的面积和周长.(1)使用继承方法:ShapeTest.java;A. Sh
21、ape类 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. 继承方法:ShapeTestpub
22、lic 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.println("矩形面
23、积"+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.java;A.abstract
24、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;Overridepublic double
25、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 static void main
26、(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)使用接口方法:ShapeTes
27、t2.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=3,r=3时有:"
28、;);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("矩形面积"+x*y
29、);System.out.println("圆形面积"+(Pi*(float)Math.pow(r, 2.0);运行图如1;5-6.编写一个从键盘读入10个字符放入一个字符数组,并在屏幕显示读入的字符程序,同时处理数组越界异常。解:import java.io.BufferedReader;import java.io.InputStreamReader;public class ReadChar public static InputStreamReader isr=new InputStreamReader(System.in);public static Buffer
30、edReader 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)+"数组越界了");运行图补充题:2.编写Java程序,要求:(1)自定义一个三角形类Triangl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程经济职能部门协作试题及答案
- 地理信息系统GIS技术应用题
- 农村土地整治与综合开发合作合同
- 公司员工职务晋升证明(8篇)
- 市政工程施工技术解析及试题及答案
- 工程变更申报流程试题及答案
- 2025年工程经济理念探索试题及答案
- 2025年工程经济考试的整体复习试题及答案
- 年度业务发展路径探讨计划
- 学校品牌建设与推广方案计划
- 小学生手工缝制课件大全
- 社区流行病学
- 电厂节能降耗培训课件
- 全国统一考试考务人员网上培训考试试题及答案
- 仪控技术手册-自控专业工程设计用典型条件表
- 校园网规划答辩
- 医学细胞生物学(温州医科大学)知到智慧树章节答案
- 《初级会计实务》(第五版) 第九章 产品成本核算
- 生涯发展展示-(第一版)
- 五角场综合体项目设计任务书
- 信托固定收益合同模板
评论
0/150
提交评论