评论

收藏

[Java] java实现学生选课系统

编程语言 编程语言 发布于:2021-09-18 17:35 | 阅读数:318 | 评论:0

这篇文章主要为大家详细介绍了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();
 }
 
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持CodeAE代码之家
原文链接:https://blog.csdn.net/Floris_lovelace/article/details/80860470

关注下面的标签,发现更多相似文章