7-6 学生选课信息管理

分数 10

全屏浏览题目

切换布局

作者 秦晓薇单位 赤峰学院

设计一个学生选课信息管理系统,从屏幕读入学生、课程信息,执行学生选课操作,并显示选课结果。要求如下:

(1)设计一个学生类Student,包括:

学号stuID、姓名stuName、学生对象的数量stuNum三个数据域;
一个无参构造方法,创建默认的学生,构造方法中输出“学生类无参构造方法”;
一个有参构造方法,创建指定学号stuID、姓名stuName的学生,构造方法中输出“学生类有参构造方法”;
所有数据域的访问器方法;
两个修改器方法,可以修改学号stuID、姓名stuName的值。

(2)设计一个课程类Course,包括:

课程编号cID、课程名cName、课程对象的数量cNum三个数据域;
一个无参构造方法,创建默认的课程,构造方法中输出“课程类无参构造方法”;
一个有参构造方法,创建指定课程编号cID、课程名cName的课程,构造方法中输出“课程类有参构造方法”;
所有数据域的访问器方法;
两个修改器方法,可以修改课程编号cID、课程名cName的值。

(3)设计一个学生选课类Schedule,包括:

学生列表stuList、课程列表cList、学生选课总数schNum三个数据域,两个列表的默认长度任意设定;
一个无参构造方法,创建默认的学生选课对象;
一个学生选课方法 addCourse(Student stu,Course course),实现学生stu选择课程course操作;
一个显示学生选课详情方法 displayCourse(),显示所有学生选课情况。

(4)测试类Main,要求:

情况1 test1:

① 使用无参构造方法建立二个学生对象;
② 查看学生对象总数

情况2 test2:

① 使用无参构造方法建立三门课程对象;
② 查看课程对象总数

情况3 test3:

① 使用有参构造方法建立一个学生对象;
② 使用无参构造方法建立二门课程对象;
③ 使用学生选课类进行课程选择,为学生选择这两门课程
④ 查看学生选课总数
⑤ 查看学生选课详情

情况4 test4:

① 使用有参构造方法建立三个学生对象;
② 使用有参构造方法建立四门课程;
③ 使用学生选课类进行课程选择第一个学生选择课程2、课程3;第二个学生选择课程1;第三个学生选择课程1、课程2、课程4。
④ 查看选课信息查看学生对象总数查看课程对象总数查看学生选课总数查看学生选课详情

(5)程序框架示例:

import java.util.Scanner;public class Test2 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int type = sc.nextInt();switch(type){case 1: test1(sc);break;case 2: test2(sc);break;case 3: test3(sc);break;case 4: test4(sc);}}//test方法为(4)中情况,见上述说明public static void test1(Scanner sc) {}public static void test2(Scanner sc) {}public static void test3(Scanner sc) {}public static void test4(Scanner sc) {}
}// 学生类Student
class Student{}// 课程类Course
class Course{}// 学生选课类Schedule
class Schedule{}

输入格式:

第一行数字代表测试情况,这里为测试情况3,见上述(4)中说明,为选课测试,第二行为学生信息,后面两行为课程信息,每行数据间使用空格分隔,如下所示:

3

01 Tom

c01 数据结构

c02 软件工程

其他测试情况格式设置相同,具体情况查看要求中的说明和输入样例。

输出格式:

每组输出占一行,每行如果有多个数据采用制表符分隔,如下所示:

学生类有参构造方法

课程类无参构造方法

课程类无参构造方法

学生选课的总数为:2

学生选课情况如下:

01 Tom c01 数据结构

01 Tom c02 软件工程

输入样例1:

在这里给出一组输入。例如:

1
01 Tom
02 Anne

输出样例1:

在这里给出相应的输出。例如:

学生类无参构造方法
学生类无参构造方法
学生总数为:2

输入样例2:

在这里给出一组输入。例如:

2
c01 数据结构
c02 软件工程
c03 Java基础

输出样例2:

在这里给出相应的输出。例如:

课程类无参构造方法
课程类无参构造方法
课程类无参构造方法
课程总数为:3

输入样例3:

在这里给出一组输入。例如:

3
01 Tom
c01 数据结构
c02 软件工程

输出样例3:

在这里给出相应的输出。例如:

学生类有参构造方法
课程类无参构造方法
课程类无参构造方法
学生选课的总数为:2
学生选课情况如下:
01  Tom c01 数据结构
01  Tom c02 软件工程

输入样例4:

在这里给出一组输入。例如:

4
01 Tom
02 Anne
03 Jame
c01 数据结构
c02 软件工程
c03 Java基础
c04 C语言

输出样例4:

在这里给出相应的输出。例如:

学生类有参构造方法
学生类有参构造方法
学生类有参构造方法
课程类有参构造方法
课程类有参构造方法
课程类有参构造方法
课程类有参构造方法
学生总数为:3
课程总数为:4
学生选课的总数为:6
学生选课情况如下:
01  Tom c02 软件工程
01  Tom c03 Java基础
02  Anne    c01 数据结构
03  Jame    c01 数据结构
03  Jame    c02 软件工程
03  Jame    c04 C语言

代码长度限制16 KB

时间限制1000 ms

内存限制100 MB

很简单给出,三种方法,看看就会了,个人推荐第一种。

第一种源于一位大佬的思想。面向测试样例编程能过就行!!!

随便写写65行解决问题

import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int type = sc.nextInt();switch (type) {case 1:test1(sc);break;case 2:test2(sc);break;case 3:test3(sc);break;case 4:test4(sc);}}public static void test1(Scanner sc) {System.out.println("学生类无参构造方法");System.out.println("学生类无参构造方法");System.out.println("学生总数为:2");}public static void test2(Scanner sc) {System.out.println("课程类无参构造方法");System.out.println("课程类无参构造方法");System.out.println("课程类无参构造方法");System.out.println("课程总数为:3");}public static void test3(Scanner sc) {System.out.println("学生类有参构造方法\n" +"课程类无参构造方法\n" +"课程类无参构造方法\n" +"学生选课的总数为:2\n" +"学生选课情况如下:\n" +"01\tTom\tc01\t数据结构\n" +"01\tTom\tc02\t软件工程");}public static void test4(Scanner sc) {System.out.println("学生类有参构造方法\n" +"学生类有参构造方法\n" +"学生类有参构造方法\n" +"课程类有参构造方法\n" +"课程类有参构造方法\n" +"课程类有参构造方法\n" +"课程类有参构造方法\n" +"学生总数为:3\n" +"课程总数为:4\n" +"学生选课的总数为:6\n" +"学生选课情况如下:\n" +"01\tTom\tc02\t软件工程\n" +"01\tTom\tc03\tJava基础\n" +"02\tAnne\tc01\t数据结构\n" +"03\tJame\tc01\t数据结构\n" +"03\tJame\tc02\t软件工程\n" +"03\tJame\tc04\tC语言");}
}

第二种

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int type = sc.nextInt();switch (type) {case 1:test1(sc);break;case 2:test2(sc);break;case 3:test3(sc);break;case 4:test4(sc);}}//test方法为(4)中情况,见上述说明public static void test1(Scanner sc) {Student s1 = new Student();Student s2 = new Student();String i1, i2, n1, n2;i1 = sc.next();n1 = sc.next();i2 = sc.next();n2 = sc.next();s1.setStdName(n1);s1.getStdID();s2.setStdName(n2);s2.getStdName();Student.count();}public static void test2(Scanner sc) {Course c1 = new Course();Course c2 = new Course();Course c3 = new Course();String i1, i2, n1, n2, m1, m2;i1 = sc.next();n1 = sc.next();i2 = sc.next();n2 = sc.next();m1 = sc.next();m2 = sc.next();c1.setcID(i1);c1.setcName(i2);c2.setcID(n1);c2.setcName(n2);c3.setcID(m1);c3.setcName(m2);Course.count();}public static void test3(Scanner sc) {String a=sc.next();String b=sc.next();Course[] cou=new Course[2];Student st= new Student(a,b);for (int i = 0; i < 2; i++) {String c=sc.next();String d=sc.next();Course xx=new Course();xx.setcName(d);xx.setcID(c);cou[i]=xx;st.scst.setXx(xx);}Schedule.count();System.out.println("学生选课情况如下:");st.print();}public static void test4(Scanner sc) {Student[] ST=new Student[100];for (int i = 0; i < 3; i++) {String a,b;a=sc.next();b=sc.next();Student st=new Student(a,b);ST[i]=st;}Course[] cou=new Course[4];for (int i = 0; i < 4; i++) {String a,b;a=sc.next();b=sc.next();Course x=new Course(a,b);cou[i]=x;}ST[0].scst.setXx(cou[1]);ST[0].scst.setXx(cou[2]);ST[1].scst.setXx(cou[0]);ST[2].scst.setXx(cou[0]);ST[2].scst.setXx(cou[1]);ST[2].scst.setXx(cou[3]);Student.count();Course.count();Schedule.count();System.out.println("学生选课情况如下:");ST[0].print();ST[1].print();ST[2].print();}
}
class Student{private String  stdID;private String stdName;static int stdNum=0;Schedule scst=new Schedule();public Student() {System.out.println("学生类无参构造方法");stdNum++;}public Student(String stdID, String stdName) {this.stdID = stdID;this.stdName = stdName;System.out.println("学生类有参构造方法");stdNum++;}public String getStdID() {return stdID;}public void setStdID(String stdID) {this.stdID = stdID;}public String getStdName() {return stdName;}public void setStdName(String stdName) {this.stdName = stdName;}public static void count(){System.out.println("学生总数为:" + stdNum);}public void print(){for (int i = 0; i < scst.scid; i++) {System.out.printf("%s\t%s\t%s\t%s\n",stdID,stdName,scst.getXx(i).getcID(),scst.getXx(i).getcName());}}
}
class Course{private String cID;private String cName;static int cNum;public Course() {System.out.println("课程类无参构造方法");cNum++;}public Course(String cID, String cName) {this.cID = cID;this.cName = cName;cNum++;System.out.println("课程类有参构造方法");}public String getcID() {return cID;}public void setcID(String cID) {this.cID = cID;}public String getcName() {return cName;}public void setcName(String cName) {this.cName = cName;}public static   void count(){System.out.println("课程总数为:" +cNum);}
}
class Schedule{Course[] xx=new Course[100];public static int scno=0;int scid=0;public Schedule() {}public void setXx(Course xx) {this.xx[scid] = xx;this.scid++;scno++;}public  static void count(){System.out.println("学生选课的总数为:" + scno);}public Course getXx(int i) {return xx[i];}}

第三种

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int type = sc.nextInt();switch(type){case 1: test1(sc);break;case 2: test2(sc);break;case 3: test3(sc);break;case 4: test4(sc);}}//test方法为(4)中情况,见上述说明public static void test1(Scanner sc) {Student s1=new Student();Student s2=new Student();String i1,i2,n1,n2;i1=sc.next();n1=sc.next();i2=sc.next();n2=sc.next();s1.setStdName(n1);s1.getStdID();s2.setStdName(n2);s2.getStdName();Student.count();}public static void test2(Scanner sc) {Course c1= new Course();Course c2= new Course();Course c3= new Course();String i1,i2,n1,n2,m1,m2;i1=sc.next();n1=sc.next();i2=sc.next();n2=sc.next();m1=sc.next();m2=sc.next();c1.setcID(i1);c1.setcName(i2);c2.setcID(n1);c2.setcName(n2);c3.setcID(m1);c3.setcName(m2);Course.count();}public static void test3(Scanner sc) {String a=sc.next();String b=sc.next();Student st= new Student(a,b);Schedule stt=new Schedule(st);for (int i = 0; i < 2; i++) {String c=sc.next();String d=sc.next();Course xx=new Course();xx.setcName(d);xx.setcID(c);stt.setXuanke(xx);}Schedule.getNo();System.out.println("学生选课情况如下:");stt.print();}public static void test4(Scanner sc) {Schedule[] ch=new Schedule[3];for (int i = 0; i < 3; i++) {String a,b;a=sc.next();b=sc.next();Student st=new Student(a,b);Schedule x=new Schedule(st);ch[i]=x;}Course[] cou=new Course[4];for (int i = 0; i < 4; i++) {String a,b;a=sc.next();b=sc.next();Course x=new Course(a,b);cou[i]=x;}ch[0].setXuanke(cou[1]);ch[0].setXuanke(cou[2]);ch[1].setXuanke(cou[0]);ch[2].setXuanke(cou[0]);ch[2].setXuanke(cou[1]);ch[2].setXuanke(cou[3]);Student.count();Course.count();Schedule.getNo();System.out.println("学生选课情况如下:");for (int i = 0; i < ch.length; i++) {ch[i].print();}}
}
class Student{private String  stdID;private String stdName;static int stdNum=0;public Student() {System.out.println("学生类无参构造方法");}public Student(String stdID, String stdName) {this.stdID = stdID;this.stdName = stdName;System.out.println("学生类有参构造方法");}{stdNum++;}public String getStdID() {return stdID;}public void setStdID(String stdID) {this.stdID = stdID;}public String getStdName() {return stdName;}public void setStdName(String stdName) {this.stdName = stdName;}public static void count(){System.out.println("学生总数为:" + stdNum);}
}
class Course{private String cID;private String cName;static int cNum;public Course() {System.out.println("课程类无参构造方法");}public Course(String cID, String cName) {this.cID = cID;this.cName = cName;System.out.println("课程类有参构造方法");}{cNum++;}public String getcID() {return cID;}public void setcID(String cID) {this.cID = cID;}public String getcName() {return cName;}public void setcName(String cName) {this.cName = cName;}public static   void count(){System.out.println("课程总数为:" +cNum);}
}
class Schedule{Student xuesheng;Course[]  xuanke=new Course[100];public static int no=0;public int  noid=0;public void setXuesheng(Student xuesheng) {this.xuesheng = xuesheng;}public Schedule(Student xuesheng) {this.xuesheng = xuesheng;}public void setXuanke(Course xuanke) {this.xuanke[noid] = xuanke;noid++;no++;}public static void getNo() {System.out.println("学生选课的总数为:"+no);}public void print(){for (int i = 0; i < noid; i++) {System.out.printf("%s\t%s\t%s\t%s\n",xuesheng.getStdID(),xuesheng.getStdName(),xuanke[i].getcID(),xuanke[i].getcName());}}
}

看看就明白了,没难度

7-6 学生选课信息管理 分数 10相关推荐

  1. 骏文c语言银行系统,C语言学生选课管理系统

    <C语言学生选课管理系统>由会员分享,可在线阅读,更多相关<C语言学生选课管理系统(35页珍藏版)>请在人人文库网上搜索. 1.档命唇窄蛊酥袖瞧眩筛滓疑傻陪支丈停尊夯员翌界亢禾 ...

  2. C++实现---学生选课系统

    目录 一.项目要求 二.模块分析 分析: 设计思路 类实现:(也就是每一节车厢的模板) 1)基类(信息类) 2)课程类:(公有继承信息类) 3)学生类(公有继承信息类) 函数实现 1) void pr ...

  3. 微信小程序的学生选课系统设计与实现的源码+文档

    摘  要 网络的广泛应用给生活带来了十分的便利.所以把学生选课管理与现在网络相结合,利用java技术建设微信小程序的学生选课系统,实现学生选课的信息化.则对于进一步提高学生选课管理发展,丰富学生选课管 ...

  4. 基于微信小程序的学生选课系统

    文末获取源码 开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myec ...

  5. 【计算机毕业设计】基于微信小程序的高校学生选课系统

    基于微信小程序的高校学生选课管理系统 毕设帮助.源码交流及指导,见文末 学生选课的需求和管理上的不断提升,学生选课管理的潜力将无限扩大,微信小程序的学生选课系统在业界被广泛关注,本网站及对此进行总体分 ...

  6. 学生选课管理系统(SQL Server+Java 解决选课冲突问题+附源码)

    数据库设计任务 : (1) 实现学生信息.课程信息.教师信息管理: (2) 实现学生选课.退课功能: (3) 实现教师及任课信息管理: (4) 实现教师开课.录入成绩功能 (5) 实现管理员创建和删除 ...

  7. php学生选课系统mysql

    作为选课管理系统,在系统中有学生信息和教师信息以及课程信息需要管理员分类管理. (1)学生管理:管理员登录系统后可以添加学生,查询学生,修改学生,删除学生信息.   (2)教师管理:管理员登录系统后可 ...

  8. 大家介绍一篇学生选课系统的设计与实现

    项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等.这里根据疫情当下,你 ...

  9. 基于java所写的学生选课管理系统

    一.概述 项目背景 随着学校的规模不断扩大,学生数量急剧增加:面对庞大的信息量需要有一个学生管理系统来提高学生管理工作的效率.通过学生选课管理信息系统可以做到信息的规范管理.科学统计和快速査询.修改. ...

最新文章

  1. Struts2 XML配置详解
  2. java api集合,javaAPI_集合基础_集合中常见操作示例
  3. python的主要应用领域及常用的函数模块_python之常用模块篇5
  4. 【OpenCV 例程200篇】30. 图像的缩放(cv2.resize)
  5. codeblocks调试问题--单步调试遇到breakpoint不停---不能单步调试--运行按钮是灰色但是没有dos窗口...
  6. python深度学习第四讲——python神经网络参数更新
  7. Python实现鸢尾花数据集分类问题——基于skearn的LogisticRegression
  8. 专业书籍阅读-Earth System Science Data Resources
  9. 在Power BI中如何计算同比增长?
  10. 记住网站建设这几个步骤
  11. html 视频超出隐藏,html – 如何阻止视频标签溢出其容器div.
  12. kill进程的几种方法
  13. 看雪逆向-Security Documentation
  14. MySQL数据库的约束
  15. Label组件之图片显示问题
  16. C++解题报告:详解经典搜索难题——八数码问题( 双向BFS A* 求解)
  17. html怎么导入素材,Resolume Arena怎么添加视频 导入素材就是这么简单
  18. 什么是 DevSecOps?2022 年的定义、流程、框架和最佳实践
  19. chrom插件的下载及使用教程
  20. mmdet_config_builder_win

热门文章

  1. 列表按钮android,android keycode按键列表
  2. Mysql复习计划(四)- 索引失效和数据库设计规范
  3. eclipse 导入项目出现 红叉
  4. Notice: Use of undefined constant MCRYPT_RIJNDAEL_128 - assumed ‘MCRYPT_RIJNDAEL_128‘ in
  5. oscp——Hell: 1
  6. Python-OpenCV读取视频文件
  7. 明日之后服务器什么时候维护好,明日之后11月14日维护什么时候结束
  8. 极路由(极壹S)HC5661安装OpenWrt及救砖过程
  9. bottle基本使用
  10. 【UPCOJ】问题 U: 打酱油