精华内容
下载资源
问答
  • C++网络爬虫项目

    2018-07-04 00:59:17
    图展示了一个通用搜索引擎的基本结构。商业级别的搜索引擎通常由很相 互独立的模块组成,各个模块只负责搜索引擎的一部分功能,相互配合组成完 整的搜索引擎: 搜索引擎的信息源来自于互联网网页,通过“网络...
  • 使用GCD异步下载图片

    2012-08-09 22:00:18
    它可以提高代码的执行效率与多核的利用。是苹果的开源项目 如何从网上下载大量的文件, 方法有许多,传通的就是用线程,面iOS中有很好用的Operator Queeu, 或者用传通的NStrhead, pthread. 今天我不介绍这些...
    GCD(Grand Central Dispatch)是一个大的主题。它可以提高代码的执行效率与多核的利用率。是苹果的开源项目

    如何从网上下载大量的文件, 方法有许多,传通的就是用多线程,面iOS中有很好用的Operator Queeu, 或者用传通的NStrhead, pthread. 今天我不介绍这些方法,而是得用GCD来完成这个下载任务。今天这个 demo, 展示面几个功能:

    预定义了大量的要下载的图片URL
    创建一个GCD queue并开始下载图片
    在动画出现消失的时候,同时显示图片

    @interface UIImageView (DispatchLoad)
    - (void) setImageFromUrl:(NSString*)urlString;
    - (void) setImageFromUrl:(NSString*)urlString
    completion:(void (^)(void))completion;
    @end

    #import "UIImageView+DispatchLoad.h"
    @implementation UIImageView (DispatchLoad)
    - (void) setImageFromUrl:(NSString*)urlString {
    [self setImageFromUrl:urlString completion:NULL];
    }
    - (void) setImageFromUrl:(NSString*)urlString
    completion:(void (^)(void))completion {

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

    NSLog(@"Starting: %@", urlString);
    UIImage *avatarImage = nil;
    NSURL *url = [NSURL URLWithString:urlString];
    NSData *responseData = [NSData dataWithContentsOfURL:url];
    avatarImage = [UIImage imageWithData:responseData];
    NSLog(@"Finishing: %@", urlString);

    if (avatarImage) {
    dispatch_async(dispatch_get_main_queue(), ^{
    self.image = avatarImage;
    });
    dispatch_async(dispatch_get_main_queue(), completion);
    }
    else {
    NSLog(@"-- impossible download: %@", urlString);
    }
    });
    }
    @end

    这只是一个简单展示 GCD 异步操作的 demo,它的用武之地远不止这点。记住,最重要的是使用它后,即使我们的工作线程在处理很繁重的任务,也能使我们的 UI 很平滑
    展开全文
  • 完成的需求: 1156 在确认bug的时候可以设置bug的优先级 1155 处理发信逻辑,已经删除的用户不要再发送邮件 1154 参考论坛用户的建议,考虑实现浏览器贴图上传功能 1152 备注中添加的超链接在显示的时候被...
  • 在运维工作总很数据最终的展现方式要用到图表,毕竟用展示要比一堆数字更直观些,比如利用、站点的PV,UV等,大家千万不要觉得看到很漂亮的就感觉很难,其实真心不是,因为现在有很前端的绘图库,你只...
  • 在线留痕阅卷系统功能说明及其演示

    千次阅读 多人点赞 2020-06-08 13:03:52
    支持试卷导入到系统,动态分配任务给个教师,同时在阅卷工作完成后从班级,知识点,试卷高分低分区分度,评判试卷难度,得分,及格,分数标准差等角度维度统计学生成绩展示考试成果。在支持成绩统计分析和...

    引言

    追求速度浏览者可以直接跳到项目图文展示下

    本在线阅卷系统主要服务于高校,支持试卷导入到系统,动态分配任务给多个教师,同时在阅卷工作完成后从班级,知识点,试卷高分低分区分度,评判试卷难度,得分率,及格率,分数标准差等多角度多维度统计学生成绩展示考试成果。在支持成绩统计分析和成绩到处这方面极大的减轻了考试阅卷后试题改卷携带试卷的负担,减少了阅卷工作完成后,统计成绩分析成绩的工作量。在传统的考试情况中,每个老师的阅卷工作上报成绩流程及其繁琐麻烦,老师往往需要与学生试卷卷不离身导致便携性很差,即使在改完试卷后,上传分数至教务系统也需要人工参与。在考试完成后,统计成绩也需要一个精通Excel操作的办公人员,这中间的曲折流程,诸多繁琐的过程都需要很多的人力成本。而在线阅卷系统,仅仅需要一个浏览器,就可以完成以上所有工作,在满足分配任务,改卷,上传成绩,分析成绩的一系列服务上,还达到了诸多传统阅卷很难以完成的功能 。
    比如试卷复查,试卷评价,错误时可撤销式改卷,节约大量阅卷人员的负担和减少考试后统计分析成绩的人力成本时间成本。
    在线阅卷系统教务端是一个基于Java编程语言,前后端分离的B/S架构系统。
    本系统应用主要技术有:

    • (1)应用层:使用Spring家族的SpringBoot,Spring,SpringMVC达到大部分对象的管理和解耦。
    • (2)持久层:使用MyBatis家族的MyBatis,Tk-MyBatis,MyBatisCodeHelpPro对MySQL数据库的访问和其他操作。
    • (3)其他:阿里的EasyExcel解析Excel文件,Thumbnailator切割试卷,Pagehelper辅助数据分页 。

    项目亮点

    1. 文件分片上传/断点续传/秒传功能的实现
    2. 人性化的留痕阅卷功能
    3.有损试卷的完整性还原
    4.支持Excel批量操作和对用户输入的自动纠错
    5 .根据不同的条件导出查询结果

    项目图文展示

    新增考试功能

    介绍
    考试使本项目的核心,所以新增考试也是必须要做的事情。在本系统中,新增考试的同时需要指定:

    • 本场考试的所有试卷(以压缩包的形式上传)
    • 考试的学期(根据数据库查询得出)
    • 考试所涉及的班级(用于判断哪些学生缺考和成绩分析)
    • 考试样卷(用于试卷预览和试卷切割参考)
      等等其他必要信息请看图。
      所设计到的技术
    • 文件的分片上传/秒传/断点续传
    • 文件的解压(如果解压失败数据库的本次新增信息能正确回滚,且磁盘解压的残留文件能够删除
      在这里插入图片描述
      上传成功在这里插入图片描述
      在上传考试完成后,在考试管理界面能够预览试卷,查看缺考的学生。
      在这里插入图片描述
      查看缺考学生
      在这里插入图片描述
      预览试卷
      在这里插入图片描述

    试卷切割

    查询出来还没有分配的考试,对试卷进行区域划分,便于后面将每个区域分配个不同的老师批阅试卷。

    细节考虑:

    • 如果切割时候指定的分数大于考试满分,将不予通过本次操作。
    • 如果切割过程中发生意外,残留文件要删除。

    切割开始界面
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    任务分配

    试卷的切割为分配任务奠定数据基础,任务分配支持将一个任务分配给不同的老师。

    细节考虑:

    • 分配的任务数不能大于可分配的数量。
    • 可以随意动态调整教师的任务数量。

    展示了所有没有改完的卷子
    在这里插入图片描述
    在这里插入图片描述

    教师改卷

    分配好任务之后,教师端就可以看到自己被分配的任务。这里我登陆2222教师端。

    在这里插入图片描述

    教师阅卷
    在这里插入图片描述
    在这里插入图片描述

    试卷分析

    对试卷的总体分析。

    术语介绍:

    难度系数:根据考试的平均分和考试的总分计算得出。难度系数越高,说明试题越加简单。
    区分度:根据高分段学生的成绩和低分段学生的成绩计算得出,判断试卷是否很好的区分出了学生梯度。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    分数分析

    显示考试的分数分布情况,可以按照班级分类显示。

    在这里插入图片描述
    在这里插入图片描述

    成绩表

    在这里插入图片描述
    试卷复查(试卷合成)
    在这里插入图片描述
    本来试卷应该是这个样子:
    在这里插入图片描述
    通过算法补充了缺失的部分。
    在这里插入图片描述

    学期管理

    不能删除已有考试的学期

    在这里插入图片描述

    在这里插入图片描述
    Excel批量初始化班级

    自动判断学生的唯一性质,一个学生不能存在于不同的班级。且能校验文件的合法性。

    在这里插入图片描述
    在这里插入图片描述
    其他细节请看视频演示。
    视频地址:视频地址

    关键代码展示

    比如如何实现文件秒传,断点续传,分片上传。

    实现这个功能 需要前后端一起配合。
    主要思路:
    1.前端对整个文件计算MD5值,首先将这个MD5值传到后端的CHECK接口,后端通过这个值判断是否已经存在与服务器。如果存在,就返回存在的信息。前端根据这个信息可以直接略过文件上传的时间花费。(秒传的实现)
    2.如果不存在,前端对文件进行分片,同时每个分片的MD5值也要计算。每次上传都要校验MD5值,如果存在,就略过,如果不存在,就接受文件上传。
    3.所有分片上传完整后,对分片文件进行合成就是了。
    4.如果中途断案,因为已经成果的部分已经保存了MD5值,所以断点续传和秒传是一个原理。

    图片的还原
    之所以能够达到图片的完整还原,是因为碎片在本地我存了两份。
    在这里插入图片描述
    一份是改了的,一份是没有改的。如果有改了的,就优先使用改了的合成。这样合成的试卷永远都是最新状态的样子。但是缺失的部分如何补充呢?
    在这里插入图片描述
    道理也很简单,因为我并没有把原来的试卷删除,切割的碎片在一个文件夹,原来的样子在一个文件夹。
    在这里插入图片描述
    在合成的时候判断哪里缺失,缺失的部分去unzip文件夹的图片寻找,就可以了。
    代码展示:

      /**
         *
         * @param list 试卷碎片集合
         * @param paper 父试卷信息
         * @param exmple 样卷地址
         * @return
         * @throws Exception
         */
        public static synchronized String mergePaperAndCoverLoss(List<Studentblock> list, Paper paper, String exmple) throws Exception {
            //获取到样卷
            //还原样卷地址
    //        String examplePaperAddr = PathUtil.getRealBasePath() + PathUtil.getPathWithOutHttpPaper(exmple);
            String examplePaperAddr =  PathUtil.getRealBasePath() + exmple;
            //样卷信息
            BufferedImage img = ImageIO.read(new File(examplePaperAddr));
            //获取改卷子的总大小
            int totalX = paper.getWidth(),
                    totalY=paper.getHeight();
            //创建 这么大一个图片缓存
            BufferedImage bi=new BufferedImage(totalX,totalY,BufferedImage.TYPE_INT_RGB);
            //读取所有的子图片信息
            List<ImageBlock> imageBlocks = getImageBlocks(list);
            for (int i = 0; i <bi.getWidth() ; i++) {
                for (int j = 0; j <bi.getHeight() ; j++) {
                    //判断需要补充的地方
                    int rbg = getRbg(imageBlocks,img,i,j);
                    bi.setRGB(i,j,rbg);
                }
            }
            //使用原来的目录
            String outPath = PathUtil.getRealBasePath() + "合成"+File.separator+paper.getPaperurl();
            File outFile = new File(outPath);
            if (!outFile.getParentFile().exists()) {
                outFile.getParentFile().mkdirs();
            }
            //生成高清图片
            ImageIO.write(bi,"jpeg",outFile);
            FileOutputStream out = new FileOutputStream(outFile.getAbsolutePath());
            JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
            JPEGEncodeParam param=encoder.getDefaultJPEGEncodeParam(bi);//
            param.setQuality(1, true);//设置质量
            encoder.encode(bi, param);
            out.close();
            //返回的HTTP地址
            String s = PathUtil.getHttpPaperLen() + PathUtil.getRelativePath(outFile.getAbsolutePath());
            return s;
        }
    
     /**
         * 返回 需要的 颜色
         * @param imageBlocks
         * @param exampleImg
         * @param i
         * @param j
         * @return
         */
        private static int getRbg(List<ImageBlock> imageBlocks, BufferedImage exampleImg, int i, int j) throws Exception {
            for (ImageBlock block : imageBlocks) {
                boolean b = block.contains(i, j);
                if (b){
                    //传入的是全坐标
                    return block.getRgb(i,j);
                }
            }
           /* System.out.println("此时的坐标不存在于数据库"+i+","+j);*/
            return exampleImg.getRGB(i,j);
        }
    
        private static List<ImageBlock> getImageBlocks(List<Studentblock> list) {
            List<ImageBlock> res = new ArrayList<>(list.size());
            for (Studentblock i : list) {
                //http://139.9.220.20:1997/edu/paper/2015180122\某某学期\subject\2020-05-11\1,2,3.jpg
                String blockurl = i.getBlockurl();
                blockurl = PathUtil.getRealBasePath() + PathUtil.getPathWithOutHttpPaper(blockurl);
                String markedPath = PathUtil.getMarkedPath(blockurl);
                //临时文件
                File file = new File(markedPath);
                if (file.exists() == true){
                    blockurl = markedPath;
                }
                //判断置是否存在
                ImageBlock block = new ImageBlock(new File(blockurl));
                //数据库的坐标是全坐标
                block.setX(i.getX());
                block.setY(i.getY());
                block.setEx(i.getX()+i.getWidth());
                block.setEy(i.getY()+i.getHeight());
                res.add(block);
            }
            return res;
        }
    
    
        @Data
        @NoArgsConstructor
        protected static class ImageBlock{
            public ImageBlock(File file){
                try {
                  /*  System.out.println(file.getAbsolutePath());*/
                    this.bufferedImage = ImageIO.read(file);
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            private BufferedImage bufferedImage;
            //这里可是还原了全坐标(意思就是大)
            private int x;
            private int y;
            private int ex;
            private int ey;
            //判断合成需要的像素点是否是我能够提供的
            public boolean  contains(int a,int b){
              if ((a>x && a < ex) && (b > y && b < ey)){
                  //在里面
                  return true;
              }
              return  false;
          }
          //获取像素点方法
            public int getRgb(int i, int j)  {
    //                return bufferedImage.getRGB(i-(ex-x),j-(ey-y));
                    return bufferedImage.getRGB(i-x,j-y);
            }
        }
    

    结语

    本系统能够完全应付高校的阅卷需求,且在细节方面考虑完全,能够屏蔽很多非法操作和不正确的操作以免对数据造成删改。
    例如:
    删除失败时候的残留文件
    删除一场考试删除与此考试相关的所有数据。
    对教师打分的合法校验
    在使用上,人性化的留痕阅卷和多角度的成绩分析统计功能充分发挥了在线阅卷的优势。

    视频地址:项目演示视频B站地址

    目的:我是想找个工作,才发这个博客的!(兄弟们,校招一定要保底啊,应届生想实习还是太难了。我已经工作了,555.)
    另外我还自研了仿造Spring的框架.实现了IOC,AOP,MVC,ORM。框架地址:git地址
    技术路程:!自己手写一个AOP动态代理框架(1)

    我微信:qazwsxFuYouJie

    展开全文
  • 软件工程教程

    热门讨论 2012-07-06 23:10:29
    通过演示及讲述,讲解课程设计的整体情况,针对其设计提出一些技术及细节问题确认是否真正理解课程设计中的要点、是否掌握了进行系统设计的知识和能力、是否本人完成。如通发现没有真正设计或者不清楚技术细节,则...
  • 08.项目截图展示 09.项目优化处理 10.组件化博客 11.App性能分析 12.其他介绍 01.项目介绍 1.1 项目简介 项目整体架构模式采用:组件化+MVP+Rx+Retrofit+design+Dagger2+阿里VLayout+腾讯X5+腾讯bugly 包含的...
  • 子控件包括饼图+圆环+曲线+柱状+柱状分组+横向柱状+横向柱状分组+合格控件+百分比控件+进度控件+设备状态面板+表格数据+地图控件(包括动态闪烁点+迁徙等)+视频控件+其他控件等。 二级界面可以自由...
  • 在ResNeXt 基础、上加入了 SE(Sequeeze-and-Excitation) 模块,提高了识别准确,在 ILSVRC 2017 的分类项目中取得了第一名 ImageNet-2012验证集 81.40%/95.48% ShuffleNetV2 ECCV2018,轻量级 CNN 网络,在速度...
  • PREMIERE.PRO.CS3宝典.pdf

    2013-02-18 10:02:03
    15.6.4 组合Coffee Bean展示项目 388 15.7 小结 392 第16章 创建运动效果 393 16.1 漫游控制面板上的运动效果控件 393 16.2 使用运动控件 397 16.3 使用效果控制面板设置关键帧来创建运动效果 399 16.4 编辑运动...
  • 实例053 提高代码重用 84 实例054 包含数据库连接文件 85 实例055 包含网站头文件 86 实例056 包含网站尾文件 87 实例057 包含网站的主文件 88 2.4 条件语句 89 实例058 员工生日提醒 89 实例059 考试成绩评定标准...
  • 实例053 提高代码重用 84 实例054 包含数据库连接文件 85 实例055 包含网站头文件 86 实例056 包含网站尾文件 87 实例057 包含网站的主文件 88 2.4 条件语句 89 实例058 员工生日提醒 89 实例059 考试成绩评定标准...
  • 最新发布简化与项目有关的文档和信息并进行集中管理,以便根据及时的决策和准确的信息成功完成项目。 Autodesk Cleaner XL 用于Windows的高质量,灵活的媒体格式转换及编码解决方案。 Autodesk Combustion 应用于...
  • excel的使用

    2012-11-25 17:06:01
    1(5) 张工作表中输入相同的内容几个工作表中同一位置填入同一数据时,可以选中一张工作表,然后按住Ctrl键,再单击窗口左下角的Sheet1、Sheet2......来直接选择需要输入相同内容的个工作表,接着在其中的...
  • 测试培训教材

    2014-04-01 12:10:48
    下载完成后请按如下步骤进行需求导入: 1.安装QC9.0需求案例Excel导入软件QCMSExcelAddin.exe。执行安装前请先确保你的系统已经安装了Office Excel软件。 2.安装成功后,打开编制好的文件,选中所有要导入的需求记录...
  • 精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后附录提供快速索引,即查、即学、...
  • C#程序开发范例宝典(第2版).part02

    热门讨论 2012-11-12 07:55:11
    精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后附录提供快速索引,即查、即学、...
  • C#程序开发范例宝典(第2版).part13

    热门讨论 2012-11-12 20:17:14
    精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后附录提供快速索引,即查、即学、...
  • 精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后附录提供快速索引,即查、即学、...
  • 精选570个典型范例,全面覆盖实用和热点技术,涉及面广,实用性强源于实际项目开发,帮助读者短时间掌握更实用技术,提高编程水平范例经过精心编排,重点、难点突出,易学易懂书后附录提供快速索引,即查、即学、...
  • 实景图片展示(官方发布和网友实拍),让用户近距离感受酒店;动态地图,让用户轻松了解酒店所在位置和交通情况;互动式问答和点评,了解真实的酒店。 2、强大的会员管理系统 会员是一个旅游电子商务网站命脉,...
  • 【CPU】 App CPU 使用信息提供波形查看功能,让 CPU 监控的趋势更加形象; 【内存】 App 内存使用量信息提供波形查看功能,让内存监控的趋势更加鲜明; 【流量监控】 拦截 App 内部流量信息,提供波形图展示...
  • 对应有计算生成托盘/栈板的相关规则,3D简明直观地看出货物在托盘/栈板上的装载情况,根据货物尺寸、托盘尺寸和集装箱尺寸更加合理地利用有效空间,提高装载,减少运费。 LoadMaster装箱大师装柜软件功能介绍 ...
  • AI识虫数据解压完成后,直接运行命令即可直接生成分类网络的训练数据和验证数据 python classification/generate_cls_data.py 预训练参数 本方案使用的预训练参数均来自百度paddlepaddle模型库 YoloV3预训练:...
  • 小码短链接这款免费扩展,可以一键生成各种网址的个短链接,并且还同步提供了短链接二维码,对于新媒体工作者而言,是测量内容在各渠道阅读量(转化)的好工具! 079《Search the current site(站内搜索)》超...
  • 【CPU】 App CPU 使用信息提供波形查看功能,让 CPU 监控的趋势更加形象; 【内存】 App 内存使用量信息提供波形查看功能,让内存监控的趋势更加鲜明; 【流量监控】 拦截 App 内部流量信息,提供波形图展示...
  •  2018杭州在售120余盘预计还有6万套的供应量,而100来个新盘以及地块预计今年将有1000万方的房源将会入市。其中余杭、萧山板块不管是在售楼盘量还是后续的供应量占比依旧比较大,仍是2018年的供应主力。而上城...
  • 适用于Windows的课堂管理系统 NetSupport School 是一流的培训软件解决方案,让教师能够以个别方式、按预定小组或者对整个班级进行辅导、监视,并与学生们互动交流。...展示视频现在支持更的视频格式。...
  • 程序开发范例宝典>>

    2012-10-24 10:41:28
    实例060 在RichTextBox控件中实现项目编号功能 71 实例061 设置RichTextBox控件中文本对齐方式 74 2.4 ListBox控件应用 77 实例062 在ListBox控件间交换数据 77 实例063 将数据库数据添加到ListBox控件...

空空如也

空空如也

1 2 3
收藏数 57
精华内容 22
关键字:

多项目完成率展示图