学生选课(面向对象复习)

设计一个学生选课的程序,分别有学生类(Student)和课程类(Course)

学生类的属性有:学号(String),姓名(String),性别(char),所选科目(Course[])

课程有:Java、PHP、JQuery、HTML、CSS、C++、MySQL、Oracle

每个学生必须要选3门课程,可以指定选择哪3门,也可以让系统随机选择,请使用面向对象的封装特性实现在控制台中选课。

//课程类
public class Course {
private String cname[]={"Java","PHP","JQuery","HTML","CSS","C++","MySQL","Oracle"};//课程名称 public String[] getCname() {
return cname;
} public void setCname(String[] cname) {
this.cname = cname;
}
}
//学生类

public class Student {

    private String sno;//学号

    private String name;//姓名

    private String sex;//性别

    private String course[]=new String[3];//选课

    public Student(String sno,String name,String sex){

        this.setSno(sno);

        this.setName(name);

        this.setSex(sex);

    }
public String getSno() { return sno; }
public void setSno(String sno) { this.sno = sno; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String[] getCourse() { return course; } public void setCourse(String[] c) { course = c; } }
import java.util.Scanner;

public class StudentTest {

    public static void main(String[] args){

        int i=1;

        String[] st=new String[3];

        Course a=new Course();

        Student stu=new Student("123","lili","女");

        /**

         *  判断是否选择课程,如果是,则输入课程名称,如果否,则随机产生三门课程

         */

        System.out.println("************是否选择课程***********");

        Scanner sc=new Scanner(System.in);

        String s=sc.next();

        switch(s) {

            case "是":

                System.out.println("************请输入所选课程名称:***********");

                for (int n = 0; n < 3; n++) {

                    //生成随机数,工具类

                    Scanner sa = new Scanner(System.in);

                    String one = sa.next();

                    st[n] = one;

                }

                stu.setCourse(st);

                break;

            case "否":

                System.out.println("************随机选择课程:***********");

                for (int n = 0; n < 3; n++) {

                    int j = (int) (Math.random() * 7)+1;

                    String[] c=a.getCname();

                    //System.out.println(c[j]);

                    st[n]=c[j];

                }

                stu.setCourse(st);

                break;

        }

        /**

         * 输出学生信息

         */

        System.out.println("**************学生信息**************");

        System.out.println("学号:"+stu.getSno());

        System.out.println("姓名:"+stu.getName());

        System.out.println("性别:"+stu.getSex());

        String[] cou=stu.getCourse();

        System.out.print("所选课程:");

        for(int y=0;y<3;y++){

            System.out.print(cou[y]+"  ");

        }

    }

}

运行结果:

************是否选择课程***********

************请输入所选课程名称:***********

PHP

CSS

C++

**************学生信息**************

学号:123

姓名:lili

性别:女

所选课程:PHP  CSS  C++

************是否选择课程***********

************随机选择课程:***********

**************学生信息**************

学号:123

姓名:lili

性别:女

所选课程:PHP  JQuery  MySQL

Java项目实例之---学生选课(面向对象复习)的更多相关文章

  1. java web知识点复习,重新编写学生选课系统的先关操作。

    为了复习之前学习的相关的html,javaweb等知识.自己有重新编写了一遍学生选课系统. 下面主要展示登录界面的代码,以及各个大的主页面的相关jsp. <%@ page language=&q ...

  2. JAVA | 学生选课系统

    这里使用JAVA语言编写的简易的学生选课系统,展现的都是这个系统核心代码. 其中有不足欢迎批评和指正! 链接数据库的代码 package connection;//连接数据库student impor ...

  3. Java项目案例之---计算公司员工的工资(面向对象复习)

    计算公司员工的工资(面向对象复习) 某公司的雇员分为以下若干类: Employee:这是所有员工总的父类,属性:员工的姓名,员工的生日月份.方法:double getSalary(int month) ...

  4. 学生选课系统(Java语言期末前测试)

      测试具体要求: 2.系统要求与功能设计 2.1 页面要求 (1)能够在Tomcat服务器中正确部署,并通过浏览器查看: (2)网站页面整体风格统一: (3)首页(登录页)要求实现不同用户登录后,进 ...

  5. python实现学生选课系统 面向对象的应用:

    一.要求: 选课系统 管理员: 创建老师:姓名.性别.年龄.资产 创建课程:课程名称.上课时间.课时费.关联老师 使用pickle保存在文件 学生: 学生:用户名.密码.性别.年龄.选课列表[].上课 ...

  6. Java项目案例之---开灯(面向对象复习)

    开灯(面向对象复习) 设计一个台灯类(Lamp)其中台灯有灯泡类(Buble)这个属性,还有开灯(on)这个方法 设计一个灯泡类(Buble),灯泡类有发亮的方法 其中有红灯泡类(RedBuble)和 ...

  7. python基础-10 程序目录结构 学生选课系统面向对象练习

    一 程序目录结构 1 bin文件夹 二进制文件.代码程序  2 conf 配置文件  3 帮助文档  4 头文件库文件等 二 学生选课系统部分代码 未完待续 1 包内的__init__.py文件 在包 ...

  8. 吴裕雄--天生自然HADOOP操作实验学习笔记:hbase学生选课案例

    实验目的 复习hbase的shell操作和javaAPI操作 了解javaWeb项目的MVC设计 学会dao(数据库访问对象)和service层的代码编写规范 学会设计hbase表格 实验原理 前面我 ...

  9. SQL Server 【附】创建"商品管理数据库"、"学生选课数据库"的SQL语句

    附:(创建“商品管理数据库”的SQL语句) --建立"商品管理数据库"数据库-- create database 商品管理数据库 on(name='商品管理数据库_m', file ...

随机推荐

  1. Springboot统一配置Jackson

    经常要为接口响应对象设置属性,序列化的时候是不是包含空值,反序列化的时候是否忽略不认识的字段.所以,必须要手动制定ObjectMapper或者在类上声明 @JsonInclude(Include.NO ...

  2. 数据绑定(十一)多路绑定MultiBinding

    原文:数据绑定(十一)多路绑定MultiBinding 有时候UI要显示的信息又不止一个数据来源决定,就需要使用MultiBinding,MultiBinding具有一个名为Bindings的属性,其 ...

  3. Motion Paths in WPF 4 using Expression Blend 4

    原文 Motion Paths in WPF 4 using Expression Blend 4 Posted by: Pravinkumar Dabade , on 3/19/2011, in C ...

  4. Win8 Metro(C#) 数字图像处理--1 图像打开,保存

    原文:Win8 Metro(C#) 数字图像处理--1 图像打开,保存 作为本专栏的第一篇,必不可少的需要介绍一下图像的打开与保存,一便大家后面DEMO的制作.   Win8Metro编程中,图像相关 ...

  5. Linux编译安装Qt 5.4.1(-qt-xcb是必须要指定的,卸载自带的gcc等)

    转载请注明文章:Linux编译安装Qt 5.4.1 出处:多客博图 很久不写文章了,过程很简单,但是操作很多,简单说吧. 前言: 操作系统CentOS 6.6,64位的. 1.安装gcc 4.8.4, ...

  6. Qt PNG 背景透明

    本文主要是解决Qt中QGraphicsAbstractShapeItem,QPixmap,QPainter等组件的透明化显示问题. 在Qt中定义了一个常量,用于设置透明的颜色,即Qt::transpa ...

  7. 危险的DDD聚合根

    原文:危险的DDD聚合根 DDD的核心是聚合.这没有问题,大家都认同.但关于DDD中的聚合方式,其实我还是有些担心,下面说说我的想法,希望大家参与讨论.其实当初第一次看到DDD中关于聚合根部分论述的时 ...

  8. Delphi中TResourceStream流使用

    Resource可以是任意文件(图像.声音.office都可以),直接打包到编译的exe文件中,调用也非常方便 打开一个新的或已有的delphi工程 1.先在 Project->resource ...

  9. 腾讯网移动端H5页面设计实战分享

    分享 <关于我> 分享  [中文纪录片]互联网时代                 http://pan.baidu.com/s/1qWkJfcS 分享 <HTML开发MacOSAp ...

  10. flask(四)

    1.Flask-Session from flask import session,Flask from flask_session import Session #导入 from redis imp ...