10.28总结

目录

一.发布作业

二.写作业

三.批改作业


一.发布作业

10.28总结_第1张图片

点击简答题时———listvie题目列表会新增一个题目

保存该题时———— 获取TextArea的文本,为list当前选中的对象赋值

10.28总结_第2张图片

发布日期不能为过往日期,截止日期不能晚于发布日期。——为发布日期设置点击事件,将截止日期的非法日期禁用。

10.28总结_第3张图片

 时间为选择ComboBoxhh,mm,ss。

当发布日期和截止日期为同一天时,要判断时间是否合法。

LocalTime createtime=LocalTime.parse(hh1.getValue()+":"+mm1.getValue()+":"+ss1.getValue());
        
LocalTime deadtime=LocalTime.parse(hh2.getValue()+":"+mm2.getValue()+":"+ss2.getValue());

 发布时将ComboBox转化为时间类型,一系列判断后发送至服务端,服务端入库。

二.写作业

10.28总结_第4张图片

进行中的作业或已完成的作业设置成绿色,已结束未提交的作业设置成红色,未开始的为白色。

学生不可查看未开始作业,但其余作业可随意查看。若为已提交作业,则可以查看自己的答案。

学生还可以上传文件,

点击上传按钮,打开文件选择器,依据文件路径,通过文件字节输入流和字节数组输出流将文件,将文件以二进制数组保存下来,同时还要保存文件名。

    public static byte[] streamToByteArray(InputStream is){
        try {
            ByteArrayOutputStream bos=new ByteArrayOutputStream();
            byte[] buf=new byte[1024];
            int len=0;
            //读取一个字节的数据,读到末尾返回-1
            while ((len=is.read(buf))!=-1){
                bos.write(buf,0,len);
            }
            byte[] array=bos.toByteArray();
            bos.close();
            is.close();
            return array;
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("文件读取失败");
        }
        return null;
    }

点击提交后,发送至服务端,服务端将答案入库。

对于文件,服务端则依据雪花算法给文件一个编号,将文件保存在服务端的file包内,然后数据库保存文件路径。

10.28总结_第5张图片

    public static void byteArrayToStream(byte[] array,String path){
        FileOutputStream fileOutputStream= null;
        try {
            fileOutputStream = new FileOutputStream(path);
            fileOutputStream.write(array);
            fileOutputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("文件下载失败");
        }
    }

三.批改作业

10.28总结_第6张图片 服务端查询作业表,将所有已提交的作业封装。文件答案则依据表中目录字段,将file包中的指定文件以数组的形式发送至客户端。

10.28总结_第7张图片

 下载文件——用户通过目录选择器指定文件下载位置。将二进制数组写入到<目录+“\\”+文件名>。

 完成批改后,服务端修改表中分数字段。

你可能感兴趣的:(超星项目,java,开发语言)