Advertisement
Guest User

Untitled

a guest
Nov 30th, 2015
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.87 KB | None | 0 0
  1. package aplicação;
  2. import java.io.File;
  3. import java.util.Scanner;
  4. import java.io.FileNotFoundException;
  5. import java.util.Formatter;
  6. import java.util.Arrays;
  7.  
  8.  
  9. public class Aplicação {
  10.  
  11. private final static int NUMERO_CAMPOS=4;
  12. private final static int MAX_DEPUTADOS=230;
  13. private final static String FILE_DEPUTADOS = "Deputados.txt";
  14.  
  15.  
  16.  
  17.  
  18. public static void main(String[] args) throws FileNotFoundException {
  19. int contdeputados=0; // número de deputados
  20. String [][] deputados = new String [230][NUMERO_CAMPOS]; // informação deputados [i][0] -> id , [i][0] -> nome , [i][0] -> partido, [i][0] -> data de nascimento
  21. char [] votações;
  22. String linha="";
  23. String linha1="";
  24.  
  25. String [][] novamatriz= new String[230][5];
  26. int linhax=0;
  27. String id="";
  28. int cont=0;
  29. contdeputados=lerinfodeputados(deputados);
  30.  
  31.  
  32. alterarinfodeputados(deputados, id,contdeputados);
  33.  
  34.  
  35. paginacao(deputados, contdeputados);
  36. cont = lerinfovotação(deputados, novamatriz);
  37. ordenarinfo(novamatriz, deputados,cont);
  38.  
  39. }
  40.  
  41.  
  42.  
  43. //--------------------------------V-------------------------------------------
  44.  
  45. public static int lerinfodeputados(String [][] deputados)throws FileNotFoundException {
  46. Scanner leitura = new Scanner (new File(FILE_DEPUTADOS));
  47.  
  48. int contdeputados=0;
  49.  
  50. while (leitura.hasNextLine() && contdeputados<MAX_DEPUTADOS){
  51. String linha=leitura.nextLine();
  52.  
  53.  
  54.  
  55.  
  56. if (linha.length()>0){
  57. contdeputados=guardarDadosDeputados(deputados, contdeputados, linha );
  58.  
  59.  
  60. }
  61. }
  62.  
  63. leitura.close();
  64. return contdeputados;
  65.  
  66. }
  67.  
  68.  
  69. public static int guardarDadosDeputados(String [][] deputados, int contdeputados, String linha ){
  70. String [] temp=linha.split(";");
  71.  
  72. if (temp.length==4){
  73. String id= temp[0].trim();
  74. //Verificar se o id tem 5 caracteres sendo 2 letras e 3 numeros.
  75. char c0= id.charAt(0);
  76. char c1= id.charAt(1);
  77. char c2= id.charAt(2);
  78. char c3= id.charAt(3);
  79. char c4= id.charAt(4);
  80.  
  81. if(id.length()==5 && Character.isLetter(c0) && Character.isLetter(c1) && Character.isLetter(c2) && Character.isDigit(c3) && Character.isDigit(c4) ){
  82. for (int i=0;i<temp.length;i++){
  83. deputados[contdeputados][i]=temp[i].trim();}
  84. contdeputados ++;
  85. } else {
  86. System.out.println("Id incorreto");
  87. }
  88.  
  89. } else{
  90. System.out.println("Linha incorreta, numero de campos invalidos.");
  91. }
  92.  
  93.  
  94.  
  95. return contdeputados;
  96. }
  97.  
  98. //-------------------------------------V-------------------------------------
  99.  
  100. private static void cabeçalho(){
  101. Formatter out=new Formatter(System.out);
  102. System.out.printf("%-6s | %-30s | %-10s | %-12s\n","ID","Nome","Partido","Data Nascimento");
  103. System.out.println("----------------------------------------------------------------------");
  104.  
  105. }
  106. private static void pausa(){
  107. Scanner in=new Scanner(System.in);
  108. System.out.println("Digite enter para continuar \n");
  109. in.nextLine();
  110.  
  111. }
  112.  
  113. private static void paginacao(String [][] deputados, int contdeputados){
  114. Scanner in=new Scanner(System.in);
  115. Formatter out= new Formatter(System.out);
  116. int contpaginas=0;
  117. int linhaspagina=10;
  118.  
  119. for (int i=0; i<contdeputados;i++){
  120.  
  121. if (i % linhaspagina ==0){
  122. if (contpaginas >0){
  123.  
  124. pausa();
  125.  
  126. }
  127. contpaginas++;
  128. System.out.println("Página "+contpaginas);
  129. cabeçalho();
  130.  
  131. }
  132. System.out.printf("%-6s | %-30s | %-10s | %-12s\n", deputados[i][0], deputados[i][1], deputados[i][2], deputados[i][3] );
  133.  
  134.  
  135. }
  136.  
  137.  
  138.  
  139.  
  140.  
  141. }
  142. //--------------------------------V--------------------------------------------
  143.  
  144. private static int procurardeputadosporID(String [][] deputados,String id, int contdeputados){
  145. Scanner in=new Scanner(System.in);
  146. int linhax=-1;
  147.  
  148.  
  149. System.out.println("Introduza o ID do deputado que pretende encontrar:");
  150. String idalterar=in.nextLine();
  151.  
  152. for (int i=0;i<contdeputados;i++){
  153. if (idalterar.equalsIgnoreCase(deputados[i][0])){
  154. linhax=i;
  155.  
  156. }
  157.  
  158.  
  159. }
  160.  
  161. return linhax;
  162. }
  163.  
  164.  
  165. private static void alterarinfodeputados(String [][] deputados, String id, int contdeputados){
  166. String data="", nome1="", resposta="";
  167. int op;
  168. int linhax=procurardeputadosporID(deputados,id,contdeputados);
  169. Scanner in=new Scanner(System.in);
  170.  
  171.  
  172. if (linhax!=-1){
  173.  
  174.  
  175. do{
  176. do{
  177. System.out.println("Para alterar o nome digite no 1, para alterar a data digite no 2.");
  178. op= in.nextInt();
  179.  
  180.  
  181. if (op==1){
  182. System.out.println("Introduza o nome:");
  183. String novonome=in.nextLine();
  184. deputados[linhax][1]=in.nextLine();
  185.  
  186.  
  187.  
  188. do{
  189. System.out.println("Pretende alterar a data? s/n");
  190.  
  191. data=in.nextLine();
  192. }while(!data.equalsIgnoreCase("s") && !data.equalsIgnoreCase("n"));
  193.  
  194.  
  195. if (data.equalsIgnoreCase("s")){
  196. System.out.println("Introduza a nova data de nascimento:");
  197.  
  198. deputados[linhax][3]=in.nextLine();
  199.  
  200. System.out.println(deputados[linhax][3]);
  201. }
  202.  
  203.  
  204. } else if(op==2){
  205. System.out.println("Introduza a nova data de nascimento:");
  206. String novadata=in.nextLine();
  207. deputados[linhax][3]=in.nextLine();
  208.  
  209. do{
  210. System.out.println("Pretende alterar o novo nome? s/n");
  211.  
  212. nome1=in.nextLine();
  213. }while(!nome1.equalsIgnoreCase("s") && !nome1.equalsIgnoreCase("n"));
  214.  
  215.  
  216. if (nome1.equalsIgnoreCase("s")){
  217. System.out.println("Introduza o novo nome:");
  218. String novonome=in.nextLine();
  219. deputados[linhax][1]=in.nextLine();
  220.  
  221.  
  222. }
  223.  
  224. }
  225. }while(op!=1 && op!=2);
  226.  
  227. do{
  228. System.out.println("Pretende alterar alguma coisa?");
  229. resposta=in.nextLine();
  230. }while(!resposta.equalsIgnoreCase("s") && !resposta.equalsIgnoreCase("n"));
  231. }while(!resposta.equalsIgnoreCase("n"));
  232.  
  233.  
  234.  
  235.  
  236.  
  237. }else{
  238.  
  239. System.out.println("Não existe nenhum Deputado com esse ID.");
  240. }
  241. }
  242.  
  243.  
  244.  
  245.  
  246. //--------------------------------------------------------------------------
  247.  
  248.  
  249. public static int lerinfovotação(String [][] deputados, String [][] novamatriz)throws FileNotFoundException {
  250.  
  251.  
  252. Scanner in=new Scanner(System.in);
  253. int cont=0;
  254.  
  255.  
  256.  
  257.  
  258. System.out.println("Introduza o nome do ficheiro que pretende ler:");
  259. String nomeFicheiro=in.nextLine();
  260.  
  261.  
  262.  
  263. Scanner leitura = new Scanner (new File(nomeFicheiro));
  264.  
  265. while (leitura.hasNextLine() && cont<=MAX_DEPUTADOS ){
  266. String linha1=leitura.nextLine();
  267.  
  268.  
  269.  
  270.  
  271. if (linha1.length()>0){
  272. cont=guardarinfovotacao(deputados,linha1,cont,novamatriz);
  273.  
  274.  
  275. }
  276. }leitura.close();
  277. novamatriz = ordenarinfovot(deputados,cont,novamatriz);
  278.  
  279. for (int i=0;i<cont;i++){
  280. System.out.print("\n");
  281.  
  282. for (int j=0;j<5;j++){
  283. System.out.print(novamatriz[i][j] + " ");
  284. }
  285. }
  286.  
  287. return cont;
  288. }
  289.  
  290.  
  291. public static int guardarinfovotacao(String [][]deputados, String linha1, int cont,String [][] novamatriz){
  292.  
  293.  
  294. for (int i=0;i<deputados.length;i++){
  295. for (int j=0;j<4;j++){
  296. novamatriz [i][j]=deputados[i][j];
  297. }
  298. }
  299.  
  300. novamatriz [cont][4]=linha1;
  301. cont++;
  302. return cont;
  303. }
  304. public static String [][] ordenarinfovot(String [][]deputados, int cont,String [][] novamatriz){
  305.  
  306. for (int i=0;i<deputados.length;i++){
  307. String id1 = deputados[i][0];
  308. for (int j=0;j<deputados.length;j++){
  309. if((novamatriz[j][4] != null) && (!novamatriz[j][4].equals("F")) && (novamatriz[j][4].length()==6) ){
  310. String id2=novamatriz[j][4].substring(0,5);
  311.  
  312.  
  313.  
  314. boolean x=id1.equals(id2);
  315.  
  316.  
  317. if (x==true){
  318. novamatriz[i][4]=novamatriz[j][4].substring(5);
  319. j=deputados.length;
  320. }
  321. else {
  322. novamatriz[i][4]="F";
  323. }
  324.  
  325. }
  326. }
  327.  
  328. }
  329. return novamatriz;
  330. }
  331.  
  332.  
  333. //---------------------------------------------------------------------------
  334. private static void cabeçalho1(){
  335. Formatter out=new Formatter(System.out);
  336. System.out.printf("%-6s | %-20s | %-10s | %-3s\n","ID","Nome","Partido","Votação");
  337. System.out.println("--------------------------------------------------------------");
  338. }
  339.  
  340. public static void ordenarinfo(String [][] novamatriz, String [][] deputados, int cont) throws FileNotFoundException{
  341. Scanner in=new Scanner(System.in);
  342. Formatter out= new Formatter(System.out);
  343. int contpaginas=0;
  344. int linhaspagina=10;
  345.  
  346.  
  347.  
  348. for (int i=0;i<cont;i++){
  349. for (int j=i+1;j<cont;j++){
  350. if (novamatriz [i][0] != null && novamatriz [j][0]!=null){
  351.  
  352.  
  353. if (novamatriz[i][0].compareTo(novamatriz[j][0])>0){
  354. String temp=novamatriz[i][0];
  355. novamatriz [i][0]=novamatriz[j][0];
  356. novamatriz[j][0]=temp;
  357. }
  358. }
  359. }
  360. }
  361.  
  362.  
  363. for (int i=0; i<cont;i++){
  364. String [] novonome=novamatriz[i][1].split(" ");
  365.  
  366. if (i % linhaspagina ==0){
  367. if (contpaginas >0){
  368.  
  369. pausa();
  370.  
  371. }
  372. contpaginas++;
  373. System.out.println("Página "+contpaginas);
  374. cabeçalho1();
  375.  
  376. }
  377. System.out.printf("%-6s | %-15s | %-10s | %-3s\n", novamatriz[i][0], novonome [0]+" "+ novonome[novonome.length-1], novamatriz[i][2], novamatriz[i][3] );
  378.  
  379.  
  380. }
  381.  
  382.  
  383.  
  384. }
  385.  
  386.  
  387. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement