Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package aplicação;
- import java.io.File;
- import java.util.Scanner;
- import java.io.FileNotFoundException;
- import java.util.Formatter;
- import java.util.Arrays;
- public class Aplicação {
- private final static int NUMERO_CAMPOS=4;
- private final static int MAX_DEPUTADOS=230;
- private final static String FILE_DEPUTADOS = "Deputados.txt";
- public static void main(String[] args) throws FileNotFoundException {
- int contdeputados=0; // número de deputados
- String [][] deputados = new String [230][NUMERO_CAMPOS]; // informação deputados [i][0] -> id , [i][0] -> nome , [i][0] -> partido, [i][0] -> data de nascimento
- char [] votações;
- String linha="";
- String linha1="";
- String [][] novamatriz= new String[230][5];
- int linhax=0;
- String id="";
- int cont=0;
- contdeputados=lerinfodeputados(deputados);
- alterarinfodeputados(deputados, id,contdeputados);
- paginacao(deputados, contdeputados);
- cont = lerinfovotação(deputados, novamatriz);
- ordenarinfo(novamatriz, deputados,cont);
- }
- //--------------------------------V-------------------------------------------
- public static int lerinfodeputados(String [][] deputados)throws FileNotFoundException {
- Scanner leitura = new Scanner (new File(FILE_DEPUTADOS));
- int contdeputados=0;
- while (leitura.hasNextLine() && contdeputados<MAX_DEPUTADOS){
- String linha=leitura.nextLine();
- if (linha.length()>0){
- contdeputados=guardarDadosDeputados(deputados, contdeputados, linha );
- }
- }
- leitura.close();
- return contdeputados;
- }
- public static int guardarDadosDeputados(String [][] deputados, int contdeputados, String linha ){
- String [] temp=linha.split(";");
- if (temp.length==4){
- String id= temp[0].trim();
- //Verificar se o id tem 5 caracteres sendo 2 letras e 3 numeros.
- char c0= id.charAt(0);
- char c1= id.charAt(1);
- char c2= id.charAt(2);
- char c3= id.charAt(3);
- char c4= id.charAt(4);
- if(id.length()==5 && Character.isLetter(c0) && Character.isLetter(c1) && Character.isLetter(c2) && Character.isDigit(c3) && Character.isDigit(c4) ){
- for (int i=0;i<temp.length;i++){
- deputados[contdeputados][i]=temp[i].trim();}
- contdeputados ++;
- } else {
- System.out.println("Id incorreto");
- }
- } else{
- System.out.println("Linha incorreta, numero de campos invalidos.");
- }
- return contdeputados;
- }
- //-------------------------------------V-------------------------------------
- private static void cabeçalho(){
- Formatter out=new Formatter(System.out);
- System.out.printf("%-6s | %-30s | %-10s | %-12s\n","ID","Nome","Partido","Data Nascimento");
- System.out.println("----------------------------------------------------------------------");
- }
- private static void pausa(){
- Scanner in=new Scanner(System.in);
- System.out.println("Digite enter para continuar \n");
- in.nextLine();
- }
- private static void paginacao(String [][] deputados, int contdeputados){
- Scanner in=new Scanner(System.in);
- Formatter out= new Formatter(System.out);
- int contpaginas=0;
- int linhaspagina=10;
- for (int i=0; i<contdeputados;i++){
- if (i % linhaspagina ==0){
- if (contpaginas >0){
- pausa();
- }
- contpaginas++;
- System.out.println("Página "+contpaginas);
- cabeçalho();
- }
- System.out.printf("%-6s | %-30s | %-10s | %-12s\n", deputados[i][0], deputados[i][1], deputados[i][2], deputados[i][3] );
- }
- }
- //--------------------------------V--------------------------------------------
- private static int procurardeputadosporID(String [][] deputados,String id, int contdeputados){
- Scanner in=new Scanner(System.in);
- int linhax=-1;
- System.out.println("Introduza o ID do deputado que pretende encontrar:");
- String idalterar=in.nextLine();
- for (int i=0;i<contdeputados;i++){
- if (idalterar.equalsIgnoreCase(deputados[i][0])){
- linhax=i;
- }
- }
- return linhax;
- }
- private static void alterarinfodeputados(String [][] deputados, String id, int contdeputados){
- String data="", nome1="", resposta="";
- int op;
- int linhax=procurardeputadosporID(deputados,id,contdeputados);
- Scanner in=new Scanner(System.in);
- if (linhax!=-1){
- do{
- do{
- System.out.println("Para alterar o nome digite no 1, para alterar a data digite no 2.");
- op= in.nextInt();
- if (op==1){
- System.out.println("Introduza o nome:");
- String novonome=in.nextLine();
- deputados[linhax][1]=in.nextLine();
- do{
- System.out.println("Pretende alterar a data? s/n");
- data=in.nextLine();
- }while(!data.equalsIgnoreCase("s") && !data.equalsIgnoreCase("n"));
- if (data.equalsIgnoreCase("s")){
- System.out.println("Introduza a nova data de nascimento:");
- deputados[linhax][3]=in.nextLine();
- System.out.println(deputados[linhax][3]);
- }
- } else if(op==2){
- System.out.println("Introduza a nova data de nascimento:");
- String novadata=in.nextLine();
- deputados[linhax][3]=in.nextLine();
- do{
- System.out.println("Pretende alterar o novo nome? s/n");
- nome1=in.nextLine();
- }while(!nome1.equalsIgnoreCase("s") && !nome1.equalsIgnoreCase("n"));
- if (nome1.equalsIgnoreCase("s")){
- System.out.println("Introduza o novo nome:");
- String novonome=in.nextLine();
- deputados[linhax][1]=in.nextLine();
- }
- }
- }while(op!=1 && op!=2);
- do{
- System.out.println("Pretende alterar alguma coisa?");
- resposta=in.nextLine();
- }while(!resposta.equalsIgnoreCase("s") && !resposta.equalsIgnoreCase("n"));
- }while(!resposta.equalsIgnoreCase("n"));
- }else{
- System.out.println("Não existe nenhum Deputado com esse ID.");
- }
- }
- //--------------------------------------------------------------------------
- public static int lerinfovotação(String [][] deputados, String [][] novamatriz)throws FileNotFoundException {
- Scanner in=new Scanner(System.in);
- int cont=0;
- System.out.println("Introduza o nome do ficheiro que pretende ler:");
- String nomeFicheiro=in.nextLine();
- Scanner leitura = new Scanner (new File(nomeFicheiro));
- while (leitura.hasNextLine() && cont<=MAX_DEPUTADOS ){
- String linha1=leitura.nextLine();
- if (linha1.length()>0){
- cont=guardarinfovotacao(deputados,linha1,cont,novamatriz);
- }
- }leitura.close();
- novamatriz = ordenarinfovot(deputados,cont,novamatriz);
- for (int i=0;i<cont;i++){
- System.out.print("\n");
- for (int j=0;j<5;j++){
- System.out.print(novamatriz[i][j] + " ");
- }
- }
- return cont;
- }
- public static int guardarinfovotacao(String [][]deputados, String linha1, int cont,String [][] novamatriz){
- for (int i=0;i<deputados.length;i++){
- for (int j=0;j<4;j++){
- novamatriz [i][j]=deputados[i][j];
- }
- }
- novamatriz [cont][4]=linha1;
- cont++;
- return cont;
- }
- public static String [][] ordenarinfovot(String [][]deputados, int cont,String [][] novamatriz){
- for (int i=0;i<deputados.length;i++){
- String id1 = deputados[i][0];
- for (int j=0;j<deputados.length;j++){
- if((novamatriz[j][4] != null) && (!novamatriz[j][4].equals("F")) && (novamatriz[j][4].length()==6) ){
- String id2=novamatriz[j][4].substring(0,5);
- boolean x=id1.equals(id2);
- if (x==true){
- novamatriz[i][4]=novamatriz[j][4].substring(5);
- j=deputados.length;
- }
- else {
- novamatriz[i][4]="F";
- }
- }
- }
- }
- return novamatriz;
- }
- //---------------------------------------------------------------------------
- private static void cabeçalho1(){
- Formatter out=new Formatter(System.out);
- System.out.printf("%-6s | %-20s | %-10s | %-3s\n","ID","Nome","Partido","Votação");
- System.out.println("--------------------------------------------------------------");
- }
- public static void ordenarinfo(String [][] novamatriz, String [][] deputados, int cont) throws FileNotFoundException{
- Scanner in=new Scanner(System.in);
- Formatter out= new Formatter(System.out);
- int contpaginas=0;
- int linhaspagina=10;
- for (int i=0;i<cont;i++){
- for (int j=i+1;j<cont;j++){
- if (novamatriz [i][0] != null && novamatriz [j][0]!=null){
- if (novamatriz[i][0].compareTo(novamatriz[j][0])>0){
- String temp=novamatriz[i][0];
- novamatriz [i][0]=novamatriz[j][0];
- novamatriz[j][0]=temp;
- }
- }
- }
- }
- for (int i=0; i<cont;i++){
- String [] novonome=novamatriz[i][1].split(" ");
- if (i % linhaspagina ==0){
- if (contpaginas >0){
- pausa();
- }
- contpaginas++;
- System.out.println("Página "+contpaginas);
- cabeçalho1();
- }
- System.out.printf("%-6s | %-15s | %-10s | %-3s\n", novamatriz[i][0], novonome [0]+" "+ novonome[novonome.length-1], novamatriz[i][2], novamatriz[i][3] );
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement