1. Proyecto de Github Dirección: https://github.com/Flyingwater101/WordCount
1. Tabla de PSP
PSP2.1 |
Etapas del Proceso de Software Personal |
Estimado de consumo de tiempo (minutos) |
Los que consumen mucho tiempo reales (minutos) |
Planificación |
plan |
20 |
20 |
· Estimación |
• Calcular la cantidad de tiempo esta tarea requiere |
24 * 60 |
40 * 60 |
Desarrollo |
desarrollar |
10 * 60 |
20 * 60 |
· Análisis |
· Análisis de Necesidades (incluyendo el aprendizaje de nuevas tecnologías) |
3 * 60 |
10 * 60 |
· Diseño de especificaciones |
Generar documentos de diseño |
30 |
30 |
· Revisión de diseño |
· Revisión de Diseño (y sus colegas revisaron los documentos de diseño) |
30 |
30 |
· Codificación Estándar |
· Especificaciones de códigos (desarrollo de normas apropiadas para el desarrollo actual) |
10 |
10 |
· Diseño |
· Diseño específico |
20 |
30 |
· Codificación |
· Codificación específica |
10 * 60 |
22 * 60 |
· Revisión de código |
· Revisión Código |
60 |
60 |
· Prueba |
· Test (autoprueba, modificar el código, enviar modificaciones) |
40 |
60 |
la presentación de informes |
informe |
40 |
40 |
· Informe de prueba |
· Informe de prueba |
20 |
20 |
· Medida del tamaño |
· Cargas de trabajo informáticas |
20 |
20 |
· Postmortem y Plan de Mejora de Procesos |
· La retrospección, y proponer plan de mejora de procesos |
30 |
45 |
total |
|
24 * 60 |
45 * 60
|
3. Ideas de resolución de problemas
Este proyecto es principalmente dos aspectos, uno java io, la segunda es una cadena (o el método de cadena de expresión regular) de análisis de entrada. Así que fui a aprender a fortalecer estos dos aspectos, sobre todo para ver el java blog y ver vídeos de instrucción.
4. proceso de diseño e implementación
Hay dos clases fueron Main.java y CountSercie.java.
Para calcular el número de clase de servicio filas 1.CountSercie.java, hay tres métodos se utilizaron para calcular el archivo, el número de caracteres, palabras. (Bloggers completó sólo tres necesidades básicas, las necesidades de desarrollo sin terminar y necesidades avanzadas)
2.Main.java para los procedimientos de entrada, los métodos de información de archivo de cálculo en la presente convocatoria.
5. Código Descripción
Main.java
pública estática void main (String [] args) lanza la excepción { System.out.println ( "file.c vuelve -C el número de archivo de caracteres file.c \ n" + "retornos file.c -w el archivo de archivo. c el número de palabras \ n - "+ " el número de filas devueltas -l file.c file.c el archivo \ n-" ); ENTRADA escáner = nuevo nuevo escáner (la System.in); el tiempo ( true ) { System.out.println ( "Por favor, INPUT '[Orden] [nombre de archivo]':" ); Orden String [] = input.nextLine () Dividir ( "" ); countService countService= Nuevo nuevo CountService (); SI (order.length == 2 ) { Archivo = new new File (Orden [1. ]); SI (! File.Exists) () { (System.out.println "archivo no existe, volver a entrar " ); } else sI (file.isDirectory ()) { // directorio de entrada cuando System.out.println (" Por favor, introduzca el archivo dirección correcta " ); } else { sI (Orden [0] .equals ( "-C" )) { System.out.println ( "el número de caracteres del texto es" + countService.countChar (Archivo)); } else SI (Orden [0] .equals ( "- W ' )) { System.out.println ( carácter" Texto número de "+ countService.countWord (archivo)); } else SI (Orden [0] .equals (" - L " )) { System.out.println ( " número de líneas de texto es "+ countService.countLine (archivo) ); } else { el System.out.println ("Introducido de forma incorrecta, por favor, vuelva a introducir" ); } } } else System.out.println ( "Error de entrada, por favor vuelva a entrar" ); } }
CountService.java
pública a largo countChar (Archivo) { si (! {File.Exists ()) de retorno 1L ; } Devolver file.length (); } Pública a largo countWord (Archivo) lanza la excepción { si (! File.Exists ()) { retorno 1L ; } Larga count = 0L ; FileReader FileReader = nueva FileReader (archivo); // 读文件 BufferedReader BufferedReader = nuevoEl BufferedReader (FileReader); Valor de cadena = BufferedReader.readLine (); al mismo tiempo (valor =! Null ) { valor = value.trim (); // espacios antes y después de la eliminación // MSG + = valor + "\ n-"; String R & lt value.replaceAll = ( "\\.", "" ); r = r.replaceAll ( "[W ^ \\]", ""); // símbolos especiales se eliminan, el espacio se convierte en fácil contar el número de palabras r r.replaceAll = ( "\\ S +", "") .ReplaceAll ( "\" "" " ); R & lt = r.trim (); // eliminación de espacios de cabeza y cola cadena s [] = r.split ( "");// presione la barra espaciadora para correr la voz de división si(S [0] .equals ( "")) { // línea en blanco no cuenta el número de palabras count + = s.length; // recuento de palabras acumulada } valor = BufferedReader.readLine (); // leer la siguiente línea, recirculante } bufferedReader.close (); fileReader.close (); retorno COUNT; } pública a largo countLine (archivo) lanza la excepción { SI (! {File.Exists ()) de retorno 1L ; } largo COUNT = 0L ; FileReader FileReader = nulo; BufferedReader BufferedReader = nulo ; FileReader = nueva FileReader (archivo); BufferedReader = nuevo BufferedReader (FileReader); mientras que (bufferedReader.readLine () =! nula ) { contar ++ ; } FileReader.close (); bufferedReader.close (); volver recuento; }
6. Ejecución de prueba
6.1 archivo vacías resultados de las pruebas
6.2 Uno de los personajes Sólo resultados de las pruebas
6.3 Sólo uno de palabras resultados de las pruebas
6.4 Sólo una línea de resultados de la prueba
6,5 normales de código fuente resultados de la prueba
7. Resumen del proyecto
Este proyecto me hace sentir mucho. Esta vez no estoy satisfecho conmigo mismo, muy arrepentido. En primer lugar, la falta de la fecha de recepción de la tarea iniciada en el momento oportuno, se ha retrasado hasta el DDL. Se trata de un programador es un inconveniente muy grave es que necesito para ser totalmente corregida. En segundo lugar, la hora de aprender java antes fallado en tomar notas y tomarse el tiempo de revisión, lo que lleva al conocimiento de lo extraño y olvidado, sólo para volver a aprender un poco de conocimiento previamente aprendido. En tercer lugar, la mentalidad, el propio preso en algunas rutinas de edad, el hecho de no pensar en algunas soluciones innovadoras.
Para convertirse en un programador, resistencia a la rodadura y largo. Teniendo en cuenta que quieren sentir hoy en día, en el momento de corregir el error, aún más!