《移动编程-样卷.doc》由会员分享,可在线阅读,更多相关《移动编程-样卷.doc(22页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date移动编程-样卷广东外语外贸大学信息学院广东外语外贸大学2011-2012学年度下学期移动编程期末试卷(A卷)试卷编号:2011XX31500-01 考核方式:闭卷笔试 满分:100分 考试限时:120分钟学院: 思科信息学院 专业班级: 姓名: 学号: 说明:请将答案写在答题卷中,考试结束,同时上交该试卷和答题卷题 号一二三四五六七八总分核分人得 分评阅人得分评阅人一
2、、 选择题 (每小题2分,共20分)1、 一个MIDP程序中_a) 全部都是MIDlet程序b) 至少有一个MIDlet程序c) 图像可以是jpg类型d) 图像可以存在任何目录得分评阅人二、填空简答题(每空2分,共60分)1、 以下程序,请填import javax.microedition.lcdui.*;import javax.microedition.lcdui.game.*;public class TransformSpriteCanvas_implements Runnable private boolean isPlay;/ 值为true时游戏线程反复执行private lon
3、g delay;/ 线程执行时的延时,控制游戏每帧的时间private int width, height;/ 保存屏幕的宽度和高度private Sprite airplane;private Image spriteImage;/ 生成背景、精灵所用图像private int FlyDirection;/ 存放目前精灵的角度/ FlyTransforms与FlyFrames组合形成精灵的各种角度private static final int FlyTransforms = Sprite.TRANS_NONE, Sprite.TRANS_NONE, Sprite.TRANS_NONE, S
4、prite.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;private static
5、final int FlyFrames = 0, 1, 2, 1,0, 1, 2, 1,0, 1, 2, 1,0, 1, 2, 1;/ 构造方法public TransformSpriteCanvas() super(true);width = getWidth();height = getHeight();delay = 50;airplane = createSprite(/airplane.png, 90, 80);/ 定义精灵的参考点为中心airplane.defineReferencePixel(airplane.getWidth()/2, airplane.getHeight()/
6、2);/ 将精灵移动到屏幕中心airplane.setRefPixelPosition(width/2 ,height/2);/ 启动线程体public void start() isPlay = true;Thread t = new Thread(this);t. _;/ 停止线程执行public void stop() isPlay = false; / 线程体,游戏主体public void run() Graphics g = getGraphics();/ 获取脱机屏幕缓冲区中图形对象long beginTime = 0, endTime = 0;while (isPlay = t
7、rue) beginTime = System.currentTimeMillis();queryKey();/ 查询按键状态drawScreen(g);/ 绘制屏幕endTime = System.currentTimeMillis();if (endTime - beginTime delay) try Thread.sleep(delay - (endTime - beginTime); catch (InterruptedException ie) / 主动查询按键状态,进行处理private void queryKey() int keyStates = getKeyStates()
8、;/ 查询游戏按键状态if (keyStates & LEFT_PRESSED) != 0)/ 向左旋转turn(-1);if (keyStates & RIGHT_PRESSED) !=0)/ 向右旋转turn(1);/ 在屏幕上显示游戏画面private void drawScreen(Graphics g) g.setColor(0x99ccff);g.fillRect(0, 0, getWidth(), getHeight();airplane. _flushGraphics();/ 建立精灵private Sprite createSprite(String picName, int
9、 spriteWidth, int spriteHeight) try spriteImage = Image. _ (picName); catch (Exception e) Sprite sprite = new Sprite(_, spriteWidth, spriteHeight);return sprite;/ 使精灵产生旋转效果private void turn(int delta) FlyDirection += delta;if (FlyDirection 15) FlyDirection %= 16;airplane.setFrame(FlyFramesFlyDirecti
10、on);airplane.setTransform(FlyTransformsFlyDirection);得分评阅人三、程序设计题(1题,共20分)1. 创建一个登陆程序手机客户端。请补充缺省的代码,并指出补充的代码所在的位置。import java.io.DataInputStream;import javax.microedition.io.Connector;import javax.microedition.io.HttpConnection;import javax.microedition.lcdui.*;import javax.microedition.midlet.MIDle
11、t;import javax.microedition.midlet.MIDletStateChangeException;public class HttpLoginMIDlet extends MIDlet implements CommandListenerprivate Form frm = new Form(HTTP测试);private TextField tfAcc = new TextField(输入账号,10,TextField.ANY);private TextField tfPass = new TextField(输入密码,10,TextField.PASSWORD);
12、private Command cmdLogin = new Command(登录,Command.SCREEN,1);private StringItem str = new StringItem(, );private Display dis;protected void startApp() throws MIDletStateChangeException /界面显示public void commandAction(Command c,Displayable d)if(c=cmdLogin)ValidateTehread vt = new ValidateTehread();vt.s
13、tart();class ValidateTehread extends Threadpublic void run()tryString url = http:/localhost:8080/myms/Login.jsp?userid=+tfAcc.getString()+&password=+tfPass.getString();/连接到HTTP服务器,并进行交互 if(userinfo.equals(fail)str.setText(登录失败);frm.removeCommand(cmdLogin);elsestr.setText(str.getText()+userinfo);catch(Exception ex)ex.printStackTrace();protected void destroyApp(boolean arg0) throws MIDletStateChangeException protected void pauseApp() -
限制150内