答案:设计Course类封装课程信息,通过CourseManager实现增删改查功能,使用ArrayList存储数据并提供菜单交互。

开发一个课程管理小系统,可以通过面向对象的方式组织代码,实现课程的增删改查功能。下面是一个简单的实现思路和示例代码,适合初学者理解Java基础语法和类的设计。
1. 设计课程类(Course)
每个课程应包含基本信息,如课程编号、课程名称、授课老师、学分等。
public class Course {
private String courseId;
private String courseName;
private String teacher;
private int credits;
public Course(String courseId, String courseName, String teacher, int credits) {
this.courseId = courseId;
this.courseName = courseName;
this.teacher = teacher;
this.credits = credits;
}
// Getter 和 Setter 方法
public String getCourseId() { return courseId; }
public void setCourseId(String courseId) { this.courseId = courseId; }
public String getCourseName() { return courseName; }
public void setCourseName(String courseName) { this.courseName = courseName; }
public String getTeacher() { return teacher; }
public void setTeacher(String teacher) { this.teacher = teacher; }
public int getCredits() { return credits; }
public void setCredits(int credits) { this.credits = credits; }
@Override
public String toString() {
return "课程编号:" + courseId +
",课程名称:" + courseName +
",教师:" + teacher +
",学分:" + credits;
}}
2. 创建课程管理系统(CourseManager)
使用ArrayList存储课程对象,提供添加、删除、修改、查询等功能。
立即学习“Java免费学习笔记(深入)”;
BJXSHOP购物管理系统是一个功能完善、展示信息丰富的电子商店销售平台;针对企业与个人的网上销售系统;开放式远程商店管理;完善的订单管理、销售统计、结算系统;强力搜索引擎支持;提供网上多种在线支付方式解决方案;强大的技术应用能力和网络安全系统 BJXSHOP网上购物系统 - 书店版,它具备其他通用购物系统不同的功能,有针对图书销售而进行开发的一个电子商店销售平台,如图书ISBN,图书目录
import java.util.ArrayList; import java.util.Scanner;public class CourseManager { private ArrayList
courses = new ArrayList<>(); private Scanner scanner = new Scanner(System.in); // 添加课程 public void addCourse() { System.out.print("输入课程编号:"); String id = scanner.nextLine(); System.out.print("输入课程名称:"); String name = scanner.nextLine(); System.out.print("输入授课老师:"); String teacher = scanner.nextLine(); System.out.print("输入学分:"); int credits = Integer.parseInt(scanner.nextLine()); Course course = new Course(id, name, teacher, credits); courses.add(course); System.out.println("课程添加成功!"); } // 查看所有课程 public void listCourses() { if (courses.isEmpty()) { System.out.println("暂无课程信息。"); } else { for (Course c : courses) { System.out.println(c); } } } // 根据课程编号查找课程 public Course findCourseById(String id) { for (Course c : courses) { if (c.getCourseId().equals(id)) { return c; } } return null; } // 删除课程 public void deleteCourse() { System.out.print("输入要删除的课程编号:"); String id = scanner.nextLine(); Course course = findCourseById(id); if (course != null) { courses.remove(course); System.out.println("课程删除成功!"); } else { System.out.println("未找到该课程!"); } } // 修改课程信息 public void updateCourse() { System.out.print("输入要修改的课程编号:"); String id = scanner.nextLine(); Course course = findCourseById(id); if (course == null) { System.out.println("未找到该课程!"); return; } System.out.print("输入新的课程名称(原:" + course.getCourseName() + "):"); String name = scanner.nextLine(); System.out.print("输入新的授课老师(原:" + course.getTeacher() + "):"); String teacher = scanner.nextLine(); System.out.print("输入新的学分(原:" + course.getCredits() + "):"); int credits = Integer.parseInt(scanner.nextLine()); course.setCourseName(name); course.setTeacher(teacher); course.setCredits(credits); System.out.println("课程信息更新成功!"); } // 主菜单 public void showMenu() { while (true) { System.out.println("\n--- 课程管理系统 ---"); System.out.println("1. 添加课程"); System.out.println("2. 查看所有课程"); System.out.println("3. 删除课程"); System.out.println("4. 修改课程"); System.out.println("5. 退出"); System.out.print("请选择操作:"); String choice = scanner.nextLine(); switch (choice) { case "1": addCourse(); break; case "2": listCourses(); break; case "3": deleteCourse(); break; case "4": updateCourse(); break; case "5": System.out.println("退出系统。"); return; default: System.out.println("无效选择,请重试。"); } } }}
3. 编写主程序入口
创建Main类启动系统。
public class Main {
public static void main(String[] args) {
CourseManager manager = new CourseManager();
manager.showMenu();
}
}
4. 进阶建议
这个系统目前数据保存在内存中,关闭程序后数据会丢失。可以考虑以下改进:
- 将课程数据保存到文件(如txt或CSV),下次启动时读取
- 使用集合框架更高效地管理数据,比如HashMap通过ID快速查找
- 加入输入校验,防止空值或重复课程编号
- 使用JavaFX或Swing开发图形界面
- 引入数据库(如SQLite)持久化存储
基本上就这些。通过这个小项目,你可以掌握类的设计、集合使用、控制台交互等Java核心技能。不复杂但容易忽略细节,比如空指针判断和用户输入处理。









