HELP!!!!!! AGAIN!!!!!!

we need help with this..... we dont know all this errors..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#include "tadhora.h"
#include <iostream>

using namespace std;

void horacero (thora &h1) {
	h1.horas = 0;
	h1.minutos = 0;
	h1.segundos = 0;
}

void mostrarhora (thora h1) {
	if (h1.horas <10)
		cout<<"0"<<h1.horas;
	else
		cout <<h1.horas;
	cout << ":";
	if (h1.minutos <10)
		cout<<"0"<<h1.minutos;
	else
		cout <<h1.minutos;
	cout << ":";
	if (h1.segundos <10)
		cout<<"0"<<h1.segundos;
	else
		cout <<h1.segundos;
}

void ponerenhora (int h, int m, int s, thora &h1) {
	h1.horas = h;
	h1.minutos = m;
	h1.segundos = s;
}
void separarhora (thora h1, int &h, int &m, int &s) {
	h = h1.horas;
	m = h1.minutos;
	s = h1.segundos;
	cout << h << endl;
	cout << m << endl;
	cout << s << endl;
}
void convertir (int segs, thora &h1) {
	if (segs < 60){
		h1.segundos = segs;
	}
	else{
		if (segs < 3600){
			h1.minutos = segs / 60;
			h1.segundos = segs % 60;
		}
		else{
			if (segs < 86400){
				h1.horas = segs / 3600;
				h1.minutos = (segs % 3600) / 60;
				h1.segundos = (segs % 3600) % 60;
			}
			else{
				h1.horas = 0;
				h1.minutos = 0;
				h1.segundos = 0;
			}
		}
	}		
}
void masunsegundo (thora &h1) {
	int i;
	i = 1;
	while (i > 0){
		if (i<60){
			h1.segundos = i;
		}
		else{
			if (i < 3600){
				h1.minutos = i / 60;
				h1.segundos = i % 60;
			}
			else{
				if (i < 86400){
					h1.horas = i / 3600;
					h1.minutos = (i % 3600) / 60;
					h1.segundos = (i % 3600) % 60;
				}
				else{
					h1.horas = 0;
					h1.minutos = 0;
					h1.segundos = 0;
				}
			}
		}
		i = i + 1;
	}
}
bool iguales (thora h1, thora h2) {
	if (h1.horas == h2.horas && h1.minutos == h2.minutos && h1.segundos == h2.segundos){
		return true;
	}
	else{
		return false;
	}
}
bool mayorque (thora h1, thora h2) {
	bool band;
	band = false;
	if (h1.horas > h2.horas){
		band = true;
	}
	else{
		if (h1.horas == h2.horas){
			if (h1.minutos > h2.minutos){
				band = true;
			}
			else{
				if (h1.minutos == h2.minutos){
					if (h1.segundos > h2.segundos){
						band = true;
					}
				}
			}
		}
	}
	return band;
}
int diferencia (thora h1, thora h2) {
	return ((h1.horas-h2.horas)*3600)+((h1.minutos-h2.minutos)*60)+(h1.segundos-h2.segundos);
}
void asignar (thora &h1, thora h2) {
	h2.horas = h1.horas;
	h2.minutos = h1.minutos;
	h2.segundos = h1.segundos;
}


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#ifndef TADHORA_H_
#define TADHORA_H_

struct thora {
	int horas; 		// de 0 a 23
	int minutos; 	// de 0 a 59
	int segundos; 	// de 0 a 59
};

// PRE = { }
// POST = {h1 es la hora 00:00:00}
void horacero (thora &h1);


// PRE = { h1 es una hora correcta}
// POST = {escribe en pantalla la hora h1 con formato xx:xx:xx }
void mostrarhora (thora h1);


// PRE = { 0<=h<=23, 0<=m<=59, 0<=s<=59 }
// POST = { h1 es la hora h:m:s }
void ponerenhora (int h, int m, int s, thora &h1);


// PRE = { h1 es una hora correcta}
// POST = {h es el número de horas de h1, m es el número de minutos de h1,
//         s es el número de segundos de h1 }
void separarhora (thora h1, int &h, int &m, int &s);


// PRE = {segs >= 0 }
// POST = {h1 es la hora actual si han transcurrido segs segundos desde las 0:0:0}
void convertir (int segs, thora &h1);


// PRE = {h1 es una hora correcta}
// POST = {h1 es la hora de entrada más un segundo}
void masunsegundo (thora &h1);


// PRE = { h1, h2 son dos horas correctas}
// POST = { devuelve true si las dos horas son iguales y false en caso contrario }
bool iguales (thora h1, thora h2);


// PRE = { h1, h2 son dos horas correctas}
// POST = { devuelve true si h1 es una hora posterior a h2, y false en caso contrario }
bool mayorque (thora h1, thora h2);


// PRE = { h1, h2 son dos horas correctas, h1 mayor que h2 }
// POST = { devuelve el número de segundos entre h1 y h2 }
int diferencia (thora h1, thora h2);


// PRE = {h2 es una hora correcta }
// POST = { al acabar, h1 tiene la misma información que tiene h2 }
void asignar (thora &h1, thora h2);


#endif /* TADHORA_H_ */ 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <iostream>
#include "tadhora.h"
using namespace std;

void pruebahoracero() {
	// Usamos la operacion horacero y comprobamos que los tres campos son iguales a 0.
	thora h;
	horacero(h);
	if ((h.horas!=0)||(h.minutos!=0)||(h.segundos!=0))
		cout << "horacero no es correcta"<<endl;
}

void pruebamostrarhora () {
	// Usamos la operacion horacero y mostramos la hora 0:0:0
	thora h;
	horacero(h);
	cout << "Se debe mostrar la hora 00:00:00 y se muestra ";
	mostrarhora(h);
	cout << endl;
	// Modificamos los campos para poner la hora 12:01:54 y mostramos la hora
	h.horas = 12;
	h.minutos = 1;
	h.segundos = 54;
	cout << "Se debe mostrar la hora 12:01:54 y se muestra ";
	mostrarhora(h);
	cout << endl;
}

void alarma() {
	// Ejemplo de uso del TAD
	// Simulamos un reloj que empieza a funcionar a las 23:55:00
	// Se pone una alarma a la 0:15:33
	// Cuando se suma un segundo, se escribe un punto (.)
	// Cuando se cambia de minuto (los segundos son 0), se muestra la hora
	// Al llegar esa hora, se muestra un mensaje de que está sonando la alarma y termina
	// Por supuesto, no funciona en tiempo real, va mucho más rápido
	thora reloj;
	thora alarma;
	int h, m, s;
	ponerenhora(23, 55, 0, reloj);
	ponerenhora(0, 15, 33, alarma);
	cout << "Hora actual  ";
	mostrarhora(reloj);
	cout << endl;
	while (iguales(reloj, alarma) == false) {
		masunsegundo(reloj);
		separarhora(reloj,h,m,s);
		if (s==0) {
			mostrarhora(reloj);
			cout << endl;
		}
		else
			cout <<".";
	}
	cout <<" Alarma sonando. Son las ";
	mostrarhora(reloj);
	cout << endl;
}


int main() {
	pruebahoracero();
	pruebamostrarhora();
	// restantes pruebas
	// alarma() no funciona hasta que no se implementen todas las operaciones que usa
	// es mejor tenerla comentada hasta que pueda usarse
	// alarma();
	// otros ejemplos de uso del TAD
	return 0;
}
closed account (SECMoG1T)
What errors did you get, list them so we can assist
main.c:91: undefined reference to 'WinMain@16'
collect2.exe; error: Id returned 1 exit status
closed account (SECMoG1T)
Your linker failed to link your project objects together, am not sure what your problem is, try to create another project and try rebuilding your project.
Topic archived. No new replies allowed.