Jump to content
Neonglow

Ajuda em Linguagem C,

Recommended Posts

Neonglow

Preciso de fazer um programa em C para trabalho de recuperação de modular na escola, o tema e o tamanho é à minha escolha, apenas precisa de ter Arrays e Menus.

O problema é o seguinte:

- Já não trabalho com o C à muito tempo

- Estou sem ideias para o programa

Agradecia toda a ajuda que fosse possivel, seja uma ideia...seja algoritmo....um bocadinho de codigo já compilado....sei lá....................HELP ME PLZ :wallbash:

Obrigado

P.S. - O programa pode ser pequeno desde que tenha estas duas coisas, Arrays e Menus

Share this post


Link to post
Share on other sites
deathseeker25

Com menus e arrays....Não me parece que seja dificil. Os menus podes elaborar através de um switch, e os arrays é uma questão de reveres a matéria.

Quanto á parte gráfica não existem especificações?

Para arranjares um tema tambem não será assim muito complicado. Existem milhares de coisas que podes fazer com menus e arrays...

Cumps

Share this post


Link to post
Share on other sites
Gurzi

Bem vou te ajudar num tema que fiz á pouco tempo e adorei apesar de ter me custado muito a conseguir compreender como se fazia com a ajuda do Livro do Luis Damas.

Ora bem o resultado final que se pretende é um jogo do Galo.

Uma ideia para esse projecto é fazeres do tipo um Menu com uma área prática e outra com uma área de Lazer em que na área Prática fazes do tipo uma calculadora e na área de Lazer incluis o Jogo do Galo..

Agora Perguntas tu o que preciso de fazer para que o jogo do galo corra..

bem esta foi uma pergunta que sozinho demorei um pouco grande de tempo a entender porque no livro também não explicava e simplesmente comecei a pensar que sozinho nunca chegaria a tal pensamento para construir um algoritmo..

o que precisas é de construir 2 funçoes uma para inicializar o vector que terá que ser 3 por 3 devido ás 9 casas do jogo do galo e começas cada casa com o valor ' '(espaço em branco).

Constrois outra função para que consigas fazer o output da grelha de jogo .

Inicias a função main e fazes o processo para que o utilizador introduza o numero de coluna e de linha a introduzir o seu caracter de jogo..

uma dica: usa uma variavel char que armazene um caracter dos que são possiveis jogar, por exemplo a variavel ferramenta = 'X'  na proxima jogada o programa vai ver se (ferramenta=='X') ? 'O' : 'X' ou seja se a ultima vez que a pessoa jogou for um X entao obrigatoriamente quando o outro utilizador introduzir onde quer jogar , vai ser jogado uma bola..

espero ter ajudado, um abraço

Share this post


Link to post
Share on other sites
Neonglow

#include <stdio.h>
#include <conio.h>
#include <string.h>

#define NOME_FICH "c:\\Jogadores.rm"

char Arrnumeros[99];


void Moldura(int x, int y, int larg, int alt, int estilo, char *tit)
{
int i;
char cse, csd, cie, cid, l, a;

switch(estilo)
{
	case 2:
		   cse = 'É';
		   csd = '»';
		   cie = 'È';
		   cid = '¼';
		   l = 'Í';
		   a = 'º';
		   break;
	case 3:
		   cse = '*';
		   csd = '*';
		   cie = '*';
		   cid = '*';
		   l = '*';
		   a = '*';
		   break;
	case 4:
		   cse = 's';
		   csd = 's';
		   cie = 's';
		   cid = 's';
		   l = 's';
		   a = 's';
		   break;
	default:
			cse = 'Ú';
			csd = '¿';
			cie = 'À';
			cid = 'Ù';
			l = 'Ä';
			a = '³';
}

gotoxy(x,y); printf("%c",cse);
gotoxy(x+larg+1,y); printf("%c",csd);
gotoxy(x,y+alt+1); printf("%c",cie);
gotoxy(x+larg+1,y+alt+1); printf("%c",cid);

for(i=1;i<=larg;i++)
{
	gotoxy(x+i,y);printf("%c",l);
	gotoxy(x+i,y+alt+1); printf("%c",l);
}
for(i=1;i<=alt;i++)
{
	gotoxy(x,y+i);printf("%c",a);
	gotoxy(x+larg+1,y+i); printf("%c",a);
}
//escreve t¡tulo
gotoxy(x+larg/2-strlen(tit)/2,y);printf("%s",tit);
}


int menu()
{
int x, y,larg, alt, opc;

for(;
{
	clrscr();
	x = 20; y = 7; larg = 38; alt = 9;
	Moldura(x, y, larg, alt, 2, " Menu ");
	gotoxy(x+2,y+2); printf("1- Insere/Altera Jogador");
	gotoxy(x+2,y+3); printf("2- Ver Lista");
	gotoxy(x+2,y+4); printf("3- Procurar por numero");
	gotoxy(x+2,y+5); printf("4- About");
	gotoxy(x+2,y+6); printf("5- Gravar");
	gotoxy(x+2,y+7); printf("6- Sair");
	gotoxy(x+2,y+9); printf("OpcÆo: ");

	scanf("%d",&opc);
	if (opc >= 1 && opc <= 6) return opc;
}
}

void InsereJogador(void)
{
int num;
char nome[15];

clrscr();
printf("N§ do Jogador: ");
scanf("%d",&num);
printf("Nome do jogador %d: ",num);
scanf("%s",&nome);
Arrnumeros[num-1] = nome;
}


void VerLista(void)
{
int i;

clrscr();
for(i=0;i<99;i++)
{
	if (Arrnumeros[i] == -1)
	printf("Jogador n§%d:\n",i+1);
	else printf("Jogador n§%d: %d\n",i+1,Arrnumeros[i]);
}

printf("Qualquer tecla para continuar...");
getch();
}


void Procurarpornumero(void)
{
int num;
clrscr();
printf("Numero: ");
scanf("%d",&num);
clrscr();
printf("O jogador n§%d ‚ o: %s",num, Arrnumeros[num-1]);
printf("Caso nao tenha aparecido nenhum nome, o numero est  livre para ser attribuido a outro jogador");
}

void About(void)
{
clrscr();
printf("Programado por: F bio Silva");
getch();
}


int LerDadosDoFicheiro()
{
int i;
FILE *fp;

fp = fopen(NOME_FICH,"r");	//abre o ficheiro para leitura "r"
if (fp == NULL)
{
	printf("Erro na abertura do ficheiro %s!\n\n",NOME_FICH);
	printf("Qualquer tecla para continuar...");
	getch();
}
for(i=0;i<99;i++)
	fscanf(fp,"%d",&Arrnumeros[i]);
fclose(fp);

}


int GravarDadosParaFicheiro()
{
int i;
FILE *fp;

fp = fopen(NOME_FICH,"w");	//abre o ficheiro para escrita "w"
for(i=0;i<99;i++)
	fprintf(fp,"%d\n",Arrnumeros[i]);
fclose(fp);

}


void Init(void)
{
int i;
for(i=0;i<99;i++)
Arrnumeros[i] = -1;
}


void main(void)
{
int op, Alteracao=0, opc;

Init();

LerDadosDoFicheiro();

for(;
{
	clrscr();
	op = menu();
	switch(op)
	{
		case 1:	//Insere/Altera nota
				InsereJogador();
				Alteracao = 1;
				break;
		case 2:	//Ver nota
				VerLista();
				break;
		case 3:	//M‚dia
				Procurarpornumero();
				break;
		case 4:	//N§ de positivas e negativas
				About();
				break;
		case 5:	//gravar
				GravarDadosParaFicheiro();
				Alteracao = 0;
				break;
		case 6:	//sair
				if (Alteracao == 1)
				{
					printf("Deseja gravar antes de sair? (s/n) ");
					opc = getch();
					if ((opc == 's') || (opc == 'S'))
						GravarDadosParaFicheiro();
				}
				return;
	}
}
}

O programa permite inserir um nome (jogador) associado ao seu numero (numero da camisola)

Depois cria a lista com 99 numeros e caso tenha sido atribuido os respectivos numeros

tambem permite pesquisar directamente pelo numero

o erro é na função inserejogador que está a dar erro penso que por causa da string.

O erro é cannot convert "char*" to "char"

plz help me é urgente....

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.