Java实验报告04

Java实验报告04

实 验 报 告

课程名称 java程序设计 实验名称 姓 名 何虹江 学 号 201007040227 专业班级 软件1002 实验日期 2012 年 4 月 27日 成绩 指导教师

一、 实验目的

本实验的目的在于通过上机编写和运行关于字符串的程序来加深对String类和StringBuffer类等的了解,要求学生在上机实验前一定要非常清楚并灵活运用该章所讲过的内容,并且在上机实验前编写好实验内容要求的程序,以便上机实验时调试、修改等。上机实验后,每位学生必须对该实验内容写一份试验报告,包括程序内容、调试过程、运行情况和结果等。

二、 实验原理

本实验的内容为编写一个与居民身份证有关的程序,可以是Applet或者是Application。要求创建一个类,该类至少具有以下三个方法:

1.检验居民身份证的真伪,若为假身份证,需要提供虚假消息,比如居民出生年月日有错等。

2.获取真实居民新身份证的信息,该信息包括4个部分:

A.该身份证是新身份证还是旧身份证。

B.该居民身份证的地址码,若有同学有《最新县及县以上行政区码》可得到居民身份证的详细省、市、县的名称,若没有则只需显示地址码信息即可。

C.该居民的出生年月日。

D.该居民的性别。

3.将13位的旧身份证转换成18位的新身份证。

三、 实验环境

Java实验报告04

JDK 7u4 NetBeans 7.1.2 JCreator LE 5.00

四、 实验内容与步骤(可提供屏幕抓图)

import java.io.BufferedReader;

import java.io.InputStreamReader;

class IDCard {

public static void main(String args[]) {

while (true) {

System.out.println(" _______________________"); System.out.println("| 0.exit |"); System.out.println("| 1.check |"); System.out.println("| 2.get information |"); System.out.println("| 3.convert to 18 |"); System.out.println("|_______________________|"); System.out.println(" Please select item:"); int op = getSelect();

switch (op) {

case 0:

quit();

break;

case 1:

check();

break;

case 2:

getInfo();

break;

case 3:

ConvertTo18();

break;

default:

getInfo();

break;

}

}

}

static void check() {

String str = "";

char[] xy = {'1', '0', 'x', '9', '8', '7', '6', '5', '4', '3', '2'};

int[] wi = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}; int[] kk = new int[18];

BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));

System.out.println("Please enter your ID:");

try {

str = buf.readLine();

} catch (Exception e) {

}

StringBuilder id = new StringBuilder(str);

if (str.length() != 18 && str.length() != 15) {

System.out.println("输入的位数有错,请重新输入"); }

if (str.length() == 18) {

int sum = 0;

for (int i = 0; i < 17; i++) {

kk[i] = Integer.parseInt(id.substring(i, i + 1)); sum += kk[i] * wi[i];

}

int nn = sum % 11;

char ss = str.charAt(17);

if (ss == xy[nn]) {

System.out.println("该身份证为真身份证");

} else {

System.out.println("该身份证为假身份证(校验码有错误)");

}

}

}

static void getInfo() {

String str = "";

char[] xy = {'1', '0', 'x', '9', '8', '7', '6', '5', '4', '3', '2'};

int[] wi = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}; int[] kk = new int[18];

BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));

System.out.println("Please enter your ID:");

try {

str = buf.readLine();

} catch (Exception e) {

}

StringBuilder id = new StringBuilder(str);

if (str.length() == 18) {

int sum = 0;

for (int i = 0; i < 17; i++) {

kk[i] = Integer.parseInt(id.substring(i, i + 1)); sum += kk[i] * wi[i];

}

int nn = sum % 11;

char ss = str.charAt(17);

if (ss == xy[nn]) {

System.out.println(" ");

} else {

System.out.println(" ");

}

{

System.out.println("该身份证为新18位身份证"); }

if (str.charAt(16) % 2 == 1) {

System.out.println("该身份证为男性");

} else if (str.charAt(16) % 2 == 0) {

System.out.println("该身份证为女性");

}

String s = str.substring(6, 10);

String y = str.substring(10, 12);

String z = str.substring(12, 14);

System.out.println("该居民的生日为:" + s + "年" + y + "月" + z + "日");

} else {

{

System.out.println("该身份证为旧15位身份证"); }

if (str.charAt(14) % 2 == 1) {

System.out.println("该身份证为男性");

} else if (str.charAt(14) % 2 == 0) {

System.out.println("该身份证为女性");

}

String p = str.substring(6, 8);

String y = str.substring(8, 10);

String z = str.substring(10, 12);

System.out.println("该居民的生日为:" + "19" + p + "年" + y + "月" + z + "日");

}

}

static void ConvertTo18() {

String str = "";

char[] xy = {'1', '0', 'x', '9', '8', '7', '6', '5', '4', '3', '2'};

int[] wi = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2}; int[] kk = new int[18];

BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));

System.out.println("Please enter your ID:");

try {

str = buf.readLine();

} catch (Exception e) {

}

StringBuffer id = new StringBuffer(str);

id.insert(6, "19");

int sum = 0;

for (int i = 0; i < 17; i++) {

kk[i] = Integer.parseInt(id.substring(i, i + 1)); sum += kk[i] * wi[i];

}

int nn = sum % 11;

System.out.println("该居民的新18位身份证为:" + id + xy[nn]); }

static void quit() {

System.out.println("programming by H"); System.out.println("Thanks for using!"); System.out.println("Bye!");

System.exit(0);

}

static int getSelect() {

int re;

return re = Integer.parseInt(getInput()); }

static String getInput() {

String re;

BufferedReader bf =

InputStreamReader(System.in));

try {

re = bf.readLine();

return re;

} catch (Exception e) {

return null;

}

}

}

五、 实验结果与分析(可提供屏幕抓图) new BufferedReader(new

Java实验报告04

六、问题与建议

 

第二篇:java程序设计课程--实验报告-实验04

《Java开发技术》实验报告

实验序号:实验04          实验项目名称:Applet的编写与运行

相关推荐