一、实现功能——模拟学生选课功能
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类集中各类方法的调用,作为后期课程设计时的一个参考。