Galera tenho um programa em C que não esta rodando alguem por favor me ajude, ate pago por ele rodando perfeitamente !!! Fale comigo !!! icq 128624084
O programa !!!
#include <string.h>
#include <conio.h>
#include <stdlib.h>
#include <ctype.h>
#include <math.h>
#include <dos.h>
#define FALSO 0
#define VERDADEIRO 1
#define br 32
#define cabtela " CADASTRO DE ATLETAS "
/**********************************/
/** Definições dos Tipos Globais **/
/**********************************/
taipedef char str2 [ 3],
str6 [ 7],
str12[13],
str20[21],
str25[26],
str40[41];
typdef struct
{
int codigo;
str25 nome;
str2 nacional;
float pobtidos;
} tm;
typedef tm tv[50];
/*******************************************/
/** Declaração dos protótipos das Funções **/
/*******************************************/
void DefinirCores (void);
void ImprimirTelaBasica( void );
void ImprimirMsg( int beep, int x, int y, char *msg );
void PressionarTecla( void );
int Confirma( int tam, str40 msg );
char *Maiuscula( str25 cadeia );
char *Completa( str25 cadeia, int tam );
void InicializarTabAtletas( str12 nomearq, int *ultimo, tv tab );
void MenuPrincipal( char* op );
void MenuListar( char *op );
void ImprimirTelaAtletas( int codigo );
void ExibirAtletas( tm atleta );
int LCod( void );
void ObterInclusao( tm *atleta, int *ultimo );
void IncluirAtletas( int *ultimo, tv tab );
void ObterAlteracao( tm *atleta );
void AlterarAtletas( int ultimo, tv tab );
void ConsultarAtletas( int ultimo, tv tab );
void CompletaZeroDireita (char chave1[], char chave2[]);
void OrdenarTatleta( int tipo, int ultimo, tv tatleta );
void ImprimirCabListagem( void );
void ImprimirTatleta( int ultimo, tm *tatleta );
void ListarAtletas( int ultimo, tv tatleta );
/***************************************************************************/
void LimparArea (int x, int y, int z, int w);
void ImprimirBorda(int x, int y, int z, int w);
void ImprimirLinha(char ch, int x, int y, char n);
/* ************************************/
/* ******** Programa Principal ********/
/* ************************************/
int main( int argc, char *argc[] )
{
if (argc == 3)
{
file *arq;
char op, nomearq[ 13 ];
integ ultimo=0;
tm tatleta[50];
/* float x = acos( 60 ); Floating Point Format not Linked */
DefinirCores();
ImprimirTelaBasica();
InicializarTabAtletas( argv[1], &ultimo, tatleta );
MenuPrincipal(&op);
while( op != 9 )
{
switch( op )
{
case '1':
IncluirAtletas( &ultimo, tatleta );
case '2':
AlterarAtletas( ultimo, tatleta );
case '3':
ExcluirAtletas( ultimo, tatleta );
case '4':
ConsultarAtletas( ultimo, tatleta );
case '5':
ListarAtletas( ultimo, tatleta );
case '9': break;
default:
ImprimirMsg( VERDADEIRO, 5, 22,
"Opcao invalida..." );
PressionarTecla();
break;
}
MenuPrincipal( &op );
}
GravarTabAtletas( argv[2], ultimo, tatleta );
textbackground( BLACK );
textcolor( WHITE );
clrscr();
printf ("Fim programa");
}
else
{
printf ("\n Erro nos Parametros ! Digite: prog file-in file-out");
}
}
/*
** Definição das Funções
*/
void ImprimirTelaBasica( void )
{
LimparArea( 5, 9, 50, 13 );
ImprimirBorda( 1, 1, 80, 3 );
ImprimirBorda( 1, 7, 80, 19 );
ImprimirBorda( 1, 20, 80, 24 );
ImprimirLinha( 219, 3, 2, 15 );
gotoxy( 30, 2 );
highvideo();
printf( cabtela );
lowvideo();
ImprimirData( 70, 1 );
}
void ImprimirMsg( int beep, int x, int y, char *msg )
{
gotoxy( x, y );
if( beep )
printf( "%c %s", 7, msg );
else
printf( msg );
}
void PressionarTecla( void )
{
ImprimirMsg( VERDADEIRO, 15, 22, "Pressione uma tecla para continuar..." );
getch();
LimparArea( 2, 11, 79, 20 );
}
int Confirma( int tam, str40 msg )
{
char resp;
gotoxy( 5, 22 );
printf( "%s", msg );
esp = toupper( getch() );
while( ( resp != 'S' ) && ( resp != 'N' ) )
{
gotoxy( 5 + tam, 22 );
printf( "%s", msg );
resp = toupper( getch() );
}
if( resp == 'S' )
return VERDADEIRO;
else
return FALSO;
}
char Maiuscula( str25 cadeia )
{
}
char *Completa( str25 cadeia, int tam )
{
int i;
for( i = ( strlen( cadeia ) + 1 ); i <= tam; i++ )
strcat( cadeia, " " );
return cadeia;
}
void NomeArquivo( str12 nomearq, str20 cabini )
{
LimparArea( 2, 5, 79, 18 );
LimparArea( 2, 21, 79, 23 );
gotoxy( 30, 4 );
printf( "%s", cabini );
gotoxy( 23, 10 );
highvideo();
printf( "Entre com o nome do arquivo < nome.ext >" );
lowvideo();
gotoxy( 35, 13 );
scanf( "%s", nomearq ); fflush (stdin);
PressionarTecla();
}
void InicializarTabAtletas( str12 nomearq, int *ultimo, tv tab )
{
FILE *arq;
char c;
int i = 0;
if ((arq = fopen( nomearq, "r" )) == NULL)
{
printf ("Erro na abertura do arquivo de entrada");
*ultimo = -1;
}
else
{
fscanf( arq, "%d", &tab[i].codigo );
while( tab[i].codigo != 0 )
{
fscanf( arq,"%c%25c%c%2c%f",&c,tab[i].nome,&c,tab[i].nacional,
&tab[i].pobtidos );
tab[i].nome[25] = '\0';
tab[i].nacional[2] = '\0';
i++;
fscanf( arq, "%d", &tab[i].codigo );
}
*ultimo = i - 1;
fclose( arq );
}
}
void GravarTabAtletas( str12 nomearq, int ultimo, tv tab )
{
FILE *arq;
int cod;
arq = fopen( nomearq, "w" );
for( cod = 0; cod <= ultimo; cod++ )
fprintf( arq, "%d%c%s%c%s%c%9.2f\n",
tab[cod].codigo, br,tab[cod].nome, br,
tab[cod].nacional, br, tab[cod].pobtidos );
fprintf( arq, "%s%c%s%c%s%c%f","0000",br,"xxxxxxxxxxxxxxxxxxxxxxxxx",
br,"xx",br,0.00 );
fclose( arq );
}
void MenuPrincipal( char * op )
{
LimparArea( 2, 5, 79, 18 );
LimparArea( 2, 22, 79, 23 );
gotoxy( 30, 4 );
printf( " MENU PRINCIPAL " );
gotoxy( 32, 8 );
highvideo();
lowvideo();
printf( " - Incluir Atleta" );
gotoxy( 32, 9 );
highvideo();
printf( "2" );
lowvideo();
printf( " - Alterar Atleta" );
gotoxy( 32, 10 );
highvideo();
printf( "3" );
lowvideo();
printf( " - Excluir Atleta" );
gotoxy( 32, 10 );
highvideo();
printf( "4" );
lowvideo();
printf( " - Consultar Atleta" );
gotoxy( 32, 12 );
highvideo();
printf( "5" );
lowvideo();
printf( " - Listar Atleta" );
gotoxy( 32, 15 );
highvideo();
printf( "9" );
lowvideo();
printf( " - Fim" );
gotoxy( 5, 17 );
ImprimirMsg( FALSO, 5, 12, "Escolha uma opcao: " );
*op = getch();
}
void ImprimirTelaAtletas( int codigo )
{
LimparArea( 2, 5, 79, 18 );
LimparArea( 2, 21, 79, 23 );
gotoxy( 24, 10 );
printf( "Codigo.........: %d", codigo );
gotoxy( 24, 12 );
printf( "Nome...........: " );
gotoxy( 24, 10 );
printf( "Nacionalidade..: " );
gotoxy( 24, 16 );
printf( "Pontos Obtidos.: " );
}
void ExibirAtletas( tm atleta)
{
gotoxy( 42, 12 );
printf( "%s", atleta.nome );
gotoxy( 42, 14 );
printf( "%s", atleta.nacional );
gotoxy( 42, 16 );
printf( "%9.2f", atleta.pobtidos );
}
int LCod( void )
{
int codigo = 0;
LimparArea( 2, 5, 79, 18 );
LimparArea( 2, 21, 79, 23 );
gotoxy( 22, 10 );
printf( "Entre com o Codigo do Atleta: " );
scanf( "%d", &codigo ); fflush (stdin);
return codigo;
}
void ObterInclusao( tm *atleta, int *ultimo )
{
atleta->codigo = *ultimo + 1;
gotoxy( 42, 12 );
gets( atleta->nome );
Completa( Maiuscula( atleta->nome ), 25 );
atleta->nome[25] = '\0';
gotoxy( 42, 12 );
printf( atleta->nome );
gotoxy( 42,14 );
gets( atleta->nacional );
Completa( Maiuscula( atleta->nacional ), 2 );
atleta->nacional[2] = '\0';
gotoxy( 42,14);
printf( atleta->nacional );
gotoxy( 42, 16 );
scanf( "%f", &atleta->pobtidos ); fflush (stdin);
gotoxy( 42, 16 );
printf( "%9.2f", atleta->pobtidos );
}
void IncluirAtletas( int * ultimo, tv tab )
{
do
{
gotoxy( 30, 9 );
printf( " I N C L U S A O " );
LimparArea( 2, 5, 79, 18 );
LimparArea( 2, 21, 79, 23 );
*ultimo= *ultimo;
ImprimirTelaAtletas( *ultimo + 1);
ObterInclusao(&tab [*ultimo], ultimo);
ExibirAtletas (tab [*ultimo] );
PressionarTecla();
}
while ( Confirma( 40, "Deseja incluir outro atleta (s/n)? " ) );
}
void ObterAlteracao( tm atleta )
{
str25 nomalt;
str2 nacalt;
str6 pobalt;
float pobalt1;
gotoxy(42,12);
gets(nomalt);
if( strlen( nomalt ) > 0 )
{
Completa( Maiuscula( nomalt ), 25 );
gotoxy( 42, 12 );
printf( "%s", nomalt );
}
gotoxy( 42, 14 );
gets(nacalt);
if( strlen( nacalt ) > 0 )
{
Completa( Maiuscula( nacalt ), 2 );
gotoxy( 42,14 );
printf( "%s", nacalt );
}
gotoxy( 42, 16 );
gets( pobalt );
if( pobalt > 0 )
pobalt1 = atof( pobalt );
gotoxy( 42, 16 );
printf( "%9.2f", pobalt1 );
if( Confirma( 40, "Dados Ok (s/n) ? " ) )
{
if( strlen( nomalt ) > 0 )
strcpy( atleta->nome, nomalt );
if( strlen( nacalt ) > 0 )
strcpy( atleta->nacional, nacalt );
if( strlen( pobalt ) > 0 )
atleta->pobtidos = pobalt1;
}
}
void AlterarAtletas( int ultimo, tv tab )
{
int codigo;
do
{
gotoxy( 30, 4 );
printf(" A L T E R A C A O ");
LimparArea( 2, 5, 79, 18 );
LimparArea( 2, 21, 79, 23 );
codigo = LCod();
if( ( codigo > 0 ) && ( (codigo-1) <= ultimo ) )
{
if( tab[ultimo].nome[1] != '*' )
{
ImprimirTelaAtletas( codigo );
ExibirAtletas( tab[codigo-1]);
ObterAlteracao( &tab[ codigo-1 ] );
}
else
{
ImprimirMsg( VERDADEIRO,5,22,"Atleta Excluido !" );
PressionarTecla();
}
}
else
{
ImprimirMsg( VERDADEIRO, 5, 20, "Atleta nao existe !" );
PressionarTecla();
}
}
while ( Confirma( 40, "Deseja alterar outro atleta(s/n) ? " ) );
}
void ExcluirAtletas( int ultimo, tv tab )
{
int codigo;
do
{
gotoxy( 30, 4 );
printf(" E X C L U S A O ");
LimparArea( 2, 5, 79, 18 );
LimparArea( 2, 21, 79, 23 );
codigo = LCod();
if( ( codigo > 0 ) && ( (codigo-1) <= ultimo ) )
{
if( tab[codigo-1].nome[0] != '*' )
{
ImprimirTelaAtletas( codigo );
ExibirAtletas( tab[codigo-1] );
if( Confirma( 31, "Confirma Exclusao (s/n) ? " ) )
tab[codigo-1].nome[0] = '*';
}
else
{
ImprimirMsg( VERDADEIRO, 5, 22,
"Atleta ja Excluido !" );
PressionarTecla();
}
}
else
{
ImprimirMsg( VERDADEIRO, 5, 22, "Atleta Nao Existe !" );
PressionarTecla();
}
}
while ( Confirma( 40, "Deseja excluir outro atleta (s/n) ? ") );
}
void ConsultarAtletas( int ultimo, tv tab )
{
int codigo;
do
{
gotoxy( 30, 4 );
printf( " C O N S U L T A " );
LimparArea( 2, 5, 79, 18 );
LimparArea( 2, 21, 79, 23 );
codigo = LCod();
if( ( codigo > 0 ) && ( (codigo-1) <= ultimo ) )
{
if( tab[ codigo-1 ].nome[ 0 ] != '*' )
{
ImprimirTelaAtletas( codigo );
ExibirAtletas( tab[ codigo-1 ] );
}
else
{
ImprimirMsg( VERDADEIRO, 5, 22, "Atleta Excluido !" );
PressionarTecla();
}
}
else
{
ImprimirMsg( VERDADEIRO, 5, 22, "Atleta Nao Existe !" );
PressionarTecla();
}
}
while ( Confirma(40, "Deseja consultar outro atleta (s/n) ? " ) );
}
void CompletaZeroDireita (char chave1[], char chave2[])
{
int i,j;
if (strlen(chave1)<strlen(chave2))
for (i=strlen(chave2),j=strlen(chave1); i>=0;i--, j--)
if (j>=0)
chave1[i]=chave1[j];
else
chave1[i]='0';
else
if (strlen(chave1)>strlen(chave2))
for (i=strlen(chave1),j=strlen(chave2); i>=0;i--, j--)
if (j>=0)
chave2[i]=chave2[j];
else
chave2[i]='0';
}
void OrdenarTatleta( int tipo, int ultimo, tv tatleta )
{
int m, k, n, tocou, dec, sign;
tm aux;
str25 chave1, chave2;
m = ultimo - 1;
k = m;
do
{
trocou = falso;
for( n = 0; n <= m; n++ )
{
suitch( tipo )
{
case 1:
itoa(tatleta[ n ].codigo,chave1,10);
itoa(tatleta[ n + 1 ].codigo,chave2,10);
CompletaZeroDireita (chave1, chave2)
break;
case 2:
strcpy( chave1, tatleta[ n ].nacional );
strcpy( chave2, tatleta[ n + 1 ].nacional );
break;
}
if (strcmp( chave1,chave2 ) > 0 )
{
aux = tatleta[ n ];
tatleta[ n ] = tatleta[ n + 1 ];
tatleta[ n + 1 ] = aux;
trocou = VERDADEIRO;
k = n;
}
}
m = k;
}
while( trocou );
if (tipo == 2)
{
m = ultimo - 1;
k = m;
do
{
trocou = FALSO;
for (n=0; n <= m; n++)
{
if (strcmp(tatleta[n].nacional,tatleta[n+1].nacional) == 0)
{
gcvt(tatleta[ n ].pobtidos, 9, chave1);
gcvt(tatleta[ n + 1 ].pobtidos, 9, chave2);
if (strcmp(chave1, chave2) < 0)
{
aux = tatleta[n];
tatleta[n] = tatleta[n+1];
tatleta[n+1] = aux;
trocou = VERDADEIRO;
k = n;
}
}
}
m = k;
} while ( trocou );
}
}
void ImprimirCabListagem( void )
{
highvideo();
gotoxy( 10, 6 );
printf( "CODIGO" );
gotoxy( 21, 6 );
printf( "NOME DO ATLETA");
gotoxy( 47, 8 );
printf( "PAIS");
gotoxy( 59, 6 );
printf( "PONTOS OBTIDOS" );
ImprimirLinha( '-', 8, 7, 73 );
lowvideo();
}
void ImprimirTatleta( int ultimo, tm *tatleta )
{
int i, vezes;
gotoxy( 30, 4 );
printf( " I M P R E S S A O " );
LimparArea( 2, 5, 79, 18 );
LimparArea( 2, 21, 79, 23 );
ImprimirCabListagem();
i = 0;
while( i <= ultimo )
{
LimparArea( 2, 8, 79, 18 );
vezes = 0;
while( ( i <= ultimo ) && ( vezes < 10 ) )
{
vezes++;
gotoxy( 10, 7 + vezes );
printf( "%4d%s%s%s%s%s%9.2f", tatleta[ i ].codigo,
" ", tatleta[ i ].nome, " ",
tatleta[i].nacional, " ",
tatleta[ i ].pobtidos );
i++;
}
PressionarTecla();
}
}
void ListarAtletas( int ultimo, tv tatleta )
{
OrdenarTatleta (2, ultimo, tatleta);
ImprimirTatleta(ultimo, tatleta);
OrdenarTatleta (1, ultimo, tatleta);
}
/* ************************************************************
** Funções destinadas a interface gráfica utilizadas (telas) **
** ************************************************************/
/*
** Funcão ImprimirData
** Imprimi a Data corrente do sistema
*/
void ImprimirData( int x, int y )
{
struct date data_sistema;
char *mes[] = { "Jan", "Fev", "Mar", "Abr", "Mai", "Jun",
"Jul", "Ago", "Set", "Out", "Nov", "Dez" };
getdate( &data_sistema );
gotoxy( x, y );
cprintf( "%d %s %d", data_sistema.da_day, mes[data_sistema.da_mon - 1 ],
data_sistema.da_year );
}
/*
** Função ImprimirLinha
** Preenche uma linha com uma sequencia de caracteres
*/
void ImprimirLinha( char ch, int x, int y, int n )
{
int i;
for( i = x; i <= n; i++ )
{
gotoxy( i, y );
cprintf( "%c", char );
}
}
/*
** Função ImprimirBorda
** Imprimi uma Borda na tela
*/
void ImprimirBorda( int x, int y, int z, int w )
{
int i;
gotoxy( x, y );
cprintf( "%c", 201 );
gotoxy( x, w );
cprintf( "%c", 200 );
gotoxy( z, y );
cprintf( "%c", 187 );
gotoxy( z, w );
cprintf( "%c", 188 );
for( i = ( x + 1 ); i <= ( z - 1 ); i++ )
{
gotoxy( i, y );
cprintf( "%c", 205 );
gotoxy( i, w );
cprintf( "%c", 205 );
}
for( i = ( y + 1 ); i <= ( w - 1 ); i++ )
{
gotoxy( x, i );
cprintf( "%c", 186 );
gotoxy( z, i );
cprintf( "%c", 186 );
}
}
/*
** Função LimparArea
** Limpa a Area corrente
*/
void LimparArea( int x, int y, int z, int w )
{
int i, j;
for( i = y; i <= w; i++ )
{
gotoxy( x, i );
for( j = x; j <= z; j++ )
cprintf( "%c", 32 );
}
}
/*
** Função DefinirCores
** Função que defini as cores do sistema
*/
void DefinirCores( void )
{
int corchar, corfun, i;
char c;
textbackground( WHITE );
clrscr();
textcolor( LIGHTBLUE );
ImprimirBorda( 1, 1, 80, 24 );
textcolor( RED );
gotoxy( 10, 3 );
cprintf( "ESCOLHA DE CORES PARA O PROGRAMA " );
textcolor( LIGHTBLUE );
gotoxy( 53, 4 );
cprintf( "FUNDO" );
ImprimirBorda( 50, 5, 60, 14 );
for( i = 0; i <= 7; i++ )
{
textbackground( i );
gotoxy( 51, 6 + i );
cprintf( " " );
textbackground( WHITE );
cprintf( "%3d", i );
}
gotoxy( 64, 4 );
cprintf( "CARACTER" );
ImprimirBorda( 63, 5, 73, 22 );
for( i = 0; i <= 15; i++ )
{
textcolor( i );
gotoxy( 64, 6 + i );
cprintf( "%c%c%c%c%c", 219, 219, 219, 219, 219 );
textcolor( LIGHTBLUE );
cprintf( "%3d", i );
}
gotoxy( 11, 7 );
cprintf( "Quer alterar as cores (s/n)?" );
c = toupper( getch() );
while( ( c != 'S' ) && ( c != 'N' ) )
{
gotoxy( 41, 7 );
cprintf( "%c", 7 );
c = toupper( getch() );
}
if( c = 'S' )
{
gotoxy( 17, 12 );
cprintf( "FUNDO : " );
cscanf( "%d", &corfun );
gotoxy( 17, 15 );
cprintf( "CARACTER: " );
cscanf( "%d", &corchar );
textbackground( corfun );
textcolor( corchar );
while (getch()!=13);
}
}

Ajudem-me é Urgente !
Started By mutant, 29/05/2004, 02:05
1 reply to this topic
#1
Posted 29/05/2004, 02:05
#2
Posted 29/05/2004, 10:02
Jamais poste mensagens com títulos como: "ME AJUDE!!!", "PELO AMOR DE DEUS, ESTOU DESESPERADO!!!", "SOCORRO!", "HELP!", ou qualquer coisa similar que não possua um título esclarecedor. Além de ser ridículo, isto fará com que a sua mensagem tenha menos visualizações, pois provavelmente os outros participantes já estarão fartos de ver títulos como este. Além disso, qualquer um dos moderadores poderá deletar sua mensagem, sem aviso prévio e você poderá ser advertido.
Leia as regras:
http://forum.wmonlin...?showtopic=8856
Na proxima seu tópico será fechado e você advertido.
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)