java模拟选课_模拟学生选课系统的练习

本文通过Java代码演示了一个简单的学生选课系统的设计,包括学生类Student和课程类Course,实现了学生选择多门课程,课程包含多个学生的功能。代码利用List作为容器,展示了面向对象思想和容器类的应用。
摘要由CSDN通过智能技术生成

学生选课系统是我们很常见的一种web应用程序,大家可以通过web登陆校园网,并且访问后台数据库,修改个人信息等方式进行选课,其实现原理大家可能并不是特别了解,下面这段代码则简单的将这个过程进行了一次演示,这不仅仅是一次简单的对选课系统的演示,也是对面向对象思想的一次实践,在整个过程中,用到了一些容器类,所以这段代码也是对容器类的一次整合应用和加深对List的体会,也同样是对分布式开发的一次尝试

选课系统的设计要求是:学生可以选择多门课程,课程也应该包含多个学生。

选课系统的设计思路是:分别创建学生类Student和课程类Course。学生类中包含课程列表和课程名称等属性;课程类中包含学生列表等属性

具体代码如下:

①:首先是创建Student类

public class Student {

private String name;                  //姓名

private String course;                //课程名称

private List courseList;      //课程队列

//实现对属性的封装

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getCourse() {

return course;

}

public void setCourse(String course) {

this.course = course;

}

public List getCourseList() {

return courseList;

}

public void setCourseList(List courseList) {

this.courseList = courseList;

}

//重写构造函数

public Student(String name)

{

this.setName(name);

this.setCourseList(new ArrayList());

}

//构造添加方法,对list进行添加行为

public void add(Course c)

{

this.courseList.add(c);

}

}

②:创建课程类:

public class Course {

private String name;                                    //课程名称

private float score;                                      //课程学分

private List studentList;               //学生队列

//实现属性的封装

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public float getScore() {

return score;

}

public void setScore(float score) {

this.score = score;

}

public List getStudentList() {

return studentList;

}

public void setStudentList(List studentList) {

this.studentList = studentList;

}

//重写构造函数

public Course(String name , float score)

{

this.setName(name);

this.setScore(score);

this.setStudentList(new ArrayList());

}

//构造田间函数,对list进行添加动作

public void add(Student s)

{

this.studentList.add(s);

}

}

③:创建测试类:

public class TestSelectCourse {

public static void main(String args[])

{

List c = new ArrayList();                //创建课程队列,并通过泛型进行限制

List s = new ArrayList();                //创建学生队列

//实例化出几个学生,模拟数据库中的学生档案

Student s1 = new Student("张三");

Student s2 = new Student("李四");

Student s3 = new Student("王五");

//  Student s4 = new Student("赵六");

//  Student s5 = new Student("嘎嘎");

//将初始化出的学生加入队列

s.add(s1);

s.add(s2);

s.add(s3);

//初始化几门课程,并添加到课程队列

Course c1 = new Course("课程一",2.0f);

Course c2 = new Course("课程二",2.5f);

Course c3 = new Course("课程三",3.0f);

c.add(c1);

c.add(c2);

c.add(c3);

//设置关系,不但将学生添加到所选课程中的学生队列了,而且还应该将课程也添加进学生的课程队列

s1.add(c1);

s1.add(c2);

c1.add(s1);

c2.add(s1);

s2.add(c3);

s2.add(c1);

c3.add(s2);

c1.add(s2);

s3.add(c2);

c2.add(s3);

//通过双循环进行对数据的遍历并在控制台中输出

Iterator iter = c.iterator();

while(iter.hasNext())

{

Course cc = iter.next();

System.out.println("课程信息:"+cc.getName());

Iterator iters = cc.getStudentList().iterator();

while(iters.hasNext())

{

Student ss = iters.next();

System.out.println("|-"+ss.getName());

}

}

System.out.println("********分**割**线*********");

Iterator iter1 = s.iterator();

while(iter1.hasNext())

{

Student ss1 = iter1.next();

System.out.println("学生信息:"+ss1.getName());

Iterator iterc1 = ss1.getCourseList().iterator();

while(iterc1.hasNext())

{

Course cc1 = iterc1.next();

System.out.println("|-"+cc1.getName());

}

}

}

}

运行结果如下:

课程信息:课程一

|-张三

|-李四

课程信息:课程二

|-张三

|-王五

课程信息:课程三

|-李四

********分**割**线*********

学生信息:张三

|-课程一

|-课程二

学生信息:李四

|-课程三

|-课程一

学生信息:王五

|-课程二

结果分析:

结果正确的完成了学生含有多门课程,课程含有多个学生的业务要求

posted on 2010-10-30 22:59 Soap MacTavish 阅读(366) 评论(0)  编辑  收藏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值