1.equals()方法

而“==”是比较int,double......等类型的数值是否相等。

2.什么是构造方法?什么是构造方法的重载?下面的程序是否可以通过编译?为什么?
(1). 构造方法是一种特殊的方法,方法名称要和类的名称一样,主要功能就是完成对象的初始化,当类实例化对象的时候进行调用。
(2).所谓的方法重载就是方法名称相同,但参数类型和参数个数不同。
(3).

    public class Test {public static void main(String args[]) { Foo obj = new Foo();       }
}
class Foo{int value;public Foo(int intValue){value = intValue;}
}

不可以通过编译,在主函数中,构造的方法Foo()中,并没有int型参数。

3.运行下列程序,结果是什么?查阅资料,分析为什么。

public class Test {public static void main(String args[]) { double a = 0.1;double b = 0.1;double c = 0.1;if((a + b + c) == 0.3){System.out.println("等于0.3");}else {System.out.println("不等于0.3");}}
}

用一个double类型的sum去输出“a+b+c”的值sum=0.30000000000000004
double类型是64位精度在14位以下,如果超出精度范围 ,就会不准。
正确改法:

package org.lxh.demo11.numberdemo;
import java.math.BigDecimal;
public class test {public static void main(String args[]) { double a = 0.1;double b = 0.1;double c = 0.1;double sum=0;sum=Mymath.round(Mymath.add(a,b,c),1);System.out.println("值为"+sum);}}class Mymath{public static double round(double a,int len){BigDecimal b1=new BigDecimal(a);BigDecimal b2=new BigDecimal(1);return b1.divide(b2,len,BigDecimal.ROUND_HALF_UP).doubleValue();}public static double add(double num1,double num2,double num3){BigDecimal a=new BigDecimal(num1);BigDecimal b=new BigDecimal(num2);BigDecimal c=new BigDecimal(num3);return a.add(b).add(c).doubleValue();}}

4.运行下列程序,结果是什么?分析原因,应如何修改.

    public class Test {public static void main(String[] args) {MyClass[] arr=new MyClass[3];arr[1].value=100;}
}
class MyClass{public int value=1;
}

数组内有空指针,将其全部复制即可

package org.lxh.demo11.numberdemo;
public class test {public static void main(String[] args) {MyClass []arr={new MyClass(),new MyClass()};arr[1].value=100;}
}
class MyClass{public int value=1;
}
  1. 应用StringBuffer类进行10000次连接操作,String赋值后就不可更改,而StringBuffer类使用append等方法改变字符串的值。
    6.定义数组后,里面必须有值,不能为空。
    (二)实验总结
    1.评分系统:一共10个评委,满分10分,假设有5个选手,分别由评委打分,去掉一个最高分和一个最低分后的平均分为该选手得分,将选手的得分从高到低进行输出。定义适当的方法。
    a.程序设计思路:连续输入5个人的成绩,排序后,去掉数组中第一个和最后一个值,平均分按照降序,输出从最后一个开始输出。
    b.实验问题分析:
    问题:检验时用了一个数组一开始无法输出
    原因:后来通过查资料发现,数组里面必须全部赋值才能输出。
    解决方案:全部输入数据,再做查询

    import java.util.Scanner;
    public class shiyan1{
    public static void main(String[] args){
    Scanner in=new Scanner(System.in);
    int [][] score;
    int z;
    int sum = 0;
    double [] averageScore;
    averageScore=new double[5];
    score=new int [5][10];
    double [] finalScore;
    finalScore=new double[5];
    for(int i=0;i<score.length;i++){
    for(int j=0;j<score[i].length;j++){
    System.out.println("给第"+(i+1)+"个人打分:");
    score[i][j]=in.nextInt();
    }
    }
    for(int k=0;k<score.length;k++){
    for(int m=0;m<score[k].length;m++){
    z=m;
    for(int o=m+1;o<score[k].length;o++){
    if(score[k][o]>score[k][z]){
    z=o;
    }
    if(z!=o){
    int temp=score[k][m];
    score[k][m]=score[k][z];
    score[k][z]=temp;
    }
    }
    }
    }
    for(int p=0;p<score.length;p++){
    for(int q=0;q<score[p].length;q++){
    if(q==0||q==9){
    score[p][q]=0;
    }
    }
    }
    for(int t=0;t<5;t++){
    for(int y=0;y<10;y++){

                 sum=sum+score[t][y];if(y==9){averageScore[t]=sum/8.0;}}}for(int g=0;g<5;g++){finalScore[g]=averageScore[g];}for(int k=1;k<finalScore.length;k++){for(int h=0;h<finalScore.length;h++){if(finalScore[k]<finalScore[h]){double temp=finalScore[h];finalScore[h]=finalScore[k];finalScore[k]=temp;}}}for(int j=4;j>=0;j--){System.out.println(finalScore[j]);}}

    }

2.Email验证:在各种应用中,需要对用户输入的email地址进行验证,编写一个方法,判断一个email地址是否有效。(判断条件:A:@和.同时存在 B: @在.之前 C: 不能@开头 D: 以com|cn|net|gov|edu|org结尾)
a.程序设计思路:通过比较@和.的位置,判断是否正确。在判断尾号是什么结尾,是否符合要求中的6个的之一。
b.实验问题分析:
没有遇见问题

import java.util.Scanner;
public class youxiang {public static void main(String []args){System.out.println("请输入邮箱:");Scanner scan=new Scanner (System.in);String strEmail=scan.next();int ret=yanzheng(strEmail);if(ret==1){System.out.println("地址有效");}else{System.out.println("地址无效");}}public static int yanzheng (String str){int a=str.indexOf("@"); int b=str.indexOf(".");if((a!=-1&&b!=-1&&a<b&&a!=1)&&(str.endsWith("com")!=false||str.endsWith("cn")!=false||str.endsWith("net")!=false||str.endsWith("gov")!=false||str.endsWith("edu")!=false||str.endsWith("org"))){return 1;}else{return 0;}       }
}

3.统计文件:输入一个字符串,包含各种文件类型的文件名。文件名之间用“,”分隔,要求将各个文件名的首字母大写后分别输出,并统计各种类型文件的文件个数。
a.程序设计思路:取第一个字母,将其通过函数变为大写,在通过“,”把字符串分开,在通过"."把文件的格式分离出来,存放到字符串数组里,通过字符串数组,比较有多少种文件。
b.实验问题分析:
问题1:一开始不知道怎么变大写
解决方案:后来看书发现,可以先将第一个字符取出存到一个数组,再将数组大写后放回去。
问题1:输出重复
解决方案:减少了输出,但还是有重复的,不太会改。

import java.util.Scanner;
import java.lang.StringBuffer;
public class zifuchuantongji {public static void main(String []args){String str=scan();System.out.println("字符串为:"+str);String str1[]=print_(str);fenlei(str1);}public static String scan(){Scanner scan=new Scanner  (System.in);System.out.println("请输入字符串:");String str=scan.next();return str;}public static String[] print_(String str){String[] s=str.split(",");for(int i=0;i<s.length;i++){StringBuffer bur =new StringBuffer(s[i]);String word=bur.substring(0,1); s[i]=bur.replace(0,1,word.toUpperCase()).toString();System.out.println(s[i]);}return s;}public static void fenlei(String []str){String a[]=new String[5];String c=null;for(int i=0;i<str.length;i++){a[i]=str[i].substring(str[i].indexOf("."),str[i].length());}for(int j=0;j<a.length;j++){int n=0;for(int y=0;y<a.length;y++){if(a[y].equals(a[j])==true){n++;c=a[y];}}System.out.println(c+"一共有"+n+"个");}}
} 

4.4.身份证识别:公民身份证号码由十八位数字组成。从左至右依次为:六位地址码,八位出生日期码,三位顺序码和一位校验码。顺序码的奇数分配给男性,偶数分配给女性。编写一个识别身份证基本信息的小工具,输入一个居民身份证号,则输出居民所属省份(直辖市、自治区),生日(格式:xxxx-xx-xx)和性别信息。
a.程序设计思路:输入前两位,并在数组里寻找地址,取出生日,取出生日后面三位,用函数,将其变为int型,在判断奇偶性,看看是男是女。
b.实验问题分析:
问题:不会判断男女
解决方案:分别将3位数字取出,存到一个字符串里,然后在通过Integer.parseInt()函数转化成int型

package shenfenzheng;
import java.util.Scanner;
public class shenfenzheng {public static void main(String[]args){String dress[][]={{"","北京市","天津市","河北省","山西省","内蒙古自治区"},{"","辽宁省","吉林省","黑龙江省"},{"","上海市","江苏省","浙江省","安徽省","福建省","江西省","山东省"},{"","河南省","湖北省","湖南省","广东省","广西壮族自治区","海南省"},{"重庆市","四川省","贵州省","云南省","西藏自治区"},{"","甘肃省","青海省","宁夏回族自治区","新疆维吾尔自治区"},};Scanner scan =new Scanner(System.in);System.out.println("请输入身份证号:");String str=scan.next();if(str.length()>18){System.out.println("身份证号无效!");}char x=str.charAt(0);char y=str.charAt(1);int  num1=(int)x-48;int  num2=(int)y-48;System.out.println("省,直辖市:"+dress[num1-1][num2]);System.out.println("生日为:"+str.substring(6,10)+"-"+str.substring(10,12)+"-"+str.substring(12,14));String s=str.substring(15,17);int num=Integer.parseInt(s);num=num/100;if(num%2==0){System.out.println("性别:男");}else{System.out.println("性别:女");}}}

(三)代码托管

码云地址:https://git.oschina.net/wangyikai1996/shiyaner.git
(四).学习进度条

转载于:https://www.cnblogs.com/494625951-wangyikai/p/6626328.html

Java实验二 计算机 1501 王奕开 18相关推荐

  1. 2017《JAVA》预备作业 计科1501班 王奕开

    2017<JAVA>预备作业 计科1501班 王奕开 1.阅读邹欣老师的博客,谈谈你期望的师生关系是什么样的? 亦师亦友,课下多多交流,和学生探讨经验,和蔼可亲. 2.你有什么技能(学习, ...

  2. 20175212童皓桢 Java实验二-面向对象程序设计实验报告

    20175212童皓桢 Java实验二-面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设 ...

  3. 计算机中数据表示与计算实验答案,实验二计算机中的数据表示与计算-20210622102303.pdf-原创力文档...

    . 实验二 计算机中的数据表示与计算 学号 :1120161816 姓名 :田雄辉 班级 实验时间 :2016 年 9 月 29 日 实验报告表 2-1 数值型数据在计算机中的二进制表示实验记录表 十 ...

  4. 云南大学软件学院java实验九_云南大学软件学院Java实验二

    云南大学软件学院 实验报告 姓名:学号:班级:日期:成绩: JAVA实验二 一.实验目的: 进一步熟悉JAVA编译环境,编译三个简单的JAVA程序,熟悉JAVA语言. 二.实验要求: 1. Write ...

  5. java实验二_Java实验2

    (1)了解算术运算符.关系和条件运算符.逻辑运算符.位运算符的含义和使用方法. (2)了解表达式的含义和使用方法. 一.实验目的和要求: 实验目的 (1)熟练掌握各种运算符的功能及使用要求. (2)理 ...

  6. 计算机中的二进制实验报告,+实验二 计算机的数据表示和计算.doc

    实验2 计算机中的数据表示与计算 实验报告 学号1500202151 姓名叶思凡 班级:卫生检验与检疫15 实验时间: 2017年 3 月 2 日 实验报告表2-1 数值型数据在计算机中的二进制实验记 ...

  7. JAVA实验二 面向对象程序设计

    一.实验目的 通过编程和上机实验,掌握类和构造方法的定义及创建对象的方法,掌握类的封装及继承原则,正确使用重载和覆盖等多态概念设计可复用方法,熟悉包.接口的使用方法,掌握面向对象的程序设计方法. 二. ...

  8. java实验二答案天津商业大学,天津商业大学java实验报告

    天津商业大学java实验报告答案及运行结果 this.start =start; } public Point getEnd(){ return end; } public void setEnd(P ...

  9. Java实验二 货物进销管理系统【简单易懂】

    写在前面:这个题目主要通过仔细阅读题目的需求,再通过对文件流以及Vector.ArrayList等容器的控制来完成整个代码体系的构建.因为当时正在学习,对代码的构建逻辑不够规范,思想不够到位的地方也难 ...

最新文章

  1. 数理统计-5.2 样本数据的整理和显示
  2. MySQL建表的限定于巨_Linux入门笔记(4/1/2016修改)
  3. sqllite开发安卓项目_苹果安卓合作了?两大巨头共同居然共同开发这个项目
  4. SQL创建数据库– PostgreSQL,MySQL,SQL Server
  5. pythonxml库_Python XML操作
  6. 【hibernate】idea利用maven搭建hibernate环境(创建hibernate配置文件(包括cfg和hbm))
  7. 简单实现网络验证_电脑计算机编程入门教程自学
  8. 《传习录》 学习笔记
  9. Specification使用
  10. 电子商务正在形成共同体经济
  11. 热门好用的二维码生成器API
  12. Anaconda中Python版本更新
  13. Python - 如何用turtle库画一个微笑表情包
  14. 用户上传用户头像至服务器
  15. 【自用】Mybatis的学习笔记(第一天)
  16. PyTorch读取自己的本地图片数据集训练自编码器
  17. 无序列表将点替换成图片
  18. ViT强势应用 | V2X基于ViT提出了一个具有V2X通信的强大协作感知框架
  19. 算法模版:暴力搜索之DFS【沈七】
  20. debian linux 修改时区

热门文章

  1. 小程序 | 微信小程序from报名表单提交至数据库(含js提交函数)
  2. linux检测硬件驱动,linux查看硬件信息及驱动设备相关整理
  3. ElementUI table组件,表格组件,单击单元格可编辑逻辑
  4. Memchache 总结
  5. HTML5: 利用SVG动画动态绘制文字轮廓边框线条
  6. CSS 与 HTML5 响应式图片
  7. Linux:十条为系统管理员节省时间的命令
  8. shell数值运算的方法
  9. pssh批量远程管理
  10. Python——有关transpose的多维转置的难点