zoukankan      html  css  js  c++  java
  • 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类集中各类方法的调用,作为后期课程设计时的一个参考。

  • 相关阅读:
    fcc的高级算法题
    jq on方法绑定多个事件
    高效的jQuery代码编写技巧
    HTML 提高页面加载速度的方法
    link 和 import 导入外部样式的区别
    js将多个方法添加到window对象上的多种方法
    js 数组删去重复的加上没有的元素
    JS中定义对象原型的两种使用方法
    CSS 清除默认样式
    JavaScript中定义对象的四种方式 2012-5-10 15:19 阅读(0)
  • 原文地址:https://www.cnblogs.com/wxywxy/p/6815042.html
Copyright © 2011-2022 走看看