5.2(向量)课程管理

30 篇文章 1 订阅

摩尔的Java学习笔记5.2

第四周作业:

1、(抽象类)1)定义shape抽象类,包含求面积和求周长的方法;2)定义Circle类和Rectangle类继承shape类;3)定义Square类继承Rectangle类;4)运行时,让用户选择输入图形的种类,然后输入相应数据,求出该图形的面积和周长;
2、(数组)课程管理每学期都要开设多门课程,每门课程的信息包括课程名称、是否是必修课、授课教师、学时、学分;编程实现对课程信息进行创建、添加、删除、修改和查询操作;可以按课程名、是否是必修课、授课教师来进行查询;修改或删除之前要先查询;

第五周作业:

3、(接口)1)定义shape接口,包含求面积和求周长的方法;2)定义Circle类、Rectangle类、Square类;3)要求Circle类和Rectangle类实现shape接口,Square类继承Rectangle类;4)运行时,让用户选择输入什么图形,然后输入相应数据,求出该图形的面积和周长;
4、(向量)课程管理 每学期都要开设多门课程,每门课程的信息包括课程名称、是否是必修课、授课教师、学时、学分;编程实现对课程信息进行创建、添加、删除、修改和查询操作;可以按课程名、是否是必修课、授课教师来进行查询;修改或删除之前要先查询。

(向量)课程管理 每学期都要开设多门课程,每门课程的信息包括课程名称、是否是必修课、授课教师、学时、学分;编程实现对课程信息进行创建、添加、删除、修改和查询操作;可以按课程名、是否是必修课、授课教师来进行查询;修改或删除之前要先查询。
/*供测试时复制用的课程信息:
 * (输入时一行一行输入)
 高数 是 马 35 5

Java 否 王 30 3

C++ 否 焦 30 3

C 是 周 30 5 
 */
/**
 * @author 薛莲婷
 *(向量)课程管理 每学期都要开设多门课程,每门课程的信息包括课程名称、是否是必修课、授课教师、学时、学分;
 *编程实现对课程信息进行创建、添加、删除、修改和查询操作;
 *可以按课程名、是否是必修课、授课教师来进行查询;修改或删除之前要先查询
 */
import java.util.*;;

class Course{
    String courseName;                                  //课程名称
    String compulsory;                                  //是否是必修课
    String teacher;                                     //授课教师
    int hour;                                           //学时
    int credit;                                         //学分

    static int count;                                   //课程个数

    Course(){}                                          //构造方法
    Course(String courseName,String compulsory,String teacher,int hour,int credit){
        this.courseName=courseName;
        this.compulsory=compulsory;
        this.teacher=teacher;
        this.hour=hour;
        this.credit=credit;
    }

    void modifyAll(){                                   //一系列修改成员变量的方法
        Scanner sc=new Scanner(System.in);
        System.out.println("(一行一门课程)\n\t课程名称\t是否是必修课\t授课教师\t学时\t学分");
        courseName=sc.next();
        compulsory=sc.next();
        teacher=sc.next();
        hour=sc.nextInt();
        credit=sc.nextInt();
    }
    void modifyCourseName(){
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入课程名称:");
        courseName=sc.next();   
    }
    void modifyCompulsory(){
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入是否必修课:");
        compulsory=sc.next();
    }
    void modifyTeacher(){
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入授课教师:");
        teacher=sc.next();
    }
    void modifyHour(){
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入学时:");
        hour=sc.nextInt();
    }
    void modifyCredit(){
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入学分:");
        credit=sc.nextInt();
    }
}

class CourseVector {

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        CourseVector manage=new CourseVector();

        Vector<Course> course=manage.initialize();          //课程系统初始化录入信息

        manage.menu();                                      //呈现系统菜单
        System.out.println("请输入相应的编号:");
        int x;                                              //用户指令
        while(true){
            x=sc.nextInt();

            switch (x){
            //0、退出系统
            case 0:System.out.println("已退出系统,欢迎下次使用!");sc.close();System.exit(0);break;
            //1、课程添加
            case 1:course=manage.addCourse(course);break;
            //2、课程删除
            case 2:course=manage.deleteCourse(course);break;
            //3、课程修改
            case 3:course=manage.modifyCourse(course);break;
            //4、显示全部课程信息
            case 4:manage.displayAllCourse(course);break;
            //5、课程查询
            case 5:manage.referCourse(course);break;
            //6、重现菜单
            case 6:manage.menu();break;
            //输入错误
            default:System.out.print("输入有误,");
            }
            System.out.println("请输入相应的编号继续使用:\n(或输入“6”重现主菜单,输入“0”退出系统)");       
        }       
    }
//初始化
    Vector<Course> initialize(){
        Scanner sc=new Scanner(System.in);
        CourseVector manage=new CourseVector();
        Vector<Course> course=new Vector<Course>();
        System.out.println("————————————————课程管理系统————————————————");
        System.out.println("————————————————————————————————————————");
        System.out.println("正在初始化课程信息列表,请输入要创建的课程数:");
        int count=sc.nextInt();

        System.out.println("(一行一门课程)\n课程名称\t是否是必修课\t授课教师\t学时\t学分");
        for(int i=0;i<count;i++){
            course.addElement(manage.createCourse());
        }
        System.out.println("已完成课程信息录入。");
        return course;
    }
//创建一个Course对象
    Course createCourse(){
            Scanner sc=new Scanner(System.in);
            String courseName=sc.next();
            String compulsory=sc.next();
            String teacher=sc.next();
            int hour=sc.nextInt();
            int credit=sc.nextInt();
            Course aCourse=new Course(courseName,compulsory,teacher,hour,credit);
            return aCourse;
    }
//系统菜单方法
    void menu(){        
        System.out.println("————————————————课程管理系统————————————————");
        System.out.println("————————————————————————————————————————");
        System.out.println("      1、课程添加                                                2、课程删除");
        System.out.println("      3、课程修改                                                4、显示全部课程信息");
        System.out.println("      5、课程查询(按课程名、授课教师 或 是否必修课)");
        System.out.println("                 0、退出系统");
        System.out.println("————————————————————————————————————————");
    }
//课程添加方法
    Vector<Course> addCourse(Vector<Course> course){
        Scanner sc=new Scanner(System.in);
        CourseVector manage=new CourseVector();

        System.out.println("请输入要添加的课程数:");
        int count=sc.nextInt();

        System.out.println("(一行一门课程)\n课程名称\t是否是必修课\t授课教师\t学时\t学分");
        for(int i=0;i<count;i++){
            course.addElement(manage.createCourse());
        }
        System.out.println("已完成课程信息添加。");
        return course;
    }
//显示所有课程信息方法
    void displayAllCourse(Vector<Course> course){
        System.out.println("所有课程信息:");
        System.out.println("实时编号\t课程名称\t是否是必修课\t授课教师\t学时\t学分");
        for(int i=0;i<course.size();i++){
            System.out.println((i+1)+"\t"+course.elementAt(i).courseName+"\t"+course.elementAt(i).compulsory+"\t"+course.elementAt(i).teacher+"\t"+course.elementAt(i).hour+"\t"+course.elementAt(i).credit);   
        }               
    }
//课程查询方法
    void referCourse(Vector<Course> course){
        Scanner sc=new Scanner(System.in);
        int x;                                          //用户指令
        int normal;                                     //指令输入是否正确
        int get;                                        //查询是否得到结果

        while(true){
            normal=1;
            get=0;
            System.out.println("查询课程,请选择:\n1、按课程名查询\t2、按授课老师查询\t3、按是否必须课查询\t0、退出查询");
            x=sc.nextInt();

        //课程名
            if(x==1){
                System.out.println("请输入课程名:");
                String name=sc.next();
                System.out.println("查询结果:");
                System.out.println("编号\t课程名称\t是否是必修课\t授课教师\t学时\t学分");
                for(int i=0;i<course.size();i++){
                    if(course.elementAt(i).courseName.equals(name)){
                        get=1;
                        System.out.println((i+1)+"\t"+course.elementAt(i).courseName+"\t"+course.elementAt(i).compulsory+"\t"+course.elementAt(i).teacher+"\t"+course.elementAt(i).hour+"\t"+course.elementAt(i).credit);   
                    }
                }
                if(get==0){
                    System.out.println("没有相关结果!");
                }
            }
        //授课老师
            else if(x==2){
                System.out.println("请输入授课老师名:");
                String name=sc.next();
                System.out.println("查询结果:");
                System.out.println("编号\t课程名称\t是否是必修课\t授课教师\t学时\t学分");
                for(int i=0;i<course.size();i++){
                    if(course.elementAt(i).teacher.equals(name)){
                        get=1;
                        System.out.println((i+1)+"\t"+course.elementAt(i).courseName+"\t"+course.elementAt(i).compulsory+"\t"+course.elementAt(i).teacher+"\t"+course.elementAt(i).hour+"\t"+course.elementAt(i).credit);   
}
                }
                if(get==0){
                    System.out.println("没有相关结果!");
                }
            }
        //是否必修课
            else if(x==3){
                System.out.println("请输入课程属性(“是”/“否”必修课):");
                String name=sc.next();
                System.out.println("查询结果:");
                System.out.println("编号\t课程名称\t是否是必修课\t授课教师\t学时\t学分");
                for(int i=0;i<course.size();i++){
                    if(course.elementAt(i).compulsory.equals(name)){
                        get=1;
                        System.out.println((i+1)+"\t"+course.elementAt(i).courseName+"\t"+course.elementAt(i).compulsory+"\t"+course.elementAt(i).teacher+"\t"+course.elementAt(i).hour+"\t"+course.elementAt(i).credit);   
                    }
                }
                if(get==0){
                    System.out.println("没有相关结果!");
                }
            }
        //退出查询
            else if(x==0){
                break;
            }
        //输入错误
            else{
                normal=0;
                System.out.println("输入错误,请重新选择:");
            }
        //每次正常完成查询后询问是否继续查询
            if(normal==1){
                System.out.println("继续查询请输“1”,退出查询请输“0”:");
                if(sc.nextInt()==0){
                    break;
                }
            }
        }
    }
//课程删除方法
    Vector<Course> deleteCourse(Vector<Course> course){
        Scanner sc=new Scanner(System.in);
        CourseVector manageNow=new CourseVector();
        int i;                                          //删除项索引号

        while(true){
            System.out.println("对要删除的课程进行查询,");
            manageNow.referCourse(course);

            System.out.println("请输入要删除的一个课程编号:(输“0”退出删除)");
            i=sc.nextInt()-1;
            if(i>course.size()-1||i<-1){
                System.out.print("没有此编号,");     
            }
            else if(i==-1){
                break;
            }
            else{
            //删除项确认
                System.out.println("即将删除的课程为:");
                System.out.println("编号\t课程名称\t是否是必修课\t授课教师\t学时\t学分");
                System.out.println((i+1)+"\t"+course.elementAt(i).courseName+"\t"+course.elementAt(i).compulsory+"\t"+course.elementAt(i).teacher+"\t"+course.elementAt(i).hour+"\t"+course.elementAt(i).credit);   
                System.out.println("确认  删除请输“1”,退出删除请输“0”:");
                if(sc.nextInt()==0){
                    break;
                }
            //进行删除
                course.remove(i);
                System.out.print("系统现存");
                manageNow.displayAllCourse(course);
            //询问是否继续删除  
                System.out.println("继续  删除请输“1”,退出删除请输“0”:");
                if(sc.nextInt()==0){
                    break;
                }
            }
        }   
        return course;
    }
//课程修改方法        
    Vector<Course> modifyCourse(Vector<Course> course){
        Scanner sc=new Scanner(System.in);
        CourseVector manageNow=new CourseVector();
        int i;                                          //修改项索引号
        int x;                                          //用户指令
        int normal;                                     //指令输入是否正确

        while(true){
            normal=1;
            System.out.println("对要修改的课程进行查询,");
            manageNow.referCourse(course);

            while(true){
                System.out.println("请输入要修改的一个课程编号:");
                if((i=sc.nextInt()-1)>course.size()-1){
                    System.out.print("没有此编号,");     
                }
                else{
                    break;
                }
            }

            System.out.println("编号\t课程名称\t是否是必修课\t授课教师\t学时\t学分");
            System.out.println((i+1)+"\t"+course.elementAt(i).courseName+"\t"+course.elementAt(i).compulsory+"\t"+course.elementAt(i).teacher+"\t"+course.elementAt(i).hour+"\t"+course.elementAt(i).credit);   
            System.out.println("请选择修改的内容1、全部,2、课程名称,3、是否必修课,4、授课老师,5、学时,6、学分,0、不修改此项课程:");

            x=sc.nextInt();

            switch (x){
        //0、不修改此项课程
            case 0:break;
        //1、全部
            case 1:course.elementAt(i).modifyAll();;break;
        //2、课程名称
            case 2:course.elementAt(i).modifyCourseName();;break;
        //3、是否必修课
            case 3:course.elementAt(i).modifyCompulsory();;break;
        //4、授课老师
            case 4:course.elementAt(i).modifyTeacher();;break;
        //5、学时
            case 5:course.elementAt(i).modifyHour();;break;
        //6、学分
            case 6:course.elementAt(i).modifyCredit();;break;
        //输入错误
            default:normal=0;System.out.println("输入有误,请重新输入:");
            }
        //每次正常完成修改后显示结果并询问是否继续使用修改功能
            if(normal==1){
                System.out.println("已完成,结果如下:");
                System.out.println("编号\t课程名称\t是否是必修课\t授课教师\t学时\t学分");
                System.out.println((i+1)+"\t"+course.elementAt(i).courseName+"\t"+course.elementAt(i).compulsory+"\t"+course.elementAt(i).teacher+"\t"+course.elementAt(i).hour+"\t"+course.elementAt(i).credit);   
                System.out.println("继续使用修改功能请输“1”,退出修改请输“0”:");
                if(sc.nextInt()==0){
                    break;
                }
            }
        }
        return course;
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值