学校要求做个小作业,查了好多资料都找不到能参考的,只好自己写了一套,供给需要的同学进行参考。

仅供参考

编写一个基于命令行的选课系统,系统包含一个主菜单
//1、录入课程信息(可以反复多次录入多个课程信息)
//2、录入学生信息(可以反复多次录入多个学生信息)
//3、学生选课(显示所有课程信息列表,录入学号,课程编号,即可以完成选课操作)
//4、查询(输入学号,输出该学生学号、姓名,所选课程情况汇总列表,总学分总计,以及还需选修学分)
//5、退出系统
//数据主要内容如下
//课程信息--课程编号,课程名称,学分,授课老师名,已选课人数,课程容量。
//学生信息--学号、姓名、专业、所选课程,所选课程总学分,应选学分。

Main函数:

public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);Students student[] = new Students[100];//创建学生类数组用于存放学生信息List list = new ArrayList();//创建一个集合,用于存放课程信息的数组,无长度限制!!List list1 = new ArrayList();//创建一个集合,用于存放学生信息的数组,无长度限制!!List list2 = new ArrayList();//创建一个集合,用于存放学生所选的课程Course course[] = new Course[100];//创建课程类数组用于存放课程loop:while (true) {//主界面编写System.out.println("---------学生选课系统---------");System.out.println("\t\t1.录入学生信息     \t");System.out.println("\t\t2.录入课程信息    \t");System.out.println("\t\t3.学生选课界面\t");System.out.println("\t\t4.查询学生选课信息\t");System.out.println("\t\t5.退出该程序\t");System.out.println("-----\t请输入你需要的操作:\t----");String choose = sc.next();switch (choose) {case "1" -> add(student, list1);//1.录入学生信息   传入学生数组还有学生信息集合case "2" -> add1(course, list);//2.录入课程信息   传入课程数组还有课程信息集合case "3" -> Selection(course, student, list, list1, list2);//3.学生选课界面 把所有集合和数组传入case "4" -> check(course, student, list, list1, list2);//4.查询学生选课信息 把所有集合和数组传入case "5" -> {System.out.println("成功退出系统!");break loop;}default -> System.out.println("没有该选项!!请重新输入:");}}}}

方法区:

public class methods {// 增加学生基本信息public static Students addStudents() {Scanner sc = new Scanner(System.in);System.out.println("请输入学生的学号:");int id = sc.nextInt();Students s = new Students();s.setId(id);//设置学生idSystem.out.println("请输入学生姓名:");String name = sc.next();s.setName(name);System.out.println("请输入学生的专业:");String major = sc.next();s.setMajor(major);s.setScore1(20);//应选学分:20分s.setScore(0);//初始学分 0分s.setCourses("");//初始课程 无//这里先不录入学生选的课程 这个放在一个独立的方法中//所选学分和应选学分同理。在上面的方法加以计算System.out.println("添加成功");return s;}//课程信息--课程编号,课程名称,学分,授课老师名,已选课人数,课程容量。public static Course addCourse() {Scanner sc = new Scanner(System.in);System.out.println("请输入课程编号:");int id = sc.nextInt();Course s = new Course();s.setId(id);//设置学生idSystem.out.println("请输入课程名:");String name = sc.next();s.setName(name);System.out.println("请输入课程的学分:");int score = sc.nextInt();s.setScore(score);System.out.println("请输入授课老师名字:");String teacher = sc.next();s.setTeacher(teacher);System.out.println("请输入课程最大容纳学生人数:");int total = sc.nextInt();s.setTotal(total);//这这里先设置已选课人数为0已选课人数s.setMembers(0);//这里先不录入学生选的课程 这个放在一个独立的方法中//所选学分和应选学分同理。在上面的方法加以计算System.out.println("添加成功");return s;}//3、学生选课(显示所有课程信息列表,录入学号,课程编号,即可以完成选课操作)//方法需要传入各个数组和集合 要反复调用!public static void Selection(Course []course, Students student[], List list, List list1, List list2){Scanner sc = new Scanner(System.in);if(course[0] != null) {//简单的判断逻辑: 如果没有选课那么就要去录入//输出课程信息 方便使用者去看各个内容加以使用System.out.println("以下是所有课程信息,供参考选择");for (int i = 0; i < list.size(); i++) {System.out.println("编号"+course[i].getId()+" | "+course[i].getName() + " | 授课老师:" + course[i].getTeacher() + " | 课程学分:" + course[i].getScore() + "分 | 已选课人数:" + course[i].getMembers() + " | 允许选课人数:" + course[i].getTotal());}}else{System.out.println("当前没有课程录入,请去录入课程!");}//输出学生的信息 方便使用者看学号等信息if(student[0] != null) {//如果没有学生信息就要求去录入信息System.out.println("以下是所有学生信息,供参考选择");for (int i = 0; i < list1.size(); i++) {System.out.println("学号"+student[i].getId()+" | 学生姓名:"+student[i].getName() + " | 学生专业:" + student[i].getMajor() + " | 已选学分:" + student[i].getScore() + "分 | 应选:" + student[i].getScore1() + "分 | ");}}else{System.out.println("当前没有学生信息录入,请去录入课程!");}//开始选课,根据学生学号获取学生信息System.out.println("请输入需要录入课程的学生学号,以录入所选课程:");Integer m = sc.nextInt();//定义一个整形 以匹配学生类中所要应用的学生for (int i = 0; i < list1.size(); i++) {//遍历学生信息 获取所需的学生以进行操作if(m.equals(student[i].getId()) ){//student数组getId来匹配输入的参数,获得学生List studentList = new ArrayList();//创建一个数组,用于存放这个学生所选课程信息//在获得学生之后 接下来给这个学生选课System.out.println("请选择需要选择的课程编号:");Integer k = sc.nextInt();//定义一个整型 用于匹配for (int j = 0; j < list.size(); j++) {//之前在list里存放的课程信息 拿出来遍历if(k.equals(course[j].getId())){//匹配course[j].setMembers(course[j].getMembers()+1);//增加已选课人数String s;//定义一个字符串 方便后面输出与君s = student[i].getName()+"已选择"+course[j].getName();String s1;s1 = course[j].getName();//学生所选的课程list2.add(s);//往学生所选课数组里添加选课信息studentList.add(s1);//往对应学生数组里添加课程 ps:这是在方法里面定义的数组,专门用于存放这个方法中学生所选的课String s2;s2 = studentList.toString();//将上述集合转换成字符串类型,以便下面给学生所选的课参数赋值student[i].setCourses(student[i].getCourses()+s2);//设置学生类中所选课程student[i].setScore(student[i].getScore() + course[j].getScore());//设置学生所选的学分System.out.println(s);//xxx 已选择 xxx课System.out.println("选课完成!");}}}}}//添加学生的操作方法public static void add(Students[] student,List list1){Scanner sc = new Scanner(System.in);while(true){System.out.println("请录入学生信息:");student[list1.size()]=methods.addStudents();//通过集合的数量计数,往对应索引增加参数list1.add(student[list1.size()]);//往学生集合中存入学生数组的内容System.out.println("是否结束录入?结束请按0,按任意键继续录入:");int a = sc.nextInt();if(a==0){break;}}}//添加课程的操作方法public static void add1(Course[] course,List list){Scanner sc = new Scanner(System.in);while(true){System.out.println("请录入课程信息:");course[list.size()]=methods.addCourse();//从集合获取数组索引元素位置list.add(course[list.size()]);System.out.println("是否结束录入?结束请按0,按任意键继续录入:");int a = sc.nextInt();if(a==0){break;}}}//4、查询(输入学号,输出该学生学号、姓名,所选课程情况汇总列表,总学分总计,以及还需选修学分)public static void check(Course []course,Students student[],List list,List list1,List list2){if(student[0] != null) {//先简单判断是否录入学生信息System.out.println("以下是所有学生信息,供参考选择");for (int i = 0; i < list1.size(); i++) {//输出所有存在的学生信息 方便下文去看System.out.println("学号"+student[i].getId()+" | 姓名:"+student[i].getName() + " | 专业:" + student[i].getMajor() + " | 已选学分:" + student[i].getScore() + "分 | 应选:" + student[i].getScore1() + "分 | ");}}else{System.out.println("当前没有学生信息录入,请去录入课程!");}System.out.println("请输入学生学号,查询该学生的选课信息:");Scanner sc = new Scanner(System.in);Integer m = sc.nextInt();//定义一个整形 用于通过索引匹配对应的学生数组for (int i = 0; i <list1.size() ; i++) {if(m.equals(student[i].getId())) {String s = "学生学号:"+student[i].getId()+" | 学生姓名:"+student[i].getName()+" | 已选"+student[i].getScore()+"分";String s1 = "所选课程:"+student[i].getCourses();String s2 = "还需选择学分"+(student[i].getScore1()-student[i].getScore())+"分";System.out.println(s);//学生信息System.out.println(s1);//所选课程System.out.println(s2);//还需选择学分}}}}

定义的类:

public class Students {private int id;private String name;private String major;private String courses;private int score;//选的学分private int score1;//应选学分public Students() {}public Students(int id, String name, String major, String courses, int score, int score1) {this.id = id;this.name = name;this.major = major;this.courses = courses;this.score = score;this.score1 = score1;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getMajor() {return major;}public void setMajor(String major) {this.major = major;}public String getCourses() {return courses;}public void setCourses(String courses) {this.courses = courses;}public int getScore() {return score;}public void setScore(int score) {this.score = score;}public int getScore1() {return score1;}public void setScore1(int score1) {this.score1 = score1;}
}public class Course {private int id;private String name;private int score;private String Teacher;private int members;private int total;public Course() {}public Course(int id, String name, int score, String teacher, int members, int total) {this.id = id;this.name = name;this.score = score;Teacher = teacher;this.members = members;this.total = total;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getScore() {return score;}public void setScore(int score) {this.score = score;}public String getTeacher() {return Teacher;}public void setTeacher(String teacher) {Teacher = teacher;}public int getMembers() {return members;}public void setMembers(int members) {this.members = members;}public int getTotal() {return total;}public void setTotal(int total) {this.total = total;}
}

JAVA 控制台式简单学生选课系统相关推荐

  1. 简单学生选课系统之登录界面

    图片 代码: checkcode.jsp var code ; //在全局定义验证码 //产生验证码 function createCode(){code = ""; var co ...

  2. 简单学生选课系统之学生身份登录

    图片       代码: dofirstpage.jsp <%@ page language="java" contentType="text/html; char ...

  3. 基于JAVA+Swing+MYSQL的学生选课系统

    项目功能: 该系统主要包括学生和管理员两个用户角色 以学生角色登陆进去 学生可以查看自己的选修课情况 修改自己的个人信息 以管理员的角色登陆进去,管理员可以查看选修课的选修情况 增加选修课,查看学生的 ...

  4. java选课系统代码mysql_Java swing mysql实现的学生选课系统项目源码附带视频运行教程...

    大家好,今天给大家演示一下由Java swing实现的一款简单的学生选课系统,数据库采用的是mysql,实现了简单的选课功能,后面的课程中我们会出Java web版的学生选课系统,今天先看Java s ...

  5. (附源码)mysql+ssm学生选课系统 毕业设计 170920

     摘 要 本论文主要论述了如何使用JAVA语言开发一个学生选课系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发.在引言中,作者将论述学生选课系统的当前 ...

  6. ssm+mysql+ssm学生选课系统 毕业设计-附源码170920

    摘 要 本论文主要论述了如何使用JAVA语言开发一个学生选课系统,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发.在引言中,作者将论述学生选课系统的当前背 ...

  7. java学生选课系统课程设计报告_Java语言程序设计课程设计-学生选课系统

    <Java语言程序设计课程设计-学生选课系统>由会员分享,可在线阅读,更多相关<Java语言程序设计课程设计-学生选课系统(23页珍藏版)>请在人人文库网上搜索. 1.10届 ...

  8. 基于javaweb+mysql的学生选课系统(java+javaweb+jdbc)

    基于javaweb+mysql的学生选课系统(java+javaweb+jdbc) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myeclipse ...

  9. 基于javaweb的学生选课系统(java+javaweb+jdbc)

    基于javaweb的学生选课系统(java+javaweb+jdbc) 功能介绍: 用户菜单.学生管理.教师管理.课程管理.成绩排名查询 适用 课程设计,大作业,毕业设计,项目练习,学习演示等 //验 ...

最新文章

  1. [导入]JavaScript 滚动特效代码
  2. 在Repeater控件,Repeater1控件中都有FooterTemplate模板.但你在后台中如何去找FooterTemplate中的控件呢?...
  3. python怎么读取github_六行代码获取Github排名前10的Python项目
  4. 用c语言 c 做8位数奇校验,计算机硬件技术基础网上作业及答案
  5. 在Scala IDEA for Eclipse或IDEA里程序编译实现与在Spark Shell下的对比(其实就是那么一回事)...
  6. java 迭代器_Java中 ( Iterator ) 迭代器 详解 ( JDK8源码 )
  7. word提示“无法创建工作文件,请检查临时环境变量”的解决办法
  8. java同步异步的区别
  9. 苹果官网首页页面设计
  10. 计算机在职硕士 学什么,计算机在职研究生考什么科目为什么此专业比较强调数学呢...
  11. Unity自动设置keystore密匙库的信息
  12. 有道云笔记云端图片炸裂、无法显示及同步问题
  13. 【模拟电子技术Analog Electronics Technology 22】—— 负反馈放大电路的稳定、自激振荡现象的产生,分析
  14. 56个有效且健康的减肥小绝招
  15. 【gcc/g++】1.编译器, 编译过程和基本参数
  16. PostgreSQL数据库TableAM——HeapAM Parallel table scan
  17. 搭建spring-boot+vue前后端分离框架并实现登录功能
  18. 原生JS制作抽奖小游戏
  19. 创建型模式:工厂方法
  20. Spring Cloud GateWay系列(三):路由规则动态刷新

热门文章

  1. java开发环境搭建(一)
  2. 红轴和茶轴哪个适合游戏 红轴和茶轴哪个手感好
  3. #入坑keychron#火爆的keychron机械键盘,你还没有入手?【重点:附键盘选购建议】
  4. 学习FPGA的网站推荐
  5. 设置 XShell 的默认全局配色方案
  6. 安装过程中弹出错误信息,Xshell4提示nslicense.dll无法安装成功
  7. FCoin回来了?起死回生凭借何种“妙法”?
  8. 云服务器安装并配置nginx
  9. JS双引号转义,号切割
  10. 如何使用STM32和BLE收集SHT85传感器数据?