第十七次作业(5.6章学生选课系统)

目录

第四章 Java中的集合框架(上)

4-1 Java中的集合框架概述

4-2 Collection接口和List接口简介

4-3 学生选课--创建学生类和课程类

4-4 学生选课--添加课程(一)

4-5 学生选课--添加课程(二)

4-6 学生选课--课程查询

4-7 学生选课--课程修改

4-8 学生选课--课程删除

4-9 学生选课--应用泛型管理课程(一)

4-10 学生选课--应用泛型管理课程(二)

4-11学生选课--通过Set集合管理课程

第五章 Java中的集合框架(中)

5-1 Map&HashMap

5-2 使用Map添加学生

5-3 删除Map中的学生

5-4 修改Map中的学生

第六章 Java中的集合框架(下)

6-1 判断List中课程是否存在

6-2 判断Set中课程是否存在

6-3 获取List中课程的位置

6-4 判断Map中是否包含指定的key和value

6-5 应用Collections.sort()实现List排序

6-6 尝试对学生序列排序

6-7 Comparable&Compartator

6-8 实现学生序列排序


第四章 Java中的集合框架(上)

4-1 Java中的集合框架概述

 

 

 

 

 

 

 

 

 

 

 

 

4-2 Collection接口和List接口简介

 

 

 

4-3 学生选课--创建学生类和课程类

package com.imooc.collection;
 
import java.util.HashSet;
import java.util.Set;
 
/**
 * 学生类
 * @author Administrator
 *
 */
public class Student {
 
    public String id;
    
    public String name;
    
    public Set<Course> courses;
 
    public Student(String id, String name) {
        this.id = id;
        this.name = name;
        this.courses = new HashSet<Course>();
    }
}
package com.imooc.collection;
 
/**
 * 课程类
 * @author Administrator
 *
 */
public class Course {
 
    public String id;
    
    public String name;
    
    public Course(String id, String name) {
        this.id = id ;
        
        this.name = name;
    }
    
    public Course() {
        
    }
}
 添加课程、查询课程、课程修改、课程删除:
package com.imooc.collection;
 
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
 
/**
 * 备选课程类
 * @author Administrator
 *
 */
public class ListTest {
 
    /**
     * 用于存放备选课程的List
     */
    public List coursesToSelect;
    
    public ListTest() {
        this.coursesToSelect = new ArrayList();
    }
    
    /**
     * 用于往coursesToSelect中添加备选课程
     */
    public void testAdd() {
        //创建一个课程对象,并通过调用add方法,添加到备选课程List中
        Course cr1 = new Course("1" , "数据结构");
        coursesToSelect.add(cr1);
        Course temp = (Course) coursesToSelect.get(0);
        System.out.println("添加了课程:" + temp.id + ":" + temp.name); 
        
        Course cr2 = new Course("2", "C语言");
        coursesToSelect.add(0, cr2);
        Course temp2 = (Course) coursesToSelect.get(0);
        System.out.println("添加了课程:" + temp2.id + ":" + temp2.name);
        
        coursesToSelect.add(cr1);
        Course temp0 = (Course) coursesToSelect.get(2);
        System.out.println("添加了课程:" + temp.id + ":" + temp.name); 
        
        
        //以下方法会抛出数组下标越界异常
//        Course cr3 = new Course("3", "test");
//        coursesToSelect.add(4, cr3);
        
        Course[] course = {new Course("3", "离散数学"), new Course("4", "汇编语言")};
        coursesToSelect.addAll(Arrays.asList(course));
        Course temp3 = (Course) coursesToSelect.get(2);
        Course temp4 = (Course) coursesToSelect.get(3);
        
        System.out.println("添加了两门课程:" + temp3.id + ":" + 
                temp3.name + ";" + temp4.id + ":" + temp4.name);
        
        Course[] course2 = {new Course("5", "高等数学"), new Course("6", "大学英语")};
        coursesToSelect.addAll(2, Arrays.asList(course2));
        Course temp5 = (Course) coursesToSelect.get(2);
        Course temp6 = (Course) coursesToSelect.get(3);
        System.out.println("添加了两门课程:" + temp5.id + ":" + 
                temp5.name + ";" + temp6.id + ":" + temp6.name);
        
    }
    
    /**
     * 取得List中的元素的方法
     * @param args
     */
    public void testGet() {
        int size = coursesToSelect.size();
        System.out.println("有如下课程待选:");
        for(int i= 0 ; i < size; i++) {
            Course cr = (Course) coursesToSelect.get(i);
            System.out.println("课程:" + cr.id + ":" + cr.name);
        }
    }
    
    /**
     * 通过迭代器来遍历List
     * @param args
     */
    public void testIterator() {
        //通过集合的iterator方法,取得迭代器的实例
        Iterator<Course> it = coursesToSelect.iterator();
        System.out.println("有如下课程待选(通过迭代器访问):");
        while(it.hasNext()) {
            Course cr = it.next();
            System.out.println("课程:" + cr.id + ":" + cr.name);
        }
    }
    
    /**
     * 通过for each方法访问集合元素
     * @param args
     */
    public void testForEach() {
        System.out.println("有如下课程待选(通过for each访问):");
        for (Object obj : coursesToSelect) {
            Course cr = (Course) obj;
            System.out.println("课程:" + cr.id + ":" + cr.name);
        }
    }
    
    /**
     * 修改List中的元素
     * @param args
     */
    public void testModify() {
        coursesToSelect.set(4, new Course("7", "毛概"));
    }
    
    /**
     * 删除List中的元素
     * @param args
     */
    public void testRemove() {
//        Course cr = (Course) coursesToSelect.get(4);
        System.out.println("即将删除4位置和5位置上的课程!");
        Course[] courses = {(Course) coursesToSelect.get(4), (Course) coursesToSelect.get(5)};
        coursesToSelect.removeAll(Arrays.asList(courses));
        //        coursesToSelect.remove(4);
        System.out.println("成功删除课程!");
        testForEach();
    }
    
    /**
     * 往List中添加一些奇怪的东西
     * @param args
     */
    public void testType() {
        System.out.println("能否往List中添加一些奇怪的东西呢!?");
        coursesToSelect.add("我不是课程,我只是一个无辜的字符串!!");
    }
    
    public static void main( String[] args) {
        ListTest lt = new ListTest();
        lt.testAdd();
        lt.testType();
        lt.testForEach();
//        lt.testGet();
//        lt.testIterator();
//        lt.testForEach();
//        lt.testModify();
//        lt.testForEach();
//        lt.testRemove();
    }
}
 

4-4 学生选课--添加课程(一)

4-5 学生选课--添加课程(二)

4-6 学生选课--课程查询

4-7 学生选课--课程修改

4-8 学生选课--课程删除

4-9 学生选课--应用泛型管理课程(一)

4-10 学生选课--应用泛型管理课程(二)

4-11学生选课--通过Set集合管理课程

 

第五章 Java中的集合框架(中)

5-1 Map&HashMap

  

 

 

5-2 使用Map添加学生

5-3 删除Map中的学生

5-4 修改Map中的学生

importjava.util.HashMap;
public class MapTest { //创建类名
/**
*用来承装学生类型对象*/
public Map<String, Student> students;
/** I 
*在构造器中初始化students属性*/
public MapTest(){
this.students =new HashMap<String,Student>();}
/**
*测试添加:输入学生ID,判断是否被占用
*若未被占用,则输入姓名,创建新学生对象,并且*添加到students中*/
public void testPut() {
//创建一个Scanner对象,用来获取输入的学生ID和姓名 Scanner console=new Scanner(System.in); inti=0;
while (i < 3) {
System.out.println("请输入学生ID:"); StringID=consolenext();//判断该ID是否被占用
Studentst=students.get(ID); if(st == null) {
//提示输入学生姓名
System.out.println("请输入学生姓名:"); String name=consolenext();//创建新的学生对象
Student newStudent=newStudent(IDname)//通过调用students的put方法,添加ID-学生映射 students.put(ID,newStudent);
System.outprintln("成功添加学生:"+students.get(ID).name); i++;
} else {
System.out.println("该学生ID已被占用!");
continue;
   }
  }
}
/**
*测试Map的keySet方法*/
public void testKeySet(){
//通过keySet方法,返回Map中的所有“键”的Set集合 Set<String> 
keySet=students.keySet();
//取得students的容量
System.out.println("总共有:"+students.size()+"个学生!")
//遍历keySet,取得每一个键,再调用get方法取得每个键对应的value for(String stuId: keySet){
Student st=students.get(stuId); 
if (st!= null)
System.out.println("学生:"+st.name);
}  }
public static void main(Stringl]args){
MapTestmt=new MapTest(); 
I mt.testPut(); 
mt.testKeySet();
}

public void testRemove(){
//获取从键盘输入的待删除学生ID字符串
Scanner console=new Scanner(System.in)
while (true) {
//提示输入待删除的学生的ID
System.out.printIn("请输入要删除的学生ID!");
 String ID=consolenext();
//判断该ID是否有对应的学生对象 Student st=students.get(ID); 
if(st== null) {
//提示输入的ID并不存在
System.out.println("该ID不存在!");
}}}
continue;
}
student.remove(ID);
 
System.out.println("成功删除学生:" +st.name); 
break;
}
/**
*通过entrySet方法来遍历Map*/
public void testEntrySet(){
//通过entrySet方法,返回Map中的所有键值对
Set<Entry<String,Student>>entrySet=studentsentrySet() 
for(Entry<String,Student> entryentrySet){
System.out.println("取得键:"+entrygetKey();
System.out.println("对应的值为:"+entry.getValue().name);
public static void main(String]args)
 MapTestmt=newMapTest(); 
mt.testPut(); 
mt.testKeySet(); 
mt.testRemove();
 mt.testEntrySet();
}
public void testModify() {
//提示输入要修改的学生ID
System.outprintln("请输入要修改的学生ID:");
//创建一个Scanner对象,去获取从键盘上输入的学生ID字符串 
Scanner console=new Scanner(System.in); while (true){
//取得从键盘输入的学生ID
String stuID=consolenext();
//从students中查找该学生ID对应的学生对象
 Student student=students.get(stuID); 
if(student == null) {
System.outprintln("该ID不存在!请重新输入!"); 
continue;
//提示当前对应的学生对象的姓名
System.out.println("当前该学生ID,所对应的学生为:"+studentname);//提示输入新的学生姓名,来修改已有的映射 
System.outprintln("请输入新的学生姓名:"); 
String name=consolenext();
Student newStudent=newStudent(stuIDname)
 students.put(stuID,newStudent);
 System.outprintln("修改成功!"); 
break;}
public static void main(String]args)
 MapTestmt=newMapTest(); 
mt.testPut(); 
mt.testKeySet(); 
mt.testRemove();
 mt.testEntrySet();
mt.test.Modify();
mt.test.EnterySet();
}
}

第六章 Java中的集合框架(下)

6-1 判断List中课程是否存在

 

*测试List的contains方法*1
public void testListContains(){//取得备选课程序列的第0个元素
Course course=coursesToSelectget(0);
//打印输出coursesToSelected是否包含course对象 System.outprintln("取得课程:"+coursename);
System.outprintln("备选课程中是否包含课程:"+course.name+""+
coursesToSelect.contains(course));
}
public static void main(Stringl] args){
SetTestst=new SetTest(); st.testAdd();
st.testForEach();//创建一个学生对象
Student student=new Student("1""小明");
System.outprintln("欢迎学生:"+student.name+"选课!");//创建一个Scanner对象,用来接收从键盘输入的课程ID Scanner console=new Scanner(System.in);
for(inti=0;i<3;i++){
System.outprintln("请输入课程ID");
// student.courses.add(null); 
// student.courses.add(cr); 
}
) I 
st.testForEachForSet(student)
 
public void testForEachForSet(Student student){
//打印输出,学生所选的课程!
System.out.println("共选择了:"+studentcourses.size()+"门课程!"); for (Course cr:student.courses){
System.outprintln("选择了课程:"+cr.id+":"+cr.name);
}

6-2 判断Set中课程是否存在

 

6-3 获取List中课程的位置

System.out.println("备选课程中是否包含课程:"+course.name+""+
coursesToSelect.contains(course));//提示输入课程名称
System.out.println("请输入课程名称:"); 
String name=consolenext();
//创建一个新的课程对象,ID和名称,与course对象完全一样 
Course course2=newCourse(); 
course2.name=name;
System.outprintln("新创建课程:"+course2.name);
System.out.println("备选课程中是否包含课程:"+course2.name+""+
coursesToSelectcontains(course2));//通过indexOf方法来取得某元素的索引位置 if(coursesToSelect.contains(course2))
System.out.println("课程:"+course2.name+I"的索引位置为:"+
coursesToSelect.indexOf(course2));}

 

6-4 判断Map中是否包含指定的key和value

/**
*测试Map中,是否包含某个Key值或者某个Value值
*/
public void testContainsKeyOrValue(){
//提示输入学生id
System.outprintln("请输入要查询的学生ID:"); 
Scanner console=new Scanner(System.in);
 String id=consolenext();
//在Map中,用containsKey()方法,来判断是否包含某个Key值
System.out.println("您输入的学生ID为:"+id+",在学生映射表中是否存在:
+students.containsKey(id)); 
if(students.containsKey(id))
System.outprintln("对应的学生为:"+students.get(id).name);//用containsValue()方法,来判断是否包含某个Value值}
public static void main(String]args)
 MapTestmt=newMapTest(); 
mt.testContainsKeyOrValue();
}}

6-5 应用Collections.sort()实现List排序

 

public void testSort1(){
List<Integer> integerList=newArrayList<Integer>()//插入十个100以内的不重复随机整数 Randomrandom=newRandom() 
Integer k;
for(inti=0;i<10;i++){
 do {
 k=randomnextInt(100);
}while(integerListcontains(k));
integerList.add(k); I 
System.out.println("成功添加整数:"+ k);
}
System.out.println("-------------排序前--------------");
 for (Integer integer:integerList){
System.out.println("元素:"+integer);
}
Collections.sort(integerList);
System.out.println("----------------排序后-------------------"); for (Integer integer:integerList){
System.out.println("元素:"+integer);
}
}
public static void main(Stringl]args){
CollectionsTest ct=new CollectionsTest(); 
ct.testSort1();}
}

 

/**
*2.对String泛型的List进行排序;
*/创建String泛型的List,添加三个乱序的String元素,*调用sort方法,再次输出排序后的顺序
public void testSort2() {
List<String> stringList=newArrayList<String>(); 
stringListadd("microsoft"); 
stringList.add("google");
 stringList.add("lenovo");
System.out.println("------------排序前-------------"); I 
for (String string:stringList)
{
 System.out.println("元素:"+ string);
}
}
System.out.println("----------------排序后-------------------"); 
for (Integer integer:integerList) {
System.out.println("元素:"+integer);

 

6-6 尝试对学生序列排序

/**
*3.对其他类型泛型的List进行排序,以Student为例。
*/
public void testSort3(){
List<Student> studentList=newArrayList<Student>() 
studentListadd(newStudent(1+"""小明"));
 studentListadd(new Student(2 +"""小红")) 
studentListadd(new Student(3+"","小兰"));
System.out.println("--------------排序前---------------"); 
for 
(Student student:studentList){
System.out.println("学生:"+studentname);
Collections.sort(studentList);
}

6-7 Comparable&Compartator

 

 

 6-8 实现学生序列排序

/**
*3.对其他类型泛型的List进行排序,以Student为例。
*/
public void testSort3(){
List<Student> studentList=newArrayList<Student>()
 Randomrandom=newRandom();
studentListadd(newStudent(randomnextInt(1000)+"" "Mike")); 
studentListadd(new Student(randomnextInt(1000) +"", "Angela")); 
studentList.add(new Student(random.nextInt(1000) + "", "Lucy")); 
System.out.println("--------------排序前---------------");
 for(Student student:studentList){
System.outprintln("学生:"+student.id+":"+student.name);
}
Collections.sort(studentList);
}
System.out.println("----------------排序后------------------"); 
for (Student student:studentList){
System.outprintln("学生:"+student.id +":"+ studentname);
}
public static void main(String[]args){
CollectionsTest ct=new CollectionsTest();
// ct.testSort1();
ct.testSort2();
 ct.testSort3();
}
}

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值