广东海洋大学学生移动编程实验报告书3
广东海洋大学学生移动编程实验报告书01
广东海洋大学学生实验报告书(学生用表)实验名称实验六游戏设计课程名称移动编程技术课程号16552101 学院(系) 信息(软件)学院专业软件工程班级应用1123学生姓名钟炜堂学号201211701131 实验地点钟04019 实验日期15.11.08实验六游戏设计(选做)一、实验目的1、了解在屏幕绘图方法2、了解游戏设计涉及的类及主要方法二、实验内容1.设计一个简单的游戏,使一条小鱼能在海中自由地游泳。
这是气泡图片这是一条鱼这有很多鱼这是一片海水区域鱼群在游泳Untitled.gif点击.gif查看动态图片把海水加上去Untitled2.gif双击.gif查看动态图片代码介绍:// 获取屏幕的分辨率private void getViewSize(Context context) {DisplayMetrics metrics = new DisplayMetrics();WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);windowManager.getDefaultDisplay().getMetrics(metrics);this.screenHeiht = metrics.heightPixels;this.screenWidth = metrics.widthPixels;}/*加载图片到内存中*/public void LoadfishImage() {Resources r = this.getContext().getResources();bitmap_fishs[0] = BitmapFactory.decodeResource(getResources(), R.drawable.qipao01);bitmap_fishs[1] = BitmapFactory.decodeResource(getResources(), R.drawable.qipao02);bitmap_fishs[2] = BitmapFactory.decodeResource(getResources(), R.drawable.fish01);bitmap_fishs[3] = BitmapFactory.decodeResource(getResources(), R.drawable.fish02);bitmap_fishs[4] = BitmapFactory.decodeResource(getResources(), R.drawable.qipao03);bitmap_bg = BitmapFactory.decodeResource(getResources(), R.drawable.oceam);}/* 从上往下游泳*/private void fishDown(fish fish) {// 的落出屏幕后又让它从顶上下落if (fish.x > screenWidth || fish.y > screenHeiht) { fish.y = 0;fish.x = random.nextFloat() * screenWidth;}fish.x += fish.offset;// 下落的偏移量fish.y += fish.speed;// 下落的速度}成绩指导教师日期注:请用A4纸书写,不够另附纸。
移动编程技术实训报告总结
一、实训背景随着移动互联网的快速发展,移动应用已成为人们日常生活的重要组成部分。
为了适应这一趋势,我国高校纷纷开设移动编程技术课程,旨在培养具备移动应用开发能力的人才。
本次实训是在我国某知名高校移动编程技术课程的基础上进行的,旨在通过实践操作,提高学生的移动编程技术水平。
二、实训目的1. 掌握移动编程技术的基本原理和开发流程;2. 熟悉主流移动开发平台和工具;3. 培养团队合作精神和实践创新能力;4. 提高学生的综合素质,为今后从事移动应用开发工作打下坚实基础。
三、实训内容1. 移动编程技术基础(1)Android和iOS平台介绍及开发环境搭建;(2)移动应用开发流程及常用开发工具;(3)移动应用界面设计原则及布局方法;(4)移动应用性能优化及调试技巧。
2. Android平台开发(1)Android基本组件:Activity、Service、BroadcastReceiver、ContentProvider等;(2)Android界面开发:布局文件、视图控件、动画等;(3)Android数据存储:SQLite数据库、SharedPreferences、文件存储等;(4)Android网络编程:HTTP请求、Socket编程等。
3. iOS平台开发(1)iOS基本组件:ViewController、View、Model等;(2)iOS界面开发:Storyboard、Auto Layout、UI控件等;(3)iOS数据存储:SQLite数据库、CoreData、文件存储等;(4)iOS网络编程:AFNetworking框架等。
4. 项目实践(1)选择合适的移动应用开发项目;(2)进行需求分析、设计及开发;(3)项目测试与优化;(4)项目答辩与展示。
四、实训成果1. 学生掌握了移动编程技术的基本原理和开发流程;2. 学生熟悉了主流移动开发平台和工具;3. 学生培养了团队合作精神和实践创新能力;4. 学生综合素质得到提高,为今后从事移动应用开发工作打下了坚实基础。
移动编程实训报告
《移动编程实训》总结报告课题名称:移动编程实训指导教师:周志敏石恒智系别:信艺院专业:应用13-2学号:*********姓名:xxx编写日期:2015 年9 月17日目录1课程设计目的 (3)2设计任务与要求 (3)3设计说明书 (4)3.1计算器 (4)3.1.1 需求分析 (4)3.1.2 概要设计 (4)3.1.3 详细设计 (5)3.2基于位置的服务应用 (6)3.2.1 需求分析 (6)3.2.2 概要设计 (6)3.2.3 详细设计 (8)4设计成果 (11)4.1计算器 (11)4.1.1 运行界面 (11)4.1.2 主要代码 (11)4.1.3 测试结果 (12)4.2基于位置的服务应用 (13)4.2.1 运行界面 (13)4.2.2 主要代码 (13)4.2.3 测试结果 (14)5实训心得 (15)6参考文献 (16)引言《移动编程》是一门实践性很强的计算机专业课程,移动编程实训是学习完该课程后进行的一次较全面的综合针对真实项目的训练。
我们在一周的实训学习中,对于移动编程有了更深的理解,对日后我们在移动编程开发有着很大帮助。
1课程设计目的通过实战加深学生对移动开发的理论、方法和基础知识的理解,掌握移动开发的基本方法,提高分析实际问题、解决实际问题的能力,提高学生的综合应用能力。
2设计任务与要求为学生提供多种实训项目供选择,每个项目的侧重面不同,能更好的满足学生的兴趣,并提高学生的积极性。
由于时间的限制,我们在老师的带领下完成了对计算器和基于位置的服务应用的项目制作。
在实训过程中,指导老师会带领大家一步步解析并制作项目,使大家能更好地了解一个项目的完成过程,并从中获取怎样独立完成项目制作的方法。
第一天上午主要是熟悉一下开发环境的搭建以及简单的项目开发,了解Android Studio的构建方法,复习Android的基本知识;接下来三天指导老师主要教我们怎样独立完成计算机的制作以及基于位置的服务应用的项目制作,主要内容是介绍设计内容,通过查找资料,确定选题,并制定计划和分工;编制程序;上机调试,修改程序、程序优化;初步验收;第五天是让我们总结这一周的实训,按要求完成这次移动编程实训的报告,学员上台演示项目;老师提出有待优化的部分,并对完成的部分做提问;总结报告和书写说明书阶段,项目答辩验收。
计科1141广东海洋大学java实验三
广东海洋大学学生实验报告书(学生用表)实验名称实验三数组与字符课程名称Java程序设计与开发技术课程号学院(系) 数学与计算机学院专业计算机科学与技术班级计科1141学生姓名邓超荣学号201411621110 实验地点钟海楼04017实验日期2016.10.22实验三数组与字符一实验目的:掌握Java数组的编程掌握字符串使用二实验内容:1 已知字符串:“This is a java program.”按要求编写下程序:(1)统计该字符串中字母a出现的次数(2)取出子字符串“java”,存在另一字符串中并输出。
(3)用两种方式将本字符串复制到另一个字符数组char[] str中,并输出(4)将字符串中每个单词的第一个字母变成大写,并输出整个字符串(5)用两种方式将该字符串逆序输出(用stringbuffer和for方式来实现)实验代码:package javademo2;public class Stringtest {GDOU-B-11-112public static void main(String[] args) {//问题1 统计该字符串中字母a出现的次数String s="This is a java program.";int count=0;char[] chs=s.toCharArray();for(int i=0;i<chs.length;i++){if(chs[i]=='a'){count++;}}System.out.println("a出现的次数:"+count);//问题2 取出子字符串“java”,存在另一字符串中并输出。
int index=s.indexOf("java");String ss=s.substring(index,index+4 );System.out.println(ss);//问题3 用两种方式将本字符串复制到另一个字符数组 char[] str中,并输出//方式一:char[] str=s.toCharArray();System.out.println(str);//方式二char[]str2=new char[s.length()];for(int i=0;i<str.length;i++){str2[i]=s.charAt(i);}System.out.println(str2);//问题4 将字符串中每个单词的第一个字母变成大写,并输出整个字符串//思路:先定义一个变量f用来标记是否是单词的开始位置,如果是开始位置就输出大写字母,并把f标记成false,如果遇到空格,就把f标记成true。
广东海洋大学学生实验报告书(学生用表)
实验名称带返工的产品制造模型课程名称课程号学院(系) 专业班级学生姓名学号实验地点实验日期实验名称:带返工的产品制造模型实验目的:通过这个模型学习基本的排队系统建模的方法,同时练习和熟悉Flexsim的基本操作和基本概念。
实验步骤:1创建对象:从Flexsim的基本界面的对象库中用鼠标拖动一个Source、两个Queue、四个Processor和一个Sink对象到模型窗口并布置好位置和重新命名各对象名字。
2连接对象:按照产品流动的路径,从Suorce开始两两连接对象,产品将沿着连接在对象间流动。
(1)连接Source到Queue1;(2)连接Queue1分别到Processor1、Processor2和Processor3;(3)连接Processor1、Processor2、Processor3到Queue2;(4)连接Tester到Sink;(5)连接Tester到Queue1;3设置产品到达间隔时间:在Source对象的属性窗体里设置产品的到达时间间隔,它服从5秒的指数分布,在弹出的属性窗体中设置产品到达时间为exponential(0,5,1).4设置产品类型和颜色:在Suorce的属性窗体中,选择触发器Triggers页,选择在创建产品是的类型和颜色。
5设置Queue1的最大容量和输出路径:设置Queue1的最大容量为10000,在Flow页,在发送到端口Send To Port字段的下拉列表选择By Expression,并设置输出路径。
6设置加工时间:设置三台机器的加工时间服从均值为10秒的指数分布。
在Processor1的属性窗体,在Process time字段的下拉列表中选择Statictical Distribution,在出现的代码模板中编制Statistical Distribution:exponential(0,10,1)。
对Processor2和Processor3做出同样的设置。
最新广东海洋大学编译原理LL(1)文法分析器实验(java)
GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)实验名称实验3:语法分析课程名称编译原理课程号16242211 学院(系) 数学与计算机学院专业计算机科学与技术班级计科1141学生姓名学号实验地点科425 实验日期2017.4.21一、实验目的熟悉语法分析的过程;理解相关文法的步骤;熟悉First集和Follow集生成二、实验要求对于给定的文法,试编写调试一个语法分析程序:要求和提示:(1)可选择一种你感兴趣的语法分析方法(LL(1)、算符优先、递归下降、SLR(1)等)作为编制语法分析程序的依据。
(2)对于所选定的分析方法,如有需要,应选择一种合适的数据结构,以构造所给文法的机内表示。
(3)能进行分析过程模拟。
如输入一个句子,能输出与句子对应的语法树,能对语法树生成过程进行模拟;能够输出分析过程每一步符号栈的变化情况。
设计一个由给定文法生成First集和Follow集并进行简化的算法动态模拟。
三、实验过程1:文法:E->TE’E’->+TE’|εT->FT’T’->*FT’|εF->(E)|i:2程序描述(LL(1)文法)本程序是基于已构建好的某一个语法的预测分析表来对用户的输入字符串进行分析,判断输入的字符串是否属于该文法的句子。
基本实现思想:接收用户输入的字符串(字符串以“#”表示结束)后,对用做分析栈的一维数组和存放分析表的二维数组进行初始化。
然后取出分析栈的栈顶字符,判断是否为终结符,若为终结符则判断是否为“#”且与当前输入符号一样,若是则语法分析结束,输入的字符串为文法的一个句子,否则出错若不为“#”且与当前输入符号一样则将栈顶符号出栈,当前输入符号从输入字符串中除去,进入下一个字符的分析。
若不为“#”且不与当前输入符号一样,则出错。
四、程序流程图本程序中使用以下文法作对用户输入的字符串进行分析:E→TE’E’→+TE’|εT→FT’T’→*FT’|εF→i|(E)该文法的预测分析表为:五:结果及截图1、显示预测分析表,提示用户输入字符串2、输入的字符串为正确的句子:3、输入的字符串中包含了不属于终结符集的字符4、输入的字符串不是该文法能推导出来的句子程序代码:package complier;import java.io.*;public class LL {String Vn[] = { "E", "E'", "T", "T'", "F" }; // 非终结符集String Vt[] = { "i", "+", "*", "(", ")", "#" }; // 终结符集String P[][] = new String[5][6]; // 预测分析表String fenxi[] ; // 分析栈int count = 1; // 步骤int count1 = 1;//’分析栈指针int count2 = 0, count3 = 0;//预测分析表指针String inputString = ""; // 输入的字符串boolean flag;public void setCount(int count, int count1, int count2, int count3){ this.count = count;this.count1 = count1;this.count2 = count2;this.count3 = count3;flag = false;}public void setFenxi() { // 初始化分析栈fenxi = new String[20];fenxi[0] = "#";fenxi[1] = "E";}public void setP() { // 初始化预测分析表for (int i = 0; i < 5; i++) {for (int j = 0; j < 6; j++) {P[i][j] = "error";}}P[0][0] = "->TE'";P[0][3] = "->TE'";P[1][1] = "->+TE'";P[1][4] = "->ε";P[1][5] = "->ε";P[2][0] = "->FT'";P[2][3] = "->FT'";P[3][1] = "->ε";P[3][2] = "->*FT'";P[3][4] = "->ε";P[3][5] = "->ε";P[4][0] = "->i";P[4][3] = "->(E)";// 打印出预测分析表System.out.println(" 已构建好的预测分析表");System.out.println("----------------------------------------------------------------------");for (int i=0; i<6; i++) {System.out.print(" "+Vt[i]);}System.out.println();System.out.println("----------------------------------------------------------------------");for (int i=0; i<5; i++) {System.out.print(" "+Vn[i]+" ");for (int j=0; j<6; j++) {int l = 0;if (j>0) {l = 10-P[i][j-1].length();}for (int k=0; k<l; k++) {System.out.print(" ");}System.out.print(P[i][j]+" ");}System.out.println();}System.out.println("----------------------------------------------------------------------");}public void setInputString(String input) {inputString = input;}public boolean judge() {String inputChar = inputString.substring(0, 1); // 当前输入字符boolean flage = false;if (count1 >= 0) {for (int i=0; i<6; i++) {if (fenxi[count1].equals(Vt[i])) { // 判断分析栈栈顶的字符是否为终结符flage = true;break;}}}if (flage) {// 为终结符时if (fenxi[count1].equals(inputChar)) {if (fenxi[count1].equals("#")&&inputString.length()==1) { // 栈顶符号为结束标志时// System.out.println("最后一个");String fenxizhan = "";for (int i=0; i<=P.length; i++) { // 拿到分析栈里的全部内容(滤去null)if (fenxi[i] == null) {break;} else {fenxizhan = fenxizhan + fenxi[i];}}// 输出当前分析栈情况,输入字符串,所用产生式或匹配System.out.print(" " + count);String countToString = Integer.toString(count);int farWay = 14 - countToString.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.print(fenxizhan);farWay = 20 - fenxizhan.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.print(inputString);farWay = 25 - inputString.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.println("接受");flag = true;return true;} else {// 分析栈栈顶符号不为结束标志符号时String fenxizhan = "";for (int i=0; i<=P.length; i++) { // 拿到分析栈里的全部内容(滤去null)if (fenxi[i] == null) {break;} else {fenxizhan = fenxizhan + fenxi[i];}}// 输出当前分析栈情况,输入字符串,所用产生式或匹配System.out.print(" "+count);String countToString = Integer.toString(count);int farWay = 14 - countToString.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.print(fenxizhan);farWay = 20 - fenxizhan.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.print(inputString);farWay = 25 - inputString.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.println("\"" + inputChar + "\"" + "匹配");// 将栈顶符号出栈,栈顶指针减一fenxi[count1] = null;count1 -= 1;if (inputString.length() > 1) { // 当当前输入字符串的长度大于1时,将当前输入字符从输入字符串中除去inputString = inputString.substring(1, inputString.length());} else { // 当前输入串长度为1时inputChar = inputString;}// System.out.println(" "+count+" "+fenxizhan+"// "+inputString +" "+P[count3][count2]);// System.out.println(count + inputChar + "匹配 ");count++;judge();}}else { // 判断与与输入符号是否一样为结束标志System.out.println(" 分析到第" + count + "步时出错!");flag = false;return false;}} else {// 非终结符时boolean fla = false;for (int i=0; i<6; i++) { // 查询当前输入符号位于终结符集的位置if (inputChar.equals(Vt[i])) {fla = true;count2 = i;break;}}if(!fla){System.out.println(" 分析到第" + count + "步时出错!");flag = false;return false;}for (int i=0; i<5; i++) { // 查询栈顶的符号位于非终结符集的位置if (fenxi[count1].equals(Vn[i])) {count3 = i;break;}}if (P[count3][count2] != "error") { // 栈顶的非终结符与输入的终结符存在产生式时String p = P[count3][count2];String s1 = p.substring(2, p.length()); // 获取对应的产生式if (s1.equals("ε")) { // 产生式推出“ε”时String fenxizhan = "";for (int i=0; i<=P.length; i++) {if (fenxi[i] == null) {break;} else {fenxizhan = fenxizhan + fenxi[i];}}// 输出当前分析栈情况,输入字符串,所用产生式或匹配System.out.print(" " + count);String countToString = Integer.toString(count);int farWay = 14 - countToString.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.print(fenxizhan);farWay = 20 - fenxizhan.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.print(inputString);farWay = 25 - inputString.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.println(fenxi[count1] + P[count3][count2]);// 将栈顶符号出栈,栈顶指针指向下一个元素fenxi[count1] = null;count1 -= 1;count++;judge();} else { // 产生式不推出“ε”时int k = s1.length();String fenxizhan = "";for (int i=0; i<=P.length; i++) {if (fenxi[i] == null) {break;} else {fenxizhan = fenxizhan + fenxi[i];}}// 输出当前分析栈情况,输入字符串,所用产生式或匹配System.out.print(" "+count);String countToString = Integer.toString(count);int farWay = 14 - countToString.length();for (int o=0; o<farWay; o++) {System.out.print(" ");}System.out.print(fenxizhan);farWay = 20 - fenxizhan.length();for (int o=0; o<farWay; o++) {System.out.print(" ");}System.out.print(inputString);farWay = 25 - inputString.length();for (int o=0; o<farWay; o++) {System.out.print(" ");}System.out.println(fenxi[count1] + P[count3][count2]);for (int i=1; i<=k; i++) { // 将产生式右部的各个符号入栈String s2 = s1.substring(s1.length() - 1,s1.length());s1 = s1.substring(0, s1.length() - 1);if (s2.equals("'")) {s2= s1.substring(s1.length() - 1, s1.length())+ s2;i++;s1 = s1.substring(0, s1.length() - 1);}fenxi[count1] = s2;if (i < k)count1++;// System.out.println("count1=" + count1);}// System.out.println(" "+count+" "+fenxizhan+"// "+inputString +" "+P[count3][count2]);count++;// System.out.println(count);judge();}} else {System.out.println(" 分析到第" + count + "步时出错!");flag = false;return false;}}return flag;}public static void main(String args[]) {LL l = new LL();l.setP();String input = "";boolean flag = true;while (flag) {try {InputStreamReader isr = new InputStreamReader(System.in);BufferedReader br = new BufferedReader(isr);System.out.println();System.out.print("请输入字符串(输入exit退出):");input = br.readLine();} catch (Exception e) {e.printStackTrace();}if(input.equals("exit")){flag = false;}else{l.setInputString(input);l.setCount(1, 1, 0, 0);l.setFenxi();System.out.println();System.out.println("分析过程");System.out.println("----------------------------------------------------------------------");System.out.println(" 步骤 | 分析栈 | 剩余输入串 | 所用产生式 ");System.out.println("----------------------------------------------------------------------");boolean b = l.judge();System.out.println("----------------------------------------------------------------------");if(b){System.out.println("您输入的字符串"+input+"是该文发的一个句子");}else{System.out.println("您输入的字符串"+input+"有词法错误!");}}}}}六:实验心得通过本次实验基本掌握了语法分析的原理和LL(1)语法分析方法,以及预测分析表的构造,进一步熟悉了语法分析的详细过程,收获还是蛮大的,值得我们认真对待。
移动编程课程设计实验报告
移动编程课程设计实验报告一、课程目标知识目标:1. 理解移动编程的基本概念,掌握编程语言的基本语法和结构;2. 学习使用移动编程开发环境,掌握基本的编程工具和调试技巧;3. 掌握移动应用界面设计的基本原则,能够实现简单的用户界面布局和交互功能;4. 了解移动应用的发布流程,掌握应用程序的安装和运行方法。
技能目标:1. 能够运用所学的移动编程知识,独立编写简单的移动应用程序;2. 培养学生的问题解决能力和逻辑思维能力,能够分析并解决编程过程中遇到的问题;3. 提高学生的团队协作能力,能够与他人合作完成复杂的移动编程项目;4. 培养学生的创新意识和实践能力,能够根据实际需求设计和开发个性化的移动应用。
情感态度价值观目标:1. 激发学生对移动编程的兴趣,培养其主动学习和探索新技术的热情;2. 培养学生的编程自信心,使其勇于面对编程挑战,善于克服困难;3. 培养学生的责任感和诚信意识,注重代码规范和知识产权保护;4. 增强学生的信息安全意识,使其明白保护用户隐私和数据安全的重要性。
本课程针对年级特点,结合移动编程学科性质,以实践性、实用性和创新性为教学要求,旨在培养学生的编程素养和实际动手能力。
通过本课程的学习,使学生能够掌握移动编程的基本知识和技能,培养其独立思考和解决问题的能力,同时注重培养其情感态度和价值观,为未来进一步学习和发展奠定基础。
二、教学内容1. 移动编程基础理论:- 编程语言概述:介绍移动编程的常用语言及其特点;- 程序设计基础:讲解基本语法、数据类型、变量、运算符和流程控制;- 面向对象编程:解释类与对象、封装、继承和多态的概念及应用。
2. 移动编程环境与工具:- 开发环境搭建:介绍Android Studio、Xcode等开发工具的安装和使用;- 调试与测试:讲解调试技巧、单元测试方法及性能分析工具。
3. 移动应用界面设计:- 布局管理:学习线性布局、相对布局、帧布局等界面布局方式;- 组件使用:掌握常用组件如按钮、文本框、图片视图等的属性和事件处理;- 交互设计:学习实现动画效果、手势识别等交互功能。
编程实习报告范文4篇
编程实习报告范文4篇本文是关于编程实习报告范文4篇,仅供参考,希望对您有所帮助,感谢阅读。
随着制造业的发展,机床是制造业的主要生产设备其发展也是日新月异。
社会的进步,人们对各类产品的要求也越来越高,像汽车这样大批量的产品,也要求个性化。
因此不能采用传统化的刚性生产线进行生产,还须考虑到适应的柔性。
一些小产品其复杂要求和精度要求已经使通用机床难以胜任。
在这样的情况下数控机床的出现满足了自动化程度高、柔性强、操作强度低,易于组成自动化生产系统的生产要求。
经过数十年的发展,数控机床的控制部分已经从硬件为主的数控装置发展成硬件、软件结合的计算机数控系统。
由于数控机床是根据事先编好的程序来实现自动化控制加工的,因此其发展和数控编程密切相关。
程序的灵活、精练编制有利于降低加工成本和提高生产效率,具有明显的实用价值。
在这次毕业设计中,我对数控机床编程的有关指令,以及编程的一些技巧等进行了探讨。
通过一些指令的灵活综合运用来实现程序编制的简单和精练,使数控机床在加工中发挥更大的优势。
以此来开拓数控机床更广阔的发展前景。
绪论一、《数控加工与编程》实训的目的1、熟悉了解数控车床、数控铣床、数控加工中心的结构组成及工作原理。
2、熟练掌握待加工零件的装夹、定位、加工路线设置及加工参数调校等实际操作工艺。
3、熟练掌握阶梯轴、成型面、螺纹等车削零件和平面轮廓、槽形、钻、镗孔等类型铣削零件的手工及自动换刀的编程技术以及复杂曲面零件的自动编程技术。
能分析判断并解决加工程序中所出现的错误。
4、学会排除机床电气及机械方面的一般性故障。
5、熟练操作数控车、数控铣床、并能加工出中等复杂程度的零件。
6、能初步使用加工中心机床,了解刀库及其设置,了解加工中心的加工过程与特点7、初步了解与掌握程序转存和联机控制等dnc加工方面的知识及操作方法。
8.复习掌握数控技术职业资格考试要求的其它应知、应会的内容。
积极争取通过职业技术资格考试。
二、实训内容与实训计划安排1、实训的主要内容1.1数控车床的操作与编程训练、操作面板的熟悉和控制软件的基本使用。
广东海洋大学_计算机科学与技术_数据库实验3
GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)实验名称实验3 索引和视图课程名称数据库系统原理课程号1620072学院(系) 信息学院专业计科班级 1113学生姓名学号实验地点科技楼实验日期04-26实验三索引和视图一、实验目的1.掌握利用SSMS和T—SQL语句创建和删除索引的两种方法。
2.掌握利用SSMS和T—SQL语句创建、查询、更新及删除视图的方法。
二、实验要求1.能认真独立完成实验内容;2.实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成实验内容的预习准备工作;3.验后做好实验总结,根据实验情况完成实验报告。
情况完成总结报告。
三、实验学时2学时四、实验内容1、用T—SQL建立一个“学生选课数据库”,在此基础上用SQL语句建立该数据库包含的学生表,课程表,学生选修表:CREATE DATABASE学生选课数据库ON PRIMARY(NAME=Student_dat,FILENAME='D:\学生选课数据库.mdf',SIZE=10MB,MAXSIZE=50MB,FILEGROWTH=10%)LOG ON(NAME=Student_log,FILENAME='D:\学生选课数据库.ldf',SIZE=5MB,FILEGROWTH=10%)GO学生表:StudentCREATE TABLE Student(Sname CHAR(10),Ssex CHAR(2)CHECK(Ssex='男'OR Ssex='女'),Sage SMALLINT CHECK(Sage BETWEEN 15 AND 30),Sdept CHAR(20));INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept ) VALUES('S01','王建平','男',21,'自动化') INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept ) VALUES('S02','刘华','女',19,'自动化')INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept ) VALUES('S03','范林军','女',18,'计算机') INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept ) VALUES('S04','李伟','男', 19 ,'数学'); INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept ) VALUES('S05','黄河','男',18,'计算机')INSERT INTO Student( Sno ,Sname,Ssex,Sage,Sdept )VALUES('S06','长江','男', 20 ,'数学');课程表:CourseCREATE TABLE Course(Cno CHAR(4)PRIMARY KEY,Cname CHAR(10)NOT NULL,Cpno CHAR(4),Credit INT CHECK(Credit>=0 AND Credit<=100),Teacher NCHAR(4));INSERT INTO Course ( Cno,Cname,Cpno,Credit )VALUES('C01','英语',NULL, 4 )INSERT INTO Course ( Cno,Cname,Cpno,Credit )VALUES('C02','数据结构','C05',2)INSERT INTO Course ( Cno,Cname,Cpno,Credit )VALUES('C03','数据库','C02',2)INSERT INTO Course ( Cno,Cname,Cpno,Credit )VALUES('C04','DB_设计','C03',3)INSERT INTO Course ( Cno,Cname,Cpno,Credit )VALUES('C05','C++',NULL,3)INSERT INTO Course ( Cno,Cname,Cpno,Credit )VALUES('C06','网络原理','C07',3)INSERT INTO Course ( Cno,Cname,Cpno,Credit )VALUES('C07','操作系统','C05',3)学生选修表:SCCREATE TABLE SC(Sno char(10)FOREIGN KEY REFERENCES Student(Sno), Cno CHAR(4)FOREIGN KEY REFERENCES Course(Cno), Grade INT CHECK( Grade>=0 AND Grade<=100 ),);INSERT INTO SC ( Sno,Cno,Grade)VALUES('S01','C01',92)INSERT INTO SC ( Sno,Cno,Grade)VALUES('S01','C03',84)INSERT INTO SC ( Sno,Cno,Grade)VALUES('S02','C01',90)INSERT INTO SC ( Sno,Cno,Grade)VALUES('S02','C02',94)INSERT INTO SC ( Sno,Cno,Grade)VALUES('S02','C03',82)INSERT INTO SC ( Sno,Cno,Grade)VALUES('S03','C01',72)INSERT INTO SC ( Sno,Cno,Grade)VALUES('S03','C02',90)INSERT INTO SC ( Sno,Cno,Grade)VALUES('S03','C03',75)2.索引的建立、删除①用SSMS的方式为Student表按Sno(学号)升序建唯一索引②用T—SQL语句为Course表按Cno(课程号)升序建唯一索引,CREATE UNIQUE INDEX课程号ON Course(Cno ASC)③用T—SQL语句为SC表按Sno(学号)升序和Cno(课程号)号降序建唯一索引。
广东海洋大学学生软件测试实验报告书3
GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)实验名称实验三白盒测试课程名称软件测试课程号学院(系) 信息(软件)学院专业软件工程班级学生姓名学号实验地点实验日期实验三白盒测试实验目的:1.掌握白盒测试原理和测试方法2.使用白盒测试的逻辑测试和基本路径测试法设计测试用例实验内容:1.画出如下程序段的程序流程图,分别用最少的测试用例完成语句覆盖、判定覆盖、条件覆盖、条件组合覆盖和路径覆盖的测试用例设计。
void test(int x, int y){if (x>0 && y>10) y=y/x;if(x<-10 || y<0) y=-(y+x);}解题:语句覆盖:使得程序中每个语句至少都能被执行一次。
用例分析:abd 用例格式[输入:(x , y) 输出:(x , y) ] 可以一次执行路径,但是条件1与条件2明显是互斥的。
所以必须要两个路径测试用例,例如abe 和ade用例设计:abe 路径:[输入:(1, 11) 输出:(1,11)]ade 路径:[输入:(-11, -1) 输出:(-11,12)]判定覆盖:使得程序中每个判定至少为TRUE 或FALSE各一次。
也就是必须经过每个判定一次。
用例分析:条件1与条件2明显是互斥的。
两个路径测试用例,例如abe 和ade用例设计:abe 路径:[输入:(1, 11) 输出:(1,11)] 第一个判定为true 第二个判定为falseade 路径:[输入:(-11, -1) 输出:(-11,12)] 第一个判定为false 第二个判定为true条件覆盖:使得判定中的每个条件获得各种可能的结果。
用例分析:判定一:x>0,x≦0;y>10,y≦10判定二:x<-10,x≧-10;y<0,y≧0 ;其中【x>0和x≧-10】【x≦0和x<-10】为一对条件【y>10和y≧0】【y≦10和y<0】为一对条件;所以可以给出的测试组合是:【x>0和x≧-10】【y>10和y≧0】以及【x≦0和x<-10】【y≦10和y<0】或【x>0和x≧-10】【y≦10和y<0】以及【x≦0和x<-10】【y>10和y≧0】用例设计:[输入:(1, 11) 输出:(1,11)] abe[输入:(-11, -1) 输出:(-11,12)] ade或[输入:(1, -1) 输出:(1,0)] ade[输入:(-11, 11) 输出:(-11,0)] ace条件组合覆盖:使得每个判定中条件的各种可能组合都至少出现一次。
最新广东海洋大学编译原理LL(1)文法分析器实验(java)
GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)实验名称实验3:语法分析课程名称编译原理课程号16242211 学院(系) 数学与计算机学院专业计算机科学与技术班级计科1141学生姓名学号实验地点科425 实验日期2017.4.21一、实验目的熟悉语法分析的过程;理解相关文法的步骤;熟悉First集和Follow集生成二、实验要求对于给定的文法,试编写调试一个语法分析程序:要求和提示:(1)可选择一种你感兴趣的语法分析方法(LL(1)、算符优先、递归下降、SLR(1)等)作为编制语法分析程序的依据。
(2)对于所选定的分析方法,如有需要,应选择一种合适的数据结构,以构造所给文法的机内表示。
(3)能进行分析过程模拟。
如输入一个句子,能输出与句子对应的语法树,能对语法树生成过程进行模拟;能够输出分析过程每一步符号栈的变化情况。
设计一个由给定文法生成First集和Follow集并进行简化的算法动态模拟。
三、实验过程1:文法:E->TE’E’->+TE’|εT->FT’T’->*FT’|εF->(E)|i:2程序描述(LL(1)文法)本程序是基于已构建好的某一个语法的预测分析表来对用户的输入字符串进行分析,判断输入的字符串是否属于该文法的句子。
基本实现思想:接收用户输入的字符串(字符串以“#”表示结束)后,对用做分析栈的一维数组和存放分析表的二维数组进行初始化。
然后取出分析栈的栈顶字符,判断是否为终结符,若为终结符则判断是否为“#”且与当前输入符号一样,若是则语法分析结束,输入的字符串为文法的一个句子,否则出错若不为“#”且与当前输入符号一样则将栈顶符号出栈,当前输入符号从输入字符串中除去,进入下一个字符的分析。
若不为“#”且不与当前输入符号一样,则出错。
四、程序流程图本程序中使用以下文法作对用户输入的字符串进行分析:E→TE’E’→+TE’|εT→FT’T’→*FT’|εF→i|(E)该文法的预测分析表为:五:结果及截图1、显示预测分析表,提示用户输入字符串2、输入的字符串为正确的句子:3、输入的字符串中包含了不属于终结符集的字符4、输入的字符串不是该文法能推导出来的句子程序代码:package complier;import java.io.*;public class LL {String Vn[] = { "E", "E'", "T", "T'", "F" }; // 非终结符集String Vt[] = { "i", "+", "*", "(", ")", "#" }; // 终结符集String P[][] = new String[5][6]; // 预测分析表String fenxi[] ; // 分析栈int count = 1; // 步骤int count1 = 1;//’分析栈指针int count2 = 0, count3 = 0;//预测分析表指针String inputString = ""; // 输入的字符串boolean flag;public void setCount(int count, int count1, int count2, int count3){ this.count = count;this.count1 = count1;this.count2 = count2;this.count3 = count3;flag = false;}public void setFenxi() { // 初始化分析栈fenxi = new String[20];fenxi[0] = "#";fenxi[1] = "E";}public void setP() { // 初始化预测分析表for (int i = 0; i < 5; i++) {for (int j = 0; j < 6; j++) {P[i][j] = "error";}}P[0][0] = "->TE'";P[0][3] = "->TE'";P[1][1] = "->+TE'";P[1][4] = "->ε";P[1][5] = "->ε";P[2][0] = "->FT'";P[2][3] = "->FT'";P[3][1] = "->ε";P[3][2] = "->*FT'";P[3][4] = "->ε";P[3][5] = "->ε";P[4][0] = "->i";P[4][3] = "->(E)";// 打印出预测分析表System.out.println(" 已构建好的预测分析表");System.out.println("----------------------------------------------------------------------");for (int i=0; i<6; i++) {System.out.print(" "+Vt[i]);}System.out.println();System.out.println("----------------------------------------------------------------------");for (int i=0; i<5; i++) {System.out.print(" "+Vn[i]+" ");for (int j=0; j<6; j++) {int l = 0;if (j>0) {l = 10-P[i][j-1].length();}for (int k=0; k<l; k++) {System.out.print(" ");}System.out.print(P[i][j]+" ");}System.out.println();}System.out.println("----------------------------------------------------------------------");}public void setInputString(String input) {inputString = input;}public boolean judge() {String inputChar = inputString.substring(0, 1); // 当前输入字符boolean flage = false;if (count1 >= 0) {for (int i=0; i<6; i++) {if (fenxi[count1].equals(Vt[i])) { // 判断分析栈栈顶的字符是否为终结符flage = true;break;}}}if (flage) {// 为终结符时if (fenxi[count1].equals(inputChar)) {if (fenxi[count1].equals("#")&&inputString.length()==1) { // 栈顶符号为结束标志时// System.out.println("最后一个");String fenxizhan = "";for (int i=0; i<=P.length; i++) { // 拿到分析栈里的全部内容(滤去null)if (fenxi[i] == null) {break;} else {fenxizhan = fenxizhan + fenxi[i];}}// 输出当前分析栈情况,输入字符串,所用产生式或匹配System.out.print(" " + count);String countToString = Integer.toString(count);int farWay = 14 - countToString.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.print(fenxizhan);farWay = 20 - fenxizhan.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.print(inputString);farWay = 25 - inputString.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.println("接受");flag = true;return true;} else {// 分析栈栈顶符号不为结束标志符号时String fenxizhan = "";for (int i=0; i<=P.length; i++) { // 拿到分析栈里的全部内容(滤去null)if (fenxi[i] == null) {break;} else {fenxizhan = fenxizhan + fenxi[i];}}// 输出当前分析栈情况,输入字符串,所用产生式或匹配System.out.print(" "+count);String countToString = Integer.toString(count);int farWay = 14 - countToString.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.print(fenxizhan);farWay = 20 - fenxizhan.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.print(inputString);farWay = 25 - inputString.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.println("\"" + inputChar + "\"" + "匹配");// 将栈顶符号出栈,栈顶指针减一fenxi[count1] = null;count1 -= 1;if (inputString.length() > 1) { // 当当前输入字符串的长度大于1时,将当前输入字符从输入字符串中除去inputString = inputString.substring(1, inputString.length());} else { // 当前输入串长度为1时inputChar = inputString;}// System.out.println(" "+count+" "+fenxizhan+"// "+inputString +" "+P[count3][count2]);// System.out.println(count + inputChar + "匹配 ");count++;judge();}}else { // 判断与与输入符号是否一样为结束标志System.out.println(" 分析到第" + count + "步时出错!");flag = false;return false;}} else {// 非终结符时boolean fla = false;for (int i=0; i<6; i++) { // 查询当前输入符号位于终结符集的位置if (inputChar.equals(Vt[i])) {fla = true;count2 = i;break;}}if(!fla){System.out.println(" 分析到第" + count + "步时出错!");flag = false;return false;}for (int i=0; i<5; i++) { // 查询栈顶的符号位于非终结符集的位置if (fenxi[count1].equals(Vn[i])) {count3 = i;break;}}if (P[count3][count2] != "error") { // 栈顶的非终结符与输入的终结符存在产生式时String p = P[count3][count2];String s1 = p.substring(2, p.length()); // 获取对应的产生式if (s1.equals("ε")) { // 产生式推出“ε”时String fenxizhan = "";for (int i=0; i<=P.length; i++) {if (fenxi[i] == null) {break;} else {fenxizhan = fenxizhan + fenxi[i];}}// 输出当前分析栈情况,输入字符串,所用产生式或匹配System.out.print(" " + count);String countToString = Integer.toString(count);int farWay = 14 - countToString.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.print(fenxizhan);farWay = 20 - fenxizhan.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.print(inputString);farWay = 25 - inputString.length();for (int k=0; k<farWay; k++) {System.out.print(" ");}System.out.println(fenxi[count1] + P[count3][count2]);// 将栈顶符号出栈,栈顶指针指向下一个元素fenxi[count1] = null;count1 -= 1;count++;judge();} else { // 产生式不推出“ε”时int k = s1.length();String fenxizhan = "";for (int i=0; i<=P.length; i++) {if (fenxi[i] == null) {break;} else {fenxizhan = fenxizhan + fenxi[i];}}// 输出当前分析栈情况,输入字符串,所用产生式或匹配System.out.print(" "+count);String countToString = Integer.toString(count);int farWay = 14 - countToString.length();for (int o=0; o<farWay; o++) {System.out.print(" ");}System.out.print(fenxizhan);farWay = 20 - fenxizhan.length();for (int o=0; o<farWay; o++) {System.out.print(" ");}System.out.print(inputString);farWay = 25 - inputString.length();for (int o=0; o<farWay; o++) {System.out.print(" ");}System.out.println(fenxi[count1] + P[count3][count2]);for (int i=1; i<=k; i++) { // 将产生式右部的各个符号入栈String s2 = s1.substring(s1.length() - 1,s1.length());s1 = s1.substring(0, s1.length() - 1);if (s2.equals("'")) {s2= s1.substring(s1.length() - 1, s1.length())+ s2;i++;s1 = s1.substring(0, s1.length() - 1);}fenxi[count1] = s2;if (i < k)count1++;// System.out.println("count1=" + count1);}// System.out.println(" "+count+" "+fenxizhan+"// "+inputString +" "+P[count3][count2]);count++;// System.out.println(count);judge();}} else {System.out.println(" 分析到第" + count + "步时出错!");flag = false;return false;}}return flag;}public static void main(String args[]) {LL l = new LL();l.setP();String input = "";boolean flag = true;while (flag) {try {InputStreamReader isr = new InputStreamReader(System.in);BufferedReader br = new BufferedReader(isr);System.out.println();System.out.print("请输入字符串(输入exit退出):");input = br.readLine();} catch (Exception e) {e.printStackTrace();}if(input.equals("exit")){flag = false;}else{l.setInputString(input);l.setCount(1, 1, 0, 0);l.setFenxi();System.out.println();System.out.println("分析过程");System.out.println("----------------------------------------------------------------------");System.out.println(" 步骤 | 分析栈 | 剩余输入串 | 所用产生式 ");System.out.println("----------------------------------------------------------------------");boolean b = l.judge();System.out.println("----------------------------------------------------------------------");if(b){System.out.println("您输入的字符串"+input+"是该文发的一个句子");}else{System.out.println("您输入的字符串"+input+"有词法错误!");}}}}}六:实验心得通过本次实验基本掌握了语法分析的原理和LL(1)语法分析方法,以及预测分析表的构造,进一步熟悉了语法分析的详细过程,收获还是蛮大的,值得我们认真对待。
广东海洋大学微型计算机基础流水灯左移右移实验报告
实验报告课程名称:微型计算机基础实验项目名称:流水灯左移右移实验时间: 2014-11-05班级:软件x班姓名:xxx学号:xxxxxxxx实验一:流水灯左移右移实验实验目的:初步了解单片机I/O口的工作原理,进一步掌握51单片机的汇编指令。
实验内容:用汇编指令对单片机I/O口进行编程,控制8个发光二极管的流水亮灭。
功能要求:做单一灯的左移右移,八个发光二极管L0-L7分别接在单片机的P0.0-P0.7接口上,输出“0”时,发光二极管亮,开始时P0.0→P0.1→P0.2→P0.3→┅→P0.7→P0.6→┅→P0.0亮,重复循环。
电路图如下:选用的元器件:注意事项:电路板已经焊接好,流水灯接的是P0口,同时液晶显示模块也接在P0口,液晶显示模块的使能信号接P2.7口,因此做次实验,应将P2.7清零,同时P3.7应该清0,这样LED才能正常工作。
在仿真的时候,晶振和复位电路不画出亦可,简化电路图如下:已经完成上面实验的同学,可以在此基础上,使用定时器来进行延时,延时时间应该稍大,否则看不出来流水灯熄灭点亮的效果。
实验环境:硬件:PC机软件:keil C51、Proteus 7实验过程:1、打开Proteus 7,按照上面的实验内容的电路图进行画图。
2、打开Keil C51,(1)启动后,点击Project菜单新建项目,新建项目后,选择为AT89C51的仿真单片机的型号,单击File选择New新建程序文件,保存后,右击Source Group1添加入程序文件。
(2)编写程序,右击Target 1打开设置输出HEX窗口,如下图所示:(3)设置输出HEX文件,勾选上Output下的Create HEX Fi:,单击确定保存,运行程序得到HEX文件,如下图所示:3、实验的程序:ORG 000HMOV A,#0FEHMOV P0, A ;使P0口只有P0.0亮,其它不亮CLR P2.7CLR P3.7LOOP3: MOV R2,#8HLOOP1: RL A ;累加器循环左移MOV P0,A ;将移动后的结果赋给P0LCALL DELAY ;转延时,使灯移动明显DJNZ R2,LOOP1 ;MOV R2,#8 ;右移时也需要8次LOOP2: RR A ;累加器循环右移MOV P0,ALCALL DELAY ;转延时DJNZ R2,LOOP2 ;LJMP LOOP3 ;返回,再次左移DELAY: MOV R7,#0F9H ;延时子程序入口,延时0.125秒DELAY0: MOV R6,#0F9HNOPDELAY1: DJNZ R6,DELAY1DJNZ R7,DELAY0RET ;延时子程序结束,返回原程序SJMP $END4、实验心得:通过这次实验,我了解到了Keil C51和Pretuse 的使用方法,而且了解了程序的仿真过程。
GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)
GDOU-B-11-112 广东海洋大学学生实验报告书(学生用表)实验名称_____________ 课程名称操作系统课程号_______学院(系)软件学院专业________ 班级________________学生姓名_____________ 学号_____________ 实验地点___________ 实验日期__________一、实验目的修改MINIX操作系统内存管理的源程序,将MINIX的首次适应算法改为最佳适应和最差适应算法,对修改之后的MINIX源代码进行重新编译和重新启动,以测试你修改的正确性。
二、实验内容1、打开Minix3,进入alloc.c所在目录2、修改原算法为最佳适应算法(BEST_FIT)和最差适应算法(WORST_FIT)的程序如下:#i nclude "pm.h"#in clude <mini x/com.h>#in clude <mini x/call nr.h>#in clude <sig nal.h>#i nclude <stdlib.h>#i nclude "mproc.h"#in clude "../../ker nel/c on st.h"#in clude "../../ker nel/con fig.h"#in clude "../../kernel/type.h"#defi ne NR_HOLES (2*NR_PROCS)#defi ne NIL_HOLE (struct hole *) 0PRIVATE struct hole{ struct hole *h_n ext; phys_clicks h_base; phys_clicks h_le n; /* pointer to next entry on the list */ /* where does the hole begi n? */ /* how big is the hole? */} hole[NR_HOLES];PRIVATE u32_t high_watermark=0;PRIVATE struct hole *hole_head; /* pointer to first hole */PRIVATE struct hole *free_slots;/* ptr to list of un used table slots */#defi ne s ((phys_clicks) -1)FORWARD _PROTOTYPE( void del_slot, (struct hole *prev_ptr, struct hole *hp)); FORWARD _PROTOTYPE( void merge, (struct hole *hp) );#defi ne s() (0)/* max # en tries in hole table *//*alloc_mem*/PUBLIC phys_clicks alloc_mem(clicks)phys_clicks clicks; /* amount of memory requested */ #defi ne USING_BEST_FIT#ifdef USING_BEST_FIT{〃先找到第一个满足要求的空洞,〃再以第一个为标准寻找最适合的空洞。
移动程序设计实训报告
移动程序设计实训报告1.引言1.1 概述概述部分的内容可以简要介绍移动程序设计实训的背景和重要性。
可以包括以下方面:移动程序设计是指开发适用于移动设备的应用程序,如智能手机、平板电脑等。
随着移动设备的普及和功能不断增强,移动应用程序的需求也日益增加。
因此,学习和掌握移动程序设计技术对于提高个人竞争力和满足市场需求具有重要意义。
本文主要围绕移动程序设计实训展开,通过实际操作和项目实践,从理论到实践的角度,全面介绍了移动程序设计的关键概念、开发工具和技术。
在移动程序设计实训中,学生将学习如何使用常见的移动开发平台和工具,如Android Studio、Xcode等。
他们将学习使用Java、Swift等编程语言,了解移动应用程序的架构和组成要素,掌握界面设计、数据存储和网络通信等关键技术。
通过移动程序设计实训,学生将培养解决实际问题的能力、团队协作精神和创新思维,提高软件开发的实践能力。
此外,实训还能加深学生对移动应用市场的认识,提升他们对移动产品和技术趋势的把握能力。
综上所述,移动程序设计实训作为一门重要的实践性课程,对学生的职业发展和专业能力提升具有重要作用。
本文将详细介绍移动程序设计实训的内容和经验,希望能为读者提供有益的参考和指导。
文章结构是指文章所包含的各个部分及其组织方式。
良好的文章结构能够使读者更加顺利地理解文章的内容和逻辑关系。
本文将按照以下结构进行阐述:1. 引言1.1 概述:对移动程序设计实训的背景和意义进行简要介绍,引起读者的兴趣。
1.2 文章结构:本节,将介绍整篇文章的结构,让读者对接下来的内容有清晰的预期。
1.3 目的:明确阐述撰写这篇报告的目的和意义。
2. 正文2.1 第一个要点:这一部分将详细介绍第一个要点,例如介绍移动程序设计的相关背景知识、技术要求、实践过程等等。
2.2 第二个要点:在这一部分,将详细描述第二个要点,例如介绍移动程序设计实训中的问题和挑战、解决方案和具体操作步骤等。
广东海洋大学andriod应用软件开发实习报告
ห้องสมุดไป่ตู้东海洋大学课程实习
④ 删除录像:点击相应录像列表中的录像文件,然后弹出的对话框中 点击删除,确定后即可删除录像文件。
3.2.2 非功能性需求 ① 客户端界面设计美观大方,给人良好的审美效果。 ② 系统稳定运行不出错。
四、系统概要设计
4.1 系统架构图
4.2 系统部署图
5
广东海洋大学课程实习
五、系统详细设计
Activity 模块 MainActivity 模块 CameraResourceActivity ReCordSourceActivity ReCordAudioActivity ReCordAudioResourceActivity AudioReadViewActivity AboutActivity 主界面 照相界面 录音界面 录像界面 录像资源管理界面 录像播放界面 关于界面
3.2 需求分析
3.2.1 功能性需求 拍照: ① 开始拍照:用户进入应用后,点击拍照按钮后,应用可以进入拍照 界面,然后用户可以自定义的进行拍照操作,拍完照后即将拍好的照片保 存在手机的 SD 卡中。 ② 浏览照片:用户进入应用后,点击浏览按钮后,应用将调用系统的 图库功能, 通过系统的图库功能即可查看本应用刚刚拍的照片。 查看图片, 可以对图片进行旋转,放大等操作。 ③ 上传照片:用户进入应用后,点击上传按钮后,应用将通过网络与 服务器相连,把自己想上传到服务器的照片上传到服务器的相应位置,然 后将照片在服务的具体信息保存在数据库中。 ④ 删除照片:用户通过系统的图库查看照片,在查看照片的过程中可 以利用图库的功能对图片进行删除相应的照片。
1
广东海洋大学课程实习
广铁集团乘务通软件系统开发 ——拍照录像录音模块
广东海洋大学学生报告书
GDOU-B-11-112广东海洋大学学生实验报告书实验名称实验6:异常处理课程名称Java程序设计2 成绩学院(系)软件学院专业计算机软件工程班级学生姓名学号实验地点实验日期实验目的:1.掌握Java异常的概念和类型;2.掌握Java的异常处理机制;3.掌握Java人工抛出异常和自定义异常方法;实验内容:1.下面的代码在运行过程中会出现异常,就使用异常捕捉处理机制使得下列代码能够运行到正常的终点结束。
public class Exc1{static void subroutine( ){int d=0;int a=10/d;}public static void main(String[] args){Exc1.subroutine( );System.out.println(“程序正常结束”);}}2.下面代码在顺序执行的过程中可能会发生多种类型的异常,用多个catch语句捕获处理具体异常(不要使用笼统父类Exception),使程序代码能够正常运行到终点结束。
public class Exc2{public static void main(String[] args){int a=args.length;System.out.println(“\n参数个数为:”+a);int b=42/a;int c[]={1};c[2]=10;System.out.println(“程序运行结束”);}}指导教师日期注:请用A4纸书写,不够另附纸。
第页,共页3. P194页第4题,写出程序的运行结果,说明输出该结果的原因;对程序做少量修改使得输出的结果是“abcdmn”;程序的修改要求如下,所有的System.out.println()语句位置不能改变。
可修改或移动其它的部分语句,也可增加语句,要求增加的语句不超过2行。
4. 测试以下的程序,运行时分别用0个,1个和2个参数测试,写出程序的运行结果。
掌握try-catch语句的嵌套使用。
广东海洋大学学生移动编程实验报告书1
广东海洋大学学生实验报告书(学生用表)
实验名称 实验一第一个Android 程序 课程名称 移动编程技术
课程号 16552101
学院(系) 信息(软件)学院 专业 软件工程
班级 应用1123
学生姓名
钟炜堂
学号 201211701131 实验地点 钟04002 实验日期 15.09.24
实验一
第一个Android 程序
实验目的:
1、了解Android 项目环境的各个组成部分,掌握项目环境搭建方法
2、掌握Android 项目的创建和理解应用程序的结构。
实验内容:
1.Android 手机开发平台安装以及相关配置
2.配置环境变量
GDOU-B-11-112
在这里选择jre版本1.6以上
3.运行Eclipse的Android ADT插件,新建一个运行模拟器,然后启动
启动后的模拟机界面
4.新建一个HELLO-Android工程在模拟机运行hello程序
5.观察和理解该项目的基本文件目录结构,熟悉文件的作用
AndroidManifest.xml文件定义了安卓运行平台的的最低版本和最高版本,同时定义了每一个Activity,包括启动界面MainActivity。
String.xml定义了很多文字常量,比如软件名或者许多引用的文字。
用于国际化
成绩指导教师陈月峰日期
注:请用A4纸书写,不够另附纸。
第页,共页。
广东海洋大学安卓实验3---用户界面布局的应用
GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)实验名称实验3:用户界面布局的应用课程名称移动编程课程号16242215x0学院(系) 数学与计算机专业计算机科学与技术班级计科1141班
学生姓名学号实验地点科技楼425 实验日期2017.3.13
一、实验目的
1.熟悉在Android Studio开发环境下编写Android应用程序的流程;
2.理解在Android Studio开发环境下进行用户界面设计的基本方法;
3.掌握Android线性布局、按钮、文本标签等控件的应用。
二、实验内容
在Android Studio开发环境下,使用Android的Button按钮控件和TextView文本标签控件,仅采用线性布局的界面设计方式实现一个简易计算器应用程序。
三、实验设备
Android Studio
四、实验结果
五、总结
本次实验的计时器运用了线性布局用户界面控件,这个知识点是比较容易编码的,但是具体实现部分的java代码是比较难操作的,还有2个漏洞没有修复,停止计时和重置计时器时候,时间没有正常清零,将会在近期尽快完成这两个功能,追求更完美的实验效果。
成绩指导教师日期
注:请用A4纸书写,不够另附纸。
第 1 页,共 1 页
1。
c程序设计实验3
广东海洋大学学生实验报告书实验名称 顺序程序设计成绩学院(系) 电子与信息工程学院 专业电气工程及其自动化班级 1163学生姓名李宇华学号 201611631312 实验地点钟海楼04002实验日期2016年10月20日1实验目的(1)掌握C 语言中使用最多的一种语句——赋值语句的使用方法。
(2)掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。
(3)进一步掌握编写程序和调试程序的方法。
2实验内容和步骤(1)通过下面的程序掌握各种格式转换符的正确使用方法。
①输入以下程序: #include<stdio.h> int main() {int a,b; float d,e; char c1,c2; double f,g; long m,n;unsigned int p,q; a=61;b=62;c1='a';c2='b'; d=3.56;e=-6.87;f=3157.890121;g=0.123456789; m=50000;n=-60000; p=32768;q=40000;printf("a=%d,b=%d\nc1=%c,c2=%c\nd=%6.2f,e=%6.2f\n",a,b,c1,c2,d,e); printf("f=%15.6f,g=%15.12f\nm=%1d,n=%1d\np=%u,q=%u\n",f,g,m,n,p,q); return 0; }②运行此程序并分析结果。
GDOU-B-11-112③在此基础上,将程序第10~14行改为c1=a;c2=b;f=3157.890121;g=0.123456789;d=f;e=g;p=a=m=50000;q=b=n=-60000;运行程序,分析结果。
运行这个程序时,出现了c1=?c2=?的结果,说明c1c2的输入方法有错,让我认识到输入时应该准确地输入,不该偷工减料。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)
实验名称实验三音乐播放器设计课程名称移动编程技术课程号16552101学院(系) 信息(软件)学院专业软件工程班级应用1123
学生姓名钟炜堂学号201211701131 实验地点钟04019 实验日期15.10.21
实验三音乐播放器设计
实验目的:
1.掌握Servic的启动
2.熟悉Service的使用
实验内容:
1.设计一个简单的音乐播放器设计。
当点击“启动播放器”按钮时,启动一个service实现音乐播放;当点击“停止播放器”按钮时,则停止音乐播放。
Activity.xml布局文件
<FrameLayout xmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.music.MainActivity"
tools:ignore="MergeRootFrame" >
<Button
android:id="@+id/start"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:text="点击播放"/>
</FrameLayout>
Activity.java文件
@SuppressLint("NewApi")
public class MainActivity extends Activity {
MediaPlayer mMediaPlayer;
@SuppressLint("NewApi")
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(yout.activity_main);
if (savedInstanceState == null) {
getFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
final Button start=(Button) findViewById(R.id.start);
start.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
mMediaPlayer=MediaPlayer.create(MainActivity.this,R.raw.new_messages) ;
if(start.getText()=="播放")
{
if(true){
try {
mMediaPlayer.start();
mMediaPlayer.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
if (true) {
mMediaPlayer.release();
}
}
});
} catch (Exception e) {
e.getMessage();
}
}
start.setText("停止");
}
else
{
start.setText("播放");
try {
mMediaPlayer.release();
} catch (Exception e2) {
// TODO: handle exception
}
}
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(yout.fragment_main, container,
false);
return rootView;
}
}
}
音乐文件存放在目录raw
实现效果
成绩指导教师陈月峰日期
注:请用A4纸书写,不够另附纸。
第页,共页。