移动编程样卷.doc
《移动编程样卷.doc》由会员分享,可在线阅读,更多相关《移动编程样卷.doc(5页珍藏版)》请在冰豆网上搜索。
![移动编程样卷.doc](https://file1.bdocx.com/fileroot1/2022-10/9/5643ee08-246f-4a60-9a9c-baabac322341/5643ee08-246f-4a60-9a9c-baabac3223411.gif)
信息学院11-12下学期期末考试《移动编程》试卷
广东外语外贸大学2011-2012学年度下学期
《移动编程》期末试卷(A卷)
试卷编号:
2011XX31500-01考核方式:
闭卷笔试满分:
100分考试限时:
120分钟
学院:
思科信息学院专业班级:
姓名:
学号:
说明:
请将答案写在答题卷中,考试结束,同时上交该试卷和答题卷
题号
一
二
三
四
五
六
七
八
总分
核分人
得分
评阅人
得分
评阅人
一、选择题(每小题2分,共20分)
1、一个MIDP程序中_________
a)全部都是MIDlet程序
b)至少有一个MIDlet程序
c)图像可以是jpg类型
d)图像可以存在任何目录
得分
评阅人
二、填空简答题(每空2分,共60分)
1、以下程序,请填
importjavax.microedition.lcdui.*;
importjavax.microedition.lcdui.game.*;
publicclassTransformSpriteCanvas___________________implementsRunnable{
privatebooleanisPlay; //值为true时游戏线程反复执行
privatelongdelay; //线程执行时的延时,控制游戏每帧的时间
privateintwidth,height; //保存屏幕的宽度和高度
privateSpriteairplane;
privateImagespriteImage; //生成背景、精灵所用图像
privateintFlyDirection; //存放目前精灵的角度
//FlyTransforms与FlyFrames组合形成精灵的各种角度
privatestaticfinalint[]FlyTransforms={
Sprite.TRANS_NONE,Sprite.TRANS_NONE,Sprite.TRANS_NONE,Sprite.TRANS_MIRROR_ROT90,
Sprite.TRANS_ROT90,Sprite.TRANS_ROT90,Sprite.TRANS_ROT90,Sprite.TRANS_MIRROR_ROT180,
Sprite.TRANS_ROT180,Sprite.TRANS_ROT180,Sprite.TRANS_ROT180,Sprite.TRANS_MIRROR_ROT270,
Sprite.TRANS_ROT270,Sprite.TRANS_ROT270,Sprite.TRANS_ROT270,Sprite.TRANS_MIRROR
};
privatestaticfinalint[]FlyFrames={
0,1,2,1,
0,1,2,1,
0,1,2,1,
0,1,2,1
};
//构造方法
publicTransformSpriteCanvas(){
super(true);
width=getWidth();
height=getHeight();
delay=50;
airplane=createSprite("/airplane.png",90,80);
//定义精灵的参考点为中心
airplane.defineReferencePixel(airplane.getWidth()/2,airplane.getHeight()/2);
//将精灵移动到屏幕中心
airplane.setRefPixelPosition(width/2,height/2);
}
//启动线程体
publicvoidstart(){
isPlay=true;
Threadt=newThread(this);
t.__________________;
}
//停止线程执行
publicvoidstop(){isPlay=false;}
//线程体,游戏主体
publicvoidrun(){
Graphicsg=getGraphics(); //获取脱机屏幕缓冲区中图形对象
longbeginTime=0,endTime=0;
while(isPlay==true){
beginTime=System.currentTimeMillis();
queryKey(); //查询按键状态
drawScreen(g); //绘制屏幕
endTime=System.currentTimeMillis();
if(endTime-beginTime try{
Thread.sleep(delay-(endTime-beginTime));
}catch(InterruptedExceptionie){ }
}
}
}
//主动查询按键状态,进行处理
privatevoidqueryKey(){
intkeyStates=getKeyStates(); //查询游戏按键状态
if((keyStates&LEFT_PRESSED)!
=0) //向左旋转
turn(-1);
if((keyStates&RIGHT_PRESSED)!
=0) //向右旋转
turn
(1);
}
//在屏幕上显示游戏画面
privatevoiddrawScreen(Graphicsg){
g.setColor(0x99ccff);
g.fillRect(0,0,getWidth(),getHeight());
airplane.__________________
flushGraphics();
}
//建立精灵
privateSpritecreateSprite(StringpicName,intspriteWidth,intspriteHeight){
try{
spriteImage=Image.__________________(picName);
}catch(Exceptione){}
Spritesprite=newSprite(__________________,spriteWidth,spriteHeight);
returnsprite;
}
//使精灵产生旋转效果
privatevoidturn(intdelta){
FlyDirection+=delta;
if(FlyDirection<0)FlyDirection+=16;
if(FlyDirection>15)FlyDirection%=16;
airplane.setFrame(FlyFrames[FlyDirection]);
airplane.setTransform(FlyTransforms[FlyDirection]);
}
}
得分
评阅人
三、程序设计题(1题,共20分)
1.创建一个登陆程序手机客户端。
请补充缺省的代码,并指出补充的代码所在的位置。
importjava.io.DataInputStream;
importjavax.microedition.io.Connector;
importjavax.microedition.io.HttpConnection;
importjavax.microedition.lcdui.*;
importjavax.microedition.midlet.MIDlet;
importjavax.microedition.midlet.MIDletStateChangeException;
publicclassHttpLoginMIDletextendsMIDletimplementsCommandListener{
privateFormfrm=newForm("HTTP测试");
privateTextFieldtfAcc=newTextField("输入账号","",10,TextField.ANY);
privateTextFieldtfPass=newTextField("输入密码","",10,TextField.PASSWORD);
privateCommandcmdLogin=newCommand("登录",Command.SCREEN,1);
privateStringItemstr=newStringItem("","");
privateDisplaydis;
protectedvoidstartApp()throwsMIDletStateChangeException{
//界面显示
…………
}
publicvoidcommandAction(Commandc,Displayabled){
if(c==cmdLogin){
ValidateTehreadvt=newValidateTehread();
vt.start();
}
}
classValidateTehreadextendsThread{
publicvoidrun(){
try{
Stringurl="http:
//localhost:
8080/myms/Login.jsp?
userid="+tfAcc.getString()+"&password="+tfPass.getString();
//连接到HTTP服务器,并进行交互
……
if(userinfo.equals("fail"))
{
str.setText("登录失败");
frm.removeCommand(cmdLogin);
}
else
{
str.setText(str.getText()+userinfo);
}
}catch(Exceptionex){
ex.printStackTrace();
}
}
}
protectedvoiddestroyApp(booleanarg0)throwsMIDletStateChangeException{}
protectedvoidpauseApp(){}
}
第5页共5页