J2ME实验报告模版
j2me 实验四 http 天气预报 稳定性增强,请下载j2me实验四.txt,复制里面代码覆盖本文档内相应代码

淮海工学院计算机工程学院实验报告书课程名:《手持设备软件开发》题目:实验4:J2ME网络程序设计班级:学号:姓名:statue评语:成绩:指导教师:批阅时间:年月日一、实验目的与要求掌握MIDP网络程序设计的一般方法。
能够使用GCF中的类和接口及多线程进行网络客户端应用程序的开发,掌握基于HTTP编程的方法,能够处理GET与POST请求。
理解MIDlet推注册及响应网络连接的步骤及方法。
二、实验内容使用Google Weather API开发一个可以显示连云港天气预报的J2ME网络程序。
具体的方法是请求网址:/ig/api?weather=lianyungang&hl=zh-cn然后处理响应返回的XML文档。
样例文档如下:<xml_api_reply version="1"><weather module_id="0" tab_id="0" mobile_row="0" mobile_zipped="1"row="0" section="0"><forecast_information><city data="Lianyungang, Jiangsu" /><postal_code data="lianyungang" /><latitude_e6 data="" /><longitude_e6 data="" /><forecast_date data="2010-06-03" /><current_date_time data="2010-06-03 11:00:00 +0000" /><unit_system data="SI" /></forecast_information><current_conditions><condition data="雨" /><temp_f data="58" /><temp_c data="14" /><humidity data="湿度:89%" /><icon data="/ig/images/weather/cn_heavyrain.gif" /><wind_condition data="风向:米/秒" /></current_conditions><forecast_conditions><day_of_week data="周五" /><low data="14" /><high data="23" /><icon data="/ig/images/weather/sunny.gif" /><condition data="晴" /></forecast_conditions>……</weather></xml_api_reply>三、实验步骤import javax.microedition.midlet.*;import javax.microedition.io.*;import javax.microedition.lcdui.*;import java.io.*;import java.util.Vector;public class pro4 extends MIDlet implements CommandListener{public static final String RESPONSE_HEADER_CONTENT_LENGTH = "Content-Length";public static final String RESPONSE_HEADER_CONTENT_TYPE = "Content-Type";private Display display;private TextBox tbxMain;private Command cmdExit;private Command cmdDisplay;private String msg="";String url="/ig/api?weather=lianyungang&hl=zh-cn";public pro4(){display=Display.getDisplay(this);cmdExit=new Command("Exit",Command.SCREEN,1);cmdDisplay=new Command("刷新",Command.ITEM,2);getWeather();tbxMain=new TextBox("天气预报",msg,2000,0);tbxMain.addCommand(cmdExit);tbxMain.addCommand(cmdDisplay);tbxMain.setCommandListener(this);}//建立连接public void getWeather(){HttpConnection conn=null;try{conn=(HttpConnection)Connector.open(url,Connector.READ);conn.setRequestMethod(HttpConnection.POST);conn.setRequestProperty("User_agent","Profile/MIDP-2.0 Configuration/CLDC-1.1");}catch(IOException ioe){System.out.println(ioe);}try{DataInputStream sIs = conn.openDataInputStream();String outString=getResponseData(conn,sIs);System.out.println(outString);msg=outString;msg=division(msg);}catch(IOException io){System.out.print(io);}}//分割提取字符串public String division(String str){String out="";int cityStrStart=str.indexOf("city data=")+"city data=".length()+1;int cityStrEnd=str.indexOf("/><postal_code")-1;out=out+"城市:"+str.substring(cityStrStart,cityStrEnd)+'\n';int dateStrStart=str.indexOf("orecast_date data=")+"orecast_date data=".length()+1;int dateStrEnd=str.indexOf("/><current_date")-1;out=out+"日期:"+str.substring(dateStrStart,dateStrEnd)+'\n';int wetStrStart=str.indexOf("湿度:")+"湿度:".length();int wetStrEnd=str.indexOf("/><icon data=")-1;out=out+"湿度:"+str.substring(wetStrStart,wetStrEnd)+'\n';if( str.regionMatches( true,str.indexOf("gif\"/><wind_condition data=")+1 ,"风向" ,0 ,"风向".length() ) ){int windStrStart=str.indexOf("风向:")+"风向:".length();int windStrEnd=str.indexOf("/></current_conditions>")-1;out=out+"风向:"+str.substring(windStrStart,windStrEnd)+'\n';}//第一天int week1StrStart=str.indexOf("day_of_week data=")+"day_of_week data=".length()+1;int week1StrEnd=str.indexOf("/><low data=")-1;out=out+str.substring(week1StrStart,week1StrEnd)+'\n';int low1StrStart=str.indexOf("low data=")+"low data=".length()+1;int low1StrEnd=str.indexOf("/><high data=")-1;out=out+"最低温度:"+str.substring(low1StrStart,low1StrEnd);int high1StrStart=str.indexOf("/><high data=")+"/><highdata=".length()+1;int high1StrEnd=str.indexOf("/><icon data=\"/ig")-1;out=out+"最高温度:"+str.substring(high1StrStart,high1StrEnd);int condition1StrStart=str.indexOf("gif\"/><conditiondata=")+"gif\"/><condition data=".length()+1;int condition1StrEnd=str.indexOf("/></forecast_conditions")-1;out=out+"总体概况:"+str.substring(condition1StrStart,condition1StrEnd)+'\n';//第二天int week2StrStart=str.indexOf("day_of_weekdata=",condition1StrEnd+5)+"day_of_week data=".length()+1;int week2StrEnd=str.indexOf("/><low data=",condition1StrEnd+5)-1; out=out+str.substring(week2StrStart,week2StrEnd)+'\n';int low2StrStart=str.indexOf("low data=",condition1StrEnd+5)+"low data=".length()+1;int low2StrEnd=str.indexOf("/><high data=",condition1StrEnd+5)-1;out=out+"最低温度:"+str.substring(low2StrStart,low2StrEnd);int high2StrStart=str.indexOf("/><highdata=",condition1StrEnd+5)+"/><high data=".length()+1;int high2StrEnd=str.indexOf("/><icon data=\"/ig",condition1StrEnd+5)-1;out=out+"最高温度:"+str.substring(high2StrStart,high2StrEnd);int condition2StrStart=str.indexOf("gif\"/><conditiondata=",condition1StrEnd+5)+"gif\"/><condition data=".length()+1;intcondition2StrEnd=str.indexOf("/></forecast_conditions",condition1StrEnd+5)-1;out=out+"总体概况:"+str.substring(condition2StrStart,condition2StrEnd)+'\n';//第三天int week3StrStart=str.indexOf("day_of_weekdata=",condition2StrEnd+5)+"day_of_week data=".length()+1;int week3StrEnd=str.indexOf("/><low data=",condition2StrEnd+5)-1;out=out+str.substring(week3StrStart,week3StrEnd)+'\n';int low3StrStart=str.indexOf("low data=",condition2StrEnd+5)+"lowdata=".length()+1;int low3StrEnd=str.indexOf("/><high data=",condition2StrEnd+5)-1;out=out+"最低温度:"+str.substring(low3StrStart,low3StrEnd);int high3StrStart=str.indexOf("/><highdata=",condition2StrEnd+5)+"/><high data=".length()+1;int high3StrEnd=str.indexOf("/><icon data=\"/ig",condition2StrEnd+5)-1;out=out+"最高温度:"+str.substring(high3StrStart,high3StrEnd);int condition3StrStart=str.indexOf("gif\"/><conditiondata=",condition2StrEnd+5)+"gif\"/><condition data=".length()+1;intcondition3StrEnd=str.indexOf("/></forecast_conditions",condition2StrEnd+5)-1;out=out+"总体概况:"+str.substring(condition3StrStart,condition3StrEnd)+'\n';//第四天int week4StrStart=str.indexOf("day_of_weekdata=",condition3StrEnd+5)+"day_of_week data=".length()+1;int week4StrEnd=str.indexOf("/><low data=",condition3StrEnd+5)-1;out=out+str.substring(week4StrStart,week4StrEnd)+'\n';int low4StrStart=str.indexOf("low data=",condition3StrEnd+5)+"lowdata=".length()+1;int low4StrEnd=str.indexOf("/><high data=",condition3StrEnd+5)-1;out=out+"最低温度:"+str.substring(low4StrStart,low4StrEnd);int high4StrStart=str.indexOf("/><highdata=",condition3StrEnd+5)+"/><high data=".length()+1;int high4StrEnd=str.indexOf("/><icon data=\"/ig",condition3StrEnd+5)-1;out=out+"最高温度:"+str.substring(high4StrStart,high4StrEnd);int condition4StrStart=str.indexOf("gif\"/><conditiondata=",condition3StrEnd+5)+"gif\"/><condition data=".length()+1;intcondition4StrEnd=str.indexOf("/></forecast_conditions",condition3StrEnd+5)-1;out=out+"总体概况:"+str.substring(condition4StrStart,condition4StrEnd)+'\n';return out;}//获取内容public String getResponseData(HttpConnection aConn, DataInputStream sIs) { boolean isWap = true;byte[] sData = null;String sType = null;int sLen = 0;try {sType = aConn.getHeaderField(RESPONSE_HEADER_CONTENT_TYPE);sLen = Integer.parseInt(getResponseHeaderProperty(aConn, RESPONSE_HEADER_CONTENT_LENGTH));} catch (IOException ex) {System.err.print(ex.toString());} catch (Exception ex) {System.err.print(ex.toString());sLen = 0;}if (sLen > 0) {int sActual = 0; //每一次实际读取的字节数int sBytesread = 0; //总读取的字节数sData = new byte[sLen];while ((sBytesread != sLen) && (sActual != -1)) {try {sActual = sIs.read(sData, sBytesread, sLen - sBytesread); sBytesread += sActual;} catch (Exception ex) {System.err.print(ex.toString());return null;}}} else {int sCh = 0;Vector sVbuffer = new Vector();try {while ((sCh = sIs.read()) != -1) {sVbuffer.addElement(new Integer(sCh));}} catch (Exception ex) {System.err.print(ex.toString());return null;}sLen = sVbuffer.size();sData = new byte[sLen];for (int i = 0; i < sLen; i++) {sData[i] = ((Integer) sVbuffer.elementAt(i)).byteValue();}}String sResult = new String(sData);isWap = false;return sResult;}public String getResponseHeaderProperty(HttpConnection aConn, String aKey) {return aConn.getRequestProperty(aKey);}public void startApp(){display.setCurrent(tbxMain);}public void pauseApp(){}public void destroyApp(boolean unconditional){}public void commandAction(Command c,Displayable s){if(c==cmdExit){destroyApp(false);notifyDestroyed();}if(c==cmdDisplay){getWeather();tbxMain.setString(msg);System.out.println("msg"+msg);}}}四、实验结果五、结果分析与实验体会本次实验可以分为三个部分:建立连接,取出字符串,提取字符串。
实验5实验报告格式

《计算机图形学》实验5实验报告实验题目:多边形裁剪与填充实验内容:1 阅读理解提供的参考资料。
2编写并调通一个多边形裁剪的java程序。
3编写并调通一个多边形填充的java程序。
参考资料:1 fillpolygon.java 2 clipsc2.java2变换与剪裁.ppt3多边形的填充.ppt 基本概念:(详细叙述自己对实验内容的理解)多边形的裁剪:选择显示的内容--图形在窗口内的部分被显示出来,窗口外的部分被裁剪掉。
图形中每个基本元素都要经过裁剪,因此裁剪直接影响整个图形系统的效率。
多边形的填充:多边形填充就是把多边形的顶点表示转换为点阵表示,即从多边形的给定边界出发,求出位于其内部的各个像素,并将帧缓冲器内的各个对应元素设置相应的灰度或颜色。
实际上,也就是多边形内的区域的着色过程。
算法设计:(详细叙述自己设计的的算法)多边形的裁剪:1、算法的的基本思想:对于每条线段p1p2分为三种情况处理。
(1)若p1p2完全在窗口内,则显示该线段p1p2简称“取”之。
(2)若p1p2明显在窗口外,则丢弃该线段,简称“弃”之。
(3)若线段既不满足“取”的条件,也不满足“弃”的条件,则在交点处把线段分为两段。
其中一段完全在窗口外,可弃之。
然后对另一段重复上述处理。
2、sutherland–cohen算法分成两部分:第一步是判定:1) 完全在窗口内的直线段,称为完全可见的线段;2) 完全在窗口外的线段,称为完全不可见线段。
第二步处理不能断定为完全可见或完全不可见的线段。
这时需要计算出直线段和窗口边界的一个交点,这个交点把直线分成两段,其中一条为完全不可见的线段,被抛弃。
对余下部分再作第一步的判断,重复上述过程,直到直线段余下的部分可用第一步的判断得出肯定的结论为止。
多边形的填充:1、多边形填充的扫描线算法:1:计算扫描线与多边形各边的交点,设交点个数为n;2:把所有的交点按x值递增的顺序进行排列;3:将排序后的第1个与第2个交点,第3个与第4个交点,??第n-1个与第n个交点配对,每对交点就代表扫描;线与多边形的一个相交区间;4:把相交区间内的像素置成多边形的颜色,相交区间外的像素置成背景色。
微波顺磁共振核磁共振实验报告

微波顺磁共振核磁共振实验报告顺磁共振1、实验原理:一、电子的自旋轨道磁矩与自旋磁矩原子中的电子由于轨道运动,具有轨道磁矩,其数值为:e 负号表示方向同相反 P,,,Plll2me在量子力学中,因而 Pll,,(1),l,,ee 其中称为玻尔磁子。
,,,,,,(1)(1),,lllllBB22mmee电子除了轨道运动外还具有自旋运动,因此还具有自旋磁矩,,ee其数值表示为: ,,,,,(1)Pssssmmee由于原子核的磁矩可以忽略不计,原子中电子的轨道磁矩和自旋磁矩合成原子的总磁矩: 其,,,gPjj2mejjllss(1)(1)(1),,,,,中g是朗德因子, g,,12(1)jj,在外磁场中原子磁矩要受到力的作用,其效果是磁矩绕磁场的方向作旋进,也就是Pj绕着磁场方向作旋进,引入回磁比e,,,P,P,总磁矩可表示成。
同时原子角动量Pj和原子总磁矩取向是量子化的。
在外磁场方向上,,,gjjjj2me的投影为:Pmmjjjj,,,,,,? ,1,2, j其中m称为磁量子数,相应磁矩在外磁场方向上的投影为:,,,,,,,,,,mmgmjjjj,? ,1,2, jB二、电子顺磁共振EBmgBmB,,,,,,,,,,,原子磁矩与外磁场B相互作用可表示为: jB不同的磁量子数m所对应的状态表示不同的磁能级,相邻磁能级间的能量差为,,EB,,,它是由原子受磁场作用而旋进产生的附加能量。
如果在原子所在的稳定磁场区又叠加一个与之垂直的交变磁场,且角频率满足条件 ,即,刚好满足原子在稳定外磁场中的邻近二能级差时,二邻近能级之间就有共振跃迁,,,,,gB,,,,,,,EBB我们称之为电子顺磁共振。
当原子结合成分子或固体时,由于电子轨道运动的角动量常是猝灭的,即近似为零,所以分子和固体中的磁矩主要是电Pj子自旋磁矩的贡献。
根据泡利原理,一个电子轨道最多只能容纳两个自旋相反的电子,若电子轨道都被电子成对地填满了,它们的自旋磁矩相互抵消,便没有固有磁矩。
Eclipse实验报告---精品管理资料

南华大学实验报告(2010年到2011学年第一学期)课程名称:J2ME程序设计班级: 本08计算1班学号: 20084440101姓名: 袁洁教师:汪凤麟2010年上学期实验名称:创建简单的JA V A ME应用时间:2010/10/21 地点:8栋实验室一、实验设备:1.计算机2.Eclipse环境Eclipse是一种可扩展的开放源代码IDE.集成开发环境(IDE)经常将其应用范围限定在“开发、构建和调试”的周期之中。
为了帮助集成开发环境(IDE)克服目前的局限性,业界厂商合作创建了Eclipse 平台。
Eclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上.任何Eclipse插件定义的扩展点都能够被其它插件使用,反之,任何Eclipse插件也可以遵从其它插件定义的扩展点。
除了解由扩展点定义的接口外,插件不知道它们通过扩展点提供的服务将如何被使用。
利用Eclipse,我们可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起。
Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似于微软公司的Visual Studio和Sun微系统公司的NetBeans平台.Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。
缺点就是较复杂,对初学者来说,理解起来比较困难.二、实验目的:1。
创建MIDlet项目2。
检验Eclipse设置3。
创建Java Me项目4。
添加MIDlet到项目5.编辑Java Me元素6。
运行与调试7.向真机发布程序三、实验内容及方法:四、实验过程:1。
实验步骤在创建Java Me项目之前,先检查一下Eclipse设置是否完整1.Eclipse ME插件的检查首先,检查一下是否已经安装好Eclipse ME插件, 成功安装好Eclipse ME插件时,可以从3个地方看到。
十二烷基硫酸钠的综合实验实验报告

分类号密级UDC专业设计实验十二烷基硫酸钠的综合实验学生姓名王晓彤学号************指导教师张宏宇陆晓兰专业应用化学年级08级同组者王倩赖思瑾聂本敬邱垂延中国海洋大学化学化工学院十二烷基硫酸钠的综合实验【实验背景及原理】具有明显“两亲” 性质的分子,即含有亲油的足够长的(大于10-12个碳原子)烃基,又含有亲水的极性基团(通常是离子化的)。
由这一类分子组成的物质称为表面活性剂,如肥皂和各种合成洗涤剂等,表面活性剂分子都是由极性部分和非极性部分组成的,若按离子的类型分类,可分为三大类:①阴离子型表面活性剂,如羧酸盐(肥皂),烷基硫酸盐(十二烷基硫酸钠),烷基磺酸盐(十二烷基图1 表面活性剂在水中的行为苯磺酸钠)等;②阳离子型表面活性剂,主要是胺盐,如十二烷基二甲基叔胺和十二烷基二甲基氯化胺;③非离子型表面活性剂,如聚氧乙烯类。
图2 十二烷基硫酸钠水溶液的物理性质和浓度的关系表面活性剂进入水中,在低浓度时呈分子状态,并且三三两两地把亲油基团靠拢而分散在水中。
当溶液浓度加大到一定程度时,许多表面活性物质的分子立刻结合成很大的集团,形成“胶束”,如图1所示。
以胶束形式存在于水中的表面活性物质是比较稳定的。
表面活性物质在水中形成胶束所需的最低浓度称为临界胶束浓度(critical micelle concentration),以CMC表示。
在CMC 点上,由于溶液的结构改变导致其物理及化学性质(如表面张力,电导渗透压,浊度,光学性质等)同浓度的关系曲线出现明显的转折。
这个现象是测定CMC的实验依据,也是表面活性剂的一个重要特性。
图2给出了十二烷基硫酸钠水溶液的物理性质和浓度的关系。
1、十二烷基硫酸钠主要性质和用途十二烷基硫酸钠(sodium dodecyl benzo sulfate,代号AS)是重要的脂肪醇硫酸酯盐型阴离子表面活性剂。
脂肪醇硫酸钠是白色至淡黄色固体,易溶于水。
泡沫丰富,去污力和乳化性都比较好,有较好的生物降解性,耐硬水,适于低温洗涤,易漂洗,对皮肤的刺激性小。
j2me期末实验报告 周渝翔180108230

课程设计报告课程名称:移动计算技术与应用设计题目:吃金豆游戏院系:计算机科学与工程学院专业:软件工程班级:180102学号:18010230姓名:周渝翔指导教师:殷旭东设计地点:N6--107开课时间:2009 至2010 学年第1 学期常熟理工学院计算机科学与工程学院制学生姓名成绩评语:指导教师(签名)年月日目录1. 设计目的和任务 (2)2. 开发环境 (2)2.1 硬件环境 (2)2.2 软件环境 (3)3.设计题目 (3)3.1 题目名称 (3)3.2 题目详细描述 (3)3.3 功能要求 (3)4. 相关技术及知识点 (4)4.1 吃金豆游戏涉及的Canvas类 (4)4.2 数组初始化赋值 (4)4.3 精灵和怪物的属性.........................................................4.4 动态效果实现.............................................................4.5 精灵的方向移动控制.......................................................4.6 怪物的方向移动控制.......................................................4.7 绘制屏幕.................................................................5. 设计与实现 (7)5.1 游戏场景的设计…………………………………......................................5.2 精灵方向移动控制…………………………………..................................5.3 关于精灵和怪物碰墙问题的解决.....................................................................5.4 怪物的随机移动控制....................................................................................5.5 绘图.................................................................................................................5.6 游戏结束.............................................................................................................6. 总结 (8)7. 参考资料……………………………………......《移动计算技术与应用》课程设计报告实训报告要求与排版字号:(该部分内容在最终报告里面要删除!)1.实训报告排版打印统一用A4(21 X 29.7cm)格式。
JAVA基础实验编程
Java 实验报告实验日期:2011年10月17日实验机房与机号:实验班级:组员姓名学号:指导教师:刘寿强第三单元实验目的:掌握陈述面向对象的思想,通过创建类的实力来体现实验内容:第三单元;实验步骤:3-2class Dog{String color;int weight;public Dog(String color,int weight){this.color=color;this.weight=weight;}public void showd(){}}class Cat{String color;int weight;public Cat(String color,int weight){this.color=color;this.weight=weight;}public void showc(){}}public class A{public static void main(String[] args){Dog d1= new Dog("黄色",100);Cat c1= new Cat("白色",200);d1.showd();c1.showc();}}3-3class Car{String ping;double price;String date;public Car(String ping,double price,String date){this.ping=ping;this.price=price;this.date=date;}public void show(){}public void qd(){}public void sc(){}public void js(){}}public class A{public static void main(String[] args){Car car=new Car("奇瑞",3000,"保修终生!");car.show();car.js();}}3-4public class ConsoleParams{public static void main(String[] args){if (args.length<2){return;}int a=Integer.parseInt(args[0]);int b=Integer.parseInt(args[1]);int c;c=a+b;}}3-5import java.io.*;public class ExampleD{public static void main(String[] args){int num=20;if(num>20)else}}3-6class SExam{static int num=0;public SExam(){num++;}}public class StaticExam{public static void main(String[] args){SExam se1=new SExam();SExam se2=new SExam();SExam se3=new SExam();}}第四单元目的:掌握格式化转换异常,实验内容:第四单元步骤如下:public class NumberFormatExceptionText {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubint iArray[]={0,0};try{iArray[0]=Integer.parseInt(args[0]);iArray[1]=Integer.parseInt(args[1]);}catch(ArrayIndexOutOfBound sException e){System.out.println("用户输入的数据不完整,程序使用默认值代替:");}catch(NumberFormatException e){System.out.println("用户输入的不全是数值型的数据,程序使用默认值替代:");}System.out.println(iArray[0]+"+"+iArray[1]+"="+(iArray[0]+iArra y[1]));}}public class ArithmeticExceptionText {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubtry{int a=args.length;int b=42/a;}catch(ArithmeticException e){System.out.println("除数不能够为零啊!");}}}importpublic class NegativeIndexExceptionDemo {public int getNumberOfRandomIndex(int[] iArray)throws NegativeIndexException {Random random=new Random();int index=random.nextInt();if(index<0){throw new NegativeIndexException(this.getClass().getName()+".getNumberOfRandomIndex(int[])方法不能够处理自己所抛出的异常:索引值"+index+"产出异常");}index=index%iArray.length;return iArray[index];}public static void main(String[] args) {int[] iArray={0,1,3,4,5,6,7,8,9};int randomNumber=0;try{randomNumber=newNegativeIndexExceptionDemo().getNumberOfRandomIndex(iArray);}catch(NegativeIndexException e){System.out.println(e+"\nmian方法有能力处理该异常\t");randomNumber=Math.round((float)(Math.random()*10));}System.out.println("产生随机结果为"+randomNumber);}}public class NegativeIndexException extends Exception{public NegativeIndexException(){super();}public NegativeIndexException(String message){super(message);}}第五单元一、实验目的:熟悉掌握输入输出流二、实验内容:第五单元三、实验步骤练习5-1 校验用户密码格式(1)程序代码public class CheckPW{public static void main(String[] args){Scanner scanner=new Scanner(System.in);String inputString=scanner.nextLine();String regular="^[a-zA-Z@$_][a-zA-Z@$_0-9]{7,19}";if(inputString.matches(regular)){}else}}(2)运行结果图5-1练习5-2 转换中文格式日期(1)程序代码public class ChineseDate{public static void main(String[] args){Date date=new Date(10,9,2011);String dateFormatStr="北京时间:\n\tH:mm:ss\n\tE\n\tyyyy-M-dd";SimpleDateFormat simpleFormat=new SimpleDateFormat(dateFormatStr);}}(2)运行结果图5-2练习5-3 万年历(3)程序代码import java.util.*;public class CalendarAuto{public static void main(String[] args){Scanner scanner=new Scanner(System.in);int params[]=new int[2];for(int i=0;i<2&&scanner.hasNextInt();i++){params[i]=scanner.nextInt();}if(params[1]>12)params[1]=params[1]%13;if(params[1]<0)params[1]=12+params[1]%13;Calendar calendar=Calendar.getInstance();calendar.set(params[0],params[1]-1,1);int firstIndex=calendar.get(Calendar.DAY_OF_WEEK)-1;char title[]={'日','一','二','三','四','五','六'};int daysArray[][]=new int[6][7];int day=1;for(int i=firstIndex;i<7;i++){daysArray[0][i]=day++;}for(int i=1;i<6;i++){for(int j=0;j<7;j++){if(day>daysOfMonth(params[0],params[1])){i=6;break;}daysArray[i][j]=day++;}}for(int i=0;i<7;i++){}for(int i=0;i<6;i++){for(int j=0;j<7;j++){}}}private static int daysOfMonth(int year,int month){switch(month){case 1:case 3:case 5:case 7:case 8:case 10:case 12:return 31;case 4:case 6:case 9:case 11:return 30;case 2:if(year % 4 == 0 && year % 100 !=0) return 29;if(year % 100 == 0 && year % 400 !=0)return 29;return 28;default:return 0;}}}(4)运行结果图5-3。
J2ME课程综述
J2ME课程综述目录简介 ....................................................................................................................................... 错误!未定义书签。
一、J2ME特点.................................................................................................................... 错误!未定义书签。
二、J2ME平台体系结构 (1)三、J2ME 目标设备 (2)四、MIDLET应用程序的生命周期 (3)五、J2ME、J2SE与J2EE之间的比较 (4)1、J AVA 2平台标准版(J2SE) (4)2、J AVA 2平台企业版(J2EE) (5)3、J AVA 2平台微型版(J2ME) (5)六、J2ME程序设计的几个原则 (5)1、使用面向对象编程 (5)2、使用MVC模式 (5)3、自动存储用户设定 (5)4、设置关闭 (6)5、使用线程 (6)6、给定界面 (6)七、课程设计思路 (6)1、自定协议(最终类或接口) (6)八、J2ME异常的处理 (15)总结 (17)简介Java ME(Java Platform,Micro Edition)是为机顶盒、移动电话和PDA 之类嵌入式消费电子设备提供Java语言平台,包括虚拟机和一系列标准化的Java API。
它和Java SE、Java EE一起构成Java技术的三大版本,并且同样是通过JCP(Java Community Process)制订。
[1]Java ME(Java 2 Micro Edition)是Java 2的一个组成部分,它与J2SE、J2EE并称。
迈克尔逊干涉仪的使用实验报告
学生物理实验报告实验名称迈克尔逊干涉仪的使用学院专业班级报告人学号同组人学号同组人学号同组人学号理论课任课教师实验课指导教师实验日期报告日期实验成绩批改日期实验目的(1)了解迈克尔逊干涉仪的原理并掌握其调节方法(2)观察等倾干涉、等候干涉的条纹,并能区别定域干涉和非定域干涉(3)测定 He-Ne激光的波长(4)观察白光干涉条纹和测定钠光波长及相干长度实验仪器迈克尔逊干涉仪、He-Ne激光器。
实验原理1.迈克尔逊干涉仪图 1 是迈克尔逊干涉仪实物图。
图 2 是迈克尔逊干涉仪的光路示意图,图中M1和 M2是在相互垂直的两臂上放置的两个平面反射镜,其中M1是固定的; M2由精密丝杆控制,可沿臂轴前、后移动,移动的距离由刻度转盘 ( 由粗读和细读 2 组刻度盘组合而成 ) 读出。
在两臂轴线相交处,有一与两轴成 45°角的平行平面玻璃板 G1,它的第二个平面上镀有半透(半反射)的银膜,以便将入射光分成振幅接近相等的反射光⑴和透射光⑵,故G1又称为分光板。
G2也是平行平面玻璃板,与G1平行放置,厚度和折射率均与G1相同。
由于它补偿了光线⑴和⑵因穿越G1次数不同而产生的光程差,故称为补偿板。
从扩展光源S 射来的光在G1处分成两部分,反射光⑴经G1反射后向着M2前进,透射光⑵透过G1向着 M1前进,这两束光分别在M2、 M1上反射后逆着各自的入射方向返回,最后都达到 E 处。
因为这两束光是相干光,因而在E处的观察者就能够看到干涉条纹。
由M1反射回来的光波在分光板 G1的第二面上反射时,如同平面镜反射一样,使 M1在 M2附近形成 M1的虚像 M1′,因而光在迈克尔逊干涉仪中自 M2和 M1的反射相当于自 M2和 M1′的反射。
由此可见,在迈克尔逊干涉仪中所产生的干涉与空气薄膜所产生的干涉是等效的。
当 M2和 M1′平行时 ( 此时 M1和 M2严格互相垂直) ,将观察到环形的等倾干涉条纹。
一般情况下, M1和 M2形成一空气劈尖,因此将观察到近似平行的干涉条纹( 等厚干涉条纹 ) 。
J2ME实验报告模版
J2ME实验报告实验名称:高级界面综合实例实验日期:2011班级:B0851学号:200姓名:一、实验目的综合运用各种界面元素进行高级界面设计。
二、实验环境JDK+WTK+Eclipse+EclipseMe三、实验内容模拟手机写短信程序(1)欢迎界面:右下“写短信”进入编辑界面,左下“退出”退出程序。
(2)编辑界面:一个TextBox输入短信,右下“确定”进入号码界面,左下“返回”返回欢迎界面。
(3)号码界面:一个TextField输入号码,右下“发送”提示发送成功并在控制台显示短信内容,左下“返回”返回欢迎界面。
四、源程序与运行结果import javax.microedition.midlet.*;import javax.microedition.lcdui.*;public class UIConvert extends MIDlet {Display display;public UIConvert(){display = Display.getDisplay(this);startFirstScreen();}protected void destroyApp(boolean arg0) throws MIDletStateChangeException { // TODO Auto-generated method stub}protected void pauseApp() {// TODO Auto-generated method stub}protected void startApp() throws MIDletStateChangeException { // TODO Auto-generated method stub}public void startFirstScreen(){FirstScreen fs = new FirstScreen(this);display.setCurrent(fs);}public void startSecondScreen(){SecondScreen ss = new SecondScreen(this);display.setCurrent(ss);}public void startThirdScreen(){ThirdScreen ts = new ThirdScreen(this);display.setCurrent(ts);}}class FirstScreen extends Form implements CommandListener { private Form mainForm;private Command exit,write;private UIConvert midlet;public FirstScreen(UIConvert midlet) {// TODO Auto-generated constructor stubsuper("欢迎界面");this.midlet=midlet;StringItem item = new StringItem("","欢迎您使用短信系统!");this.append(item);exit= new Command("退出",Command.EXIT,1);write=new Command("写短信",Command.OK,1);this.addCommand(exit);this.addCommand(write);this.setCommandListener(this);}public void commandAction(Command c,Displayable d){if(c==exit){destroyApp(false);notifyDestroyed();}if(c==write){midlet.startSecondScreen();}}private void destroyApp(boolean b) {// TODO Auto-generated method stub}private void notifyDestroyed() {// TODO Auto-generated method stub}}class SecondScreen extends Form implements CommandListener { private Form mainForm;private Command back,ok;private UIConvert midlet;private TextField tf;public SecondScreen(UIConvert midlet) {// TODO Auto-generated constructor stubsuper("编辑界面");//mainForm= new Form("写短信");this.midlet=midlet;//StringItem item = new StringItem("第二个界面:","This is the StringItem text");//this.append(item);// tf = new TextField("编辑短信", "", 255, TextField.ANY);// 设置TextField占据整个屏幕//tf.setPreferredSize(mainForm.getWidth(), mainForm.getHeight());// mainForm.append(tf);back = new Command("返回",Command.EXIT,1);ok = new Command("确认",Command.OK,1);this.addCommand(back);this.addCommand(ok);this.setCommandListener(this);}public void commandAction(Command c,Displayable d){if(c==back){midlet.startFirstScreen();}if(c==ok){midlet.startThirdScreen();}}}class ThirdScreen extends Form implements CommandListener {private Form mainForm;private Command back,send;private UIConvert midlet;private Alert alert;private Display display;public ThirdScreen(UIConvert midlet) {// TODO Auto-generated constructor stubsuper("号码界面");this.midlet=midlet;//StringItem item = new StringItem("第三个界面:","This is the StringItem text");//this.append(item);back = new Command("返回",Command.EXIT,1);send = new Command("发送",Command.OK,1);this.addCommand(back);this.addCommand(send);this.setCommandListener(this);}public void commandAction(Command c,Displayable d){if(c==back){midlet.startFirstScreen();}if(c==send){alert= new Alert("发送成功", "恭喜您,短信发送成功", null, );display.setCurrent(alert);}}}图1-1 图1-2五、实验总结主要包括本次实验是否完成、实验中遇到的问题及解决方法、实验收获等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
J2ME实验报告
实验名称:高级界面综合实例
实验日期:2011
班级:B0851
学号:200
姓名:
一、实验目的
综合运用各种界面元素进行高级界面设计。
二、实验环境
JDK+WTK+Eclipse+EclipseMe
三、实验内容
模拟手机写短信程序
(1)欢迎界面:右下“写短信”进入编辑界面,左下“退出”退出程序。
(2)编辑界面:一个TextBox输入短信,右下“确定”进入号码界面,左下“返回”返回欢迎界面。
(3)号码界面:一个TextField输入号码,右下“发送”提示发送成功并在控制台显示短信内容,左下“返回”返回欢迎界面。
四、源程序与运行结果
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class UIConvert extends MIDlet {
Display display;
public UIConvert(){
display = Display.getDisplay(this);
startFirstScreen();
}
protected void destroyApp(boolean arg0) throws MIDletStateChangeException { // TODO Auto-generated method stub
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
protected void startApp() throws MIDletStateChangeException { // TODO Auto-generated method stub
}
public void startFirstScreen(){
FirstScreen fs = new FirstScreen(this);
display.setCurrent(fs);
}
public void startSecondScreen(){
SecondScreen ss = new SecondScreen(this);
display.setCurrent(ss);
}
public void startThirdScreen(){
ThirdScreen ts = new ThirdScreen(this);
display.setCurrent(ts);
}
}
class FirstScreen extends Form implements CommandListener { private Form mainForm;
private Command exit,write;
private UIConvert midlet;
public FirstScreen(UIConvert midlet) {
// TODO Auto-generated constructor stub
super("欢迎界面");
this.midlet=midlet;
StringItem item = new StringItem("","欢迎您使用短信系统!");
this.append(item);
exit= new Command("退出",Command.EXIT,1);
write=new Command("写短信",Command.OK,1);
this.addCommand(exit);
this.addCommand(write);
this.setCommandListener(this);
}
public void commandAction(Command c,Displayable d)
{
if(c==exit){
destroyApp(false);
notifyDestroyed();
}
if(c==write){
midlet.startSecondScreen();
}
}
private void destroyApp(boolean b) {
// TODO Auto-generated method stub
}
private void notifyDestroyed() {
// TODO Auto-generated method stub
}
}
class SecondScreen extends Form implements CommandListener { private Form mainForm;
private Command back,ok;
private UIConvert midlet;
private TextField tf;
public SecondScreen(UIConvert midlet) {
// TODO Auto-generated constructor stub
super("编辑界面");
//mainForm= new Form("写短信");
this.midlet=midlet;
//StringItem item = new StringItem("第二个界面:","This is the StringItem text");
//this.append(item);
// tf = new TextField("编辑短信", "", 255, TextField.ANY);
// 设置TextField占据整个屏幕
//tf.setPreferredSize(mainForm.getWidth(), mainForm.getHeight());
// mainForm.append(tf);
back = new Command("返回",Command.EXIT,1);
ok = new Command("确认",Command.OK,1);
this.addCommand(back);
this.addCommand(ok);
this.setCommandListener(this);
}
public void commandAction(Command c,Displayable d)
{
if(c==back){
midlet.startFirstScreen();
}
if(c==ok){
midlet.startThirdScreen();
}
}
}
class ThirdScreen extends Form implements CommandListener {
private Form mainForm;
private Command back,send;
private UIConvert midlet;
private Alert alert;
private Display display;
public ThirdScreen(UIConvert midlet) {
// TODO Auto-generated constructor stub
super("号码界面");
this.midlet=midlet;
//StringItem item = new StringItem("第三个界面:","This is the StringItem text");
//this.append(item);
back = new Command("返回",Command.EXIT,1);
send = new Command("发送",Command.OK,1);
this.addCommand(back);
this.addCommand(send);
this.setCommandListener(this);
}
public void commandAction(Command c,Displayable d)
{
if(c==back){
midlet.startFirstScreen();
}
if(c==send){
alert= new Alert("发送成功", "恭喜您,短信发送成功", null, );
display.setCurrent(alert);
}
}
}
图1-1 图1-2
五、实验总结
主要包括本次实验是否完成、实验中遇到的问题及解决方法、实验收获等。