Ir ao conteúdo
  • Cadastre-se

Main.cpp

Membros Plenos
  • Total de itens

    242
  • Registro em

  • Última visita

  • Qualificações

    0%

Reputação

54

Sobre Main.cpp

  • Data de Nascimento 21-02-1970 (48 anos)

Informações gerais

  • Cidade e Estado
    Guarulhos
  • Sexo
    Masculino
  1. Programa criado em : quarta-feira, 14 de outubro de 2015 O C nos dá amplas possibilidades em leitura e escrita de arquivos, na verdade podemos lê entradas formatadas através de arquivos com fscanf();do mesmo modo em que lemos do teclado com scanf(); Assim como imprimimos um texto com printf(); podemos gravar num arquivo com fprintf(); Neste programa mostro como lê uma matriz do tipo float com fscanf(); A sintaxe de fscanf é: int fscanf(FILE *arq, char *string_formatada); fscanf(); faz a leitura completa da matriz float no arquivo, más na hora da impressão imprimimos uma coluna por vez, que representa as notas de cada aluno. São quatro alunos e são quatro notas para cada disciplinas escolares atuais. #include <stdio.h> #include <stdlib.h> #include <conio.h> void Moldura ( ) { int lin, col; for ( lin = 0; lin <= 25 ; lin++ ) { for ( col = 0; col <= 80 ; col++ ) { gotoxy ( col , lin ); if ( lin == 2 ) { textattr ( 200 ); printf ( " " ); } if ( col == 1 ) { textattr ( 200 ); printf ( " " ); } if ( col == 80 ) { textattr ( 200 ); printf ( " " ); } } } } /* A matriz abaixo foi usada como teste, salve - a num arquivo de texto e coloque do lado do executável do programa. 8.5 6.8 5.6 7.5 9.5 5.3 5.8 8.9 8.6 6.4 8.0 9.3 9.7 6.5 5.1 7.2 */ int main ( ) { system ( "title ARQUIVO - LENDO E CALCULANDO MÉDIAS" ); Moldura ( ); textbackground ( WHITE ); int apr = 0, repr = 0, i, j, l; float media, res = 0; float matriz [ 4 ] [ 4 ]; FILE *arq = fopen ( "matriz.txt" , "r" ); if ( arq == NULL ) { textcolor ( YELLOW ); gotoxy ( 26 , 12 ); printf ( "Problemas na abertura do arquivo " ); getche ( ); return ( 0 ); } for ( i = 0; i < 4 ; i++ ) { for ( j = 0; j < 4 ; j++ ) { fscanf ( arq , "%f" , &matriz [ i ] [ j ] ); } } textcolor ( LIGHTRED ); gotoxy ( 23 , 3 ); printf ( "ARQUIVO - LENDO E CALCULANDO MÉDIAS" ); l = 0; while ( l < 4 ) { for ( i = 0; i < 4 ; i++ ) { for ( i = 0; i < 4 ; i++ ) { textcolor ( LIGHTRED ); gotoxy ( 50 , i + 7 ); printf ( " %0.1f " , matriz [ i ] [ l ] ); res = res += matriz [ i ] [ l ]; } textcolor ( LIGHTBLUE ); gotoxy ( 30 , 5 ); printf ( "Notas do aluno " ); textcolor ( LIGHTRED ); printf ( "%d" , l + 1 ); textcolor ( LIGHTBLUE ); gotoxy ( 10 , 7 ); printf ( "Ciências Humanas e Suas Tecnologias " ); gotoxy ( 10 , 8 ); printf ( "Ciências da Natureza e suas Tecnologias " ); gotoxy ( 10 , 9 ); printf ( "Linguagens e Códigos e suas Tecnologias " ); gotoxy ( 10 , 10 ); printf ( "Matemática e suas Tecnologias " ); fclose ( arq ); } l++; getche ( ); media = res / 4; if ( media < 7 ) { repr++; textcolor ( LIGHTBLUE ); gotoxy ( 10 , 12 ); printf ( "Aluno " ); textcolor ( LIGHTRED ); printf ( "%d" , l ); textcolor ( LIGHTBLUE ); printf ( " reprovado" ); getche ( ); gotoxy ( 10 , 12 ); clreol ( ); } if ( media >= 7 ) { apr++; textcolor ( LIGHTBLUE ); gotoxy ( 10 , 12 ); printf ( "Aluno " ); textcolor ( LIGHTRED ); printf ( "%d" , l ); textcolor ( LIGHTBLUE ); printf ( " aprovado" ); getche ( ); gotoxy ( 10 , 12 ); clreol ( ); } media = res = j = 0; } clrscr ( ); Moldura ( ); textbackground ( WHITE ); textcolor ( LIGHTRED ); gotoxy ( 23 , 3 ); printf ( "ARQUIVO - LENDO E CALCULANDO MÉDIAS" ); textcolor ( LIGHTBLUE ); gotoxy ( 33 , 5 ); printf ( "Resultado final" ); textcolor ( LIGHTRED ); gotoxy ( 23 , 7 ); printf ( "%d" , repr ); textcolor ( LIGHTBLUE ); printf ( " alunos foram reprovados" ); textcolor ( LIGHTRED ); gotoxy ( 23 , 9 ); printf ( "%d" , apr ); textcolor ( LIGHTBLUE ); printf ( " alunos foram aprovados" ); if ( repr > apr ) { gotoxy ( 23 , 11 ); printf ( "Número de reprovados acima dos aprovados" ); } if ( repr == apr ) { gotoxy ( 23 , 11 ); printf ( "Número de aprovados" ); gotoxy ( 23 , 12 ); printf ( "iguais de reprovados" ); } if ( repr < apr ) { gotoxy ( 23 , 11 ); printf ( "Número de aprovados acima dos repovados" ); } Sleep ( 1800 ); textcolor ( LIGHTBLUE ); gotoxy ( 28 , 17 ); printf ( "Criado por:" ); textcolor ( BLACK ); printf ( " Samuel Lima " ); textcolor ( LIGHTRED ); gotoxy ( 36 , 23 ); printf ( "MUITO OBRIGADO" ); getche ( ); return 0; }
  2. sexta-feira, 23 de novembro de 2018 Com este programa podemos fazer leitura e pesquisa num arquivo de texto. A leitura é feita na janela do programa, que conta com um ScrollPane para rolagem das linhas. Num textfield inserimos a palavra à procurar, e se for encontrada, o programa conta quantas linhas possuem a palavra inserida, e marca o texto da linha inteira com fonte em outra cor para destaque. Veja abaixo o código do programa: //Programa pesquisa em arquivo //23/11/2018 - 20:02 import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; import javafx.scene.control.ScrollPane; import javafx.scene.paint.Color; import javafx.scene.text.Font; import javafx.scene.text.FontPosture; import javafx.scene.text.FontWeight; import javafx.stage.Stage; import java.awt.Toolkit; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import javafx.geometry.Insets; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyCodeCombination; import javafx.scene.input.KeyCombination; import javafx.scene.input.KeyEvent; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.scene.layout.BorderPane; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.control.Menu; import javafx.scene.control.MenuBar; import javafx.scene.control.MenuItem; import javafx.scene.control.TextField; public class PROJETO extends Application { static StringBuilder st = new StringBuilder ( ); static StringBuilder st1 = new StringBuilder ( ); static String str1 = ""; static String str_2 = ""; static String str_3 = ""; static String str_4 = ""; static int a = 0, c = 0, i = 1, k = 0; static Boolean x = false; static Group root = new Group ( ); static VBox vbox = new VBox ( ); static Scene scene = new Scene ( vbox, 600, 300, Color.BLACK ); static Canvas canvas = new Canvas ( 600, 1530 ); static GraphicsContext ctx = canvas.getGraphicsContext2D ( ); static ScrollPane s1 = new ScrollPane ( ); static BorderPane bord = new BorderPane ( ); private static File file = new File ( "H:\\eclipse luna_two\\" + "PROJETO\\PROJETO\\src\\380.txt" ); private static int SIZE = 71; static String [ ] str = new String [ SIZE ]; static String [ ] oc = new String [ str.length ]; static String [ ] str_0 = new String [ str.length ]; static MenuBar menuBar = new MenuBar ( ); static Menu arq = new Menu ( "Arq" ); static MenuItem pesq = new MenuItem ( "Pesquisa" ); static MenuItem sair = new MenuItem ( "Sair" ); // ///////////////////////////////////////////////////////////////////////// public static void Menu ( Stage stage ) { pesq.setOnAction ( new EventHandler < ActionEvent > ( ) { @Override public void handle ( ActionEvent e ) { // Coluna, linha, comprimento, altura // Apagando uma linha ou partes if ( x == true ) ctx.clearRect ( 10, 50, 400, 40 ); str_2 = ""; str_3 = ""; str_4 = ""; i = 0; a = 0; c = 0; k = 0; textFieldArr ( ); } } ); ///////////////////////////////////////////////////////// sair.setOnAction ( new EventHandler < ActionEvent > ( ) { @Override public void handle ( ActionEvent e ) { System.exit ( 0 ); } } ); ///////////////////////////////////////////////////////// pesq.setAccelerator ( new KeyCodeCombination ( KeyCode.E, KeyCombination.CONTROL_DOWN ) ); sair.setAccelerator ( new KeyCodeCombination ( KeyCode.C, KeyCombination.CONTROL_DOWN ) ); arq.getItems ( ).addAll ( pesq, sair ); menuBar.getMenus ( ).add ( arq ); } // ///////////////////////////////////////////////////////////////////////// private final static void Leitura ( ) throws IOException { ctx.setFont ( Font.font ( "Helvetica", FontWeight.NORMAL, FontPosture.ITALIC, 15 ) ); BufferedReader f = new BufferedReader ( new FileReader ( file ) ); int a = 0; while ( ( str [ i ] = f.readLine ( ) ) != null ) { a++; st.append ( str [ i ] + "\n" ); st1.append ( a + "\n" ); } f.close ( ); ctx.setFill ( Color.RED ); ctx.fillText ( "" + st1, 10, 110 ); ctx.setFill ( Color.BLACK ); ctx.fillText ( "" + st, 50, 110 ); } // ///////////////////////////////////////////////////////////////////////// private final static void Ler_Linha_Arquivo ( ) throws IOException { ctx.setFont ( Font.font ( "Helvetica", FontWeight.NORMAL, FontPosture.ITALIC, 15 ) ); BufferedReader f = new BufferedReader ( new FileReader ( file ) ); int a = 0; boolean achou = false; while ( ( str [ i ] = f.readLine ( ) ) != null ) { a++; str_0 [ c ] = str [ i ] + "\n"; c++; st1.append ( c + "\n" ); } f.close ( ); for ( i = 0; i < str_0.length; i++ ) { // toLowerCase() ignora fontes maiúscula e menúscula if ( str_0 [ i ].toLowerCase ( ).contains ( str_3.toLowerCase ( ) ) ) { achou = true; oc [ k ] = str_0 [ i ]; k++; str_2 = str_2 + str_0 [ i ]; } else { oc [ k ] = "\n"; str_2 = str_2 + oc [ k ]; } } str_4 += k; if ( k == 1 && achou == true ){ ctx.setFill ( Color.BLACK ); ctx.fillText ( "Só uma linha possui a palavra ", 50, 70 ); ctx.setFill ( Color.RED ); ctx.fillText ( str_3, 250, 70 ); ctx.setFill ( Color.RED ); ctx.fillText ( str_2, 50, 110 ); x = true; } else if ( k > 1 && achou == true ) { ctx.setFill ( Color.RED ); ctx.fillText ( str_4, 50, 70 ); ctx.setFill ( Color.BLACK ); ctx.fillText ( "linhas possuem a palavra ", 80, 70 ); ctx.setFill ( Color.RED ); ctx.fillText ( str_3, 255, 70 ); ctx.setFill ( Color.RED ); ctx.fillText ( str_2, 50, 110 ); x = true; } else { Toolkit.getDefaultToolkit ( ).beep ( ); ctx.fillText ( "Nenhuma ocorrência da palavra ", 50, 70 ); ctx.setFill ( Color.RED ); ctx.fillText ( str_3, 300, 70 ); x = true; } } // ///////////////////////////////////////////////////////////////////////// public static VBox textFieldArr ( ) { TextField textField_1 = new TextField ( ); HBox hbox_1 = new HBox ( textField_1 ); // Posiciona o textfield no local escolhido hbox_1.setPadding ( new Insets ( -295, 0, 0, 65 ) ); // Limita o textfield para no máximo trinta colunas textField_1.setPrefColumnCount ( 30 ); // Insere uma pequena mensagem ao usuário textField_1.setPromptText ( "Digite uma palavra" ); textField_1.setOnKeyPressed ( new EventHandler < KeyEvent > ( ) { @Override public void handle ( KeyEvent event ) { // convertendo string para inteiro if ( event.getCode ( ) == KeyCode.ENTER ) { //Copia o conteúdo do TextField em String str_3 += textField_1.getText ( ).toString ( ); try { Ler_Linha_Arquivo ( ); } catch ( IOException e ) { } // Oculta o textfield textField_1.setVisible ( false ); } } } ); vbox.getChildren ( ).addAll ( hbox_1 ); return vbox; } // ///////////////////////////////////////////////////////////////////////// @Override public void start ( Stage stage ) throws IOException { stage.setTitle ( "JAVAFX - LENDO ARQUIVO E PESQUISANDO" ); // Criando moldura em torno do ScrollPane s1.setStyle ( "-fx-padding: 5;" + "-fx-border-style: solid inside;" + "-fx-border-width: 4;" + "-fx-border-insets: 5;" + "-fx-border-radius: 5;" + "-fx-border-color: black;" ); // Adicionando o canvas no Scroll s1.setContent ( canvas ); ctx.setFill ( Color.RED ); // Usando fonte em italic ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD, FontPosture.ITALIC, 16 ) ); ctx.fillText ( "JAVAFX - LENDO ARQUIVO E PESQUISANDO", 120, 15 ); ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD, FontPosture.ITALIC, 15 ) ); ctx.setFill ( Color.BLUE ); ctx.fillText ( "Imprimindo abaixo o arquivo aberto", 160, 40 ); // Posiciona o local exato da barra de menu bord.setPadding ( new Insets ( 5, 0, 0, 5 ) ); bord.setTop ( menuBar ); Menu ( stage ); Leitura ( ); vbox.getChildren ( ).addAll ( bord, s1 ); stage.setScene ( scene ); stage.show ( ); } // ///////////////////////////////////////////////////////////////////////// public static void main ( String [ ] args ) { launch ( args ); } }
  3. Simples assim como disse o vangodp: Alocação de memória deve resolver seu problema. Vou te passar um exemplo que tenho aqui e que acabei de testar, com ele abri um arquivo de mais de 4777000 de linhas, com quase 120MB. de tamanho. Note que eu aloquei memória com malloc, e liberei no final com free() Provavelmente você terá de fazer alguns ajustes, mas nada difícil. #include <stdio.h> #include <string.h> #include <conio.h> //isto aqui varia de acordo com o tamanho do arquivo #define SIZE 4693240 int main ( ) { system ( "title ARQUIVO - LEITURA EM ARQUIVO DE TEXTOS PESADOS" ); int a = 0, i; FILE *arq; char **lin; lin = ( char** ) malloc ( SIZE * sizeof ( char* ) ); if ( ( arq = fopen ( "H:\\eclipse luna_two\\" "PROJETO\\PROJETO\\src\\codigos.txt", "r" ) ) == NULL ) { textcolor ( LIGHTBLUE ); gotoxy ( 21 , 3 ); printf ( "Houve um erro na abertura do arquivo" ); getche ( ); exit ( 0 ); } textbackground ( WHITE ); textcolor ( LIGHTRED ); gotoxy ( 21 , 3 ); printf ( "ARQUIVO - LEITURA EM ARQUIVO DE TEXTOS PESADOS" ); for ( i = 0; i < SIZE ; i++ ) { //Esta divisão de SIZE por este número inteiro //também deverá ser ajustado. line [ i ] = ( char* ) malloc ( SIZE / 20000 ); fgets ( lin [ i ] , 80 , arq ); } for ( i = 0; i < SIZE; i++ ) { a = i; textcolor ( LIGHTRED ); gotoxy ( 1 , a + 6 ); printf ( "%d" , a ); textcolor ( LIGHTBLUE ); gotoxy ( 7 , i + 6 ); printf ( " %s" , lin [ i ] ); } fclose ( arq ); getche ( ); free ( lin ); exit ( 0 ); }
  4. Este programa foi criado por mim mesmo no dia: sábado, 17 de outubro de 2015. Programadores de linguagem C tem boas opções com funções que fazem leitura de arquivos de texto, e uma outra função que pode ser usada para isto é a função fread(); Aliás, por trabalhar com dados binários o uso de fread(); para leitura e de fwrite(); para escrita são bem mais recomendados. ao contrário de outras que trabalham com dados em ASCII, e que podem provocar perda de desempenho em arquivos maiores. A função fread(); retorna o número total de elementos lidos, que pode ser menor do que o que foi especificado na chamada da rotina se o final do arquivo for atingido ou se ocorrer um erro. Arquivos binários também podem ser lidos como registros de dados estruturados, Além disso, uma vez que todos os registros tem o mesmo tamanho, os dados podem ser acessados de forma aleatória. A sintaxe de fread (); é: fread ( &tipo_nome, sizeof ( tamanho ), quantidade, arquivo ); sendo: A variável tipo_nome recebe o endereço dos dados lidos do arquivo tamanho é o número de bytes a ser lido. Para calcular isso o programador de C deve usar o operador sizeof. quantidade indica quantos itens serão lidos ( cada item do tamanho especificado ) arquivo é um ponteiro para o arquivo aberto anteriormente. Uma boa prática, aliás sempre uso, é analisar o retorno de fread para ver se não ocorreram erros. Isto pode ser feito com uma instrução deste tipo: if ( fread ( &nome, sizeof ( nome ), 1, arquivo ) != 1 ) printf("fread não conseguiu ler o arquivo.\n"); Temos no tópico duas imagens relacionadas ao programa, onde a primeira mostra o programa em execução, e a segunda mostra o arquivo que criei para ser usado como leitura. Veja abaixo uma imagem do programa em execução: Veja abaixo o código do programa: #include <conio.h> #include <stdio.h> void Apaga_Fundo ( ) { int row, col; textbackground ( WHITE ); for ( row = 3; row <= 22 ; row++ ) { for ( col = 3; col < 8 ; col++ ) { gotoxy ( col , row ); printf ( " " ); } } for ( row = 4; row <= 22 ; row++ ) { for ( col = 74; col < 79 ; col++ ) { gotoxy ( col , row ); printf ( " " ); } } } void Janela6 ( ) { int lin, col; col = 0; for ( lin = 2; lin <= 24 ; lin++ ) for ( col = 3; col <= 78 ; col++ ) { gotoxy ( col , lin ); textbackground ( WHITE ); printf ( " " ); } for ( lin = 4; lin <= 21 ; lin++ ) for ( col = 4; col <= 75 ; col++ ) { gotoxy ( col , lin ); textbackground ( BLACK ); printf ( " " ); } } int main ( ) { textbackground ( BLACK ); Janela6 ( ); int i, j; system ( "title ARQUIVO - LEITURA COM FREAD" ); char nome [ 17 ] [ 67 ] = { 0 }; FILE *arq; if ( ( arq = fopen ( "Cesta básica.txt" , "r" ) ) == NULL ) { printf ( "Houve um erro na abertura do arquivo" ); getche ( ); exit ( 1 ); } if ( fread ( &nome , 1050 , 1 , arq ) != 1 ) { printf ( "Houve um erro na leitura do arquivo" ); getche ( ); exit ( 1 ); } textcolor ( LIGHTRED ); gotoxy ( 28 , 3 ); printf ( "ARQUIVO - LEITURA COM FREAD" ); textcolor ( LIGHTBLUE ); gotoxy ( 5 , 5 ); for ( i = 0; i < 17 ; i++ ) { for ( j = 0; j < 67 ; j++ ) { printf ( "%c" , nome [ i ] [ j ] ); textcolor ( WHITE ); } } fclose ( arq ); Apaga_Fundo ( ); textcolor ( LIGHTRED ); gotoxy ( 36 , 24 ); printf ( "MUITO OBRIGADO" ); getche ( ); exit ( 0 ); return 0; }
  5. Ler um arquivo de texto em javafx desde que não seja muito extenso, podemos fazê-lo na própria janela. Neste exemplo, o programa lê um arquivo de quase 500 linhas. mas para uma leitura de milhares de linhas, no máximo 20000, Para não ficar muito pesado, a leitura deve ser feita num TextArea. Na verdade podemos expandir a leitura muito mais ainda aumentando a memória da Máquina Virtual Java (JVM). Heap Space significa "Memória dinâmica", e refere-se ao local onde o Java armazena suas variáveis e instâncias de objetos. Este espaço de memória pode aumentar consideravelmente com uso de programas inadequados, mal configurados, objetos implementados sem a remoção de suas referências, que no caso do C, seria removido com free(), nisto surge o comentário porque estou recebendo um NullPointerException?, ou porque meu programa está tão pesado? Verifique a documentação do java. Veja abaixo uma imagem do programa em execução: Veja abaixo o código do programa: import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; import javafx.scene.control.ScrollPane; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; import javafx.scene.text.Font; import javafx.scene.text.FontPosture; import javafx.scene.text.FontWeight; import javafx.stage.Stage; import java.io.BufferedReader; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class PROJETO extends Application { static String str = ""; static int a = 0; static Group root = new Group ( ); static Scene scene = new Scene ( root, 600, 300, Color.BLACK ); static Canvas canvas = new Canvas ( 600, 8000 ); static GraphicsContext ctx = canvas.getGraphicsContext2D ( ); static ScrollPane s1 = new ScrollPane ( ); // ///////////////////////////////////////////////////////////////////////// private static final void Ler_Arquivo ( ) throws IOException { Path wiki_path = Paths.get ( "H:\\eclipse luna_two\\" + "PROJETO\\PROJETO\\src\\Poesias famosas.txt" ); ctx.setFont ( Font.font ( "Helvetica", FontWeight.NORMAL, FontPosture.ITALIC, 13 ) ); try ( BufferedReader reader = Files.newBufferedReader ( wiki_path ) ) { String line = ""; String num = ""; while ( ( line = reader.readLine ( ) ) != null ) { a++; num += a + "\n"; // System.out.println ( a + " " + line ); str += line + "\n"; } ctx.setFill ( Color.RED ); ctx.fillText ( num, 10, 80 ); ctx.setFill ( Color.BLACK ); ctx.fillText ( str, 50, 80 ); } } // ///////////////////////////////////////////////////////////////////////// @Override public void start ( Stage stage ) throws IOException { stage.setTitle ( "LENDO ARQUIVO DE TEXTO EM JAVAFX" ); //Este retângulo forma uma moldura em torno da janela Rectangle rect = new Rectangle ( 600, 300 ); rect.setLayoutX ( 5 ); rect.setLayoutY ( 5 ); //Arredondamento dos cantos do retângulo rect.setArcHeight ( 35 ); rect.setArcWidth ( 35 ); rect.setFill ( Color.CHARTREUSE ); // Criando moldura em torno do ScrollPane s1.setStyle ( "-fx-padding: 5;" + "-fx-border-style: solid inside;" + "-fx-border-width: 4;" + "-fx-border-insets: 5;" + "-fx-border-radius: 5;" + "-fx-border-color: black;" ); stage.setResizable ( false ); s1.setPannable ( true ); s1.setLayoutX ( 20 ); s1.setLayoutY ( 20 ); s1.setPrefSize ( 570, 270 ); s1.setContent ( canvas ); ctx.setFill ( Color.RED ); //Usando fonte em italic ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD, FontPosture.ITALIC, 16 ) ); ctx.fillText ( "LENDO ARQUIVO DE TEXTO EM JAVAFX", 120, 15 ); ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD, FontPosture.ITALIC, 15 ) ); ctx.setFill ( Color.BLUE ); ctx.fillText ( "Imprimindo abaixo o arquivo aberto", 140, 40 ); Ler_Arquivo ( ); root.getChildren ( ).addAll ( rect, s1 ); stage.setScene ( scene ); stage.show ( ); } // ///////////////////////////////////////////////////////////////////////// public static void main ( String [ ] args ) { launch ( args ); } }
  6. quarta-feira, 28 de outubro de 2015, Data em que este programa foi criado. Ter domínio em arquivos de textos e binários são obrigações de programadores em linguagem c, por isto apresento mais este código de pesquisa em arquivo. Uma novidade que quero mostrar aqui, é que o programa marca as ocorrências na própria leitura, Criar esta rotina me deu muito trabalho, muitas horas de empenho e dedicação, Qualquer estudante intermediário em c não terá dificuldades em acompanhar este código. Veja abaixo imagens do programa em execução: Veja abaixo o código do programa: #include <stdio.h> #include <string.h> #include <conio.h> #define SI_ZE 1000 #define lin 17 #define col 50 static int __BACKGROUND = BLACK; static int __FOREGROUND = LIGHTGRAY; void text_color ( int color ) { __FOREGROUND = color; SetConsoleTextAttribute ( GetStdHandle ( STD_OUTPUT_HANDLE ) , color + ( __BACKGROUND << 4 ) ); } void Janela ( ) { int l, c; for ( l = 1; l <= 30 ; l++ ) { for ( c = 1; c < 80 ; c++ ) { gotoxy ( c , l ); if ( l == 2 ) { textattr ( 200 ); printf ( " " ); } if ( c == 1 ) { textattr ( 200 ); printf ( " " ); } if ( c == 79 ) { textattr ( 200 ); printf ( " " ); } } } } int main ( ) { textbackground ( LIGHTBLUE ); Janela ( ); system ( "title ARQUIVO - PESQUISANDO E MARCANDO OCORRÊNCIAS" ); int a = 0, g = 0, i, j, k, cont = 0, lenv; FILE *arq; char *pt; pt = ( char * ) malloc ( 20 ); char Nomes [ lin ] [ col ] = { 0 }; char **line; line = ( char** ) malloc ( SI_ZE * sizeof(char*) ); if ( ( arq = fopen ( "C:\\Users\\Lima 32 SP1\\Desktop\\Arquivos\\" "Concurso Belas da informática.txt" , "r" ) ) == NULL ) { printf ( "Houve um erro na abertura do arquivo" ); getche ( ); exit ( 1 ); } textbackground ( WHITE ); textcolor ( LIGHTRED ); gotoxy ( 21 , 3 ); printf ( "ARQUIVO - PESQUISANDO E MARCANDO OCORRÊNCIAS" ); for ( i = 0; i < lin ; i++ ) { line [ i ] = ( char* ) malloc ( SI_ZE ); fgets ( line [ i ] , 50 , arq ); } for ( i = 0; i < lin ; i++ ) { strcpy ( Nomes [ i ] , line [ i ] ); a = i; textcolor ( LIGHTRED ); gotoxy ( 13 , a + 6 ); printf ( "%d" , a ); textcolor ( LIGHTBLUE ); gotoxy ( 19 , i + 6 ); printf ( "%s" , line [ i ] ); } fclose ( arq ); do { textcolor ( LIGHTBLUE ); gotoxy ( 13 , 24 ); printf ( "Digite uma palavra para procurar ==> " ); textcolor ( LIGHTRED ); scanf ( "%20[^\n]s" , pt ); fflush ( stdin ); for ( i = 0; i < lin ; i++ ) { for ( j = 0; j < col ; j++ ) { k = 0; while ( line [ i ] [ j + k ] == pt [ k ] && pt [ k ] != '\0' && line [ i ] [ j + k ] != '\0' ) k++; if ( pt [ k ] == '\0' ) { ++cont; strcpy ( &line [ i ] [ j ] , pt ); } } } if ( cont >= 1 ) { textcolor ( LIGHTBLUE ); gotoxy ( 13 , 26 ); textbackground ( WHITE ); printf ( "Encontrado " ); textcolor ( LIGHTRED ); printf ( "%d" , cont ); textcolor ( LIGHTBLUE ); printf ( " ocorrência ( s ) da palavra " ); textcolor ( LIGHTRED ); printf ( "%s" , pt ); Sleep ( 1800 ); textcolor ( LIGHTRED ); gotoxy ( 30 , 28 ); printf ( "PRESSIONE QUALQUER TECLA" ); } if ( cont == 0 ) { textcolor ( LIGHTBLUE ); gotoxy ( 7 , cont + 26 ); printf ( "Não há Nenhuma ocorrência da palavra " ); textcolor ( LIGHTRED ); printf ( "%s" , pt ); textcolor ( LIGHTBLUE ); printf ( " no arquivo, tente outra vez" ); Sleep ( 1800 ); textcolor ( LIGHTRED ); gotoxy ( 30 , cont + 28 ); printf ( "PRESSIONE QUALQUER TECLA" ); getche ( ); gotoxy ( 7 , 26 + cont ); clreol ( ); gotoxy ( 30 , 28 ); clreol ( ); gotoxy ( 13 , 24 ); clreol ( ); } } while ( cont == 0 ); getche ( ); clrscr ( ); textcolor ( LIGHTRED ); gotoxy ( 21 , 4 ); printf ( "ARQUIVO - PESQUISANDO E MARCANDO OCORRÊNCIAS" ); textcolor ( LIGHTBLUE ); gotoxy ( 13 , 6 ); printf ( "Arquivo imprimido com as " ); textcolor ( LIGHTRED ); printf ( "%d" , cont ); textcolor ( LIGHTBLUE ); printf ( " ocorrências da palavra" ); textcolor ( LIGHTRED ); printf ( " %s" , pt ); textcolor ( LIGHTBLUE ); printf ( " marcada" ); lenv = strlen ( pt ); for ( i = 0; i < lin ; i++ ) { gotoxy ( 17 , i + 8 ); for ( j = 0; j < col ; j++ ) { if ( strcmp ( pt , &line [ i ] [ j ] ) == 0 ) { for ( g = 0; g < lenv ; g++ ) { text_color ( YELLOW ); printf ( "%c" , line [ i ] [ j ] ); j++; } } textcolor ( BLACK ); printf ( "%c" , Nomes [ i ] [ j ] ); } } Janela ( ); textbackground ( WHITE ); textcolor ( LIGHTBLUE ); gotoxy ( 17 , 25 ); Sleep ( 1800 ); printf ( "Por: " ); textcolor ( LIGHTMAGENTA ); printf ( "Samuel Lima" ); textcolor ( BLACK ); gotoxy ( 17 , 26 ); printf ( "sa_sp10@hotmail.com" ); Sleep ( 1800 ); textcolor ( LIGHTRED ); gotoxy ( 37 , 28 ); printf ( "MUITO OBRIGADO" ); getche ( ); exit ( 0 ); free ( line ); getche ( ); }
  7. gun.rarUtilizando a classe shape, que para nós não é nenhuma novidade utilizá-la, desenhamos uma moldura e três círculos. Criamos o método arrastaObjetos ( final Shape figuras ); Que nos permite pressionar os objetos, arrastar e soltar onde bem quisermos em qualquer parte da tela, mas se os objetos se chocarem entre si, ou se ainda qualquer um deles se chocarem na moldura o método examineColisao ( Shape figuras ); detecta rapidamente o evento ocorrido e imite um áudio avisando o usuário, e mostrando também um alerta visual modificando a cor do objeto colidido. Não fique surpreso, teste isto agora mesmo, aproveite esta oferta gratuita de meu blog de java, porque por mais que procurem não encontrarão um exemplo de colisão em javaFX melhor e mais eficiente do que este. Veja abaixo um vídeo com o programa funcionando: import javafx.application.Application; import javafx.event.EventHandler; import javafx.scene.*; import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; import javafx.scene.input.MouseEvent; import javafx.scene.paint.Color; import javafx.stage.Stage; import java.util.ArrayList; import javafx.scene.shape.*; import javafx.scene.text.Font; import javafx.scene.text.FontPosture; import javafx.scene.text.FontWeight; import javafx.scene.media.AudioClip; public class PROJETO extends Application { Group root = new Group ( ); Scene scene = new Scene ( root, 600, 300 ); Canvas canvas = new Canvas ( 600, 300 ); GraphicsContext ctx = canvas.getGraphicsContext2D ( ); Rectangle rect_1 = new Rectangle ( 600, 10 ); Rectangle rect_2 = new Rectangle ( 600, 10 ); Rectangle rect_3 = new Rectangle ( 10, 270 ); Rectangle rect_4 = new Rectangle ( 10, 270 ); Circle circle_1 = new Circle ( 30 ); Circle circle_2 = new Circle ( 30 ); Circle circle_3 = new Circle ( 30 ); double x = 0, y = 0; private ArrayList < Shape > nosObjct; String Audio = getClass ( ).getResource ( "gun.wav" ).toString ( ); AudioClip clip = new AudioClip ( Audio ); // //////////////////////////////////////////////////////////////////////// public void Informe ( ) { ctx.setFont ( Font.font ( "Arial", FontWeight.BOLD, 13 ) ); ctx.setFill ( Color.RED ); ctx.fillText ( "Por: ", 200, 230 ); ctx.setFill ( Color.BLUE ); ctx.fillText ( "Samuel Lima", 240, 230 ); ctx.setFill ( Color.BLACK ); ctx.fillText ( "sa_sp10@hotmail.com", 200, 245 ); ctx.setFill ( Color.RED ); ctx.fillText ( " MUITO OBRIGADO", 250, 280 ); } // //////////////////////////////////////////////////////////////////////// public void arrastaObjetos ( final Shape figuras ) { figuras.setOnMousePressed ( new EventHandler < MouseEvent > ( ) { @Override public void handle ( MouseEvent mouseEvent ) { x = figuras.getLayoutX ( ) - mouseEvent.getSceneX ( ); y = figuras.getLayoutY ( ) - mouseEvent.getSceneY ( ); figuras.setCursor ( Cursor.CROSSHAIR ); } } ); figuras.setOnMouseReleased ( new EventHandler < MouseEvent > ( ) { @Override public void handle ( MouseEvent mouseEvent ) { figuras.setCursor ( Cursor.HAND ); } } ); figuras.setOnMouseDragged ( new EventHandler < MouseEvent > ( ) { @Override public void handle ( MouseEvent mouseEvent ) { figuras.setLayoutX ( mouseEvent.getSceneX ( ) + x ); figuras.setLayoutY ( mouseEvent.getSceneY ( ) + y ); examineColisao ( figuras ); } } ); } // //////////////////////////////////////////////////////////////////////// private void examineColisao ( Shape figuras) { boolean colisao = false; for ( Shape blocoEstatico : nosObjct ) { if ( blocoEstatico != figuras ) { Shape intersect = Shape.intersect ( figuras, blocoEstatico ); if ( intersect.getBoundsInLocal ( ).getWidth ( ) != -1 ) { colisao = true; } } } if ( colisao ) { clip.play ( ); figuras.setFill ( Color.RED ); } if ( !colisao ) { clip.stop ( ); figuras.setFill ( Color.STEELBLUE ); } } // //////////////////////////////////////////////////////////////////////// public int listaFiguras ( ) { nosObjct = new ArrayList < > ( ); rect_1.setLayoutX ( 5.0f ); rect_1.setLayoutY ( 290.0f ); rect_1.setFill ( Color.RED ); rect_2.setLayoutX ( 0.0f ); rect_2.setLayoutY ( 0.0f ); rect_2.setFill ( Color.RED ); rect_3.setLayoutX ( 590.0f ); rect_3.setLayoutY ( 15.0f ); rect_3.setFill ( Color.RED ); rect_4.setLayoutX ( 0.0f ); rect_4.setLayoutY ( 15.0f ); rect_4.setFill ( Color.RED ); nosObjct.add ( rect_1 ); nosObjct.add ( rect_2 ); nosObjct.add ( rect_3 ); nosObjct.add ( rect_4 ); circle_1.setCenterX ( 300.0 ); circle_1.setCenterY ( 125.0 ); circle_1.setRadius ( 30.0 ); circle_1.setFill ( Color.STEELBLUE ); circle_2.setCenterX ( 130.0 ); circle_2.setCenterY ( 225.0 ); circle_2.setRadius ( 30.0 ); circle_2.setFill ( Color.STEELBLUE ); circle_3.setCenterX ( 470.0 ); circle_3.setCenterY ( 225.0 ); circle_3.setRadius ( 30.0 ); circle_3.setFill ( Color.STEELBLUE ); nosObjct.add ( circle_1 ); nosObjct.add ( circle_2 ); nosObjct.add ( circle_3 ); for ( Shape moveFiguras : nosObjct ) { arrastaObjetos ( moveFiguras ); } examineColisao ( nosObjct.get ( nosObjct.size ( ) - 1 ) ); return 0; } // //////////////////////////////////////////////////////////////////////// @Override public void start ( Stage stage ) { stage.setTitle ( "JAVAFX - DETECTANDO COLISÕES" ); ctx.setStroke ( Color.RED ); ctx.setLineWidth ( 10.0 ); ctx.strokeRoundRect ( 5, 5, 590, 290, 5, 5 ); ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD, FontPosture.ITALIC, 20 ) ); ctx.setFill ( Color.RED ); ctx.fillText ( "JAVAFX - DETECTANDO COLISÕES", 150, 40 ); listaFiguras ( ); Informe ( ); root.getChildren ( ).addAll ( canvas, circle_1, circle_2, circle_3, rect_1, rect_2, rect_3, rect_4 ); stage.setScene ( scene ); stage.show ( ); } // //////////////////////////////////////////////////////////////////////// public static void main ( String [ ] args ) { launch ( args ); } }
  8. Quando ainda era iniciante em Linguagem C, Criei este programa, que funciona como uma lista estática, permitindo inserir, listar, alterar e remover, itens num vetor de estrutura estática. Então, com certeza tem muito o que melhorar, na parte de designer do programa, isto fica a cargo dos que se interessarem pelo código, estou dando plena liberdade de alterar, onde for preciso para se igualar as suas pretensões. O programa é todo criado em funções simples, que são chamadas por um menu inteligente com teclas do teclado do computador, e confirmado pela tecla "ENTER", muito seguro, menu de um funcionamento excelente e o código é 100 por cento funcional, gastei muito tempo pra deixá-lo funcionando, criado pacientemente na minha IDE padrão, o eclipse é claro, e está rodando liso, e leve, por aqui não foi detectado nenhum warnings, quando foi compilado pelo mingw32-3.4.2. o código é indicado a iniciantes em Linguagem C, que estão aprendendo montar estruturas para cadastro, com inserção, listagem, alteração e remoção. Veja abaixo um vídeo com o programa funcionando: Veja abaixo o código do programa: #include <stdio.h> #include <conio.h> #include <time.h> #include <windows.h> struct estructura_amigo { char nome [ 20 ]; char apelido [10 ]; char telefone [ 12 ]; int idade; int cod; } amigo [ 8 ]; int i, codigo; void Alterar_Amigo ( int j ); void Lista_Amigos ( int j ); void MenuPrimcipal ( int j ); void Janela5 ( ); void Remove_Amigo ( int j ) { system ( "cls" ); int conf; Janela5 ( ); do { textcolor ( LIGHTRED ); gotoxy ( 30 , 3 ); printf ( "PROGRAMA CADASTRO DE AMIGOS" ); textcolor ( LIGHTGRAY ); gotoxy ( 30 , 5 ); printf ( "REMOVENDO CADASTRO DE AMIGOS" ); textcolor ( YELLOW ); gotoxy ( 27 , 7 ); printf ( "INFORME UM CODIGO [ ENTRE 1 E 7 ]" ); textcolor ( LIGHTRED ); gotoxy ( 40 , 9 ); scanf ( "%d" , &codigo ); fflush (stdin); if ( codigo < 1 || codigo > 7 ) { textcolor ( LIGHTBLUE ); gotoxy ( 35 , 9 ); printf ( "\aCODIGO INVALIDO !" ); getche ( ); system ( "cls" ); Remove_Amigo ( j ); } if ( amigo [ codigo ].cod != '\0' ) { } else { textcolor ( LIGHTBLUE ); gotoxy ( 29 , 9 ); printf ( "\aNADA CADASTRADO NESTE CODIGO !" ); getche ( ); system ( "cls" ); MenuPrimcipal ( j ); } } while ( codigo < 1 || codigo > 7 ); if ( amigo [ codigo ].cod != '\0' ) { system ( "cls" ); textcolor ( LIGHTRED ); gotoxy ( 30 , 3 ); printf ( "PROGRAMA CADASTRO DE AMIGOOS" ); textcolor ( LIGHTGRAY ); gotoxy ( 35 , 5 ); printf ( "REMOVENDO CADASTRO DE AMIGOS" ); textcolor ( YELLOW ); gotoxy ( 35 , 7 ); printf ( "DADOS DO AMIGO" ); textcolor ( LIGHTRED ); gotoxy ( 52 , 7 ); printf ( " %d " , codigo ); textbackground ( BLACK ); textcolor ( DARKGRAY ); textcolor ( LIGHTCYAN ); gotoxy ( 30 , 9 ); printf ( "Nome do amigo: " ); textcolor ( LIGHTRED ); gotoxy ( 46 , 9 ); printf ( " %s " , amigo [ codigo ].nome ); textcolor ( LIGHTCYAN ); gotoxy ( 30 , 11 ); printf ( "Apelido: " ); textcolor ( LIGHTRED ); gotoxy ( 46 , 11 ); printf ( " %s " , amigo [ codigo ].apelido ); textcolor ( LIGHTCYAN ); gotoxy ( 30 , 13 ); printf ( "Idade: Anos" ); textcolor ( LIGHTRED ); gotoxy ( 46 , 13 ); printf ( " %i " , amigo [ codigo ].idade ); textcolor ( LIGHTCYAN ); gotoxy ( 30 , 15 ); printf ( "Telefone: " ); textcolor ( LIGHTRED ); gotoxy ( 46 , 15 ); printf ( " %s " , amigo [ codigo ].telefone ); getche ( ); do { textcolor ( LIGHTBLUE ); gotoxy ( 17 , 17 ); printf ( "DESEJA REMOVER O CADASTRO ? [ 1 PARA SIM E 2 PARA NAO ]" ); textcolor ( LIGHTRED ); gotoxy ( 40 , 19 ); scanf ( "%d" , &conf ); fflush (stdin); if ( conf == 1 ) { amigo [ codigo ].cod = '\0'; amigo [ codigo ].nome [ 0 ] = '\0'; amigo [ codigo ].apelido [ 0 ] = '\0'; amigo [ codigo ].idade = '\0'; amigo [ codigo ].telefone [ 0 ] = '\0'; textcolor ( YELLOW ); gotoxy ( 25 , 19 ); printf ( "\a CADASTRO REMOVIDO COM SUCESSO!" ); getche ( ); system ( "cls" ); MenuPrimcipal ( j ); } if ( conf == 2 ) { textcolor ( YELLOW ); gotoxy ( 29 , 19 ); printf ( "PROCESSO DE REMOCAO CANCELADO!" ); getche ( ); system ( "cls" ); MenuPrimcipal ( j ); } else { textcolor ( GREEN ); gotoxy ( 38 , 19 ); printf ( "\aOPCAO ERRADA" ); Sleep ( 1800 ); gotoxy ( 38 , 19 ); printf ( " " ); } } while ( 1 ); } } void Alterar_Amigo ( int j ) { system ( "cls" ); int conf; Janela5 ( ); do { textcolor ( LIGHTRED ); gotoxy ( 30 , 3 ); printf ( "PROGRAMA CADASTRO DE AMIGOS" ); textcolor ( LIGHTGRAY ); gotoxy ( 30 , 5 ); printf ( "ALTERANDO CADASTRO DE AMIGOS" ); textcolor ( YELLOW ); gotoxy ( 27 , 7 ); printf ( "INFORME UM CODIGO [ ENTRE 1 E 7 ]" ); textcolor ( LIGHTRED ); gotoxy ( 40 , 9 ); scanf ( "%d" , &codigo ); fflush (stdin); if ( codigo < 1 || codigo > 7 ) { textcolor ( LIGHTBLUE ); gotoxy ( 35 , 9 ); printf ( "\aCODIGO INVALIDO !" ); getche ( ); system ( "cls" ); } } while ( codigo < 1 || codigo > 7 ); if ( amigo [ codigo ].cod != '\0' ) { } else { textcolor ( LIGHTBLUE ); gotoxy ( 29 , 9 ); printf ( "\aNADA CADASTRADO NESTE CODIGO !" ); getche ( ); system ( "cls" ); MenuPrimcipal ( j ); } if ( amigo [ codigo ].cod != '\0' ) { system ( "cls" ); textcolor ( LIGHTRED ); gotoxy ( 30 , 3 ); printf ( "PROGRAMA CADASTRO DE AMIGOOS" ); textcolor ( LIGHTGRAY ); gotoxy ( 35 , 5 ); printf ( "ALTERANDO CADASTRO DE AMIGOS" ); textcolor ( YELLOW ); gotoxy ( 35 , 7 ); printf ( "DADOS DO AMIGO" ); textcolor ( LIGHTRED ); gotoxy ( 52 , 7 ); printf ( " %d " , codigo ); textbackground ( BLACK ); textcolor ( DARKGRAY ); textcolor ( LIGHTCYAN ); gotoxy ( 30 , 9 ); printf ( "Nome do amigo: " ); textcolor ( LIGHTRED ); gotoxy ( 46 , 9 ); printf ( " %s " , amigo [ codigo ].nome ); textcolor ( LIGHTCYAN ); gotoxy ( 30 , 11 ); printf ( "Apelido: " ); textcolor ( LIGHTRED ); gotoxy ( 46 , 11 ); printf ( " %s " , amigo [ codigo ].apelido ); textcolor ( LIGHTCYAN ); gotoxy ( 30 , 13 ); printf ( "Idade: Anos" ); textcolor ( LIGHTRED ); gotoxy ( 46 , 13 ); printf ( " %i " , amigo [ codigo ].idade ); textcolor ( LIGHTCYAN ); gotoxy ( 30 , 15 ); printf ( "Telefone: " ); textcolor ( LIGHTRED ); gotoxy ( 46 , 15 ); printf ( " %s " , amigo [ codigo ].telefone ); getche ( ); do { textcolor ( LIGHTBLUE ); gotoxy ( 17 , 17 ); printf ( "DESEJA ALTERAR O CADASTRO ? [ 1 PARA SIM E 2 PARA NAO ]" ); textcolor ( LIGHTRED ); gotoxy ( 40 , 19 ); scanf ( "%d" , &conf ); fflush (stdin); if ( conf == 2 ) { textcolor ( YELLOW ); gotoxy ( 29 , 19 ); printf ( "PROCESSO DE ALTERACAO CANCELADO!" ); getche ( ); system ( "cls" ); MenuPrimcipal ( j ); } if ( conf == 1 ) { system ( "cls" ); textcolor ( LIGHTRED ); gotoxy ( 30 , 3 ); printf ( "PROGRAMA CADASTRO DE AMIGOS" ); textcolor ( LIGHTBLUE ); gotoxy ( 30 , 5 ); printf ( "ALTERANDO CADASTRO DE AMIGOS" ); textcolor ( LIGHTCYAN ); gotoxy ( 32 , 7 ); printf ( "DIGITE OS DADOS DO AMIGO" ); textcolor ( LIGHTGRAY ); gotoxy ( 30 , 9 ); printf ( "Nome: " ); textcolor ( LIGHTRED ); gets ( amigo [ codigo ].nome ); fflush ( stdin ); textcolor ( LIGHTGRAY ); gotoxy ( 30 , 11 ); printf ( "Apelido: " ); textcolor ( LIGHTRED ); gets ( amigo [ codigo ].apelido ); fflush ( stdin ); textcolor ( LIGHTGRAY ); gotoxy ( 30 , 13 ); printf ( "Telefone: " ); textcolor ( LIGHTRED ); gets ( amigo [ codigo ].telefone ); fflush ( stdin ); textcolor ( LIGHTGRAY ); gotoxy ( 30 , 15 ); printf ( "Idade: " ); textcolor ( LIGHTRED ); scanf ( "%i" , &amigo [ codigo ].idade ); fflush ( stdin ); textcolor ( YELLOW ); gotoxy ( 30 , 17 ); printf ( "CADASTRO ALTERADO COM SUCESSO" ); getche ( ); system ( "cls" ); MenuPrimcipal ( j ); } else { textcolor ( YELLOW ); gotoxy ( 38 , 19 ); printf ( "\aOPCAO ERRADA" ); Sleep ( 1800 ); gotoxy ( 38 , 19 ); printf ( " " ); } } while ( 1 ); } } void Lista_Amigos ( int j ) { system ( "cls" ); Janela5 ( ); do { textcolor ( LIGHTRED ); gotoxy ( 30 , 3 ); printf ( "PROGRAMA CADASTRO DE AMIGOS" ); textcolor ( LIGHTGRAY ); gotoxy ( 30 , 5 ); printf ( "LISTANDO CADASTRO DE AMIGOS" ); textcolor ( YELLOW ); gotoxy ( 27 , 7 ); printf ( "INFORME UM CODIGO [ ENTRE 1 E 7 ]" ); textcolor ( LIGHTRED ); gotoxy ( 40 , 9 ); scanf ( "%d" , &codigo ); fflush (stdin); if ( codigo < 1 || codigo > 7 ) { textcolor ( LIGHTBLUE ); gotoxy ( 35 , 9 ); printf ( "\aCODIGO INVALIDO !" ); getche ( ); system ( "cls" ); } } while ( codigo < 1 || codigo > 7 ); if ( amigo [ codigo ].cod != '\0' ) { } else { textcolor ( LIGHTBLUE ); gotoxy ( 29 , 9 ); printf ( "\aNADA CADASTRADO NESTE CODIGO !" ); getche ( ); system ( "cls" ); MenuPrimcipal ( j ); } if ( amigo [ codigo ].cod != '\0' ) { system ( "cls" ); textcolor ( LIGHTRED ); gotoxy ( 30 , 3 ); printf ( "PROGRAMA CADASTRO DE AMIGOOS" ); textcolor ( LIGHTGRAY ); gotoxy ( 35 , 5 ); printf ( "LISTANDO CADASTRO DE AMIGOS" ); textcolor ( YELLOW ); gotoxy ( 35 , 7 ); printf ( "DADOS DO AMIGO" ); textcolor ( LIGHTRED ); gotoxy ( 52 , 7 ); printf ( " %d " , codigo ); textbackground ( BLACK ); textcolor ( DARKGRAY ); textcolor ( LIGHTCYAN ); gotoxy ( 30 , 9 ); printf ( "Nome do amigo: " ); textcolor ( LIGHTRED ); gotoxy ( 46 , 9 ); printf ( " %s " , amigo [ codigo ].nome ); textcolor ( LIGHTCYAN ); gotoxy ( 30 , 11 ); printf ( "Apelido: " ); textcolor ( LIGHTRED ); gotoxy ( 46 , 11 ); printf ( " %s " , amigo [ codigo ].apelido ); textcolor ( LIGHTCYAN ); gotoxy ( 30 , 13 ); printf ( "Idade: Anos" ); textcolor ( LIGHTRED ); gotoxy ( 46 , 13 ); printf ( " %i " , amigo [ codigo ].idade ); textcolor ( LIGHTCYAN ); gotoxy ( 30 , 15 ); printf ( "Telefone: " ); textcolor ( LIGHTRED ); gotoxy ( 46 , 15 ); printf ( " %s " , amigo [ codigo ].telefone ); getche ( ); MenuPrimcipal ( j ); } } void Insere_Amigo ( int j ) { system ( "cls" ); Janela5 ( ); do { textcolor ( LIGHTRED ); gotoxy ( 30 , 3 ); printf ( "PROGRAMA CADASTRO DE AMIGOS" ); textcolor ( LIGHTGRAY ); gotoxy ( 35 , 5 ); printf ( "CADASTRANDO AMIGOS" ); textcolor ( YELLOW ); gotoxy ( 27 , 7 ); printf ( "INFORME UM CODIGO [ ENTRE 1 E 7 ]" ); textcolor ( LIGHTRED ); gotoxy ( 40 , 9 ); scanf ( "%d" , &codigo ); fflush (stdin); if ( codigo < 1 || codigo > 7 ) { textcolor ( LIGHTBLUE ); gotoxy ( 35 , 9 ); printf ( "\aCODIGO INVALIDO !" ); getche ( ); system ( "cls" ); } else { if ( amigo [ codigo ].cod != '\0' ) { textcolor ( LIGHTBLUE ); gotoxy ( 35 , 9 ); printf ( "\aPOSICAO OCUPADA !" ); getche ( ); system ( "cls" ); MenuPrimcipal ( j ); } } } while ( codigo < 1 || codigo > 7 ); amigo [ codigo ].cod = codigo; textcolor ( LIGHTCYAN ); gotoxy ( 30 , 9 ); printf ( "DIGITE OS DADOS DO AMIGO" ); textcolor ( LIGHTRED ); gotoxy ( 57 , 9 ); printf ( " %d " , codigo ); textcolor ( LIGHTGRAY ); gotoxy ( 30 , 11 ); printf ( "Nome: " ); textcolor ( LIGHTRED ); gets ( amigo [ codigo ].nome ); fflush (stdin); textcolor ( LIGHTGRAY ); gotoxy ( 30 , 13 ); printf ( "Apelido: " ); textcolor ( LIGHTRED ); gets ( amigo [ codigo ].apelido ); fflush ( stdin ); textcolor ( LIGHTGRAY ); gotoxy ( 30 , 15 ); printf ( "Telefone: " ); textcolor ( LIGHTRED ); gets ( amigo [ codigo ].telefone ); fflush ( stdin ); textcolor ( LIGHTGRAY ); gotoxy ( 30 , 17 ); printf ( "Idade: " ); textcolor ( LIGHTRED ); scanf ( "%i" , &amigo [ codigo ].idade ); fflush ( stdin ); textcolor ( YELLOW ); gotoxy ( 27 , 19 ); printf ( "CADASTRO REALIZADO COM SUCESSO" ); getche ( ); MenuPrimcipal ( j ); } time_t hora_atual; void Funcexit ( ) { Janela5 ( ); gotoxy ( 32 , 11 ); printf ( "OPERACAO FINALIZADA" ); gotoxy ( 2 , 23 ); Sleep ( 1800 ); gotoxy ( 20 , 13 ); printf ( "MUITO OBRIGADO POR TER USADO ESTE PROGRAMA\n" ); time ( &hora_atual ); gotoxy ( 20 , 15 ); printf ( "A data e hora atuais sao: %s" , ctime ( &hora_atual ) ); Sleep ( 2800 ); exit ( 0 ); gotoxy ( 3 , 24 ); } void Janela6 ( ) { int lin, col; col = 0; for ( lin = 2; lin <= 24 ; lin++ ) for ( col = 3; col <= 78 ; col++ ) { gotoxy ( col , lin ); textbackground ( 6 ); printf ( " " ); } col = 0; for ( lin = 5; lin <= 21 ; lin++ ) for ( col = 6; col <= 75 ; col++ ) { gotoxy ( col , lin ); textbackground ( 16 ); printf ( " " ); } } void Janela5 ( ) { int lin, col; col = 0; for ( lin = 2; lin <= 24 ; lin++ ) for ( col = 2; col <= 78 ; col++ ) { gotoxy ( col , lin ); textbackground ( WHITE ); printf ( " " ); } } #define MaxNo_Menu 5 // Define quantos menu terá seu programa void MenuPrimcipal ( int j ) { system ( "title PROGRAMA CADASTRO DE AMIGOS" ); system ( "cls" ); Janela6 ( ); textcolor ( LIGHTRED ); gotoxy ( 28 , 3 ); printf ( "PROGRAMA CADASTRO DE AMIGOS" ); textcolor ( YELLOW ); gotoxy ( 22 , 7 ); printf ( "PROGRAMA DESENVOLVIDO POR:" ); textcolor ( LIGHTCYAN ); gotoxy ( 49 , 7 ); printf ( "Samuel Lima" ); textcolor ( LIGHTGREEN ); gotoxy ( 30 , 9 ); printf ( "sa_sp10@hotmail.com" ); textcolor ( LIGHTBLUE ); gotoxy ( 29 , 11 ); printf ( "ESCOLHA UMA OPCAO ABAIXO" ); char *menu_list [ MaxNo_Menu ] = { "CADASTRAR AMIGOS", "LISTAR CADASTRO DE AMIGOS", "REMOVER CADASTRO DE AMIGOS", "ALTERAR CADASTRO DE AMIGOS", "SAIR" }; int i, xpos = 10, ypos [ MaxNo_Menu ] = { 13, 15, 17, 19, 21 }; // lista do menu com o número da linha for ( i = 0; i < MaxNo_Menu ; ++i ) { gotoxy ( xpos , ypos [ i ] ); textattr ( 12 ); printf ( "%s" , menu_list [ i ] ); } i = 0; while ( 1 ) { gotoxy ( xpos , ypos [ i ] ); textattr ( 16 ); printf ( "%s" , menu_list [ i ] ); switch ( _getch ( ) ) { case 72: if ( i > 0 ) { gotoxy ( xpos , ypos [ i ] ); textattr ( 14 ); printf ( "%s" , menu_list [ i ] ); --i; } break; case 80: if ( i < MaxNo_Menu - 1 ) { gotoxy ( xpos , ypos [ i ] ); textattr ( 14 ); printf ( "%s" , menu_list [ i ] ); ++i; } break; case 13: if ( i == 0 ) { system ( "cls" ); Insere_Amigo ( j ); } if ( i == 1 ) { system ( "cls" ); Lista_Amigos ( j ); } if ( i == 2 ) { system ( "cls" ); Remove_Amigo ( j ); } if ( i == 3 ) { system ( "cls" ); Alterar_Amigo ( j ); } if ( i == 4 ) { system ( "cls" ); Funcexit ( ); } break; } } } int main ( void ) { system ( "title PROGRAMA CADASTRO DE AMIGOS" ); int j = 0; for ( i = 1; i <= 7 ; i++ ) { amigo [ i ].cod = '\0'; amigo [ i ].nome [ 0 ] = '\0'; amigo [ i ].apelido [ 0 ] = '\0'; amigo [ i ].idade = '\0'; amigo [ i ].telefone [ 0 ] = '\0'; } MenuPrimcipal ( j ); }
  9. Quando você estiver bem avançado em javaFX, seus programas precisaram conter mais de uma janela, isto porque as informações passadas ao usuário, serão muitas para serem exibidas em uma só. Pensando nisto, criei este programa que contém três janelas diferentes, num belo designer e com imagens no fundo. As janelas são chamadas por botões, e nada impede os mais experientes em java e que tenham bons conhecimentos em javaFx, editar e modificar este programa para adequá-lo as sua pretensões. Veja abaixo imagens do programa em execução: Veja abaixo um vídeo com o funcionamento do programa: Veja abaixo o código do programa: import java.io.FileInputStream; import java.io.FileNotFoundException; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Group; import javafx.scene.Node; import javafx.scene.Scene; import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; import javafx.scene.control.Button; import javafx.scene.effect.DropShadow; import javafx.stage.Stage; import javafx.scene.paint.Color; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.Pane; import javafx.scene.text.Font; import javafx.scene.text.FontPosture; import javafx.scene.text.FontWeight; import javafx.scene.text.Text; import javafx.application.Application; import javafx.scene.effect.*; class Janela_3 { PROJETO pro = new PROJETO ( ); Pane root = new Pane ( ); Scene scene = new Scene ( root, 600, 320 ); Canvas canvas = new Canvas ( 600, 320 ); GraphicsContext ctx = canvas.getGraphicsContext2D ( ); Button btn_1 = new Button ( "1" ); Button btn_2 = new Button ( "2" ); Text t_1 = new Text ( ); Text t_2 = new Text ( ); Text t_3 = new Text ( ); DropShadow ds = new DropShadow ( ); Group g = new Group ( ); // ///////////////////////////////////////////////////////////////////////// public Node Mensagem_1 ( ) { t_1.setFont ( Font.font ( null, FontWeight.BOLD, 26 ) ); String Msg = "Programa criado por: "; ds.setOffsetY ( 3.0f ); ds.setColor ( Color.color ( 0.4f, 0.4f, 0.4f ) ); t_1.setEffect ( ds ); t_1.setCache ( true ); t_1.setX ( 180.0f ); t_1.setY ( 190.0f ); t_1.setFill ( Color.BLUE ); t_1.setText ( Msg ); g.setCache ( true ); g.setEffect ( new Bloom ( ) ); g.getChildren ( ).add ( t_1 ); return g; } // ///////////////////////////////////////////////////////////////////////// public Node Mensagem_2 ( ) { t_2.setFont ( Font.font ( null, FontWeight.BOLD, 26 ) ); String Msg = "SAMUEL LIMA"; ds.setOffsetY ( 3.0f ); ds.setColor ( Color.color ( 0.4f, 0.4f, 0.4f ) ); t_2.setEffect ( ds ); t_2.setCache ( true ); t_2.setX ( 225.0f ); t_2.setY ( 230.0f ); t_2.setFill ( Color.BLACK ); t_2.setText ( Msg ); g.setCache ( true ); g.setEffect ( new Bloom ( ) ); g.getChildren ( ).add ( t_2 ); return g; } // ///////////////////////////////////////////////////////////////////////// public Node Mensagem_3 ( ) { String Msg = "MUITO OBRIGADO"; t_3.setFont ( Font.font ( null, FontWeight.BOLD, 26 ) ); ds.setOffsetY ( 3.0f ); ds.setColor ( Color.color ( 0.4f, 0.4f, 0.4f ) ); t_3.setEffect ( ds ); t_3.setCache ( true ); t_3.setX ( 200.0f ); t_3.setY ( 270.0f ); t_3.setFill ( Color.RED ); t_3.setText ( Msg ); g.setCache ( true ); g.setEffect ( new Bloom ( ) ); g.getChildren ( ).add ( t_3 ); return g; } // ///////////////////////////////////////////////////////////////////////// public Node Button_1 ( Stage stage ) { btn_1.setPrefWidth ( 20 );// Largura do botão btn_1.setLayoutX ( 267 );// Posição do botão coluna btn_1.setPrefHeight ( 20 );// altura do botão btn_1.setLayoutY ( 280 );// //Posição do botão linha btn_1.setStyle ( "-fx-padding: 1;" + "-fx-border-style: solid inside;" + "-fx-border-width: 2;" + "-fx-border-insets: 1;" + "-fx-border-radius: 1;" + "-fx-border-color: blue;" + "-fx-font-style: italic;" + "-fx-font-family: Consolas;" ); btn_1.setOnAction ( new EventHandler < ActionEvent > ( ) { @Override public void handle ( ActionEvent event ) { //System.exit ( 0 ); try { pro.start ( stage ); } catch ( FileNotFoundException e ) { // TODO Auto-generated catch block e.printStackTrace(); } } } ); return btn_1; } // ///////////////////////////////////////////////////////////////////////// public Node Button_2 ( Stage stage ) { btn_2.setPrefWidth ( 20 );// Largura do botão btn_2.setLayoutX ( 300 );// Posição do botão coluna btn_2.setPrefHeight ( 20 );// altura do botão btn_2.setLayoutY ( 280 );// //Posição do botão linha btn_2.setStyle ( "-fx-padding: 1;" + "-fx-border-style: solid inside;" + "-fx-border-width: 2;" + "-fx-border-insets: 1;" + "-fx-border-radius: 1;" + "-fx-border-color: blue;" + "-fx-font-style: italic;" + "-fx-font-family: Consolas;"); btn_2.setOnAction ( new EventHandler < ActionEvent > ( ) { @Override public void handle ( ActionEvent event ) { try { new Janela_2 ( stage ); } catch ( FileNotFoundException e ) { // TODO Auto-generated catch block e.printStackTrace(); } } } ); return btn_2; } // ///////////////////////////////////////////////////////////////////////// Janela_3 ( Stage stage ) throws FileNotFoundException { // Usando fonte em italic ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD, FontPosture.ITALIC, 15 ) ); //stage.setTitle ( "JAVAFX - NAVEGANDO ENTRE JANELAS" ); //Criando moldura e dando efeitos root.setStyle ( "-fx-padding: 5;" + "-fx-border-style: solid inside;" + "-fx-border-width: 10;" + "-fx-border-insets: 5;" + "-fx-border-radius: 5;" + "-fx-border-color: blue;"); ctx.setFill ( Color.RED ); ctx.fillText ( "JAVAFX - NAVEGANDO ENTRE JANELAS", 170, 40 ); Button_1 ( stage ); Button_2 ( stage ); Mensagem_1 ( ); Mensagem_2 ( ); Mensagem_3 ( ); Image imagem = new Image ( new FileInputStream ( "H:\\eclipse luna_two\\" + "PROJETO\\PROJETO\\src\\" + "Foto\\java_5.png" ) ); ImageView imageView = new ImageView ( imagem ); imageView.setX ( 150 ); imageView.setY ( 35 ); imageView.setFitHeight ( 600 ); imageView.setFitWidth ( 325 ); imageView.setPreserveRatio ( true ); root.getChildren ( ).add ( imageView ); root.getChildren ( ).addAll ( canvas, btn_1, btn_2, g ); stage.setScene ( scene ); stage.show ( ); } } //////////////////////////////////////////////////////////////////////////////// class Janela_2 { PROJETO pro = new PROJETO ( ); Pane root = new Pane ( ); Scene scene = new Scene ( root, 600, 320 ); Canvas canvas = new Canvas ( 600, 320 ); GraphicsContext ctx = canvas.getGraphicsContext2D ( ); Button btn_1 = new Button ( "1" ); Button btn_2 = new Button ( "3" ); // ///////////////////////////////////////////////////////////////////////// public Node Button_1 ( Stage stage ) { btn_1.setPrefWidth ( 20 );// Largura do botão btn_1.setLayoutX ( 267 );// Posição do botão coluna btn_1.setPrefHeight ( 20 );// altura do botão btn_1.setLayoutY ( 280 );// //Posição do botão linha btn_1.setStyle ( "-fx-padding: 1;" + "-fx-border-style: solid inside;" + "-fx-border-width: 2;" + "-fx-border-insets: 1;" + "-fx-border-radius: 1;" + "-fx-border-color: blue;" + "-fx-font-style: italic;" + "-fx-font-family: Consolas;"); btn_1.setOnAction ( new EventHandler < ActionEvent > ( ) { @Override public void handle ( ActionEvent event ) { //System.exit ( 0 ); try { pro.start ( stage ); } catch ( FileNotFoundException e ) { // TODO Auto-generated catch block e.printStackTrace(); } } } ); return btn_1; } // ///////////////////////////////////////////////////////////////////////// public Node Button_2 ( Stage stage ) { btn_2.setPrefWidth ( 20 );// Largura do botão btn_2.setLayoutX ( 300 );// Posição do botão coluna btn_2.setPrefHeight ( 20 );// altura do botão btn_2.setLayoutY ( 280 );// //Posição do botão linha btn_2.setStyle ( "-fx-padding: 1;" + "-fx-border-style: solid inside;" + "-fx-border-width: 2;" + "-fx-border-insets: 1;" + "-fx-border-radius: 1;" + "-fx-border-color: blue;" + "-fx-font-style: italic;" + "-fx-font-family: Consolas;"); btn_2.setOnAction ( new EventHandler < ActionEvent > ( ) { @Override public void handle ( ActionEvent event ) { try { new Janela_3 ( stage ); } catch ( FileNotFoundException e ) { // TODO Auto-generated catch block e.printStackTrace(); } } } ); return btn_2; } // ///////////////////////////////////////////////////////////////////////// Janela_2 ( Stage stage ) throws FileNotFoundException { // Usando fonte em italic ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD, FontPosture.ITALIC, 15 ) ); //stage.setTitle ( "JAVAFX - NAVEGANDO ENTRE JANELAS" ); //Criando moldura e dando efeitos root.setStyle ( "-fx-padding: 5;" + "-fx-border-style: solid inside;" + "-fx-border-width: 10;" + "-fx-border-insets: 5;" + "-fx-border-radius: 5;" + "-fx-border-color: darkgreen;"); ctx.setFill ( Color.RED ); ctx.fillText ( "JAVAFX - NAVEGANDO ENTRE JANELAS", 170, 40 ); Button_1 ( stage ); Button_2 ( stage ); Image imagem = new Image ( new FileInputStream ( "H:\\eclipse luna_two\\" + "PROJETO\\PROJETO\\src\\" + "Foto\\java_2.png" ) ); ImageView imageView = new ImageView ( imagem ); imageView.setX ( 130 ); imageView.setY ( 40 ); imageView.setFitHeight ( 600 ); imageView.setFitWidth ( 325 ); imageView.setPreserveRatio ( true ); root.getChildren ( ).add ( imageView ); root.getChildren ( ).addAll ( canvas, btn_1, btn_2 ); stage.setScene ( scene ); stage.show ( ); } } //////////////////////////////////////////////////////////////////////////////// public class PROJETO extends Application { Button btn_1 = new Button ( "2" ); Button btn_2 = new Button ( "3" ); Canvas canvas = new Canvas ( 600, 320 ); GraphicsContext ctx = canvas.getGraphicsContext2D ( ); Pane ro_ot = new Pane ( ); Scene sce_ne = new Scene ( ro_ot, 600, 320 ); // ///////////////////////////////////////////////////////////////////////// public void Informe ( ) { ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 13 ) ); ctx.setFill ( Color.RED ); ctx.fillText ( "Por: ", 250, 275 ); ctx.setFill ( Color.BLUE ); ctx.fillText ( "Samuel Lima", 280, 275 ); ctx.setFill ( Color.BLACK ); ctx.fillText ( "sa_sp10@hotmail.com", 250, 290 ); } // //////////////////////////////////////////////////////////////////////// public Node Button_2 ( Stage stage ) { btn_2.setPrefWidth ( 20 );// Largura do botão btn_2.setLayoutX ( 300 );// Posição do botão coluna btn_2.setPrefHeight ( 20 );// altura do botão btn_2.setLayoutY ( 280 );// //Posição do botão linha btn_2.setStyle ( "-fx-padding: 1;" + "-fx-border-style: solid inside;" + "-fx-border-width: 2;" + "-fx-border-insets: 1;" + "-fx-border-radius: 1;" + "-fx-border-color: blue;" + "-fx-font-style: italic;" + "-fx-font-family: Consolas;"); btn_2.setOnAction ( new EventHandler < ActionEvent > ( ) { @Override public void handle ( ActionEvent event ) { try { new Janela_3 ( stage ); } catch ( FileNotFoundException e ) { // TODO Auto-generated catch block e.printStackTrace(); } } } ); return btn_2; } // ///////////////////////////////////////////////////////////////////////// public Node Button_1 ( Stage stage ) { btn_1.setPrefWidth ( 20 );// Largura do botão btn_1.setLayoutX ( 267 );// Posição do botão coluna btn_1.setPrefHeight ( 20 );// altura do botão btn_1.setLayoutY ( 280 );// //Posição do botão linha btn_1.setStyle ( "-fx-padding: 1;" + "-fx-border-style: solid inside;" + "-fx-border-width: 2;" + "-fx-border-insets: 1;" + "-fx-border-radius: 1;" + "-fx-border-color: blue;" + "-fx-font-style: italic;" + "-fx-font-family: Consolas;"); btn_1.setOnAction ( new EventHandler < ActionEvent > ( ) { @Override public void handle ( ActionEvent event ) { //System.exit ( 0 ); try { new Janela_2 ( stage ); } catch ( FileNotFoundException e ) { // TODO Auto-generated catch block e.printStackTrace(); } } } ); return btn_1; } // ///////////////////////////////////////////////////////////////////////// public void start ( Stage stage ) throws FileNotFoundException { // Usando fonte em italic ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD, FontPosture.ITALIC, 15 ) ); stage.setTitle ( "JAVAFX - NAVEGANDO ENTRE JANELAS" ); //Criando moldura e dando efeitos ro_ot.setStyle ( "-fx-padding: 5;" + "-fx-border-style: solid inside;" + "-fx-border-width: 10;" + "-fx-border-insets: 5;" + "-fx-border-radius: 5;" + "-fx-border-color: pink;"); ctx.setFill ( Color.RED ); ctx.fillText ( "JAVAFX - NAVEGANDO ENTRE JANELAS", 170, 40 ); Button_1 ( stage ); Button_2 ( stage ); Image imagem = new Image ( new FileInputStream ( "H:\\eclipse luna_two\\" + "PROJETO\\PROJETO\\src\\" + "Foto\\java_4.png" ) ); ImageView imageView = new ImageView ( imagem ); imageView.setX ( 80 ); imageView.setY ( -35 ); imageView.setFitHeight ( 900 ); imageView.setFitWidth ( 625 ); imageView.setPreserveRatio ( true ); ro_ot.getChildren ( ).add ( imageView ); ro_ot.getChildren ( ).addAll ( canvas, btn_1, btn_2 ); stage.setScene ( sce_ne ); stage.show ( ); } // ///////////////////////////////////////////////////////////////////////// public static void main ( String [ ] args ) { Application.launch ( args ); } }
  10. Há poucos dias passados postei por aqui um link de um programa que havíamos criado para converter de decimal para romanos, e o programa foi bem recebido pela comunidade. Mas para iniciantes o código se tornou complicado, a classe criada é difícil de se entender, então usando nossa habilidade, editei o programa: "Javafx - de decimal para cardinais", criado por mim mesmo e transformei num conversor de decimal para romanos, e ficou bem mais simples de entender. O textfielde está configurado para receber números menores que 10000, e caracteres e strings ele jamais aceita, e esta cadeia de ifs usados de propósito por mim podem ser substituída de uma forma elegante pelo operador ternário do java, mas os iniciantes não o entendem tão rápido, então, preferi fazê-lo assim, aproveitem o código, para estudos, copiem cole e compile. Veja abaixo uma imagem do programa em execução: Veja abaixo o código do programa: import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; import javafx.scene.paint.Color; import javafx.scene.text.Font; import javafx.scene.text.FontWeight; import javafx.stage.Stage; import javafx.scene.input.KeyCode; import javafx.scene.layout.Pane; import javafx.event.EventHandler; import javafx.scene.control.TextField; import javafx.geometry.Insets; import javafx.scene.layout.HBox; import javafx.scene.input.KeyEvent; import java.util.function.UnaryOperator; import javafx.scene.control.TextFormatter; import javafx.scene.control.TextFormatter.Change; public class PROJETO extends Application { static StringBuilder Card = new StringBuilder ( ); static Pane root = new Pane ( ); static Canvas canvas = new Canvas ( 620, 350 ); static GraphicsContext ctx = canvas.getGraphicsContext2D ( ); static Scene scene = new Scene ( root, 620, 350, Color.WHITE ); static TextField textField_1 = new TextField ( ); static HBox hbox_1 = new HBox ( textField_1 ); public static int n = 0, un, de, ce, mi; //////////////////////////////////////////////////////////////////////////// public static void Informe ( ) { ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 13 ) ); ctx.setFill ( Color.RED ); ctx.fillText ( "Por: ", 250, 305 ); ctx.setFill ( Color.BLUE ); ctx.fillText ( "Samuel Lima", 280, 305 ); ctx.setFill ( Color.BLACK ); ctx.fillText ( "MUITO OBRIGADO", 250, 320 ); } // ///////////////////////////////////////////////////////////////////////// public static void FuncUnidade ( ) { if ( un == 1 ) { Card.append ( "I" ); ctx.fillText ( " " + Card, 180, 250 ); } if ( un == 2 ) { Card.append ( "II" ); ctx.fillText ( " " + Card, 180, 250 ); } if ( un == 3 ) { Card.append ( "III" ); ctx.fillText ( " " + Card, 180, 250 ); } if ( un == 4 ) { Card.append ( "IV" ); ctx.fillText ( " " + Card, 180, 250 ); } if ( un == 5 ) { Card.append ( "V" ); ctx.fillText ( " " + Card, 180, 250 ); } if ( un == 6 ) { Card.append ( "VI" ); ctx.fillText ( " " + Card, 180, 250 ); } if ( un == 7 ) { Card.append ( "VII" ); ctx.fillText ( " " + Card, 180, 250 ); } if ( un == 8 ) { Card.append ( "VIII" ); ctx.fillText ( " " + Card, 180, 250 ); } if ( un == 9 ) { Card.append ( "IX" ); ctx.fillText ( " " + Card, 180, 250 ); } } /////////////////////////////////////////////////////////////////////////// public static void Cardinais ( String args ) { ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) ); // Coluna, linha, comprimento, altura ctx.clearRect ( 170, 70, 400, 250 ); Card = new StringBuilder ( ); mi = ( n / 1000 ); //separa centenas ce = ( ( n - ( mi * 1000 ) ) / 100 ); //separa dezenas de = ( ( n - ( ( mi * 1000 ) + ( ce * 100 ) ) ) / 10 ); //separa unidades un = ( n - ( ( mi * 1000 ) + ( ce * 100 ) + ( de * 10 ) ) ); ctx.setFill ( Color.BLUE ); ctx.fillText ( "voce digitou: ", 180, 80 ); ctx.setFill ( Color.RED ); ctx.fillText ( mi + " " + ce + " " + de + " " + un + "", 270, 80 ); ctx.setFill ( Color.BLUE ); ctx.fillText ( "Separando por grupo temos: ", 180, 110 ); mi = mi * 1000; ce = ce * 100; de = de * 10; un = un * 1; ctx.setFill ( Color.BLUE ); ctx.fillText ( "Milhar", 180, 140 ); ctx.setFill ( Color.RED ); ctx.fillText ( mi / 1000 + " ", 260, 140 ); ctx.setFill ( Color.BLUE ); ctx.fillText ( "Centenas", 180, 160 ); ctx.setFill ( Color.RED ); ctx.fillText ( ce / 100 + " ", 260, 160 ); ctx.setFill ( Color.BLUE ); ctx.fillText ( "Dezenas", 180, 180 ); ctx.setFill ( Color.RED ); ctx.fillText ( de / 10 + " ", 260, 180 ); ctx.setFill ( Color.BLUE ); ctx.fillText ( "Unidades", 180, 200 ); ctx.setFill ( Color.RED ); ctx.fillText ( un / 1 + " ", 260, 200 ); ctx.setFill ( Color.BLUE ); ctx.fillText ( "Em romanos: ", 180, 230 ); Informe ( ); ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 16 ) ); ctx.setFill ( Color.BLACK ); if ( mi == 9000 ) { if ( ce == 0 && de == 0 && un == 0 ) { Card.append ( "MMMMMMMMM" ); ctx.fillText ( " " + Card, 180, 250 ); } else { Card.append ( "MMMMMMMMM" ); ctx.fillText ( " " + Card, 180, 250 ); } } if ( mi == 8000 ) { if ( ce == 0 && de == 0 && un == 0 ) { Card.append ( "MMMMMMMM" ); ctx.fillText ( " " + Card, 180, 250 ); } else { Card.append ( "MMMMMMMM" ); ctx.fillText ( " " + Card, 180, 250 ); } } if ( mi == 7000 ) { if ( ce == 0 && de == 0 && un == 0 ) { Card.append ( "MMMMMMM" ); ctx.fillText ( " " + Card, 180, 250 ); } else { Card.append ( "MMMMMMM" ); ctx.fillText ( " " + Card, 180, 250 ); } } if ( mi == 6000 ) { if ( ce == 0 && de == 0 && un == 0 ) { Card.append ( "MMMMMM" ); ctx.fillText ( " " + Card, 180, 250 ); } else { Card.append ( "MMMMMM" ); ctx.fillText ( " " + Card, 180, 250 ); } } if ( mi == 5000 ) { if ( ce == 0 && de == 0 && un == 0 ) { Card.append ( "MMMMM" ); ctx.fillText ( " " + Card, 180, 250 ); } else { Card.append ( "MMMMM" ); ctx.fillText ( " " + Card, 180, 250 ); } } if ( mi == 4000 ) { if ( ce == 0 && de == 0 && un == 0 ) { Card.append ( "MMMM" ); ctx.fillText ( " " + Card, 180, 250 ); } else { Card.append ( "MMMM" ); ctx.fillText ( " " + Card, 180, 250 ); } } if ( mi == 3000 ) { if ( ce == 0 && de == 0 && un == 0 ) { Card.append ( "MMM" ); ctx.fillText ( " " + Card, 180, 250 ); } else { Card.append ( "MMM" ); ctx.fillText ( " " + Card, 180, 250 ); } } if ( mi == 2000 ) { if ( ce == 0 && de == 0 && un == 0 ) { Card.append ( "MM" ); ctx.fillText ( " " + Card, 180, 250 ); } else { Card.append ( "MM" ); ctx.fillText ( " " + Card, 180, 250 ); } } if ( mi == 1000 ) { if ( ce == 0 && de == 0 && un == 0 ) { Card.append ( "M" ); ctx.fillText ( " " + Card, 180, 250 ); } else { Card.append ( "M" ); ctx.fillText ( " " + Card, 180, 250 ); } } if ( ce == 900 ) { if ( de == 0 && un == 0 ) { Card.append ( "CM" ); ctx.fillText ( " " + Card, 180, 250 ); } else Card.append ( "CM" ); ctx.fillText ( " " + Card, 180, 250 ); } if ( ce == 800 ) { if ( de == 0 && un == 0 ) { Card.append ( "DCCC" ); ctx.fillText ( " " + Card, 180, 250 ); } else Card.append ( "DCCC" ); ctx.fillText ( " " + Card, 180, 250 ); } if ( ce == 700 ) { if ( de == 0 && un == 0 ) { Card.append ( "DCC" ); ctx.fillText ( " " + Card, 180, 250 ); } else Card.append ( "DCC" ); ctx.fillText ( " " + Card, 180, 250 ); } if ( ce == 600 ) { if ( de == 0 && un == 0 ) { Card.append ( "DC" ); ctx.fillText ( " " + Card, 180, 250 ); } else Card.append ( "DC" ); ctx.fillText ( " " + Card, 180, 250 ); } if ( ce == 500 ) { if ( de == 0 && un == 0 ) { Card.append ( "D" ); ctx.fillText ( " " + Card, 180, 250 ); } else Card.append ( "D" ); ctx.fillText ( " " + Card, 180, 250 ); } if ( ce == 400 ) { if ( de == 0 && un == 0 ) { Card.append ( "CD" ); ctx.fillText ( " " + Card, 180, 250 ); } else Card.append ( "CD" ); ctx.fillText ( " " + Card, 180, 250 ); } if ( ce == 300 ) { if ( de == 0 && un == 0 ) { Card.append ( "CCC" ); ctx.fillText ( " " + Card, 180, 250 ); } else Card.append ( "CCC" ); ctx.fillText ( " " + Card, 180, 250 ); } if ( ce == 200 ) { if ( de == 0 && un == 0 ) { Card.append ( "CC" ); ctx.fillText ( " " + Card, 180, 250 ); } else Card.append ( "CC" ); ctx.fillText ( " " + Card, 180, 250 ); } if ( ce == 100 ) { if ( de == 0 && un == 0 ) { Card.append ( "C" ); ctx.fillText ( " " + Card, 180, 250 ); } else Card.append ( "C" ); ctx.fillText ( " " + Card, 180, 250 ); } if ( de == 20 ) { if ( de == 0 || un == 0 ) { Card.append ( "XX" ); ctx.fillText ( " " + Card, 180, 250 ); } else Card.append ( "XX" ); ctx.fillText ( " " + Card, 180, 250 ); FuncUnidade ( ); main ( args ); } if ( de == 30 ) { if ( de == 0 || un == 0 ) { Card.append ( "XXX" ); ctx.fillText ( " " + Card, 180, 250 ); } else Card.append ( "XXX" ); ctx.fillText ( " " + Card, 180, 250 ); FuncUnidade ( ); main ( args ); } if ( de == 40 ) { if ( de == 0 || un == 0 ) { Card.append ( "XL" ); ctx.fillText ( " " + Card, 180, 250 ); } else Card.append ( "XL" ); ctx.fillText ( " " + Card, 180, 250 ); FuncUnidade ( ); main ( args ); } if ( de == 50 ) { if ( de == 0 || un == 0 ) { Card.append ( "L" ); ctx.fillText ( " " + Card, 180, 250 ); } else Card.append ( "L" ); ctx.fillText ( " " + Card, 180, 250 ); FuncUnidade ( ); main ( args ); } if ( de == 60 ) { if ( de == 0 || un == 0 ) { Card.append ( "LX" ); ctx.fillText ( " " + Card, 180, 250 ); } else Card.append ( "LX" ); ctx.fillText ( " " + Card, 180, 250 ); FuncUnidade ( ); main ( args ); } if ( de == 70 ) { if ( de == 0 || un == 0 ) { Card.append ( "LXX" ); ctx.fillText ( " " + Card, 180, 250 ); } else Card.append ( "LXX" ); ctx.fillText ( " " + Card, 180, 250 ); FuncUnidade ( ); main ( args ); } if ( de == 80 ) { if ( de == 0 || un == 0 ) { Card.append ( "LXXX" ); ctx.fillText ( " " + Card, 180, 250 ); } else Card.append ( "LXXX" ); ctx.fillText ( " " + Card, 180, 250 ); FuncUnidade ( ); main ( args ); } if ( de == 90 ) { if ( de == 0 || un == 0 ) { Card.append ( "XC" ); ctx.fillText ( " " + Card, 180, 250 ); } else Card.append ( "XC" ); ctx.fillText ( " " + Card, 180, 250 ); FuncUnidade ( ); main ( args ); } if ( un == 1 ) { if ( de == 0 || un == 0 ) { Card.append ( "I" ); ctx.fillText ( " " + Card, 180, 250 ); main ( args ); } else Card.append ( "XI" ); ctx.fillText ( " " + Card, 180, 250 ); main ( args ); } if ( un == 2 ) { if ( de == 0 || un == 0 ) { Card.append ( "II" ); ctx.fillText ( " " + Card, 180, 250 ); main ( args ); } else Card.append ( "XII" ); ctx.fillText ( " " + Card, 180, 250 ); main ( args ); } if ( un == 3 ) { if ( de == 0 || un == 0 ) { Card.append ( "III" ); ctx.fillText ( " " + Card, 180, 250 ); main ( args ); } else Card.append ( "XIII" ); ctx.fillText ( " " + Card, 180, 250 ); main ( args ); } if ( un == 4 ) { if ( de == 0 || un == 0 ) { Card.append ( "IV" ); ctx.fillText ( " " + Card, 180, 250 ); main ( args ); } else Card.append ( "XIV" ); ctx.fillText ( " " + Card, 180, 250 ); main ( args ); } if ( un == 5 ) { if ( de == 0 || un == 0 ) { Card.append ( "V" ); ctx.fillText ( " " + Card, 180, 250 ); main ( args ); } else Card.append ( "XV" ); ctx.fillText ( " " + Card, 180, 250 ); main ( args ); } if ( un == 6 ) { if ( de == 0 || un == 0 ) { Card.append ( "VI" ); ctx.fillText ( " " + Card, 180, 250 ); main ( args ); } else Card.append ( "XVI" ); ctx.fillText ( " " + Card, 180, 250 ); main ( args ); } if ( un == 7 ) { if ( de == 0 || un == 0 ) { Card.append ( "VII" ); ctx.fillText ( " " + Card, 180, 250 ); main ( args ); } else Card.append ( "XVII" ); ctx.fillText ( " " + Card, 180, 250 ); main ( args ); } if ( un == 8 ) { if ( de == 0 || un == 0 ) { Card.append ( "VIII " ); ctx.fillText ( " " + Card, 180, 250 ); main ( args ); } else Card.append ( "XVIII " ); ctx.fillText ( " " + Card, 180, 250 ); main ( args ); } if ( un == 9 ) { if ( de == 0 || un == 0 ) { Card.append ( "IX" ); ctx.fillText ( " " + Card, 180, 250 ); main ( args ); } else Card.append ( "XIX" ); ctx.fillText ( " " + Card, 180, 250 ); main ( args ); } if ( de == 10 ) { if ( de == 0 || un == 0 ) { Card.append ( "X" ); ctx.fillText ( " " + Card, 180, 250 ); main ( args ); } } } // ///////////////////////////////////////////////////////////////////////// public static void limitTextField ( TextField textField, int limit ) { UnaryOperator < Change > textLimitFilter = change -> { if ( change.isContentChange ( ) ) { int newLength = change.getControlNewText ( ).length ( ); if ( newLength > limit ) { String trimmedText = change.getControlNewText ( ) .substring ( 0, limit ); change.setText ( trimmedText ); int oldLength = change.getControlText ( ).length ( ); change.setRange ( 0, oldLength ); } } return change; }; textField.setTextFormatter ( new TextFormatter < Object > ( textLimitFilter ) ); } // ///////////////////////////////////////////////////////////////////////// public static int Pesquisa ( String args ) { hbox_1.setPadding ( new Insets ( 290, 0, 10, 170 ) ); // Abaixo ajustamos o total de colunas do TextField textField_1.setPrefColumnCount ( 4 ); textField_1.setPromptText ( "pesq" ); ctx.setFont ( Font.font ( "Tahoma", FontWeight.NORMAL, 12 ) ); ctx.setFill ( Color.BLACK ); ctx.fillText ( "Número", 170, 280 ); textField_1.setOnKeyPressed ( new EventHandler < KeyEvent > ( ) { @Override public void handle ( KeyEvent event ) { limitTextField ( textField_1, 4 ); if ( event.getCode ( ) == KeyCode.ENTER ) { ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 13 ) ); ctx.setFill ( Color.BLUE ); // convertendo string para inteiro n = Integer.parseInt ( textField_1.getText ( ) ); if ( Integer.parseInt ( textField_1.getText ( ) ) >= 0 && Integer.parseInt ( textField_1.getText ( ) ) < 10000 ) { Cardinais ( args ); } } } } ); root.getChildren ( ).add ( hbox_1 ); return 0; } // //////////////////////////////////////////////////////////////////////// public void start ( Stage stage ) { String args = ""; ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 15 ) ); stage.setTitle ( "JAVAFX - DE DECIMAL PARA ROMANOS II" ); //Criando moldura e dando efeitos root.setStyle ( "-fx-padding: 5;" + "-fx-border-style: solid inside;" + "-fx-border-width: 15;" + "-fx-border-insets: 5;" + "-fx-border-radius: 5;" + "-fx-border-color: black;" + "-fx-background: pink;"); ctx.setFill ( Color.RED ); ctx.fillText ( "JAVAFX - DE DECIMAL PARA ROMANOS II", 180, 50 ); ctx.setFill ( Color.BLACK ); ctx.fillText ( "Digite um número decimal", 180, 80 ); Pesquisa ( args ); stage.setScene ( scene ); root.getChildren ( ).addAll ( canvas ); stage.show ( ); } // ///////////////////////////////////////////////////////////////////////// public static void main ( String args ) { launch ( args ); } }
  11. Quando estava me sentindo que sabia programar em Linguagem C, já relachando, e perdendo aos poucos o entusiasmo pela linguagem, resolvi criar uma Lista Encadeada simples, e pra minha surrprêsa tive muitas dificuldades, e a bola muchou. Passei um fim de semana lindo e ensolarado preso neste código, e pra ser bem sincero, tive pena de postar na época que criei, más resolvi postar, pois o que sei em programação aprendi mais na marra, estudando outros códigos do que por teorias intermináveis sobre o assunto. Na verdade, Lista Encadeada em Linguagem C, não é difícil de criar, e nem de implementar, porém não é fácil de entender e mais ainda de explicar. Confira a eficiência desta lista em todas as funções, aliás ela é toda baseada em funções, que facilitam os interessados no assunto. Como sempre criado no eclipse, onde rodou sem nenhum warnings. Veja abaixo uma imagem do programa em execução: Veja abaixo o código do programa: #include <stdio.h> #include <conio.h> #include <string.h> #define TRUE 1 int resp, opc; int i = 0; char lista [ 100 ]; struct ListaEncadeada { char nome [ 100 ]; struct ListaEncadeada *liga; }; typedef ListaEncadeada ListEnc; int insere ( char ins_nome [ 100 ] ); void imprime ( ); void inserindo ( ); void Mostra ( ); void Excluindo ( ); void Elementos ( ); int exclui ( char ins_nome [ 100 ] ); ListEnc *Lista; ListEnc *Primeiro; void Janela ( ) { int c, l; for ( c = 3; c <= 78 ; c++ ) { gotoxy ( c , 1 ); printf ( "%c" , 205 ); gotoxy ( c , 4 ); printf ( "%c" , 205 ); } gotoxy ( 2 , 1 ); printf ( "%c" , 201 ); gotoxy ( 79 , 1 ); printf ( "%c" , 187 ); gotoxy ( 79 , 4 ); printf ( "%c" , 188 ); gotoxy ( 2 , 4 ); printf ( "%c" , 200 ); for ( l = 2; l <= 3 ; l++ ) { gotoxy ( 2 , l ); printf ( "%c" , 186 ); gotoxy ( 79 , l ); printf ( "%c" , 186 ); } for ( c = 3; c <= 78 ; c++ ) { for ( l = 2; l <= 3 ; l++ ) { gotoxy ( c , l ); printf ( "%c" , 177 ); } } for ( c = 3; c <= 78 ; c++ ) { gotoxy ( c , 5 ); printf ( "%c" , 205 ); gotoxy ( c , 25 ); printf ( "%c" , 205 ); } gotoxy ( 2 , 5 ); printf ( "%c" , 201 ); gotoxy ( 79 , 5 ); printf ( "%c" , 187 ); gotoxy ( 79 , 25 ); printf ( "%c" , 188 ); gotoxy ( 2 , 25 ); printf ( "%c" , 200 ); gotoxy ( 2 , 8 ); printf ( "%c" , 204 ); gotoxy ( 79 , 8 ); printf ( "%c" , 185 ); for ( l = 9; l <= 24 ; l++ ) { gotoxy ( 2 , l ); printf ( "%c" , 186 ); gotoxy ( 79 , l ); printf ( "%c" , 186 ); } for ( l = 6; l <= 7 ; l++ ) { gotoxy ( 2 , l ); printf ( "%c" , 186 ); gotoxy ( 79 , l ); printf ( "%c" , 186 ); } for ( c = 3; c <= 78 ; c++ ) { gotoxy ( c , 8 ); printf ( "%c" , 205 ); } for ( c = 5; c <= 25 ; c++ ) { gotoxy ( c + 25 , 9 ); printf ( "%c" , 205 ); gotoxy ( c + 25 , 24 ); printf ( "%c" , 205 ); } gotoxy ( 29 , 9 ); printf ( "%c" , 201 ); gotoxy ( 51 , 9 ); printf ( "%c" , 187 ); gotoxy ( 51 , 24 ); printf ( "%c" , 188 ); gotoxy ( 29 , 24 ); printf ( "%c" , 200 ); for ( l = 10; l <= 23 ; l++ ) { gotoxy ( 29 , l ); printf ( "%c" , 186 ); gotoxy ( 51 , l ); printf ( "%c" , 186 ); } } int main ( ) { system ( "title PROGRAMA LISTA ENCADEADA" ); do { system ( "cls" ); Janela ( ); textcolor ( LIGHTCYAN ); gotoxy ( 30 , 3 ); printf ( "PROGRAMA LISTA ENCADEADA" ); textcolor ( LIGHTBLUE ); gotoxy ( 30 , 7 ); printf ( "ESCOLHA UMA OPCAO ABAIXO" ); textcolor ( YELLOW ); gotoxy ( 35 , 11 ); printf ( "1 - INSERIR" ); gotoxy ( 35 , 13 ); printf ( "2 - LISTAR" ); gotoxy ( 35 , 15 ); printf ( "3 - EXCLUIR" ); gotoxy ( 35 , 17 ); printf ( "4 - ELEMENTOS" ); gotoxy ( 35 , 19 ); printf ( "5 - SAIR" ); gotoxy ( 35 , 21 ); textcolor ( LIGHTRED ); scanf ( "%d" , &opc ); fflush ( stdin ); if ( opc == 1 ) { system ( "cls" ); inserindo ( ); } if ( opc == 2 ) { Mostra ( ); } if ( opc == 3 ) { Excluindo ( ); } if ( opc == 4 ) { Elementos ( ); } if ( opc == 5 ) { textcolor ( LIGHTRED ); gotoxy ( 34 , 21 ); printf ( "MUITO OBRIGADO" ); Sleep ( 1800 ); exit ( 0 ); } else { textcolor ( LIGHTRED ); gotoxy ( 34 , 21 ); printf ( "\a OPCAO ERRADA" ); Sleep ( 800 ); } } while ( 1 ); } void inserindo ( ) { textcolor ( LIGHTRED ); gotoxy ( 30 , 3 ); printf ( "PROGRAMA LISTA ENCADEADA" ); textcolor ( LIGHTBLUE ); gotoxy ( 30 , 5 ); printf ( "INSERINDO ITENS" ); textcolor ( LIGHTGREEN ); gotoxy ( 30 , 7 ); printf ( "NOME DO ITEM A SER INSERIDO: " ); textcolor ( LIGHTRED ); gets ( lista ); fflush ( stdin ); resp = insere ( lista ); if ( resp == TRUE ) { textcolor ( LIGHTCYAN ); gotoxy ( 30 , 9 ); printf ( "%s ITEM INSERIDO COM SUCESSO" , lista ); i++; } getche ( ); main ( ); } void Mostra ( ) { system ( "cls" ); textcolor ( LIGHTRED ); gotoxy ( 30 , 3 ); printf ( "PROGRAMA LISTA ENCADEADA" ); textcolor ( LIGHTBLUE ); gotoxy ( 30 , 5 ); printf ( "ELEMENTOS DA LISTA" ); printf ( "\n\n\t\t" ); imprime ( ); getche ( ); main ( ); } void Excluindo ( ) { system ( "cls" ); do { textcolor ( LIGHTRED ); gotoxy ( 30 , 3 ); printf ( "PROGRAMA LISTA ENCADEADA" ); textcolor ( LIGHTBLUE ); gotoxy ( 30 , 5 ); printf ( "ELEMENTOS DA LISTA" ); printf ( "\n\n\t\t" ); imprime ( ); textcolor ( LIGHTCYAN ); gotoxy ( 30 , 17 ); printf ( "ESCOLHA UM PARA SER EXCLUIDO" ); gotoxy ( 30 , 19 ); textcolor ( LIGHTRED ); gets ( lista ); fflush ( stdin ); resp = exclui ( lista ); if ( resp == TRUE ) { textcolor ( YELLOW ); gotoxy ( 30 , 21 ); printf ( "%s EXCLUIDO COM SUCESSO" , lista ); i--; getche ( ); main ( ); } else { textcolor ( YELLOW ); gotoxy ( 30 , 21 ); printf ( "\aNAO EXISTE ESTE ITEM NA LISTA" ); } getche ( ); system ( "cls" ); } while ( 1 ); } void Elementos ( ) { system ( "cls" ); textcolor ( LIGHTRED ); gotoxy ( 30 , 3 ); printf ( "PROGRAMA LISTA ENCADEADA" ); textcolor ( LIGHTBLUE ); gotoxy ( 30 , 5 ); printf ( "ELEMENTOS DA LISTA" ); printf ( "\n\n\t\t" ); imprime ( ); textcolor ( LIGHTCYAN ); gotoxy ( 30 , 17 ); printf ( "QUANTIDADE DE ELEMENTOS" ); textcolor ( YELLOW ); gotoxy ( 30 , 19 ); printf ( "%d ELEMENTOS" , i ); getche ( ); main ( ); } int insere ( char Nome_Palavra [ 100 ] ) { ListEnc *Aux; ListEnc *Analisa_lista; Aux = ( ListEnc * ) malloc ( sizeof ( ListEnc ) ); if ( Aux == NULL ) { return ( 0 ); } else { strcpy ( Aux->nome , Nome_Palavra ); Aux->liga = NULL; if ( Lista != NULL ) { if ( Primeiro != NULL ) { Aux->liga = Primeiro; Lista = Aux; Analisa_lista = Primeiro; if ( stricmp ( Lista->nome , Primeiro->nome ) > 0 ) { Aux = Primeiro; Analisa_lista = Primeiro->liga; while ( ( Analisa_lista != NULL ) && ( ( ( stricmp ( Lista->nome , Analisa_lista->nome ) ) > 0 ) ) ) { Aux = Analisa_lista; Analisa_lista = Analisa_lista->liga; } Lista->liga = Analisa_lista; Aux->liga = Lista; } else { Primeiro = Lista; } } else { if ( stricmp ( Aux->nome , Lista->nome ) > 0 ) { Lista->liga = Aux; Primeiro = Lista; Lista = Aux; } if ( stricmp ( Aux->nome , Lista->nome ) < 0 ) { Aux->liga = Lista; Lista = Aux; Primeiro = Lista; } } } else { Lista = Aux; } } return ( 1 ); } void imprime ( ) { ListEnc *Aux; if ( Lista == NULL ) { textcolor ( LIGHTGREEN ); gotoxy ( 30 , 7 ); printf ( "\aA LISTA ESTA VAZIA" ); Sleep ( 1800 ); main ( ); } else { if ( Primeiro == NULL ) { Aux = Lista; textcolor ( LIGHTGREEN ); printf ( "%s" , Aux->nome ); } else { Lista = Primeiro; Aux = Lista; while ( Aux != NULL ) { printf ( "%s\n\t\t" , Aux->nome ); Aux = Aux->liga; } } } } int exclui ( char stringnome [ 100 ] ) { ListEnc *Aux; ListEnc *Repl = 0; int Testa_Compara; if ( Lista == NULL ) { return ( 0 ); } else { if ( Primeiro == NULL ) { Aux = Lista; Testa_Compara = stricmp ( Aux->nome , stringnome ); if ( Testa_Compara == 0 ) { free ( Aux ); Lista = NULL; return ( 1 ); } else { return ( 0 ); } } else { Lista = Primeiro; Aux = Lista; while ( Aux != NULL ) { Testa_Compara = stricmp ( Aux->nome , stringnome ); if ( Testa_Compara == 0 ) { if ( Aux == Primeiro ) { if ( Aux->liga == NULL ) { free ( Aux ); Lista = NULL; return ( 1 ); } else { Primeiro = Aux->liga; free ( Aux ); return ( 1 ); } } else { Repl->liga = Aux->liga; free ( Aux ); return ( 1 ); } } else { Repl = Aux; Aux = Aux->liga; } } return ( 0 ); } return ( 1 ); } }
  12. Alguns dias sem programar em java e já estou com saudades. Que coisa linda é o JavaFX, poderosa biblioteca do java para criação de programas com janelas gráficas ricas em detalhes e requintes. O JavaFX vai muito além disto, querem saber? comecem a pesquisar agora mesmo e se surpreenda com todos os seus poderos recursos. Mas o que chama mais atenção é o grau de facilidade no aprendizado, para quem já tem bons conhecimentos na parte lógica do java, ou ´para quem está migrando de outras linguagens. Mas o mundo é assim, estou satisfeito com o que sei em java, C/C++, pro momento e devo alcançar outros mares. Não temos muito o que dizer sobre a classe pública Polygon, que se extende da classe Shape, mas o essencial: Ela cria um polígono definido por um array de coordenadas, e estas coordenadas, são aplicadas aos parâmetros do polígono, tais como: largura, altura, ou desvio em graus para que se chegue a um ideal. Aqui estamos criando dois triângulos, e colocando um ao oposto do outro de tal maneira que os dois se transformem numa única figura, "A Estrela de Davi". Veja abaixo uma imagem do programa em execução: Veja abaixo o código do programa: import java.io.FileNotFoundException; import javafx.scene.shape.Polygon; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; import javafx.scene.paint.Color; import javafx.scene.text.Font; import javafx.scene.text.FontPosture; import javafx.scene.text.FontWeight; import javafx.scene.transform.Rotate; import javafx.stage.Stage; import javafx.scene.layout.Pane; public class PROJETO extends Application { Pane root = new Pane ( ); Canvas canvas = new Canvas ( 600, 310 ); GraphicsContext ctx = canvas.getGraphicsContext2D ( ); Scene scene = new Scene ( root, 600, 310, Color.WHITE ); Polygon tr_1 = new Polygon ( ); Polygon tr_2 = new Polygon ( ); // criando a transformação de rotação Rotate rotate_1 = new Rotate ( ); Rotate rotate_2 = new Rotate ( ); // ///////////////////////////////////////////////////////////////////////// public void Informe ( ) { ctx.setFont ( Font.font ( "Arial", FontWeight.NORMAL, 13 ) ); ctx.setFill ( Color.RED ); ctx.fillText ( "Por: ", 50, 230 ); ctx.setFill ( Color.BLUE ); ctx.fillText ( "Samuel Lima", 80, 230 ); ctx.setFill ( Color.BLACK ); ctx.fillText ( "sa_sp10@hotmail.com", 50, 245 ); ctx.setFill ( Color.RED ); ctx.fillText ( " MUITO OBRIGADO", 250, 280 ); } // ///////////////////////////////////////////////////////////////////////// public void start ( Stage stage ) throws FileNotFoundException { stage.setTitle ( "JAVAFX - DESENHANDO A ESTRELA DE DAVI" ); ctx.setFont ( Font.font ( "Helvetica", FontWeight.BOLD, FontPosture.ITALIC, 15 ) ); // Criando moldura e dando efeitos root.setStyle ( "-fx-padding: 5;" + "-fx-border-style: solid inside;" + "-fx-border-width: 10;" + "-fx-border-insets: 5;" + "-fx-border-radius: 5;" + "-fx-border-color: red;" ); tr_1.getPoints ( ).addAll ( new Double [ ] { 0.0, 0.0, 15.0, 170.0, 170.0, 90.0, } ); tr_2.getPoints ( ).addAll ( new Double [ ] { 22.0, 0.0, 0.0, 170.0, 170.0, 90.0, } ); ctx.setFill ( Color.RED ); ctx.fillText ( "JAVAFX - DESENHANDO A ESTRELA DE DAVI", 145, 40 ); tr_1.setFill ( Color.TRANSPARENT ); // Localização - coluna tr_1.setLayoutX ( 94 ); // Localização - linha tr_1.setLayoutY ( 52 ); tr_1.setTranslateX ( 122 ); tr_1.setTranslateY ( 60 ); // Definindo o ângulo para a rotação rotate_1.setAngle ( -28 ); tr_1.setStyle ( " -fx-stroke: blue;" + " -fx-stroke-width: 10;" ); // Adicionando a rotação ao triângulo tr_1.getTransforms ( ).addAll ( rotate_1 ); // ///////////////////////////////////////////////////////////////////// // Localização - coluna tr_2.setLayoutX ( 166 ); // Localização - linha tr_2.setLayoutY ( 34 ); tr_2.setTranslateX ( 122 ); tr_2.setTranslateY ( 20 ); tr_2.setFill ( Color.TRANSPARENT ); // Definindo o ângulo para a rotação rotate_2.setAngle ( 25 ); tr_2.setStyle ( " -fx-stroke: blue;" + " -fx-stroke-width: 10;" ); // Adicionando a rotação ao triângulo tr_2.getTransforms ( ).addAll ( rotate_2 ); // ////////////////////////////////////////////////////////////////////// // Informe ( ); stage.setScene ( scene ); root.getChildren ( ).addAll ( canvas, tr_1, tr_2 ); stage.show ( ); } // ///////////////////////////////////////////////////////////////////////// public static void main ( String args ) { launch ( args ); } }
  13. Conjunto interseção são os elementos comuns entre conjuntos relacionados. Dados dois conjuntos A e B, chama-se conjunto diferença ou diferença entre A e B o conjunto formado pelos elementos de A que não pertencem a B. Conjunto união são todos os elementos dos conjuntos relacionados. Acompanhe mais no site abaixo: http://www.brasilescola.com/matematica/operacoes-com-conjuntos.htm Partindo destas informações criei este programa, em Linguagem C aplicando as lógicas necessárias para seu funcionamento. Veja algumas imagens do programa em execução: Veja abaixo o código do programa: #include <stdio.h> #include <conio.h> #define tam 5 void got_color ( int tam_lin_ini, int tam_lin_fim, int tam_ini_col, int tam_fim_col, int a, int b ) { int i, c; if ( a >= 1 && a <= 16 ) { textcolor ( a ); } if ( b >= 1 && b <= 16 ) { textbackground ( b ); } for ( i = tam_lin_ini; i < tam_lin_fim; i++ ) { for ( c = tam_ini_col; c < tam_fim_col; c++ ) { gotoxy ( c, i ); printf ( " " ); } } } int main ( void ) { // Interseccao e difereca entre vetores int V = 10; system ( "title INTERSECÇÃO UNIÃO E DIFERENÇA ENTRE VETORES" ); system ( "cls" ); int a = 0, i, j = 0, k = 0, h = 0, aux = 0, auxin = 0, vezes, temp; int Vetor [ tam ], Vet_or [ tam ], Vet [ tam ], Ve_t [ tam ], Vet_o_r [ tam ]; for ( i = 0; i < tam; i++ ) { got_color ( 2, 25, 3, 79, 2, 15 ); textcolor ( LIGHTRED ); gotoxy ( 19, 3 ); printf ( "INTERSECÇÃO UNIÃO E DIFERENÇA ENTRE VETORES" ); textcolor ( LIGHTBLUE ); gotoxy ( 32, 5 ); printf ( "Preenchendo o vetor A" ); textcolor ( LIGHTBLUE ); gotoxy ( 19, 7 ); printf ( "Informe o " ); textcolor ( LIGHTRED ); printf ( "%do", i + 1 ); textcolor ( LIGHTBLUE ); printf ( " número para o vetor A " ); textcolor ( LIGHTRED ); scanf ( "%d", &Vetor [ i ] ); fflush ( stdin ); } for ( i = 0; i < tam; i++ ) { clrscr ( ); system ( "Color C6" ); got_color ( 2, 25, 3, 79, 2, 15 ); textcolor ( LIGHTRED ); gotoxy ( 19, 3 ); printf ( "INTERSECÇÃO UNIÃO E DIFERENÇA ENTRE VETORES" ); textcolor ( LIGHTBLUE ); gotoxy ( 32, 5 ); printf ( "Preenchendo o vetor B" ); textcolor ( LIGHTBLUE ); gotoxy ( 19, 7 ); printf ( "Informe o " ); textcolor ( LIGHTRED ); printf ( "%do", i + 1 ); textcolor ( LIGHTBLUE ); printf ( " número para o vetor B " ); textcolor ( LIGHTRED ); scanf ( "%d", &Vet_or [ i ] ); fflush ( stdin ); } clrscr ( ); system ( "Color B5" ); got_color ( 2, 25, 3, 79, 2, 15 ); textcolor ( LIGHTRED ); gotoxy ( 19, 3 ); printf ( "INTERSECÇÃO UNIÃO E DIFERENÇA ENTRE VETORES" ); textcolor ( LIGHTBLUE ); gotoxy ( 25, 5 ); printf ( "Abaixo os dois vetores preenchidos" ); textcolor ( LIGHTBLUE ); gotoxy ( 29, 7 ); printf ( "Vetor A " ); textcolor ( LIGHTRED ); gotoxy ( 29, 9 ); for ( i = 0; i < tam; i++ ) { printf ( " %d ", Vetor [ i ] ); } getche ( ); textcolor ( LIGHTBLUE ); gotoxy ( 29, 11 ); printf ( "Vetor B " ); textcolor ( LIGHTRED ); gotoxy ( 29, 13 ); for ( j = 0; j < tam; j++ ) { printf ( " %d ", Vet_or [ j ] ); Vet_o_r [ a ] = Vet_or [ j ]; a++; } getche ( ); i = 0; aux = 0; auxin = 0; for ( i = 0; i < tam; i++ ) { for ( j = 0; j < tam; j++ ) { if ( Vetor [ i ] != Vet_or [ j ] ) { auxin++; } } if ( auxin == tam ) { Ve_t [ aux ] = Vetor [ i ]; } else { Ve_t [ aux ] = 0; } aux++; auxin = 0; } textcolor ( LIGHTBLUE ); gotoxy ( 20, 15 ); printf ( "Abaixo, a diferença entre os dois vetores " ); textcolor ( LIGHTRED ); gotoxy ( 29, 17 ); for ( i = 0; i < tam; i++ ) { if ( Ve_t [ i ] != 0 ) { printf ( " %i ", Ve_t [ i ] ); } } getche ( ); for ( i = 0; i < tam; i++ ) { Vet [ i ] = Vetor [ i ]; Vet [ i + 5 ] = Vet_or [ i ]; } for ( i = 0; i <= V; i++ ) { vezes = 1; j = i + 1; while ( j <= V ) if ( Vet [ j ] != Vet [ i ] ) j++; else { vezes++; V--; Vet [ j ] = Vet [ V + 1 ]; } } for ( i = 0; i <= V; i++ ) { temp = i; aux = Vet [ i ]; for ( j = ( i + 1 ); j <= V; j++ ) if ( Vet [ j ] <= aux ) { temp = j; aux = Vet [ temp ]; Vet [ temp ] = Vet [ i ]; Vet [ i ] = aux; } } textcolor ( LIGHTBLUE ); gotoxy ( 20, 19 ); printf ( "Abaixo, a união dos dois vetores já ordenados" ); textcolor ( LIGHTRED ); gotoxy ( 16, 21 ); for ( i = 0; i <= V; i++ ) printf ( " %d ", Vet [ i ] ); textcolor ( BLACK ); gotoxy ( 31, 23 ); printf ( "PRESSIONE QUALQUER TECLA " ); getche ( ); clrscr ( ); system ( "Color 10" ); got_color ( 2, 25, 3, 79, 2, 15 ); textcolor ( LIGHTRED ); gotoxy ( 19, 3 ); printf ( "INTERSECÇÃO UNIÃO E DIFERENÇA ENTRE VETORES" ); textcolor ( LIGHTBLUE ); gotoxy ( 25, 5 ); printf ( "Abaixo os dois vetores preenchidos" ); textcolor ( LIGHTBLUE ); gotoxy ( 29, 7 ); printf ( "Vetor A " ); textcolor ( LIGHTRED ); gotoxy ( 29, 9 ); for ( i = 0; i < tam; i++ ) { printf ( " %d ", Vetor [ i ] ); } getche ( ); textcolor ( LIGHTBLUE ); gotoxy ( 29, 11 ); printf ( "Vetor B " ); textcolor ( LIGHTRED ); gotoxy ( 29, 13 ); for ( a = 0; a < tam; a++ ) { printf ( " %d ", Vet_o_r [ a ] ); } getche ( ); for ( i = 0; i < tam; i++ ) { for ( j = 0; j < tam; j++ ) { if ( Vetor [ i ] == Vet_o_r [ j ] ) { Vet [ h ] = Vet_o_r [ j ]; h++; } } } textcolor ( LIGHTBLUE ); gotoxy ( 23, 15 ); printf ( "Números comuns entre os dois Vetores " ); textcolor ( LIGHTRED ); gotoxy ( 29, 17 ); k = h; if ( k == 0 ) { textcolor ( LIGHTGREEN ); printf ( " Vetores distintos" ); } for ( h = 0; h < k; h++ ) printf ( " %i ", Vet [ h ] ); /* textcolor ( LIGHTBLUE ); gotoxy ( 17, 19 ); printf ( "Por: " ); textcolor ( LIGHTMAGENTA ); printf ( "Samuel Lima" ); textcolor ( BLACK ); gotoxy ( 17, 20 ); printf ( "sa_sp10@hotmail.com" ); Sleep ( 1800 ); */ textcolor ( LIGHTRED ); gotoxy ( 36, 23 ); printf ( "MUITO OBRIGADO" ); getche ( ); exit ( 0 ); }
  14. Mesmo não sendo originalmente orientado a objetos, O C possui diversas bibliotecas gráficas criadas por terceiros com a finalidade de proporcionar, maior facilidade no aprendizado da linguagem. Todos devem entender que é praticamente impossível criar programas mais complexos para serem exibidos na tela do dos. Se o estudante de linguagem C não procurar meios de usar estas bibliotecas e ficar sempre preso na telinha preta, pode ter certeza que seus conhecimentos serão limitados, por não haver meios de progredir. Minha indicação é começar usando a conio, para formatações dos textos na saída do vídeo, e depois de um bom conhecimento, migrar para uma das várias bibliotecas gráficas disponível. O programa que apresento aqui, faz uso da biblioteca graphics.h, para utilização do mouse, cores e posicionamento na janela, esta biblioteca possui muitas outras funções mas para a criação do nosso menu não se fez necessário. Veja abaixo algumas imagens do programa em execução: Veja abaixo o código programa: #include <graphics.h> int menu_um; void imp_jan ( int x, int y, int lin, int col, int n ) { for ( int i = 0; i <= n; i++ ) { line ( x + i, y, x + i, y + lin ); line ( x + col + i, y, x + col + i, y + lin ); line ( x, y + i, x + col, y + i ); line ( x, y + i + lin, x + col + n, y + i + lin ); } } int main ( ); void menu_1 ( ) { clearviewport ( ); setcolor ( LIGHTGREEN ); imp_jan ( 1, 96 * 1 - 97, 383, 583, 20 ); settextstyle ( 0, 0, 13 ); settextstyle ( GOTHIC_FONT, 0, 2 ); setcolor ( 12 ); outtextxy ( 110, 40, "MENU CLICKES DO MOUSE"); settextstyle ( SIMPLEX_FONT, 0, 1 ); setcolor ( LIGHTBLUE ); outtextxy ( 130, 70, "BEM VINDO AO MENU 1"); getch ( ); closegraph ( ); main ( ); } void menu_2 ( ) { clearviewport ( ); setcolor ( LIGHTBLUE ); imp_jan ( 1, 96 * 1 - 97, 383, 583, 20 ); settextstyle ( 0, 0, 13 ); settextstyle ( GOTHIC_FONT, 0, 2 ); setcolor ( 12 ); outtextxy ( 110, 40, "MENU CLICKES DO MOUSE"); settextstyle ( SIMPLEX_FONT, 0, 1 ); setcolor ( LIGHTBLUE ); outtextxy ( 130, 70, "BEM VINDO AO MENU 2"); getch ( ); closegraph ( ); main ( ); } void menu_3 ( ) { clearviewport ( ); setcolor ( LIGHTRED ); imp_jan ( 1, 96 * 1 - 97, 383, 583, 20 ); settextstyle ( 0, 0, 13 ); settextstyle ( GOTHIC_FONT, 0, 2 ); setcolor ( 12 ); outtextxy ( 110, 40, "MENU CLICKES DO MOUSE"); settextstyle ( SIMPLEX_FONT, 0, 1 ); setcolor ( LIGHTBLUE ); outtextxy ( 130, 70, "BEM VINDO AO MENU 3"); getch ( ); closegraph ( ); main ( ); } void use_mouse ( ) { if ( ismouseclick ( WM_LBUTTONDOWN ) ) { int x_clicked, y_clicked; getmouseclick ( WM_LBUTTONDOWN, x_clicked, y_clicked ); if ( ( 90 <= x_clicked ) && ( x_clicked <= 120 ) ) { if ( ( 131 <= y_clicked ) && ( y_clicked <= 141 ) ) menu_um= 1; else if ( ( 161 <= y_clicked ) && ( y_clicked <= 181 ) ) menu_um = 2; else if ( ( 191 <= y_clicked ) && ( y_clicked <= 211 ) ) menu_um = 3; else if ( ( 221 <= y_clicked ) && ( y_clicked <= 241 ) ) menu_um = 4; } else menu_um = -1; } if ( ismouseclick ( WM_LBUTTONDBLCLK ) ) { clearmouseclick ( WM_LBUTTONDBLCLK ); if ( menu_um == 1 ) { menu_1 ( ); } if ( menu_um == 2 ) { menu_2 ( ); } if ( menu_um == 3 ) { menu_3 ( ); } if ( menu_um == 4 ) { clearviewport ( ); setcolor ( 0 ); imp_jan ( 1, 96 * 1 - 97, 383, 583, 20 ); settextstyle ( 0, 0, 13 ); settextstyle ( GOTHIC_FONT, 0, 2 ); setcolor ( 12 ); outtextxy ( 110, 40, "MENU CLICKES DO MOUSE"); settextstyle ( SIMPLEX_FONT, 0, 1 ); setcolor ( BROWN ); outtextxy ( 130, 280, "Por: " ); setcolor ( BLACK ); outtextxy ( 180, 280, "Samuel Lima" ); setcolor ( BLUE ); outtextxy ( 130, 300, "sa_sp10@hotmail.com" ); setcolor ( LIGHTRED ); outtextxy ( 200, 350, "MUITO OBRIGADO" ); getch ( ); exit ( 1 ); } } } void menu_principal ( ) { clearviewport ( ); setcolor ( GREEN ); imp_jan ( 1, 96 * 1 - 97, 383, 583, 20 ); settextstyle ( 0, 0, 13 ); settextstyle ( GOTHIC_FONT, 0, 2 ); setcolor ( 12 ); outtextxy ( 110, 40, "MENU CLICKES DO MOUSE"); settextstyle ( SIMPLEX_FONT, 0, 2 ); setcolor ( LIGHTBLUE ); outtextxy ( 130, 70, "Escolha uma opção abaixo"); settextstyle ( 0, 0, 13 ); setcolor ( LIGHTMAGENTA ); outtextxy ( 100, 131, "1 - " ); setcolor ( LIGHTBLUE ); outtextxy ( 150, 131, "Menu 1" ); setcolor ( LIGHTMAGENTA ); outtextxy ( 100, 161, "2 - " ); setcolor ( LIGHTBLUE ); outtextxy ( 150, 161, "Menu 2" ); setcolor ( LIGHTMAGENTA ); outtextxy ( 100, 191, "3 - " ); setcolor ( LIGHTBLUE ); outtextxy ( 150, 191, "Menu 3" ); setcolor ( LIGHTMAGENTA ); outtextxy ( 100, 221, "4 - " ); setcolor ( LIGHTBLUE ); outtextxy ( 150, 221, "Sair" ); while ( 1 ) { if ( !kbhit ( ) ) use_mouse ( ); } } int main ( ) { initwindow ( 603, 403, "MENU CLICKES DO MOUSE"); setbkcolor ( WHITE ); menu_principal ( ); closegraph ( ); }
  15. Tente esta constante: FROM_LEFT_1ST_BUTTON_PRESSED //Para pressionar o botão esquerdo do mouse Tente esta constante: RIGHTMOST_BUTTON_PRESSED //Para pressionar o botão direito do mouse Abra a biblioteca wincon.h, nesta biblioteca estão declarado estas opções e muitas outras. Ela é chamada pela windows.h, então você não precisa incluí-la. Só lembrando que você pode usar o mouse e todos os comandos dele no (CMD). Não vou me empenhar nisto agora porque não tenho tempo muita coisa pra fazer por aqui. Mas se ainda não conseguir, vou criar um post usando menu com uso de um único click.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×