Java程序设计与实践教程_张毅-第4章 数组和字符串
- 格式:pptx
- 大小:215.77 KB
- 文档页数:51
第一题public class Four01 {public static double sum(int a){double sum =1;for(int i=1; i<=a;i++){sum = sum*i;}return sum;}public static void main(String[]args){int a =4;double sum = 0;double k[]=new double[a];for(int i=1; i<=4; i++){k[i-1] = sum(i);}for(int j=0;j<k.length;j++){sum = sum+k[j];}System.out.println("总数为:"+sum);}}第二题public static void main(String[]args){int a[]={1,2,3,4,5,6,7,8,9,10,11};int o=0,e=0;for(int i=0 ;i<a.length; i++){if(a[i]%2==0){e++;}else{o++;}}System.out.println("奇数个数为:"+o+"\t"+"偶数个数为:"+e); }}第三题public class Four03 {public static void main(String[]args){int oldArr[]= {1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};int newArr[]=new int[16];for(int i=0,j=0;i<oldArr.length; i++){if(oldArr[i]!=0){newArr[j]=oldArr[i];j++;}}for(int i=0; i<newArr.length; i++){//必须要写这个if语句,因为newArr多余的空间默认值为0if(newArr[i]!=0)System.out.print(newArr[i]+" ");}}}第四题public class Four04 {public static void main(String[]args){ int Array[] = {1,2,3,4,5,6,7,8,9,10,11};int m = max(Array);System.out.println("最大值为:"+m);int a = min(Array);System.out.println("最小值为:"+a);int s = sum(Array);System.out.println("总数为:"+s);}public static int max(int temp[]){int z = temp[0];for(int i=0; i<temp.length; i++){if(z<temp[i]){z=temp[i];}}return z;}public static int min(int temp[]){int z=temp[0];for(int i=0; i<temp.length; i++){if(z>temp[i]){z=temp[i];}}return z ;}public static int sum(int temp[]){int sum =0;for(int i=0; i<temp.length; i++){sum = sum +temp[i];}return sum ;}}第五题public class Four05 {public static void main(String[]args){ int Array[]= {1,2,3,4,5,6,7,8,9,10,11};int a =5;int b = 100;search(a,Array);search(b,Array);}public static void search(int c,int temp[]){ boolean flag = false;for(int i=0; i<temp.length; i++){if(c == temp[i]){flag = true;}}if(flag){System.out.println("YES,此数组中存在元素"+c);}else{System.out.println("NO,此数组中不存在元素"+c);}}}第六题public class Four06 {public static void main(String[]args){int temp[] = new int[10];init(temp);print(temp);reserve(temp);System.out.println();print(temp);}public static void init(int x[]){for(int i=0; i<x.length; i++){x[i] = i;}}public static void print(int x[]){for(int i=0; i<x.length; i++){System.out.println(x[i]+"、");}}public static void reserve(int x[]){int foot =0;int head = 0;if(x.length%2 == 0){foot = x.length/2;head = foot-1;for(int i=0; i<x.length/2; i++){int temp =x[foot];x[foot] = x[head];x[head] = temp;foot++;head--;}}else{foot = x.length/2;head = foot ;for(int i=0; i<x.length/2+1; i++){int temp = x[foot];x[foot] = x[head];x[head] = temp;head--;foot++;}}}}第七题public class Four07 {public static void main(String args[]){float score[] = {90f,87f,78f,67f,93f,79f,82f,84f,71f,86f};float max = score[0];for(int i=0; i<score.length; i++){if(max<score[i]){max = score[i];}}System.out.println("最高分为:"+max);}}第八题public class Four08 {public static void main(String[] args){int Array[]={1,2,1,3,4,6,5,4,3,2,0,9,8,7,6,5,4,3,5,6,7,8,9,0,9,8,2,1,3,4,};int n1=0,n2=0,n3=0,n4=0,n5=0,n6=0,n7=0,n8=0,n9=0,n0=0;for(int i=0; i<Array.length; i++){switch(Array[i]){case 1:{n1++;break;}case 2:{n2++;break;}case 3:{n3++;break;}case 4:{n4++;break;}case 5:{n5++;break;}case 6:{n6++;break;}case 7:{n7++;break;}case 8:{n8++;break;}case 9:{n9++;break;}case 0:{n0++;break;}}}System.out.println("0---->9的个数分别为:"+n0+"、"+n1+"、"+ n2+"、"+n3+"、"+n4+"、"+n5+"、"+n6+"、"+n7+"、"+n8+"、"+n9);}}第九题public class Four09 {public static void main(String[] args){int a[]= {1,2,3,4,5,6,7,8,9,0};int maxFoot =0;int max = a[0];for(int i=0; i<a.length; i++){if(max<a[i]){max=a[i];maxFoot=i;}}int val = a[0];a[0] = a[maxFoot];a[maxFoot] = val;System.out.println(a[0]);}}第十题public class Four10 {public static void main(String[] args){int temp[]= {1,2,3,4,5,6,7,8,9,10};java.util.Arrays.sort(temp);print(temp);temp = inc(temp,13,12,34,5,6,7);java.util.Arrays.sort(temp);print(temp);}public static void print(int a[]){for(int i=0; i<a.length; i++){System.out.print(a[i]+"、");}System.out.println();}public static int[] inc(int a[],int...val){int value[] = new int[a.length+val.length];System.arraycopy(a,0,value,0,a.length);System.arraycopy(val,0 , value, a.length, val.length);return value;}}。
Java程序设计实用教程(第4版)习题解答与实验指导叶核亚编著2013年11月目录“Java程序设计”课程教学要求·················错误!未定义书签。
第1章 Java概述························错误!未定义书签。
第2章 Java语言基础······················错误!未定义书签。
第3章类的封装、继承和多态··················错误!未定义书签。
第4章接口、内部类和 Java API基础··············错误!未定义书签。
第5章异常处理························错误!未定义书签。
《Java语言程序设计》(第三版)课程教学大纲学分:3学分学时:45学时(其中:讲课学时:30上机学时:15 )适用专业:通识选修课、专业拓展课一、课程的性质与目标《Java语言程序设计》的可作为一门计算机科学与技术的普及课、入门课,用作专业拓展课或非计算机专业的通识选修课。
通过本课程的学习,学生能够了解Java语言特征、常用的Java类库以及面向对象程序设计思想,并理解计算机软件和计算机系统的工作原理和方式,提高对计算机科学与技术的兴趣,促进学生能在未来的学习和工作中,使用“计算机思维”来解决实际问题,全面提高学生的综合素质。
二、课程设计理念与思路课程设计理念:高等职业教育不仅注重对专业知识和技能的传授,也注重对学生综合素质的培养,不局限于个人选择的专业,有助于个人潜力能够得到最大限度的发挥。
在全球云计算和移动互联的产业背景下,在高等教育的通识教育中增加有关计算机技术基础知识与能力的课程,有助于非计算机专业大学生综合素质的提高。
课程设计思路:Java语言程序设计作为一门选修课,让学生把一门程序设计语言掌握到实用的程度较有难度。
本课程并非介绍Java标准版的所有内容,而是通过Java语言深入理解程序设计的精髓,大局部知识点是适用于所有编程的基础知识,如变量、运算符、流程控制语句和10等。
潜移默化地培养学生程序化、系统化的思维模式,让学生能够使用抽象思维分类解决问题。
同时,培养学生的自学能力。
软件技术的开展日新月异,教材不能做到和语言同步,互联网的存在为自学掌握一门技能提供了便捷,可以让学生自己分析问题、动手编程和,在此过程中,学生上网查阅相关资料,能够更新知识,并逐渐具备独立研究的能力。
三、教学条件要求操作系统:Windows 10五、学时分配注:可选章节未计入合计课时。
六、考核模式与成绩评定方法本课程为考试课程,期末考试采用百分制的闭卷考试模式。
学生的考试成绩由平时成绩(30%)和期末考试(70%)组成,其中,平时成绩包括出勤(5%)、作业(5%)、实验和上机成绩(20%)。
实验报告课程名称JA V A面向对象程序设计实验项目数组、字符串、枚举、泛型的应用专业计科班级姓名学号指导教师谷勇浩实验成绩2010年6月6日一实验目的加强对JA VA 程序的熟练掌握。
二实验内容1.打印输出10行杨晖三角形11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 11 7 21 35 35 21 7 11 8 28 56 70 56 28 8 11 9 36 84 126 126 84 36 9 12.奥运趣味题。
完成下面的表达式,要求,星号分别表示0-9的一位数字,而且不允许重复,使得下面的加法表达式成立。
(输出所有结果)*****+ 20085--------*****3.请编写程序,输入一个字符串,然后由程序统计并输出在该字符串中每个字符出现的次数。
4.请编写程序实现两种日期格式(如:“1981.07.30”和“July 30, 1981”)之间相互转换。
要求其中一种格式的日期通过程序的参数输入,程序通过识别判断其格式,然后输出另一个格式表示的日期。
5.请应用泛型编写程序。
首先定义一个接口,它至少包含一个可以计算面积的成员方法。
然后编写实现该接口的两个类:正方形类和圆类。
接着编写一个有泛型特点的类,要求利用这个类可以在控制台窗口中输出某种图形的面积,而且这个类的类型变量所在控制台窗口中分别输出给定边长的正方形的面积和给定半径的圆的面积。
6.请编写程序。
首先在程序中定义一个枚举类型,它含有七个枚举常量,分别表示一个星期每一天的名称。
然后再控制台窗口中输出这些名称。
7.键盘输入一段英文语句,将这段话写入文件file.txt中,然后统计并输出这段话中英文单词的数目。
三.主要程序1.杨辉三角package h_YangTriangle;public class h_YangTriangle{public static int [][]a;public static int i,j,x;public static void main(String[] args){System.out.println("杨辉三角为:");h_YangHui();}public static void h_YangHui (){for(i=0;i<10;i++){for(j=0;j<i+1;j++){if(j==0||j==i){a[i][j]=1;}elsea[i][j]=a[i-1][j-1]+a[i-1][j];}}for(i=0;i<10;i++){for(j=0;j<=i+1;j++){System.out.print(a[i][j]);}System.out.print("\n");}}}程序结果:2.奥运趣味题package h_interesting;public class h_InterestTopic{int []a;int []b;h_InterestTopic(){i nt a[]=new int [5];i nt b[]=new int [5];a[2]=9;b[2]=0;}//h_InterestTopic的构造方法结束public void h_DataStart(){i nt i,j,k;f or(i=4,j=4;i>=0&&j>=0;i--,j--){for(k=1;k<9;k++){if(h_DataChoiceA(k)==1){a[i]=k;}elsecontinue;if(h_DataChoiceB()){h_DataPutB();}elsecontinue;}}}//数据初始化private int h_DataChoiceA(int t) { int i;for(i=0;i<8;i++){if(t==a[i]||t==0||t==9)return(0);elsereturn(1);}return i;}//判断a[]是否符合条件private int h_DataChoiceB(int t) { int i;t=h_DataPutB();for(i=0;i<9;i++){if(t==a[i]||t==0||t==9)return(0);e lsereturn(1);}}//判断b[]是否符合条件public void h_DataPutB(){i nt i,j;f or(i=4;i>=0;i--){for(j=4;j>=0;j--){switch(b[j]){case 4:b[j]=a[i]+5;case 3:b[j]=a[i]+8;case 1:b[j]=a[i]+1;case 0:b[j]=a[i]+2;}}}}//b[]的数据输入public static void main(String[] args){h_InterestTopic m = new h_InterestTopic();h_InterestTopic();}}程序结果:3.字符串统计package h_String;public class h_String{public static void main(String[] args){String x = "pleasego";String str = x;h_StringA((str, str.length());}public static void h_StringA(String input, int len){int count[] = new int[200];char order[] = new char[200];int next = 0;for (int i = 0; i < len; i++){char lowerCase = Character.toLowerCase(input.charAt(i));if (count[lowerCase & 0xff]++ == 0){order[next] = lowerCase;next = lowerCase & 0xff;}}for (char a = order[0]; a > 0;){System.out.println(a + " : " + count[(a & 0xff)]);a = order[a];}}}程序结果:4.日期转换package h_TimeChange;public class h_Time{public h_Time(int year,int M,int day){switch(M){case 1:String a=new String ("January");System.out.print(""+a+","+day+","+year);break;case 2:String b=new String ("February");System.out.print(""+b+","+day+","+year);break;case 3:String c=new String ("March");System.out.print(""+c+","+day+","+year);break;case 4:String d=new String ("April");System.out.print(""+d+","+day+","+year);break;case 5:String e=new String ("May");System.out.print(""+e+","+day+","+year);break;case 6:String f=new String ("June");System.out.print(""+f+","+day+","+year);break;case 7:String g=new String ("july");System.out.print(""+g+","+day+","+year);break;case 8:String h=new String ("August");System.out.print(""+h+","+day+","+year);break;case 9:String m=new String ("September");System.out.print(""+m+","+day+","+year);break;case 10:String n=new String ("Octuber");System.out.print(""+n+","+day+","+year);break;case 11:String p=new String ("November");System.out.print(""+p+","+day+","+year);break;case 12:String q=new String ("December");System.out.print(""+q+","+day+","+year);break;}}private static void h_Change(String x){String m=x.substring(0,3);if(m.equals("Jan")){String d12="01";String d13=x.substring(7,9);String d14=x.substring(9,13);System.out.print(d14+","+d12+","+d13);}else if(m.equals("Feb")){String d12="02";String d13=x.substring(8,10);String d14=x.substring(10,14);System.out.print(d14+","+d12+","+d13);}else if(m.equals("Mar")){String d12="03";String d13=x.substring(5,7);String d14=x.substring(7,11);System.out.print(d14+","+d12+","+d13); }else if(m.equals("Apr")){String d12="04";String d13=x.substring(5,7);String d14=x.substring(7,11);System.out.print(d14+","+d12+","+d13);}else if(m.equals("May")){String d12="05";String d13=x.substring(3,5);String d14=x.substring(5,9);System.out.print(d14+","+d12+","+d13); }else if(m.equals("Jun")){String d12="06";String d13=x.substring(4,6);String d14=x.substring(6,10);System.out.print(d14+","+d12+","+d13); }else if(m.equals("Jul")){String d12="07";String d13=x.substring(4,6);String d14=x.substring(6,10);System.out.print(d14+","+d12+","+d13); }else if(m.equals("Aug")){String d12="08";String d13=x.substring(6,8);String d14=x.substring(8,12);System.out.print(d14+","+d12+","+d13); }else if(m.equals("Sep")){String d12="09";String d13=x.substring(9,11);String d14=x.substring(11,15);System.out.print(d14+","+d12+","+d13);}else if(m.equals("Oct")){String d12="10";String d13=x.substring(7,9);String d14=x.substring(9,13);System.out.print(d14+","+d12+","+d13);}else if(m.equals("Nov")){String d12="11";String d13=x.substring(8,10);String d14=x.substring(10,14);System.out.print(d14+","+d12+","+d13);}else if(m.equals("Dec")){String d12="12";String d13=x.substring(9,11);String d14=x.substring(11,15);System.out.print(d14+","+d12+","+d13);}else{System.out.println("error");}}public static void main(String[] args){h_Time ff = new h_Time(2010,2,21);System.Out.print(“”);String x = "june132012";h_Change(x);}}程序结果:5.泛型编程package h_fanXing;public class h_FanXing{public static void main(String args[ ]){double r = 2 ;h_T<h_circle> a = new h_T<h_circle>();System.out.println("半径为"+5+"的圆的面积是"+a.sg_AreaB(new h_circle()));double x1 = 1;d ouble y1 = 1;d ouble x2 = 4;d ouble y2 = 4;h_T<h_rectangle> b = new h_T<h_rectangle>();System.out.println("给定的矩形面积是"+b.sg_AreaB(newh_rectangle(x1 , y1, x2, y2)));} // 方法main结束}package h_fanXing;public class h_circle implements h_shape{public double m_x, m_y; // 圆心坐标public double m_radius; // 半径public void h_circleA(double r){m_x = 0;m_y = 0;m_radius = r;} // J_Circle构造方法结束public void h_circleB(double x, double y, double r){m_x = x;m_y = y;m_radius = r;} // J_Circle构造方法结束// 计算并返回形状的面积public double sg_getArea( ){return (Math.PI*m_radius*m_radius);} // 方法mb_getArea结束} // 类J_Circle结束package h_fanXing;public class h_rectangle implements h_shape{public double m_minX, m_minY; // 第一个角点坐标public double m_maxX, m_maxY; // 另一个角点坐标public h_rectangle(double x1, double y1, double x2, double y2) {if (x1<x2){m_minX = x1;m_maxX = x2;}else{m_minX = x2;m_maxX = x1;} // if-else结构结束if (y1<y2){m_minY = y1;m_maxY = y2;}else{m_minY = y2;m_maxY = y1;} // if-else结构结束} // h_rectangle构造方法结束// 计算并返回形状的面积public double sg_getArea( ){return ( (m_maxY-m_minY) * (m_maxX-m_minX) ); } // 方法mb_getArea结束} // 类J_Rectangle结束package h_fanXing;public interface h_shape{public abstract double sg_getArea( );}package h_fanXing;public class h_T <T extends h_shape >{public double sg_AreaB(T t){return (t.sg_getArea());}}程序结果:6.枚举enum h_week{星期一,星期二,星期三,星期四,星期五,星期六,星期天;}//枚举h_week结束public class h_MeiJu{public static void main(String[] args){h_week []sa=h_week.values();for(int i=0;i<sa.length;i++){switch(sa[i]){case星期一:System.out.println("Monday");break;case星期二:System.out.println("Tuesday");break;case星期三:System.out.println("Wednesday");break;case星期四:System.out.println("Thursday");break;case星期五:System.out.println("Friday");break;case星期六:System.out.println("Saturday");break;case星期天:System.out.println("Sunday");break;}//switch结构结束}//for循环结束}//方法main结束}//类h_MeiJu结束程序结果:。
第4章习题解答1.声明一个数组,保存一个学生的数学、语文、英语、物理、化学等课程的成绩,编写一个程序,计算5门课程的平均成绩,精确到0.1分,成绩值从键盘录入。
import java.util.Scanner;public class XT_1_score {public static void main(String[] args) {// TODO Auto-generated method stubdouble score[] = new double[5];System.out.println("请分别输入数学、语文、英语、物理、化学的成绩(数字之间用空格格开):");double sum = 0, average = 0;Scanner in = new Scanner(System.in);int i;for (i = 0; i < 5; i++)score[i] = in.nextDouble();for (i = 0; i < 5; i++)sum += score[i];average = sum / 5;System.out.println("平均成绩为:" + String.format("%.1f", average));}2.编程实现统计50名学生的百分制成绩中各分数段的学生人数,即:分别统计出100分、90-99分、80-89分、70-79分、60-69分、不及格的学生人数。
import java.util.Scanner;public class XT_2_score_sore {public static void main(String[] args) {// TODO Auto-generated method stubdouble score[] = new double[50];int a = 0, b = 0, c = 0, d = 0, e = 0, f = 0, i;System.out.println("请依次输入50名学生的成绩(用空格隔开):");Scanner br = new Scanner(System.in);for (i = 0; i < 50; i++)score[i] = br.nextDouble();for (i = 0; i < 50; i++) {if (score[i] == 100)a++;if (score[i] >= 90 && score[i] <= 99)b++;if (score[i] >= 80 && score[i] <= 89)c++;if (score[i] >= 70 && score[i] <= 79)d++;if (score[i] >= 60 && score[i] <= 69)e++;if (score[i] < 60)f++;}System.out.println("成绩为100分的个数:" + a);System.out.println("成绩为90-99分的个数:" + b);System.out.println("成绩为80-89分的个数:" + c);System.out.println("成绩为70-79分的个数:" + d);System.out.println("成绩为60-69分的个数:" + e);System.out.println("成绩为不及格的个数:" + f);}}3.编写一个程序,实现打印输出字符串数组中最大值和最小值。
Java程序设计课程教案一、课程简介1.1 课程背景Java是一种面向对象、跨平台、多用途的编程语言,自1995年推出以来,已广泛应用于企业级应用、桌面应用、移动应用和Web开发等领域。
本课程旨在让学生掌握Java编程的基本语法、面向对象编程思想以及常用的开发工具和框架,为学生进一步学习Java高级知识和实践项目打下坚实基础。
1.2 课程目标(1)掌握Java基本语法和数据结构;(2)理解面向对象编程思想,熟练使用类和对象;(3)学会使用Java常用开发工具和框架;(4)具备编写简单Java应用程序的能力。
二、教学内容2.1 Java基本语法(1)变量和数据类型;(2)运算符和表达式;(3)控制语句;(4)数组和字符串。
2.2 面向对象编程(1)类和对象的概念;(2)构造方法;(3)封装、继承和多态;(4)抽象类和接口;(5)包和泛型。
2.3 Java常用开发工具和框架(1)Eclipse和IntelliJ IDEA;(2)Java标准库;(3)JavaFX和Swing;(4)常用设计模式;(5)Maven和Git。
三、教学方法3.1 授课方式采用讲授、案例分析和上机实践相结合的方式进行教学。
3.2 实践环节安排课后练习和课程项目,让学生在实际编程中巩固所学知识。
3.3 考核方式课程成绩由课后练习、课程项目和期末考试组成,其中课后练习和课程项目占60%,期末考试占40%。
四、教学安排4.1 课时共计64课时,其中理论授课32课时,实践环节32课时。
4.2 授课计划(1)第1-8课时:Java基本语法;(2)第9-16课时:面向对象编程;(3)第17-24课时:Java常用开发工具和框架;(4)第25-32课时:课后练习和课程项目。
五、课程评价5.1 学生评价(1)课后练习和课程项目的完成情况;(2)课堂表现和提问回答;(3)期末考试成绩。
5.2 教师评价(1)对学生的课堂表现和提问回答进行评价;(2)对课后练习和课程项目的质量进行评价;(3)对期末考试成绩进行分析。
Java面向对象程序设计(编著耿祥义张跃平)习题11.James Gosling2.(1)使用一个文本编辑器编写源文件。
(2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。
(3)使用Java解释器(java.exe)运行Java程序3.Java的源文件是由若干个书写形式互相独立的类组成的。
应用程序中可以没有public类,若有的话至多可以有一个public类。
4.系统环境path D\jdk\bin;系统环境classpath D\jdk\jre\lib\rt.jar;.;5. B6. Java源文件的扩展名是.java。
Java字节码的扩展名是.class。
7. D8.(1)Speak.java(2)生成两个字节码文件,这些字节码文件的名字Speak.class 和 Xiti8.class (3)java Xiti8(4)执行java Speak的错误提示Exception in thread "main" ng.NoSuchMethodError: main执行java xiti8得到的错误提示Exception in thread "main" ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8) 执行java Xiti8.class得到的错误提示Exception in thread "main" ng.NoClassDefFoundError: Xiti8/class执行java Xiti8得到的输出结果I'm glad to meet you9.属于操作题,解答略。
习题21. D2.【代码1】【代码2】错误 //【代码3】更正为 float z=6.89F;3.float型常量后面必须要有后缀“f”或“F”。
对于double常量,后面可以有后缀“d”或“D”,但允许省略该后缀。