假定有n门课程,每门课程有:课程编号,课程名称,课程性质(公共课、必修课、选修课),总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。试设计选修课程系统,使之能提供以下功能:
1、系统以菜单方式工作
2、课程信息录入功能--输入
3、课程信息浏览功能--输出
4、课程信息查询功能--算法
查询方式
按学分查询
按课程性质查询
5、学生选修课程(可选项)
不知道是否符合,如果不符合,把需要的要求在此基础上说下
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;
}
}