java实现学生选课系统

 更新时间:2019年02月20日 08:40:38   作者:跌娣  
这篇文章主要为大家详细介绍了java实现学生选课系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文为大家分享了java实现学生选课系统的具体代码,供大家参考,具体内容如下

案例要求:

学生(学号,姓名,专业,所选课程{<3})
老师(工号,姓名,所教课程{<3})
课程(课程号,课程名,学分,教师,已选课学生{<30})

选课系统代码如下:

//teacher

public class Teacher {
 private int id;
 private String teacherName;
 private Course[] courses;
 //构造函数
 public Teacher() {
  super();
  courses= new Course[3];
 }
 public Teacher(int id,String teacherName){
  this.id=id;
  this.teacherName=teacherName;
  courses = new Course[3];
 }
 //修改或是添加属性
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id = id;
 }
 public String getTeacherName() {
  return teacherName;
 }
 public void setTeacherName(String teacherName) {
  this.teacherName = teacherName;
 }


}
/**
  * 课程
*/

public class Course {
 private String courseName;
 private int courseId;
 private Teacher teacher;
 private float credit;
 private Student[] students;
 //构造函数
 public Course(int courseId,String courseName,float credit,Teacher teacher) {
  super();
  this.courseId=courseId;
  this.courseName=courseName;
  this.credit=credit;
  this.setTeacher(teacher);
  students = new Student[30];
 }
 public Course(int courseId,String courseName,float credit) {
  super();
  this.courseId=courseId;
  this.courseName=courseName;
  this.credit=credit;
  students = new Student[30];
 }

 public Course(int courseId,String courseName) {
  super();
  this.courseId=courseId;
  this.courseName=courseName;
  students = new Student[30];
 }

 public Course() {//默认形式,要有以防万一
  super();
  students = new Student[30];
 }

 //修改或获取属性值id,name,credit,
 public void setId(int id){
  this.courseId=id;
 }
 public int getId(){
  return this.courseId;
 }
 public void setName(String name){
  this.courseName=name;
 }
 public String getName(){
  return this.courseName;
 }
 public void setCredit(float credit ){
  this.credit=credit;
 }
 public float getCredit(){
  return this.credit;
 }
 public Teacher getTeacher() {
  return teacher;
 }
 public void setTeacher(Teacher teacher) {
  this.teacher = teacher;
 }

 //课加入学生
 public boolean addStudent(Student stu){
  boolean flag = false;//标志值:是否加入成功
  //如果学生没有选过这门课,同时课的学生还没满则执行
  if(!isSelectedStudent(stu)&&isNullStudent(stu)){
   for(int i=0;i<students.length;i++){
    if(students[i]==null){
     students[i]=stu;
     flag=true;
     break;
    }
   }
  }
  return flag;
 }
 //课移除学生
 public boolean removeStudent(Student stu){
  boolean flag=false;
  if(isSelectedStudent(stu)){//选过这门课
   for(int i=0;i<students.length;i++){
    if(students[i]==stu){
     students[i]=null;
     flag=true;
     break;
    }
   }
  }
  return flag;
 }
 //显示选择课程的学生:
 public void displayStudent(){
  System.out.println("选择的课程:"+this.courseName+"的学生有:");
  for(Student s:students){
   if(s!=null){
    System.out.print(s.getStuName()+" ");
   }
  }
  System.out.println();
 }
 //子方法1:学生是否选过这门课
 public boolean isSelectedStudent(Student stu){
  boolean flag=false;
  for(Student s:students){//只能用于检查,不能修改
   if(s==stu){
    flag=true;
    break;
   }
  }
  return flag;
 }
 //子方法2:学科学生未达到限定人数吗
 public boolean isNullStudent(Student stu){
  boolean flag=false;
  for(Student s:students){
   if(s==null){//还有空位
    flag=true;
    break;
   }
  }
  return flag;
 }
 public static void main(String[] args) {
  // TODO Auto-generated method stub

 }


}
/**
 * 学生代码
 * @author Floris0811
 */
public class Student {
 private String stuName;
 private int stuId;
 private String major;
 private Course[] courses;
 //构造函数
 public Student() {//不要忘
  super();
  courses = new Course[3];
 }
 public Student(int stuId,String stuName) {
  super();
  this.stuId=stuId;
  this.stuName=stuName;
  courses = new Course[3];
 }
 public Student(int stuId,String stuName,String major) {
  super();
  this.stuId=stuId;
  this.stuName=stuName;
  this.major = major;
  courses = new Course[3];
 }
 //修改获取属性name,id,major
 public String getStuName() {
  return stuName;
 }

 public void setStuName(String stuName) {
  this.stuName = stuName;
 }
 public int getStuId() {
  return stuId;
 }
 public void setStuId(int stuId) {
  this.stuId = stuId;
 }
 public String getMajor() {
  return major;
 }
 public void setMajor(String major) {
  this.major = major;
 }
 //学生选课;
 public boolean addCourse(Course course){
  boolean flag=false;
  if(!isSelectedCourse(course)&&isNullCourse(course)){
   for(int i=0;i<this.courses.length;i++){
    if(courses[i]==null){
     courses[i]=course;
     course.addStudent(this);//课程也要添加学生
     flag=true;
     break;
    }
   }
  }
  return flag;
 }
 //学生移除课程
 public boolean removeCourse(Course course){
  boolean flag=false;
  if(isSelectedCourse(course)){
   for(int i=0;i<this.courses.length;i++){
    if(courses[i]==course){
     courses[i]=null;
     course.removeStudent(this);//在课程中移除学生
     flag=true;
     break;
    }
   }

  }
  return flag;
 }
 //显示学生所选的课程
 public void displayCourse(){
  System.out.println("学生"+this.stuName+"所选课程有:");
  for(Course c:courses){
   if(c!=null){
    System.out.print(c.getName()+" ");
   }
  }
  System.out.println();
 }

 //子方法1:课是否被选过
 public boolean isSelectedCourse(Course course){
  boolean flag=false;
  for(Course c:courses){
   if(c==course){
    flag=true;
    break;
   }
  }
  return flag;
 }
 //子方法2:学生是否还有选修课位置
 public boolean isNullCourse(Course course){
  boolean flag=false;
  for(Course c:courses){
   if(c==null){
    flag=true;
    break;
   }
  }
  return flag;
 }


}
package test;

public class ChooseCourseByStu {

 /**
  * 选课管理系统
  */
 public static void main(String[] args) {
  Student stu0 = new Student(1001,"Lily");
  Student stu1 = new Student(1002,"Eilly");
  Student stu2 = new Student(1003,"Floris");
  Student stu3 = new Student(1004,"HaHa");
  Course cour0 = new Course(001,"高数");
  Course cour1 = new Course(002,"线代");
  Course cour2 = new Course(003,"概率论");
  stu0.addCourse(cour0);
  stu0.addCourse(cour2);
  stu0.addCourse(cour1);
  stu1.addCourse(cour2);
  stu1.addCourse(cour0);
  stu2.addCourse(cour1);
  stu3.addCourse(cour0);
  stu3.addCourse(cour1);
  stu1.removeCourse(cour2);
  stu0.displayCourse();
  cour0.removeStudent(stu1);
  cour1.displayStudent();
 }

}

关于管理系统的更多内容请点击《管理系统专题》进行学习

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • java使用Abobe Acrobat DC生成模板

    java使用Abobe Acrobat DC生成模板

    这篇文章主要介绍了java使用Abobe Acrobat DC生成模板,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • Java多线程编程中的线程死锁的问题解决

    Java多线程编程中的线程死锁的问题解决

    线程死锁是多线程编程中的一个常见问题,它发生在多个线程互相等待对方释放资源的情况下,导致程序无法继续执行,本文就来介绍一下Java多线程编程中的线程死锁的问题解决,感兴趣的可以了解一下
    2023-08-08
  • Java工作队列代码详解

    Java工作队列代码详解

    这篇文章主要介绍了Java工作队列代码详解,涉及Round-robin 转发,消息应答(messageacknowledgments),消息持久化(Messagedurability)等相关内容,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • springboot封装JsonUtil,CookieUtil工具类代码实例

    springboot封装JsonUtil,CookieUtil工具类代码实例

    这篇文章主要介绍了springboot封装JsonUtil,CookieUtil工具类过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • idea maven 经常主目录自动变回默认的解决方法

    idea maven 经常主目录自动变回默认的解决方法

    很多朋友反映idea maven 经常主目录自动变回默认,遇到这样的问题真的很头疼,该如何解决呢?下面小编给大家介绍下idea maven目录变回默认的解决方法,需要的朋友可以参考下
    2022-08-08
  • IntelliJ IDEA 2020.2 配置大全详细图文教程(更新中)

    IntelliJ IDEA 2020.2 配置大全详细图文教程(更新中)

    这篇文章主要介绍了IntelliJ IDEA 2020.2 配置大全(更新中),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • Java Web之限制用户多处登录实例代码

    Java Web之限制用户多处登录实例代码

    本篇文章主要介绍了Java Web之限制用户多处登录实例代码,可以限制单个用户在多个终端登录。非常具有实用价值,需要的朋友可以参考下。
    2017-03-03
  • Java 十大排序算法之希尔排序刨析

    Java 十大排序算法之希尔排序刨析

    希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。本文会以图解的方式详细介绍希尔排序的基本思想及其代码实现
    2021-11-11
  • SpringBoot如何整合nacos详解

    SpringBoot如何整合nacos详解

    今天教各位小伙伴SpringBoot是如何整合nacos的,文中有非常详细的代码示例,对正在学习Java的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-06-06
  • JRebel2023.3 插件使用及安装步骤详解

    JRebel2023.3 插件使用及安装步骤详解

    JRebel是一款JVM插件,它使得Java代码修改后不用重启系统,立即生效,IDEA上原生是不支持热部署的,一般更新了 Java 文件后要手动重启 Tomcat 服务器,才能生效,浪费时间浪费生命,目前对于idea热部署最好的解决方案就是安装JRebel插件,本文分步骤介绍的非常详细,一起看看吧
    2023-08-08

最新评论