CS3008《数据结构与算法Java》课程实践实训报告2.doc_第1页
CS3008《数据结构与算法Java》课程实践实训报告2.doc_第2页
CS3008《数据结构与算法Java》课程实践实训报告2.doc_第3页
CS3008《数据结构与算法Java》课程实践实训报告2.doc_第4页
CS3008《数据结构与算法Java》课程实践实训报告2.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

CS3008数据结构与算法Java课程实践实训报告目标:线性表的应用题目: 一)输入一个班级共计10名同学的成绩(0-100分),进行成绩分析,统计整个班级的缺考率、及格率,优秀率.要求用顺序表实现。 1.缺考 成绩为0分的人数 2及格 60分 3 优秀 90分及90分以上2) 员工登记表 将某公司的员工信息保存在一个线性表中,用不带头结点的单链表实现员工类如下:class Employee String name; String sex; String major;/专业 String depart;/部门 /省略getter/setter方法和构造方法请同学自行补上2.1)请依次录入 4名员工 1)曹小龙 男 计算机 开发部 2)刘小双 男 项目管理 市场部 3)孙大胜 男 软件工程 开发部 4)王国庆 男 项目管理 市场部 然后显示所有员工信息2.2)再删除部门为 “开发部”的所有员工,再显示所有员工信息,测试删除是否成功操作过程与结果(将结果截图): 代码(如果有):第一题:public interface IList public int length();public boolean contains(Object x);public int search(Object x);public Object getElement(int i)throws Exception; public void insert(int i,Object x)throws Exception; public void insertBefore(Object obj,Object x);public void insertAfter(Object obj,Object x);public Object remove(int i)throws Exception; public boolean remove(Object x);public Object replace(int i,Object x)throws Exception; public boolean isEmpty(); public boolean isFull(); public void showList(); public void clear();public class SqListhw implements IList private Object data;/顺序表存储空间 private int len;/表长/实际数据个数 public SqListhw(int capacity) data=new Objectcapacity;/实例化数组 len=0;/初始元素个数为0 public void insert(int i,Object x) throws Exception if(isFull()/为true,执行下面语句throw new Exception(顺序表已满);if(ilen)throw new Exception(数i位置非法);/方法的实现for(int k =len;ki;k-)datak=datak-1;datai=x;/将x放入目标位置len+;/多了个元素/* * 删除操作 * 1、i合法性:ilen-1 * 2、将第i个位置之后的所有元素前移一个存储位置 * 3、表长值减一 */public Object remove(int i) throws Exception if(isEmpty()throw new Exception(顺序表为空);if(ilen-1)throw new Exception(数i位置非法,当前元素为+len);/方法的实现Object temp = datai;for(int k =i;klen-1;k+)datak= datak+1;/还有最后一个元素,需删掉datalen-1=null;len-;/元素个数减一return temp;/*按值查找操作 *按值查找某数据,查到就返回位置下标,否则返回-1 */public int search(Object x) for(int i = 0;ilen;i+)if(datai.equals(x)return i;return -1;/返回第i个数据元素public Object getElement(int i) throws Exception if(ilen-1)throw new Exception(第+(i+1)+个元素不存在);return datai;/判断顺序表是否为空public boolean isEmpty() /如果不为空,输入falsereturn len=0;/判断顺序表是否已满public boolean isFull() /如果还没满,输入falseif(data.length = len)return true;elsereturn false;/return data.length = len;/返回顺序表表长public int length() return len;/显示顺序表的所有元素public void showList() System.out.println(10个同学的成绩:);for(int i=0;ilen;i+)System.out.print(datai+ 、);/一般另写一测试类public static void main(String args) SqListhw list = new SqListhw(10);Scanner input = new Scanner(System.in);tryfor (int i = 0; i10; i+) System.out.println(请输入第+(i+1)+个同学的成绩:);int score = input.nextInt();list.insert(i, score);double unexam = 0;/缺考人数double pass = 0;/及格double excellent = 0;/优秀人数for(int i=0;i=60)pass+;/优秀if(s=90)excellent+;list.showList();System.out.println(n缺考率:+unexam/10 +n及格率:+pass/10 +n优秀率:+excellent/10);catch (Exception e) e.printStackTrace();/删除线性表中第一个与x相同的元素public boolean remove(Object x) / TODO Auto-generated method stubreturn false;/替换表中序号为i的元素为x,返回原数据元素public Object replace(int i, Object x) throws Exception if(ilen)throw new Exception(指定的数组越界);Object obj = datai;datai =x;return obj;Overridepublic boolean contains(Object x) / TODO Auto-generated method stubreturn false;Overridepublic void insertBefore(Object obj, Object x) / TODO Auto-generated method stubOverridepublic void insertAfter(Object obj, Object x) / TODO Auto-generated method stubOverridepublic void clear() / TODO Auto-generated method stub结果:请输入第1个同学的成绩:60请输入第2个同学的成绩:70请输入第3个同学的成绩:80请输入第4个同学的成绩:0请输入第5个同学的成绩:90请输入第6个同学的成绩:0请输入第7个同学的成绩:100请输入第8个同学的成绩:98请输入第9个同学的成绩:93请输入第10个同学的成绩:9910个同学的成绩:60 、70 、80 、0 、90 、0 、100 、98 、93 、99 、缺考率:0.2及格率:0.8优秀率:0.5第二题:public interface IList /* * 线性表是个线型结构的有限序列 * 开始结点没有前驱,终端节结点没有后继 * 所有数据元素具有相同的数据类型 * 仅有一个开始结点和一个终端结点 * 除开始和终端结点外,其他的元素都有且仅有一个前驱和一个后继 * * 线性表的两种存储结构:顺序存储和链式存储 */以下是线性表的接口描述:/求表长操作public int length();/查找public int search(Object x);/读取线性表中第i个元素的值public Object getElement(int i)throws Exception;/插入操作,0= i =length()public void insert(int i,Object x)throws Exception;/删除操作,其中0= i =length()-1public Object remove(int i)throws Exception;/判空操作public boolean isEmpty();/判满public boolean isFull();/输出个数据值操作public void showList();/置空操作public void clear();public class LinkListhw implements IListprivate Node head;/头结点public LinkListhw()head= new Node();/构造一个头结点/求链表长public int length() Node p= head.next;/局部变量int count = 0;/计数器while(p!=null)count+;p=p.next;return count;/按值查找某数据,/查到就返回位置下标,否则返回-1public int search(Object x) Node p= head.next;int k = 0;/找到最后为空为止while(p!=null&!p.data.equals(x)k+;p = p.next;if(p!=null)return k;elsereturn -1;/返回第i个数据元素public Object getElement(int i) throws Exception Node p= head.next;int k = 0;while(p!=null&ki)throw new Exception(单链表超出);/如果k=ireturn p.data;/添加元素,将x值插入到链表i位置上public void insert(int i, Object x) throws Exception Node p= head;int k = -1;while(p!=null&ki-1)throw new Exception(单链表超出+length();Node s= new Node(x);s.next = p.next;p.next=s;/删除指定位置的结点,并返回public Object remove(int i) throws Exception Node p=head; int k=-1; while(p.next!=null&ki-1 |p.next=null) throw new Exception(数位置非法); Object temp = p.next.data; p.next = p.next .next ; return temp;Overridepublic boolean isEmpty() / TODO Auto-generated method stubreturn false;public boolean isFull() /不会满的return false;/遍历单链表的结点public void showList() Node p=head.next;System.out.println(单链表元素为:);while(p!=null)System.out.print(p.data);p=p.next;Overridepublic void clear() / TODO Auto-generated method stubpublic class Employeeprivate String name;/姓名private String sex;/性别private String major;/专业private String depart;/部门 public String getDepart() return depart;public void setDepart(String depart) this.depart = depart;public Employee(String name) super(); = name;public String toString() return name= + name + , sex= + sex + , major= + major+ , depart= + depart + +n;public Employee(String name, String sex, String major, String depart) = name;this.sex = sex;this.major = major;this.depart = depart;public class LinkListhwTest public static void main(String args) LinkListhw list=new LinkListhw(); try Employee e1=new Employee(曹小龙,男,计算机系,开发部); Employee e2=new Employee(刘小双,男,项目管理,市场部); Employee e3=new Employee(孙大胜,男,软件工程,开发部); Employee e4=new Employee(王国庆,男,项目管理,市场部

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论