草庐IT

7-6 学生选课信息管理 分数 10

反手敲代码 2023-08-26 原文

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. ruby - i18n Assets 管理/翻译 UI - 2

    我正在使用i18n从头开始​​构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在ruby​​onrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi

  2. ruby-on-rails - Rails 常用字符串(用于通知和错误信息等) - 2

    大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje

  3. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  4. ruby-on-rails - 获取 inf-ruby 以使用 ruby​​ 版本管理器 (rvm) - 2

    我安装了ruby​​版本管理器,并将RVM安装的ruby​​实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby​​。有没有办法让emacs像shell一样尊重ruby​​的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el

  5. ruby-on-rails - 事件管理员日期过滤器日期格式自定义 - 2

    是否有简单的方法来更改默认ISO格式(yyyy-mm-dd)的ActiveAdmin日期过滤器显示格式? 最佳答案 您可以像这样为日期选择器提供额外的选项,而不是覆盖js:=f.input:my_date,as::datepicker,datepicker_options:{dateFormat:"mm/dd/yy"} 关于ruby-on-rails-事件管理员日期过滤器日期格式自定义,我们在StackOverflow上找到一个类似的问题: https://s

  6. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  7. 计算机毕业设计ssm+vue基本微信小程序的小学生兴趣延时班预约小程序 - 2

    项目介绍随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱小学生兴趣延时班预约小程序的设计与开发被用户普遍使用,为方便用户能够可以随时进行小学生兴趣延时班预约小程序的设计与开发的数据信息管理,特开发了小程序的设计与开发的管理系统。小学生兴趣延时班预约小程序的设计与开发的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与小学生兴趣延时班预约小程序的设计与开发的实际需求相结合,讨论了小学生兴趣延时班预约小程序的设计与开发的使用。开发环境开发说明:前端使用微信微信小程序开发工具:后端使用ssm:VU

  8. ruby - (Ruby || Python) 窗口管理器 - 2

    我想用这两种语言中的任何一种(最好是ruby​​)制作一个窗口管理器。老实说,除了我需要加载某种X模块外,我不知道从哪里开始。因此,如果有人有线索,如果您能指出正确的方向,那就太好了。谢谢 最佳答案 XCB,X的下一代API使用XML格式定义X协议(protocol),并使用脚本生成特定语言绑定(bind)。它在概念上与SWIG类似,只是它描述的不是CAPI,而是X协议(protocol)。目前,C和Python存在绑定(bind)。理论上,Ruby端口只是编写一个从XML协议(protocol)定义语言到Ruby的翻译器的问题。生

  9. ruby-on-rails - 事件管理员和自定义方法 - 2

    这是我在ActiveAdmin中的自定义页面ActiveAdmin.register_page"Settings"doaction_itemdolink_to('Importprojects','settings/importprojects')endcontentdopara"Text"endcontrollerdodefimportprojectssystem"rakedataspider:import_projects_ninja"para"OK"endendend我想做的是,当我单击“导入项目”按钮时,我想在Controller中执行rake任务。但是我无法访问该方法。可能是什

  10. ruby - what is - gets is a directory - 错误信息 - 2

    我遇到了这个奇怪的错误.../Users/gideon/Documents/ca_ruby/rubytactoe/lib/player.rb:13:in`gets':Isadirectory-spec(Errno::EISDIR)player_spec.rb:require_relative'../spec_helper'#theuniverseisvastandinfinite...itcontainsagame....butnoplayersdescribe"tictactoegame"docontext"theplayerclass"doit"musthaveahumanplay

随机推荐