求Java学生选修课程系统设计

假定有n门课程,每门课程有:课程编号,课程名称,课程性质(公共课、必修课、选修课),总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。试设计选修课程系统,使之能提供以下功能:
1、系统以菜单方式工作
2、课程信息录入功能--输入
3、课程信息浏览功能--输出
4、课程信息查询功能--算法
查询方式
按学分查询
按课程性质查询
5、学生选修课程(可选项)

不知道是否符合,如果不符合,把需要的要求在此基础上说下

img


import java.util.ArrayList;
import java.util.Scanner;

class Course {
    String id;
    String name;
    String nature;
    int totalHours;
    int lectureHours;
    int labHours;
    int credit;
    int semester;

    public Course(String id, String name, String nature, int totalHours, int lectureHours, int labHours, int credit, int semester) {
        this.id = id;
        this.name = name;
        this.nature = nature;
        this.totalHours = totalHours;
        this.lectureHours = lectureHours;
        this.labHours = labHours;
        this.credit = credit;
        this.semester = semester;
    }
}

public class CourseSelectionSystem {
    static ArrayList<Course> courses = new ArrayList<>();
    static ArrayList<Course> selectedCourses = new ArrayList<>();
    static Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        while (true) {
            System.out.println("选修课程系统");
            System.out.println("1. 课程信息录入");
            System.out.println("2. 课程信息浏览");
            System.out.println("3. 课程信息查询");
            System.out.println("4. 学生选修课程");
            System.out.println("5. 退出系统");
            System.out.print("请选择: ");
            int choice = scanner.nextInt();
            switch (choice) {
                case 1:
                    addCourse();
                    break;
                case 2:
                    viewCourses();
                    break;
                case 3:
                    searchCourses();
                    break;
                case 4:
                    selectCourse();
                    break;
                case 5:
                    System.exit(0);
                default:
                    System.out.println("无效选择");
            }
        }
    }

    public static void addCourse() {
        System.out.print("课程编号: ");
        String id = scanner.next();
        System.out.print("课程名称: ");
        String name = scanner.next();
        System.out.print("课程性质 (公共课/必修课/选修课): ");
        String nature = scanner.next();
        System.out.print("总学时: ");
        int totalHours = scanner.nextInt();
        System.out.print("授课学时: ");
        int lectureHours = scanner.nextInt();
        System.out.print("实验或上机学时: ");
        int labHours = scanner.nextInt();
        System.out.print("学分: ");
        int credit = scanner.nextInt();
        System.out.print("开课学期: ");
        int semester = scanner.nextInt();

        Course course = new Course(id, name, nature, totalHours, lectureHours, labHours, credit, semester);
        courses.add(course);
    }

    public static void viewCourses() {
        for (Course course : courses) {
            System.out.println(course.id + " " + course.name + " " + course.nature + " " + course.totalHours + " " + course.lectureHours + " " + course.labHours + " " + course.credit + " " + course.semester);
        }
    }

    public static void searchCourses() {
        System.out.println("1. 按学分查询");
        System.out.println("2. 按课程性质查询");
        System.out.print("请选择查询方式: ");
        int choice = scanner.nextInt();
        if (choice == 1) {
            System.out.print("输入学分: ");
            int credit = scanner.nextInt();
            for (Course course : courses) {
                if (course.credit == credit) {
                    System.out.println(course.id + " " + course.name + " " + course.nature + " " + course.totalHours + " " + course.lectureHours + " " + course.labHours + " " + course.credit + " " + course.semester);
                }
            }
        } else if (choice == 2) {
            System.out.print("输入课程性质 (公共课/必修课/选修课): ");
            String nature = scanner.next();
            for (Course course : courses) {
                if (course.nature.equals(nature)) {
                    System.out.println(course.id + " " + course.name + " " + course.nature + " " + course.totalHours + " " + course.lectureHours + " " + course.labHours + " " + course.credit +course.semester);
                }
            }
        } else {
            System.out.println("无效选择");
        }
    }

    public static void selectCourse() {
        int totalCredit = 0;
        for (Course course : selectedCourses) {
            totalCredit += course.credit;
        }
        if (totalCredit >= 60) {
            System.out.println("已选学分不得少于60");
            return;
        }
        System.out.print("输入课程编号: ");
        String id = scanner.next();
        for (Course course : courses) {
            if (course.id.equals(id)) {
                selectedCourses.add(course);
                System.out.println("选课成功");
                return;
            }
        }
        System.out.println("未找到课程");
    }
}

https://download.csdn.net/download/l33364/10181379 参考下

以下是一个Java学生选修课程系统设计的示例,可以用作参考:

Course.java (课程类)

public class Course {
    private String courseCode;
    private String courseName;
    private String courseType;
    private int totalHours;
    private int lectureHours;
    private int labHours;
    private int credit;
    private String semester;

    public Course(String courseCode, String courseName, String courseType, int totalHours, int lectureHours, int labHours, int credit, String semester) {
        this.courseCode = courseCode;
        this.courseName = courseName;
        this.courseType = courseType;
        this.totalHours = totalHours;
        this.lectureHours = lectureHours;
        this.labHours = labHours;
        this.credit = credit;
        this.semester = semester;
    }

    // getters and setters
}

CourseManagementSystem.java (选修课程系统类)

import java.util.ArrayList;
import java.util.Scanner;

public class CourseManagementSystem {
    private ArrayList<Course> courses;

    public CourseManagementSystem() {
        courses = new ArrayList<Course>();
    }

    public void run() {
        Scanner scanner = new Scanner(System.in);
        int choice;
        do {
            System.out.println("1. 输入课程信息");
            System.out.println("2. 浏览课程信息");
            System.out.println("3. 按学分查询课程信息");
            System.out.println("4. 按课程性质查询课程信息");
            System.out.println("5. 选修课程");
            System.out.println("0. 退出");
            System.out.print("请选择功能:");
            choice = scanner.nextInt();
            switch (choice) {
                case 1:
                    inputCourseInfo();
                    break;
                case 2:
                    displayCourseInfo();
                    break;
                case 3:
                    searchCourseByCredit();
                    break;
                case 4:
                    searchCourseByType();
                    break;
                case 5:
                    selectCourses();
                    break;
                case 0:
                    System.out.println("谢谢使用!");
                    break;
                default:
                    System.out.println("无效的选择!");
            }
            System.out.println();
        } while (choice != 0);
    }

    private void inputCourseInfo() {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入课程编号:");
        String courseCode = scanner.nextLine();
        System.out.print("请输入课程名称:");
        String courseName = scanner.nextLine();
        System.out.print("请输入课程性质:");
        String courseType = scanner.nextLine();
        System.out.print("请输入总学时:");
        int totalHours = scanner.nextInt();
        System.out.print("请输入授课学时:");
        int lectureHours = scanner.nextInt();
        System.out.print("请输入实验或上机学时:");
        int labHours = scanner.nextInt();
        System.out.print("请输入学分:");
        int credit = scanner.nextInt();
        System.out.print("请输入开课学期:");
        String semester = scanner.nextLine();
        Course course = new Course(courseCode, courseName, courseType, totalHours, lectureHours, labHours, credit, semester);
        courses.add(course);
        System.out.println("课程信息已保存!");
    }

    private void displayCourseInfo() {
        for (Course course : courses) {
            System.out.println("课程编号:" + course.getCourseCode());
            System.out.println("课程名称:" + course.getCourseName());
            System.out.println("课程性质:" + course.getCourseType());
            System.out.println("总学时:" + course.getTotalHours());
            System.out.println("授课学时:" + course.getLectureHours());
            System.out.println("实验或上机学时:" + course.getLabHours());
            System.out.println("学分:" + course.getCredit());
            System.out.println("开课学期:" + course.getSemester());
            System.out.println();
        }
    }

    private void queryCourseByCredit() {
      Scanner scanner = new Scanner(System.in);
      System.out.print("请输入学分下限:");
      int minCredit = scanner.nextInt();

      System.out.print("请输入学分上限:");
      int maxCredit = scanner.nextInt();

      System.out.println("符合条件的课程信息如下:");
      System.out.println("课程编号\t课程名称\t课程性质\t总学时\t授课学时\t实验/上机学时\t学分\t开课学期");
      for (Course course : courses) {
        if (course.getCredit() >= minCredit && course.getCredit() <= maxCredit) {
            System.out.println(course.getCourseCode() + "\t" + course.getCourseName() + "\t"
                    + course.getCourseType() + "\t" + course.getTotalHours() + "\t" + course.getLectureHours()
                    + "\t" + course.getLabHours() + "\t" + course.getCredit() + "\t" + course.getSemester());
          }
      }
  }
}

import java.util.ArrayList;
import java.util.Scanner;

public class CourseSystem {
    
    // 定义课程类
    static class Course {
        String id;         // 课程编号
        String name;       // 课程名称
        String type;       // 课程性质
        int totalTime;     // 总学时
        int teachTime;     // 授课学时
        int labTime;       // 实验或上机学时
        double credit;     // 学分
        String semester;   // 开课学期
        
        // 构造函数
        public Course(String id, String name, String type, int totalTime, int teachTime, int labTime, double credit, String semester) {
            this.id = id;
            this.name = name;
            this.type = type;
            this.totalTime = totalTime;
            this.teachTime = teachTime;
            this.labTime = labTime;
            this.credit = credit;
            this.semester = semester;
        }
        
        // 输出课程信息
        public void show() {
            System.out.println("课程编号:" + id);
            System.out.println("课程名称:" + name);
            System.out.println("课程性质:" + type);
            System.out.println("总学时:" + totalTime);
            System.out.println("授课学时:" + teachTime);
            System.out.println("实验或上机学时:" + labTime);
            System.out.println("学分:" + credit);
            System.out.println("开课学期:" + semester);
        }
    }
    
    // 定义课程列表
    static ArrayList<Course> courses = new ArrayList<Course>();
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (true) {
            System.out.println("请选择要进行的操作:");
            System.out.println("1. 录入课程信息");
            System.out.println("2. 浏览课程信息");
            System.out.println("3. 按学分查询课程信息");
            System.out.println("4. 按课程性质查询课程信息");
            System.out.println("5. 学生选修课程(暂未实现)");
            System.out.println("0. 退出系统");
            
            int choice = scanner.nextInt();
            switch (choice) {
                case 1:
                    addCourse(scanner);
                    break;
                case 2:
                    showCourses();
                    break;
                case 3:
                    searchByCredit(scanner);
                    break;
                case 4:
                    searchByType(scanner);
                    break;
                case 5:
                    System.out.println("该功能暂未实现");
                    break;
                case 0:
                    System.out.println("谢谢使用!");
                    return;
                default:
                    System.out.println("输入有误,请重新选择!");
                    break;
            }
        }
    }
    
    // 录入课程信息
   private void addCourse() {
        System.out.print("请输入课程编号:");
        String id = scanner.nextLine();
        System.out.print("请输入课程名称:");
        String name = scanner.nextLine();
        System.out.print("请输入课程性质(公共课、必修课、选修课):");
        String type = scanner.nextLine();
        System.out.print("请输入总学时:");
        int totalHours = scanner.nextInt();
        scanner.nextLine();
        System.out.print("请输入授课学时:");
        int lectureHours = scanner.nextInt();
        scanner.nextLine();
        System.out.print("请输入实验或上机学时:");
        int experimentHours = scanner.nextInt();
        scanner.nextLine();
        System.out.print("请输入学分:");
        double credit = scanner.nextDouble();
        scanner.nextLine();
        System.out.print("请输入开课学期:");
        String semester = scanner.nextLine();

        Course course = new Course(id, name, type, totalHours, lectureHours, experimentHours, credit, semester);
        courseList.add(course);

        System.out.println("添加成功!");
    }

    private void showCourseList() {
        if (courseList.isEmpty()) {
            System.out.println("课程列表为空!");
            return;
        }

        for (Course course : courseList) {
            System.out.println(course);
        }
    }

    private void searchByCredit() {
        System.out.print("请输入学分下限:");
        double minCredit = scanner.nextDouble();
        scanner.nextLine();
        System.out.print("请输入学分上限:");
        double maxCredit = scanner.nextDouble();
        scanner.nextLine();

        boolean found = false;
        for (Course course : courseList) {
            if (course.getCredit() >= minCredit && course.getCredit() <= maxCredit) {
                System.out.println(course);
                found = true;
            }
        }