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

设计一个学生选课的程序,分别有学生类(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. WPF:如何为程序添加splashScreen?

    原文:WPF:如何为程序添加splashScreen? 大家是否还记得在Windows Forms程序中如何实现splashScreen吗?我们一般都会使用Microsoft.VisualBasic. ...

  2. MQTT开源代理Mosquitto源码分析(访问控制篇)

    一.整体流程概览 从GitHub下载源码后,代理的源码在src中,同时还用到了lib库中的一些函数.对项目的工作流程有个大概理解是分析mosquitto的访问控制权限的基础,网络上已有很多中文博客在介 ...

  3. 创建dll动态链接库,并使用java调用

    参考文章:http://www.cnblogs.com/matthew-2013/p/3480296.html http://blog.csdn.net/g710710/article/details ...

  4. PRML Chapter2

    参考文献:PRML2 参数方法和非参数方法 机器学习上的方法分为参数方法(根据先验知识假定模型服从某种分布,然后利用训练集估计出模型参数,也就弄清楚了整个模型,例如感知器)和非参数方法(基于记忆训练集 ...

  5. 瑞芯微RK3399宣布系统开源,进入百余种行业市场!

    集微网消息,2月24日瑞芯微官方突然宣布, Rockchip RK3399Linux系统开源!作为Rockchip旗舰级芯片,RK3399具有高性能.高扩展.全能型应用特性. 这一重磅消息立马刷爆朋友 ...

  6. Qt自定义委托在QTableView中绘制控件、图片、文字(内容比较全)

    自定义委托,继承于,QStyledItemDelegate类,重载Paint()函数, 1.实现在QTableView中绘制 格式字符串 2.实现在QTableView中绘制进度条 3.实现在QTab ...

  7. Windows下配置QT OpenCV

    OpenCV-Study:Windows下配置OpenCV 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:XP OpenCV版本:2.4 ...

  8. spring通过注解方式依赖注入原理 (私有成员属性如何注入)

    一.spring如何创建依赖的对象 用过spring的都知道我们在dao.service层加上@repository.@Service就能将这两个对象交给spring管理,在下次使用的时候使用@res ...

  9. 使用Arcgis Pro 发布矢量切片

    ArcGIS Pro 中的任何地图或底图都可以创建矢量切片,但是有一些局限性和特殊注意事项.为创建矢量切片制作地图的重点是构建一个有效的地图,以快速绘制生成的切片. 软件环境 操作系统:Windows ...

  10. Docker最全教程之MySQL容器化 (二十四)

    前言 MySQL是目前最流行的开源的关系型数据库,MySQL的容器化之前有朋友投稿并且写过此块,本篇仅从笔者角度进行总结和编写. 目录 镜像说明  运行MySQL容器镜像  1.运行MySQL容器  ...