?案源??⼰??Դ??
//主类EnglishTest——
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class EnglishTest extends JFrame
{
TestArea testPanel=null;
Container con=null;
public EnglishTest()
{
super("模拟考试");
testPanel=new TestArea();
con=getContentPane();
con.add(testPanel,BorderLayout.CENTER);
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0);
}
});
setVisible(true);
setBounds(,,,);
con.validate();
validate();
}
public static void main(String args[])
{
new EnglishTest();
}
}
//读取试题 ReadTestquestion
import java.io.*;
import java.util.*;
public class ReadTestquestion
{ String filename="",
correctAnswer="",
testContent="" ,
selection="" ;
int score=0;
long time=0;
boolean 完成考试=false;
File f=null;
FileReader in=null;
BufferedReader 读取=null;
public void setFilename(String name)
{ filename=name;
score=0;
selection="";
try {
if(in!=null&&读取!=null)
{
in.close();
读取.close();
}
f=new File(filename);
in=new FileReader(f);
读取=new BufferedReader(in);
correctAnswer=(读取.readLine()).trim();
String temp=(读取.readLine()).trim() ;
StringTokenizer token=new StringTokenizer(temp,":");
int hour=Integer.parseInt(token.nextToken()) ;
int minute=Integer.parseInt(token.nextToken());
int second=Integer.parseInt(token.nextToken());
time=*(second+minute*+hour**);
}
catch(Exception e)
{
testContent="没有选择试题";
}
}
public String getFilename()
{
return filename;
}
public long getTime()
{
return time;
}
public void set完成考试(boolean b)
{
完成考试=b;
}
public boolean get完成考试()
{
return 完成考试;
}
public String getTestContent()
{ try {
String s=null;
StringBuffer temp=new StringBuffer();
if(读取!=null)
{
while((s=读取.readLine())!=null)
{
if(s.startsWith("**"))
break;
temp.append("\n"+s);
if(s.startsWith("endend"))
{
in.close();
读取.close();
完成考试=true;
}
}
testContent=new String(temp);
}
else
{
testContent=new String("没有选择试题");
}
}
catch(Exception e)
{
testContent="试题内容为空,考试结束!!码试";
}
return testContent;
}
public void setSelection(String s)
{
selection=selection+s;
}
public int getScore()
{ score=0;
int length1=selection.length();
int length2=correctAnswer.length();
int min=Math.min(length1,题及length2);
for(int i=0;i<min;i++)
{ try{
if(selection.charAt(i)==correctAnswer.charAt(i))
score++;
}
catch(StringIndexOutOfBoundsException e)
{
i=0;
}
}
return score;
}: -8-
public String getMessages()
{
int length1=selection.length();
int length2=correctAnswer.length();
int length=Math.min(length1,length2);
String message="正确答案:"+correctAnswer.substring(0,length)+"\n"+
"你的回答:"+selection+"\n";
return message;
}
}
//考试区域TestArea
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
class FileName implements FilenameFilter
{
String str=null;
FileName (String s)
{
str="."+s;
}
public boolean accept(File dir,String name)
{
return name.endsWith(str);
}
}
public class TestArea extends JPanel implements ActionListener,ItemListener,Runnable
{
Choice list=null;
JTextArea 试题显示区=null,消息区=null;
JCheckBox box[];
JButton 提交该题答案,读取下一题,查看分数;
ReadTestquestion 读取试题=null;
JLabel welcomeLabel=null;
Thread countTime=null;
long time=0;
JTextField timeShow=null;
boolean 是否关闭计时器=false,
是否暂停计时=false;
JButton 暂停或继续计时=null;
public TestArea()
{
list= new Choice();
String 当前目录=System.getProperty("user.dir");
File dir=new File(当前目录);
FileName fileTxt=new FileName("txt");
String fileName[]=dir.list(fileTxt);
for(int i=0;i<fileName.length;i++)
{
list.add(fileName[i]);
}
试题显示区=new JTextArea(,);
试题显示区.setLineWrap(true);
试题显示区.setWrapStyleWord(true);
试题显示区.setFont(new Font("TimesRoman",Font.PLAIN,));
试题显示区.setForeground(Color.blue);
消息区=new JTextArea(8,8);
消息区.setForeground(Color.blue);
消息区.setLineWrap(true);
消息区.setWrapStyleWord(true);
countTime=new Thread(this);
String s[]={ "A","B","C","D"};
box=new JCheckBox[4];
for(int i=0;i<4;i++)
{
box[i]=new JCheckBox(s[i]);
}
暂停或继续计时=new JButton("暂停计时");
暂停或继续计时.addActionListener(this);
提交该题答案=new JButton("提交该题答案");
读取下一题=new JButton("读取第一题");
读取下一题.setForeground(Color.blue);
提交该题答案.setForeground(Color.blue);
查看分数=new JButton("查看分数");
查看分数.setForeground(Color.blue);
提交该题答案.setEnabled(false);
提交该题答案.addActionListener(this);
读取下一题.addActionListener(this);
查看分数.addActionListener(this);
list.addItemListener(this);
读取试题=new ReadTestquestion();
JPanel pAddbox=new JPanel();
for(int i=0;i<4;i++)
{
pAddbox.add(box[i]);
}
Box boxH1=Box.createVerticalBox(),
boxH2=Box.createVerticalBox(),
baseBox=Box.createHorizontalBox();
boxH1.add(new JLabel("选择试题文件"));
boxH1.add(list);
boxH1.add(new JScrollPane(消息区));
boxH1.add(查看分数);
timeShow=new JTextField();
timeShow.setHorizontalAlignment(SwingConstants.RIGHT);
timeShow.setEditable(false);
JPanel p1=new JPanel();
p1.add(new JLabel("剩余时间:"));
p1.add(timeShow);
p1.add(暂停或继续计时);
boxH1.add(p1);
boxH2.add(new JLabel("试题内容:"));
boxH2.add(new JScrollPane(试题显示区));
JPanel p2=new JPanel();
p2.add(pAddbox);
p2.add(提交该题答案);
p2.add(读取下一题);
boxH2.add(p2);
baseBox.add(boxH1);
baseBox.add(boxH2);
setLayout(new BorderLayout());
add(baseBox,BorderLayout.CENTER);
welcomeLabel=new JLabel("欢迎考试,提高英语水平",JLabel.CENTER);
welcomeLabel.setFont(new Font("隶书",Font.PLAIN,));
welcomeLabel.setForeground(Color.blue);
add(welcomeLabel,BorderLayout.NORTH);
}
public void itemStateChanged(ItemEvent e)
{
timeShow.setText(null);
是否关闭计时器=false;
是否暂停计时=false;
暂停或继续计时.setText("暂停计时");
String name=(String)list.getSelectedItem();
读取试题.setFilename(name);
读取试题.set完成考试(false);
time=读取试题.getTime();
if(countTime.isAlive())
{
是否关闭计时器=true;
countTime.interrupt();
}
countTime=new Thread(this);
消息区.setText(null);
试题显示区.setText(null);
读取下一题.setText("读取第一题");
提交该题答案.setEnabled(false);
读取下一题.setEnabled(true);
welcomeLabel.setText("欢迎考试,你选择的试题:"+读取试题.getFilename());
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==读取下一题)
{
读取下一题.setText("读取下一题");
提交该题答案.setEnabled(true);
String contentTest=读取试题.getTestContent();
试题显示区.setText(contentTest);
消息区.setText(null);
读取下一题.setEnabled(false);
try {
countTime.start();
}
catch(Exception event)
{
}
}
if(e.getSource()==提交该题答案)
{
读取下一题.setEnabled(true);
提交该题答案.setEnabled(false);
String answer="?";
for(int i=0;i<4;i++)
{
if(box[i].isSelected())
{
answer=box[i].getText();
box[i].setSelected(false);
break;
}
}
读取试题.setSelection(answer);
}
if(e.getSource()==查看分数)
{
int score=读取试题.getScore();
String messages=读取试题.getMessages();
消息区.setText("分数:"+score+"\n"+messages);
}
if(e.getSource()==暂停或继续计时)
{
if(是否暂停计时==false)
{
暂停或继续计时.setText("继续计时");
是否暂停计时=true;
}
else if(是否暂停计时==true)
{
暂停或继续计时.setText("暂停计时");
是否暂停计时=false;
countTime.interrupt();
}
}
}
public synchronized void run()
{
while(true)
{
if(time<=0)
{
是否关闭计时器=true;
countTime.interrupt();
提交该题答案.setEnabled(false);
读取下一题.setEnabled(false);
timeShow.setText("用时尽,考试结束");
}
else if(读取试题.get完成考试())
{
是否关闭计时器=true;
timeShow.setText("考试效果:分数*剩余时间(秒)="+1.0*读取试题.getScore()*(time/));
countTime.interrupt();
提交该题答案.setEnabled(false);
读取下一题.setEnabled(false);
}
else if(time>=1)
{
time=time-;
long leftTime=time/;
long leftHour=leftTime/;
long leftMinute=(leftTime-leftHour*)/;
long leftSecond=leftTime%;
timeShow.setText(""+leftHour+"小时"+leftMinute+"分"+leftSecond+"秒");
}
try
{
Thread.sleep();
}
catch(InterruptedException ee)
{
if(是否关闭计时器==true)
return ;
}
while(是否暂停计时==true)
{
try
{
wait();
}
catch(InterruptedException ee)
{
if(是否暂停计时==false)
{
notifyAll();
}
}
}
}
}
}
LiveData 面试题库、解答、答案loldll显cd源码源码分析
LivaData 的源码面试题库与解答、源码分析 作者:唐子玄1. LiveData 如何感知生命周期的下载变化?
LiveData 在常规的观察者模式上附加了条件,若生命周期未达标,试题即使数据发生变化也不通知观察者。及答这通过 Lifecycle 实现,案源Lifecycle 是码试生命周期对应的类,提供了添加/移除生命周期观察者的题及方法,并定义了全部生命周期的答案状态及对应事件。要观察生命周期,源码需要实现 LifecycleEventObserver 接口,并注册给 Lifecycle。除了生命周期观察者外,还有数据观察者,短板指标源码数据观察者会与 LifecycleOwner 进行绑定。2. LiveData 是如何避免内存泄漏的?
内存泄漏是因为长生命周期的对象持有了短生命周期对象。在观察 LiveData 数据的代码中,Observer 作为界面的匿名内部类,它会持有界面的引用,同时 Observer 被 LiveData 持有,LivData 被 ViewModel 持有,而 ViewModel 的生命周期比 Activity 长。最终的持有链导致内存泄漏。LiveData 帮助避免内存泄漏,在内部 Observer 会被包装成 LifecycleBoundObserver,这实现了生命周期感知能力,同时它还持有了数据观察者,具备了数据观察能力。3. LiveData 是粘性的吗?若是,它是怎么做到的?
是的,LiveData 是粘性的。数据是rk启动源码持久的,意味着它不会因被消费而消失。当 LiveData 值更新时,会通知所有观察者。这一过程通过一个 Map 结构保存了所有观察者,并通过遍历 Map 并逐个调用 considerNotify() 方法实现。观察者会被包装在 LifecycleBoundObserver 中,它具备了生命周期感知能力,同时持有了数据观察者。当组件生命周期发生变化时,会尝试将最新值分发给该数据观察者。4. 粘性的 LiveData 会造成什么问题?怎么解决?
粘性的 LiveData 可能导致数据重复消费或消费逻辑混乱。解决方案包括使用带消费记录的值、带有最新版本号的观察者、SingleLiveEvent 等。其中,使用 SingleLiveEvent 可以根据数据的分类(暂态数据或非暂态数据)来选择性地利用或避免粘性。5. 什么情况下 LiveData 会丢失数据?
在高频数据更新的场景下使用 LiveData.postValue() 时,如果在这次调用和下次调用之间再次调用 postValue(),象棋比赛源码则会导致数据丢失,因为值先被缓存,再向主线程抛出分发值的任务。这与 LiveData 的设计和更新机制有关。6. 在 Fragment 中使用 LiveData 需注意些什么?
在 Fragment 中使用 LiveData 时,应当使用 viewLifecycleOwner 而非 this。避免因生命周期不一致导致的额外订阅者问题。使用 SingleLiveEvent 可以解决数据重复消费问题。7. 如何变换 LiveData 数据及注意事项?
androidx.lifecycle.Transformations 提供了变换 LiveData 数据的方法,如 map()。需要注意数据变换操作应避免阻塞主线程,可使用 CoroutineLiveData 来异步化数据变换。-最全高考数学真题(LaTeX模板试卷宏包源代码)
编写一个制作试卷模板的LaTeX宏包(GEEexam.sty)的步骤如下:
宏包命名与文件创建
定义宏包名并创建GEEexam.sty文件。
引入必要宏包
在GEEexam.sty中,使用\RequirePackage{ 宏包名}引入所需宏包。
设置文档格式
步骤包括设置页眉页脚、数学字体为新罗马体、大题标题、ist源码大全选择题选项格式和填空题横线。
GEEexam.sty的完整代码
包括以上设置的代码片段,总量不超过行。
案例演示:年理科数学高考试题排版
使用GEEexam.sty宏包成功排版年理科数学高考试题。
提供历年真题
包含年到年各省市文理科高考数学真题。
实践分享
年全国高考数学真题(全国卷)为例演示。
总结与鼓励
期望此教程能帮助读者,给予积极的反馈与支持。
年4月电子商务法概论自考试题及参考答案
1、我国最早确认数据电文合法性的法律是()。
A.《计算机软件保护条例》
B.《中华人民共和国电子签名法》
C.年修订《中华人民共和国合同法》
D.年联合国颁布的《电子商务示范法》
参考答案:C
2、下列属于直接电子商务活动的选项是()。
A.网上销售电脑
B.网上销售冰箱
C.在线支付购买或阅读电子书
D.在线购买手机
参考答案:C
3、根据有关法规,在我国从事国际联网经营活动接入单位实行国际联网经营()。
A.备案制度
B.许可证制度
C.审核批准制度
D.先申请先注册制度
参考答案:B
4、在ICP责任分担上,主要采取()。
A.无过错责任原则
B.过错责任原则
C.部分过错责任
D.主观过错责任
参考答案:B
5、要约邀请是()。
A.希望他人与自己订立合同
B.希望他人以电子邮件方式订立合同
C.以EDI方式订立的合同
D.希望他人向自己发出要约意思的表示
参考答案:A
6、下列合同中,属于狭义电子合同的是()。
A.采用传真方式订立的合同
B.以电报方式订立的合同
C.以电传方式订立的合同
D.以电子邮件方式订立的合同
参考答案:D
7、采用技术特定型立法模式制定的电子签名法是()。
A.美国犹他州《数字签名法》
B.新加坡《电子交易法》
C.联合国《电子商务示范法》
D.欧盟《电子签名共同框架指令》
参考答案:A
8、公开秘钥加密电子签名的方法是()。
A.对称性秘钥加密
B.非对称性秘钥加密
C.公钥加密
D.私钥加密
参考答案:B
9、以特定的机构,对电子签名及其签署者的真实性进行验证的具有法律意义的服务即为()。
A.认证
B.电子认证
C.交叉认证
D.PKI体系认证
参考答案:B
、采用非强制性许可制度进行电子认证的国家是()。
A.韩国
B.日本
C.德国
D.新加坡
参考答案:D
、SET协议的信用卡支付属于()。
A.无加密的信用卡支付
B.简单加密的信用卡支付
C.专用协议信用卡支付
D.通过第三方验证的信用卡支付
参考答案:D
、根据香港特别行政区的虚拟银行认可规则的规定,下列关于网上虚拟银行设立的一般原则中,错误的是()。
A.符合适用与传统银行一样的审慎准则
B.必须有与其业务类别相适应的保安系统
C.要经营银行业务
D.在香港没有实体办事处
参考答案:D
、建立在PKI体系之上的认证服务活动,其核心是()。
A.密钥备份及恢复系统
B.应用接口(API)
C.认证机构
D.数字证书库
参考答案:C
、以互联网上传输的和用户接收到的计算机信息数据单位“比特”的数量为收税依据的征税方案称为()。
A.字节税
B.关税
C.国际税收
D.商品税
参考答案:A
、对电子商务影响不甚明显的是()。
A.增值税
B.关税
C.所得税
D.财产税
参考答案:D
、下列属于隐形广告常见形式的是()。
A.图形、动漫互动广告
B.旗帜广告、按钮广告、弹出窗口广告等
C.网络新闻广告、BBS广告、搜索广告、专业服务广告等
D.电子邮件广告
参考答案:C
、网络隐私权保护模式主要包括()。
A.法律措施、行业政策指导、技术措施以及第三方认证等
B.国家立法主导模式
C.企业行业自律模式
D.国家立法主导和企业行业自律相结合的模式
参考答案:A
、有关网络隐私权P3P的含义是指()。
A.安全港模式
B.个人隐私偏好平台
C.网络中介隐私权认证服务
D.隐私保护法
参考答案:B
、反不正当竞争法可以对软件提供一定的保护,这种保护属于()。
A.软件的著作权保护
B.软件的专利权保护
C.软件的商业秘密保护
D.软件的商标权保护
参考答案:C
、同一商标的两个合法拥有者都想以他们的商标做域名的行为属于()。
A.域名抢注行为
B.域名混淆行为
C.同一商标的域名争议
D.反向域名侵夺
参考答案:C
、下列属于以计算机及网络工具实施的传统型犯罪的是()。
A.破坏计算机数据和应用程序罪
B.故意制作、传播*秽色情信息罪
C.破坏计算机信息系统功能罪
D.故意制作、传播破坏性计算机程序罪
参考答案:B
、下列选项中,不属于计算机信息系统犯罪类型的是()。
A.计算机网络诽谤、诈骗罪
B.破坏计算机信息系统功能罪
C.破坏计算机数据和应用程序罪
D.故意制造、传播破坏性计算机程序罪
参考答案:A
、年3月侄5月间,范某利用职务之便,非法进入最高检反渎职侵权厅网站后台,修改网页源代码(在网站源文件上植入“黑链代码”),对网站主页进行修改,以提高其他网站在搜索引擎的排名,从而达到非法获利的目的。根据我国刑法相关规定,其犯罪属于()。
A.非法侵入计算机信息系统罪和破坏计算机数据和应用程序罪
B.破坏计算机数据和应用程序罪和故意制作、传播破坏性计算机程序罪
C.破坏计算机信息系统功能罪和故意制作、传播破坏性计算机程序罪
D.非法侵入计算机信息系统罪和故意制作、传播破坏性计算机程序罪
参考答案:D
、根据我国民法通则第八章以及最高人民法院关于贯彻执行中华人民共和国民法通则若干问题的意见(试行)对于涉外民事关系法律适用的规定,下列说法正确的是()。
A.涉外合同争议的法律适用,适用侵权行为实施地法、当事人本国法或住所地法
B.涉外合同争议的法律适用,适用侵权结果发生地法、当事人本国法或住所地法
C.侵权行为的损害赔偿,依据当事人意思自治原则予以解决
D.侵权行为的损害赔偿,适用侵权行为地法、当事人本国法或住所地法
参考答案:D
、传统司法管辖权的基础是()。
A.以地域为基础、以当事人居住地为基础、以合同纠纷中当事人意志为基础
B.以地域为基础、以当事人国籍为基础、以合同纠纷中当事人意志为基础
C.以合同签订地为基础、以当事人国籍为基础、以合同纠纷当事人意志为基础
D.以网站域名注册地为基础、以当事人国籍为基础、以合同纠纷当事人意志为基础
参考答案:B
2024-12-24 00:14
2024-12-24 00:07
2024-12-23 23:10
2024-12-23 22:38
2024-12-23 22:14