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

仅供参考

编写一个基于命令行的选课系统,系统包含一个主菜单
//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. ACMNO.2 输入一个华氏温度,要求输出摄氏温度。公式为 c=5(F-32)/9 输出要求有文字说明,取位2小数。 输入 一个华氏温度,浮点数 输出 摄氏温度,浮点两位小数
  2. [转]Shell脚本中发送html邮件的方法
  3. 发生系统错误 5 拒绝访问
  4. 基于Pytorch再次解析AlexNet现代卷积神经网络
  5. 学习java的知识体系路线
  6. 重构 pdf_三维温度场的重构方法,更准确地监测储能系统的电池堆内部温度
  7. 4、数据表的创建与更新
  8. python3 爬取网页表格例子
  9. Unity开发 MMORPG类游戏引导系统
  10. notebook常用快捷键
  11. 使用ADB 查看模拟器得日志,unity得日志 以及保存
  12. 我写了一个语音识别引擎
  13. Ten Rules of Good Studying
  14. autoconf使用环境
  15. 使用代码列出金庸小说中使用过的所有成语
  16. 12小时制转24小时制
  17. centos7升级内核重启问题:you need to load the kernel first
  18. 港科喜讯|香港科大再获[商科]评审全港第一!
  19. Python爬虫||BeautifulSoup4库-以小猪短租为例
  20. 【NLP】kaggle临床患者病历评分比赛baseline

热门文章

  1. oracle快速统计表条数_Oracle快速统计大表总记录数
  2. 国外问卷调查为什么这么热门?
  3. Android之修改短信程序
  4. Hive常用库表操作及知识汇总
  5. UTF8 中文占几个字节
  6. 信号完整性问题及其解决方法
  7. jQuery-什么是jQuery
  8. 简单实现mui-底部选项卡
  9. 关于最大公约数和最小公约数
  10. 小圆圈o表示的数学符号是复合映射或Hadamard积(矩阵元素一一对应相乘)