Java类集综合练习——信息管理(增、删、改、查)

一、实现功能——模拟学生选课功能

1.选择课程

2.修改所选课程

二、实现功能——模拟学生信息管理功能

1.添加学生信息

2.修改学生信息

二、主要代码(在同一个包里)

1.课程类

 1 public class Course 
 2 {
 3     private String id;
 4     private String name;
 5     public Course(){}
 6     public Course(String id,String name)
 7     {
 8         this.name = name;
 9         this.id = id;
10     }
11     public String getId()
12     {
13         return id;
14     }
15     public String getName()
16     {
17         return name;
18     }
19 }

2.学生类

 1 import java.util.HashSet;
 2 import java.util.Set;
 3 
 4 public class Student 
 5 {
 6     private String name;
 7     private String id;
 8     public Set<Course> courses;//Set类型属性——课程信息
 9     public Student(String name,String id)
10     {
11         this.name = name;
12         this.id = id;
13         this.courses = new HashSet<Course>();
14     }
15     public String getId()
16     {
17         return id;
18     }
19     public String getName()
20     {
21         return name;
22     }
23 }

3.增、删、改、查

 1 //添加、查询、删除
 2 import java.util.List;
 3 import java.util.ArrayList;
 4 import java.util.Arrays;
 5 
 6 public class ListTest
 7 {
 8     public List<Course> coursesToSelect;
 9     public ListTest()
10     {
11         this.coursesToSelect = new ArrayList<Course>();//List的重要实现类ArrayList
12     }
13     //添加课程方法
14     public void testAdd()
15     {
16         Course c1 = new Course("2","数据结构");
17         coursesToSelect.add(c1);//加入队列
18         //System.out.println("课程添加成功!");
19         Course temp = (Course) coursesToSelect.get(0);//类型强转,取出第1个对象
20         Course c2 = new Course("1","C语言");//加入队列并指定位置
21         coursesToSelect.add(0,c2);//加入队列,排在第二位
22         Course temp2 = (Course) coursesToSelect.get(0);//类型强转,取出第2个对象
23         //依次添加多门课程,用数组存放
24         Course[] course = {new Course("3","离散数学"),new Course("4","操作系统"),new Course("5","高等数学"),new Course("6","大学英语")};
25         coursesToSelect.addAll(Arrays.asList(course));
26         Course temp3 = (Course) coursesToSelect.get(2);
27         Course temp4 = (Course) coursesToSelect.get(3);
28         Course temp5 = (Course) coursesToSelect.get(4);
29         Course temp6 = (Course) coursesToSelect.get(5);
30     }
31     //查询课程
32     public void testGet()
33     {
34         int size = coursesToSelect.size();
35         System.out.println("请从以下课程中选课:");
36         for(int i=0;i<size;i++)
37         {
38             Course c = (Course) coursesToSelect.get(i);
39             System.out.println(c.getId() + ":" + c.getName());
40         }
41     }
42     //修改课程
43     public void testModify()
44     {
45         System.out.println("
修改课程后:");
46         coursesToSelect.set(3, new Course("4","马克思主义"));
47         testGet();
48     }
49     //删除课程
50     public void testRemove()
51     {
52         System.out.println("
删除课程后:");
53         coursesToSelect.remove(5);
54         testGet();
55     }
56     
57     public static void main(String[] args)
58     {
59         ListTest lt = new ListTest();
60         lt.testAdd();
61         lt.testGet();
62         lt.testModify();
63         lt.testRemove();
64     }
65 }

4.学生选课

import java.util.Scanner;

public class SetTest extends ListTest
{
    public static void main(String[] args) 
    {
        System.out.println("欢迎进入选课系统!");
        SetTest st = new SetTest();
        st.testAdd();
        st.testGet();
        
        Student s1 = new Student("1","Mary");
        Scanner console = new Scanner(System.in);
        for(int i=0;i<3;i++)
        {
            System.out.println("请输出课程ID:");
            String courseId = console.next();
            for(Course cr:st.coursesToSelect)
            {
                if(cr.getId().equals(courseId))
                {
                    s1.courses.add(cr);
                }
            }
        }
        for(Course cr:s1.courses)
        {
            System.out.println("选择了课程:"+cr.getId()+":"+cr.getName());
        }
    }

}

运行结果:

欢迎进入选课系统!
请从以下课程中选课:
1:C语言
2:数据结构
3:离散数学
4:操作系统
5:高等数学
6:大学英语
请输出课程ID:
2
请输出课程ID:
3
请输出课程ID:
1
选择了课程:1:C语言
选择了课程:3:离散数学
选择了课程:2:数据结构

5.添加学生

 1 import java.util.HashMap;
 2 import java.util.Map;
 3 import java.util.Scanner;
 4 import java.util.Set;
 5 
 6 public class MapTest
 7 {
 8     //用来承装学生类型的对象
 9     public Map<String,Student> students;
10     
11     public MapTest()
12     {
13         this.students = new HashMap<String,Student>();
14     }
15     public void testPut()
16     {
17         Scanner console = new Scanner(System.in);
18         int i=0;
19         while(i<3)
20         {
21             System.out.println("请输入学生ID:");
22             String ID = console.next();
23             Student st = students.get(ID);
24             if(st==null)
25             {
26                 System.out.println("请输入学生姓名:");
27                 String name = console.next();
28                 Student newStudent = new Student(ID,name);
29                 students.put(ID,newStudent);
30                 System.out.println("成功添加学生:" + students.get(ID).getName());
31                 i++;
32             }
33             else
34             {
35                 System.out.println("该学生ID已被占用!");
36                 continue;
37             }
38         }
39     }
40     public void testKeySet()
41     {
42         Set<String> keySet = students.keySet();//返回Map中所有键的集合
43         System.out.println("
总共有: " + students.size() + "名学生!
学生信息如下:");
44         for(String stuId:keySet)
45         {
46             Student st = students.get(stuId);
47             if(st!=null)
48             {
49                 System.out.println("学号:" + st.getId() + "  , 姓名:" + st.getName());
50             }
51         }
52     }
53     public static void main(String[] args)
54     {
55         MapTest mt = new MapTest();
56         mt.testPut();
57         mt.testKeySet();
58     }
59 }

运行结果:

请输入学生ID:
2015028601
请输入学生姓名:
Tom
成功添加学生:Tom
请输入学生ID:
2015028602
请输入学生姓名:
Mary
成功添加学生:Mary
请输入学生ID:
2015028603
请输入学生姓名:
Jack
成功添加学生:Jack

总共有: 3名学生!
学生信息如下:
学号:2015028602  , 姓名:Mary
学号:2015028603  , 姓名:Jack
学号:2015028601  , 姓名:Tom

6.删除学生

 1 public void testRemove()
 2     {
 3         Scanner console = new Scanner(System.in);
 4         while(true)
 5         {
 6             String ID = console.nextLine();
 7             Student st = students.get(ID);
 8             if(st==null)
 9             {
10                 System.out.println("该ID不存在!");
11                 continue;
12             }
13             students.remove(ID);
14             System.out.println("成功删除学生:"+st.getName());
15         }
16     }

以上的所有代码均是一个单独执行的程序,实现单一的功能,并没有整合起来组成一个成套的学生选课(或信息)管理系统,但程序组成的原理大同小异,都是对Java类集中各类方法的调用,作为后期课程设计时的一个参考。

原文地址:https://www.cnblogs.com/wxywxy/p/6815042.html