2015年下半年软件设计师下午试题

news2024/11/25 2:39:16

试题一

【说明】
某慕课教育平台欲添加在线作业批改系统,以实现高效的作业提交与批改,并进行统计。学生和讲师的基本信息已经初始化为数据库中的学生表和讲师表。系统的主要功能如下:

提交作业。验证学生标识后,学生将电子作业通过在线的方式提交,并进行存储。系统给学生发送通知表明提交成功,通知中包含唯一编号;并通知讲师有作业提交。
下载未批改作业。验证讲师标识后,讲师从系统中下载学生提交的作业。下载的作业将显示在屏幕上。
批改作业。讲师按格式为每个题目进行批改打分,并进行整体评价。
上传批改后的作业。将批改后的作业(包括分数和评价)返回给系统,进行存储。
记录分数和评价。将批改后的作业的分数和评价记录在学生信息中,并通知学生作业已批改
获取已批改作业。根据学生标识,给学生查看批改后的作业,包括提交的作业、分数和评价。
作业抽检。根据教务人员标识抽取批改后的作业样本,给出抽检意见,然后形成抽检报告给讲师。
现采用结构化方法对在线作业批改系统进行分析与设计,获得如图1-1所示的上下文数据流图和图1-2所示的0层数据流图。

【问题1】(3分)
使用说明中的词语,给出图1-1中的实体E1~E3的名称。

【问题2】(4分)
使用说明中的词语,给出图1-2中的数据存储D1~D4的名称。

【问题3】(6分)
根据说明和图中术语,补充图1-2中缺失的数据流及其起点和终点。

【问题4】(2分)
若发送给学生和讲师的通知是通过第三方Email系统进行的,则需要对图1-1和图1-2进行哪些修改?用100字以内文字加以说明。

【解析】

【问题1】 E1:学生 E2:讲师 E3:教务人员

【问题2】 D1:提交的作业表 D2:学生表 D3:讲师表 D4:批改后的作业表

【问题3】 数据流名称:提交成功通知 起点:1或提交作业 终点:E1或学生 数据流名称:抽检报告 起点:7或作业抽检 终点:E2或讲师 数据流名称:分数和评价 起点:5或记录分数和评价 终点:D2或学生表 数据流名称:作业已批改通知 起点:5或记录分数和评价 终点:E1或学生

【问题4】 增加外部实体"第三方Email系统",将原来的两条"通知"数据流合并为一条"通知"数据流,终点为“第三方Email系统"。

试题分析: 本题问题1要求识别E1-E3具体为哪个外部实体,通读试题说明,可以了解到适合充当外部实体的包括:学生、讲师、教务人员。具体的对应关系,可以通过将顶层图与题目说明进行匹配得知。如:从图中可看出E1会向系统发出数据流"作业、学生标识",会从系统接收到"批改后的作业、通知"﹔而从试题说明"验证学生标识后,学生将电子作业通过在线的方式提交,并进行存储。系统给学生发送通知表明提交成功,通知中包含唯一编号"可以看出,E1对应的,便是学生。E2、E3同理可得。

问题⒉要求识别存储,解决这类问题,以图的分析为主,配合说明给存储命名,因为存储相关的数据流一般展现了这个存储中到底存了些什么信息,如从图中可以看到D3中有讲师信息,而D2中有学生信息,题目说明中又有"学生和讲师的基本信息已经初始化为数据库中的学生表和讲师表。"自然D2应为学生表,D3应为讲师表。同理,D1应存储了学生的作业、D4存储了批改后的作业,由于这两个内容在说明中没有“表""文件"的表达,所以该存储的命名直接从说明中取合适的词来总结,D1应为作业,D4应为批改后的作业。

问题3分析: 缺失数据流1 名称:通知 起点:提交作业 终点:E1 理由:顶层图有从在线作业批改系统到E1的数据流"通知",而0层图没有,依据平衡原则可知缺失了,进一步分析试题说明,了解到"提交作业"这个功能有操作"系统给学生发送通知表明提交成功",所以缺失数据流的起点为"提交作业"。

缺失数据流2 名称:抽检报告 起点:作业抽检 终点:E2 理由:题目说明中,对于"作业抽检"的描述为“根据教务人员标识抽取批改后的作业样本,给出抽检意见,然后形成抽检报告给讲师。"据此可以了解到从该功能应有数据流"抽检报告"至E2。

缺失数据流3 名称:分数和评价 起点:记录分数和评价 终点:D2 理由:首先值得注意的是"记录分数和评价"只有输入,没有输出,这是破坏了数据平衡原则的。这种情况,必然是有缺失数据流的。从题目描述"将批改后的作业的分数和评价记录在学生信息中"可以了解到,应有数据流从“记录分数和评价”到D2。

缺失数据流4 名称:通知 起点:记录分数和评价 终点:E1 理由:从题目描述"并通知学生作业已批改"可以了解到,应有数据流从“记录分数和评价"到E1。

问题4强调发送邮件采用了“第三方Email系统",这个"第三方Email系统"属于典型的外部实体,所以需要增加外部实体"第三方Email 系统",并将原来的两条"通知"数据流合并为一条"通知""数据流,终点为“第三方Email系统”。

试题二

【说明】
某企业拟构建一个高效、低成本、符合企业实际发展需要的办公自动化系统。工程师小李主要承担该系统的公告管理和消息管理模块的研发工作。公告管理模块的主要功能包括添加、修改、删除和查看公告。消息管理模块的主要功能是消息群发。
小李根据前期调研和需求分析进行了概念模型设计,具体情况分述如下:
【需求分析结果】

该企业设有研发部、财务部、销售部等多个部门,每个部门只有一名部门经理,有多名员工,每名员工只属于一个部门,部门信息包括:部门号、名称、部门经理和电话,其中部门号唯一确定部门关系的每一个元组。
员工信息包括:员工号、姓名、岗位、电话和密码。员工号唯一确定员工关系的每一个元组;岗位主要有经理、部门经理、管理员等,不同岗位具有不同的权限。一名员工只对应一个岗位,但一个岗位可对应多名员工。
消息信息包括:编号、内容、消息类型、接收人、接收时间、发送时间和发送人。其中(编号,接收人)唯一标识消息关系中的每一个元组。一条消息可以发送给多个接收人,一个接收人可以接收多条消息。
公告信息包括:编号、标题、名称、内容、发布部门、发布时间。其中编号唯一确定公告关系的每二个元组。一份公告对应一个发布部门,但一个部门可以发布多份公告;一份公告可以被多名员工阅读,一名员工可以阅读多份公告。
【概念模型设计】
根据需求分析阶段收集的信息,设计的实体联系图(不完整)如图2-1所示:

【逻辑结构设计】
根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整):
部门((a),部门经理,电话)
员工(员工号,姓名,岗位号,部门号,电话,密码)
岗位(岗位号,名称,权限)
消息((b),消息类型,接收时间,发送时间,发送人)
公告( (c ),名称,内容,发布部门,发布时间)
阅读公告((d),阅读时间)

【问题1】(5分)
根据问题描述,补充四个联系,完善图2-1所示的实体联系图。联系名可用联系1、联系2、联系3和联系4代替,联系的类型分为1:1、1:n和m:n(或1:1、1:和:*)。

【问题2】(8分)
(1)根据实体联系图,将关系模式中的空(a)~(d)补充完整。
(2)给出“消息”和“阅读公告”关系模式的主键与外键。

【问题3】(2分)
消息和公告关系中都有“编号”属性,请问它是属于命名冲突吗?用100字以内文字说明原因。

【参考答案】

【问题1】

 【问题2】
( a)部门号,名称
(b〉编号,内容,接收人,(c)编号,标题
(d〉员工号,编号
消息主键:(编号,接收人)外键:接收人,发送人阅读公告―主键:《员工号,公告编号〉外键:员工号,公告编号

【问题3】
不属于命名冲突。
命名冲突是在合并ER模型时提出的概念,合并ER模型时之所以产生冲突,是因为对于同样的对象,不同的局部ER模型有着不同的定义,在本题中,本就是不同对象的属性,所以不存在冲突的说法。


试题分析:
【问题1】
根据题干中的需求分析可以得到完整的ER图和联系类型。
如:“一名员工只对应一个岗位,但一个岗位可对应多名员工",可以得出员工与岗位间是有一个“对应"的联系的,而且联系类型是n:1 。
【问题2】
(1)根据题干中列出的内容,可以把关系模式填完整。
(2〉消息(编号,内容,消息类型,接收人,接收时间,发送时间,发送人),“其中(编号,接收入)唯一标识消息关系中的每一个元组"可知,其主键为编号和接收人﹔而接收人和发送人都需要员工号,所以为外键。
阅读公告(公告编号,员工号,阅读时间〉也是同样的道理。 

试题三

【说明】
某出版社拟开发一个在线销售各种学术出版物的网上商店(ACShop),其主要的功能需求描述如下:

  1. ACShop在线销售的学术出版物包括论文、学术报告或讲座资料等。
  2. ACShop的客户分为两种:未注册客户和注册客户。
  3. 未注册客户可以浏览或检索出版物,将出版物添加到购物车中。未注册客户进行注册操作之后,成为ACShop注册客户。
  4. 注册客户登录之后,可将待购买的出版物添加到购物车中,并进行结账操作。结账操作的具体流程描述如下:①从预先填写的地址列表中选择一个作为本次交易的收货地址。如果没有地址信息,则可以添加新地址。②选择付款方式。ACShop支持信用卡付款和银行转账两种方式。注册客户可以从预先填写的信用卡或银行账号中选择一个付款。若没有付款方式信息,则可以添加新付款方式。③确认提交购物车中待购买的出版物后,ACShop会自动生成与之相对应的订单。
  5. 管理员负责维护在线销售的出版物目录,包括添加新出版物或者更新在售出版物信息等操作。

现采用面向对象方法分析并设计该网上商店ACShop,得到如图3-1所示的用例图和图3-2所示的类图。

 

【问题1】(4分)
据说明中的描述,给出图3-1中(1)~(4)所对应的用例名。

【问题2】(4分)
根据说明中的描述,分别说明用例“添加新地址”和“添加新付款方式”会在何种情况下由图3-1中的用例(3)和(4)扩展而来?

【问题3】(7分)
根据说明中的描述,给出图3-2中(1)~(7)所对应的类名。

参考答案:

【问题1】 (1)添加出版物到购物车 (2)结账 (3选择收货地址 (4)选择付款方式

【问题2】

当选择收货地址时,没有地址信息,则使用扩展用例"添加新地址"来完成新地址的添加。
当选择付款方式时,没有付款方式信息,则使用扩展用例"添加新付款方式"来完成新付款方式的添加。

【问题3】 (1)出版物目录 (2)待购买的出版物 (3)学术出版物 (4)-(6)论文、学术报告、讲座资料 (7)订单

试题分析: 本题属于软件设计师的传统考题,问题1与问题3都有成熟的解题套路,在以前考题分析中已有非常详细的介绍。在此主要分析问题2。 问题⒉涉及到的是扩展关系运作机制,在扩展关系中,一个用例称为基础用例,另一个用例称为扩展用例,其中扩展用例是对基础用例的补充,扩展用例不是每次都执行,要特定条件满足才执行。 以本题中用例"添加新地址"为例,他就是一个扩展用例,什么时候他会执行呢﹖就是当选择收货地址时,系统检测发现没有地址信息,此时会"添加新地址"来完成新地址的添加,然后再先择收货地址。添加新付款方式用例情况与此类似。

试题四

【说明】
计算两个字符串x和y的最长公共子串(Longest Common Substring)。
假设字符串x和字符串y的长度分别为m和n,用数组c的元素c[i][j]记录x中前i个字符和y中前j个字符的最长公共子串的长度。
c[i][j]满足最优子结构,其递归定义为:

 计算所有 c[i][j] (0≤i≤m,0≤j≤n) 的值,值最大的 c[i][j] 即为字符串 x 和 y 的最长公共子串的长度。根据该长度即i和j,确定一个最长公共子串。
(1)常量和变量说明

x,y:长度分别为m和n的字符串。
c[i][j]:记录x中前i字符和y中前j个字符的最长公共子串的长度。
max:x和y的最长公共子串的长度。
maxi,maxj:分别表示x和y的某个最长公共子串的最后一个字符在x和y中的位置(序号)。
 

(2)C程序

【问题1】(8分)
根据以上说明和C代码,填充C代码中的空(1)~(4)。

【问题2】(4分)
根据题干说明和以上C代码,算法采用了(5)设计策略。
分析时间复杂度为(6)(用O符号表示)。

【问题3】(3分)
根据题干说明和以上C代码,输入字符串x="ABCADAB’,'y=“BDCABA”,则输出为(7)。

问题1:

#include<stdio.h>
#include<math.h>
#include<string.h>
​
int c[50][50];//记录x中前i个字符和y中前j个字符的最长公共子串的长度。
int maxi;//表示x的某个最长公共子串的最后一个字符在x中的位置
int maxj;//表示y的某个最长公共子串的最后一个字符在y中的位置
​
int lcs(char *x, int m, char *y, int n){
    //返回公共子串长度
     
    int i, j;
    int max=0;
    maxi=0;
    maxj=0;
    
    //数组c[0][0]-c[m][0]、 c[0][0]-c[0][n]全都设为0 
    for(i=0;i<=m;i++)
        c[i][0]=0;
    for(i=1;i<=n;i++)
        c[0][i]=0;
        
    for(i=1;i<=m;i++){
        for(j=1;j<=n;j++){
            if(x[i-1]==y[j-1]){//填空1,递归公式  
                c[i][j]=c[i-1][j-1]+1;//
                if(max<c[i][j]){
                    //填空2
                    max=c[i][j];
                    maxi=i;
                    maxj=j; 
                }
            }
            else
                //填空3
                c[i][j]=0;               
        }
    }
    return max; 
}
​
void printLCS(int max,char *x){
    //打印公共子串
    int i=0;
    if(max==0)
        return;
    for(i=maxi-max;i<maxi;i++)//第4空
        printf("%c",x[i]); 
}
​
int main(){
    char *x="ABCADAB";
    char *y="BDCABA";
    int max=0;
    int m=strlen(x);
    int n=strlen(y);
    max=lcs(x,m,y,n);
    printLCS(max,x);
    printf("\n%d",max); 
    return 0;
}

填空1:根据递归公式,可以看出x[i]=y[j],i>0,这边是从i=1开始for循环,所以x[i-1]=y[j-1]

填空2:由上面两行代码可以看出,c[i][j]存放的是当前ij时刻的最大公共子串长度,这边很容易想到max=c[i][j];

填空3:如果没有x[i-1]=y[j-1],那么公共子串长度为0,即c[i][j]=0;

填空4:printLCS函数是用来打印公共子串的,maxi表示x的某个最长公共子串的最后一个字符在x中的位置,必然有maxi>=max,所以i的初始循环从i=maxi-max开始

如果不理解,可以将x和y带入,手算或debug加深下理解。

问题2:动态规划法、O(m*n)

两层for循环,里面相乘就行

问题3:AB(看见看就可以看出最长公共子串)

试题五

【说明】
某大型购物中心欲开发一套收银软件,要求其能够支持购物中心在不同时期推出的各种促销活动,如打折、返利(例如,满300返100)等等。现采用策略( Strategy)模式实现该要求,得到如图6-1所示的类图。

 

 

代码

package test_2015_2;

enum TYPE{NORMAL,CASH_DISCOUNT,CASH_RETURN};

interface CashSuper{
    double accptCash(double money); //填空1
}

class CashNormal implements CashSuper{ //正常收费子类
    public double accptCash(double money){
        return money;
    }
}

class CashDiscount implements CashSuper{
    private double moneyDiscount;//折扣率
    public CashDiscount(double moneyDiscount){
        this.moneyDiscount=moneyDiscount;
    }
    public double accptCash(double money){
        return money*moneyDiscount;
    }
}

class CashReturn implements CashSuper{// 满额返利
    private double moneyCondition;
    private double moneyReturn;

    public CashReturn(double moneyCondition, double moneyReturn){
        this.moneyCondition=moneyCondition; //满额数额
        this.moneyReturn=moneyReturn;//返利数额
    }

    public double accptCash(double money){
        double result = money;
        if (money>=moneyCondition)
            result=money-Math.floor(money/moneyCondition)*moneyReturn;
        return result;
    }
}

class CashContext{
    private CashSuper cs;
    private  TYPE t;
    public CashContext(TYPE t){
        switch (t){
            case NORMAL://正常收费
//                填空2
                cs=new CashNormal();
                break;
            case CASH_DISCOUNT://打8折
                //                填空3
                cs=new CashDiscount(0.8);
                break;
            case CASH_RETURN://满300返100
                //                填空4
                cs=new CashReturn(300,100);
                break;
        }
    }

    public double GetResult(double money){
        //填空5
        return this.cs.accptCash(money);
    }
}



public class CashSuperTest {
    public static void main(String[] args) {
        // 假设买了300的东西,需付多少
        CashContext cc =new CashContext(TYPE.NORMAL);
        System.out.println("Normal:"+cc.GetResult(300));//Normal:300.0

        CashContext cc1 =new CashContext(TYPE.CASH_DISCOUNT);
        System.out.println("CASH_DISCOUNT:"+cc1.GetResult(300));//CASH_DISCOUNT:240.0

        CashContext cc2 =new CashContext(TYPE.CASH_RETURN);
        System.out.println("CASH_RETURN:"+cc2.GetResult(300));//CASH_RETURN:200.0

    }
}

【解析】

填空1:定位实现接口 CashSuper的3个类CashNormal、CashDiscount、CashReturn,这3个类都有函数public double accptCash(double money);则,接口CashSuper中必有此函数的定义,推断填空1是此函数定义,查看博客java接口中的方法的定义_java接口中方法的定义_征程123的博客-CSDN博客;

填空2、3、4:所填的不同折扣情况下的CashSuper,答案很有规律,会一个,其他两空都会

填空5:计算所需支付的钱,直接调用accptCash方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/461360.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ajax 数据库

文章目录 AJAX Database 实例AJAX 数据库实例实例解释 showCustomer() 函数AJAX 服务器页面 AJAX Database 实例 AJAX 可用来与数据库进行动态通信。 AJAX 数据库实例 下面的例子将演示网页如何通过 AJAX 从数据库读取信息&#xff1a; 请在下面的下拉列表中选择一个客户&…

【wpf】转换器 Converter

今天积攒了一个转换器的用法&#xff0c;分享给各位。 我们经常会有这种需求&#xff1a; 某些控件有时需要显示&#xff0c;有时需要隐藏&#xff0c;比如&#xff1a; 那&#xff0c;我就想通过一个bool变量和是否显示绑定。 但是我们知道&#xff0c;是否显示&#xff0c;…

nssctf web

[BJDCTF 2020]easy_md5 测试发现输入的内容会通过get传递但是没有其他内容 观察一下响应头 我们看到了 select * from admin where passwordmd5($pass,true) 这里的md5(string,raw) 这里的string应该清楚就是字符串&#xff0c;是必选参数 raw是可选参数 默认不写为FA…

08 - Linux终端与进程

---- 整理自狄泰软件唐佐林老师课程 查看所有文章链接&#xff1a;&#xff08;更新中&#xff09;Linux系统编程训练营 - 目录 文章目录 1. 详解控制台与终端1.1 问题1.2 历史回顾1.2.1 控制台(Console)1.2.2 终端&#xff08;Terminal&#xff09; 1.3 历史发展进程1.4 终端与…

【Springboot系列】项目启动时怎么给mongo表加自动过期索引

1、前言 在之前操作mongo的过程中&#xff0c;都是自动创建&#xff0c;几乎没有手动创建过表。 这次开发中有张表数据量大&#xff0c;并且不是特别重要&#xff0c;数据表维护一个常见的问题是过期数据没有被及时清理&#xff0c;导致数据量过大&#xff0c;查询变得缓慢。…

【操作系统】CPU 缓存一致性、MESI 协议

【操作系统】CPU 缓存一致性、MESI 协议 参考资料&#xff1a; CPU缓存一致性协议(MESI) 【JUC】Java并发机制的底层实现原理 CPU 缓存一致性 文章目录 【操作系统】CPU 缓存一致性、MESI 协议CPU Cache 的数据写入写直达写回 缓存一致性问题总线嗅探MESI 协议总结 CPU Cache …

电感知识大全

目录 一、电感的种类 1、共模电感 2、差模电感 3、工字电感 功率电感 4、磁珠 5、变压器 6、R棒电感、棒形电感、差模电感 二、电感符号 三、电感特性 前面在学习电容的时候&#xff0c;为了让大家更形象&#xff0c;更通俗的去理解这个元器件&#xff0c;都是拿水缸去…

IO多路复用——select函数

1.select函数原型和fd_set结构体说明 1.1 select函数原型 ​ 使用 select 这种 IO 多路转接方式需要调用一个同名函数 select&#xff0c;这个函数是跨平台的&#xff0c;Linux、Mac、Windows 都是支持的。程序员通过调用这个函数可以委托内核帮助我们检测若干个文件描述符的…

mybatisPlus·入门·贰

文章目录 1 简单CRUD接口1.1 根据id查询&#xff08;{id传参&#xff09;1.1.1 接口类直接继承IService1.1.2 controller直接调用方法 1.2 根据ids查询1.3 新增1.3.1 接口类直接继承IService1.3.2 controller直接调用方法 1.4 修改状态&#xff08;Query传参&#xff09;1.4.1 …

GPT-4 IDEA神仙插件亲测帮助亿万用户解决痛点!

最近&#xff0c;Intellij IDEA的插件商店推出了一款新的插件——Bito&#xff0c;据说使用了GPT-4和ChatGPT来帮助开发人员编写代码&#xff0c;并且下载量已经达到了65K以上。 这款插件可以将GPT-4和ChatGPT引入IDE来大大提高开发人员的效率。它使用了OpenAI的模型&#xff0…

ESP32设备驱动-BMM150数字地磁传感器驱动

BMM150数字地磁传感器驱动 文章目录 BMM150数字地磁传感器驱动1、BMM150介绍2、硬件准备3、软件准备4、驱动实现1、BMM150介绍 BMM150 是一款低功耗、低噪声的 3 轴数字地磁传感器,用于罗盘应用。 具有 1.56 x 1.56 mm 和 0.60 mm 高度的 12 引脚晶圆级芯片级封装 (WLCSP) 为…

JavaEE 2(4/24)

目录 1.线程 2.前台线程和后台线程 3.run和start的区别 4.线程的终止 5.线程等待 6.获取当前线程的引用 1.线程 创建线程需要继承Thread方法 调用start方法就会生成一个新的线程,调用run方法会在老的线程继续跑 main也是个线程,他是自动调用的.线程休息了先唤醒main和thre…

【文章学习系列之模型】Informer

本章内容 文章概况总体结构重点结构self-attention distilling operation&#xff08;自注意蒸馏操作&#xff09;generative style decoder&#xff08;生成式解码器&#xff09;ProbSparse self-attention mechanism&#xff08;概率稀疏自注意机制&#xff09; 实验结果主要…

双向沟通写作法: 用妙记多 Mojidoc 快速写作的实践

在妙记多 Mojidoc&#xff0c;我们希望能够为用户提供快速开始生产力的工具&#xff0c;为此我们一直在加快完善用户使用中的需求和功能迭代&#xff0c;请查看妙记多更新日志&#xff0c;看看我们产品改进速度。 妙记多 Mojidoc 如何实践双向沟通写作法以及在双向写作的文档中…

自称是资深Android程序员的面试现场,结果被面试官吊打~

1背景 牛哥工作五年了&#xff0c;是一名“资深”程序员&#xff08;嗯…至少他自己是这么认为的&#xff09; 牛哥所在的公司已经两年没有涨过工资了&#xff08;嗯…至少他是两年没涨过了&#xff09; 牛哥坐不住了&#xff0c;这位“资深”程序员打算去“外面的世界”看看…

〖ChatGPT实践指南 - 零基础扫盲篇④〗- OpenAI API 相关介绍、提示-Prompt 与 完成-Completion

文章目录 ⭐ OpenAI API介绍⭐ 提示-Prompt 与 完成-Completion 介绍 这一章节将为各位小伙伴介绍一下 OpenAI 的 API 相关内容&#xff0c;以及在 ChatGPT 中两个经常被用来比较的名词&#xff1a;“提示-prompt” 与 “完成-completion”。 ⭐ OpenAI API介绍 OpenAI API 概…

Fido无密码认证示例部署运行

文章目录 什么是FIDOwebauthn部署运行访问测试 本文对fido基本概念进行总结说明&#xff0c;并部署运行一个实际的例子&#xff0c;可以直观的体验fido无密码认证。晚上的例子方便后续实现相关功能。 什么是FIDO 常见认证方式的问题 目前流行认证方式普遍存在一些问题 用户名…

Ajax ASP/PHP

文章目录 AJAX ASP/PHP 实例AJAX ASP/PHP 实例实例解析 showHint() 函数AJAX 服务器页面 ASP 和 PHPASP 文件PHP 文件 AJAX ASP/PHP 实例 AJAX 用于创造动态性更强的应用程序。 AJAX ASP/PHP 实例 下面的例子将为您演示当用户在输入框中键入字符时&#xff0c;网页如何与 web…

【打卡-Coggle竞赛学习2023年4月】图像检索与重复图像识别

#### 任务1&#xff1a;图像匹配与检索 图像相似度 图像相似度是用于度量两幅图像之间相似程度的指标。图像相似度可以基于像素级别的相似度或者基于特征匹配的相似度来计算。像素级别的相似度通常是基于两幅图像的像素值来计算的&#xff0c;包括均方误差、结构相似性指数&a…

被遗忘的Java关键字:transient

前言 今天在看项目代码时候&#xff0c;看到了下面这样一行代码&#xff0c;用transient修饰了一个变量&#xff0c;主要作用是做一个全局开关。说实话我是第一次看到这个关键字。激发了我的好奇心&#xff0c;所以就了解一下这是何方神圣。 /*** 全局开关*/public static tran…