proyecto de programación final
nombre de proyecto: control de entradas y salidas de centro de computo del instituto tecnológico de Tijuana
pseudocodigo
inicio
#include
<conio.h>
#include <iostream.h>
#include <fstream.h>
#include <dos.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include
<time.h>
void
iniciar(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72],
int minutos2[72])
void
lectura(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72],
int minutos2[72])
void
asignar(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72],
int minutos2[72])
void
salir(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72], int
minutos2[72])
void
desplegar(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72],
int minutos2[72])
void
borrartodo(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72],
int minutos2[72])
void
guardar(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72],
int minutos2[72])
void main()
{
opcion,
computadoras[72], hora1[72], hora2[72], minutos1[72], minutos2[72] int
sigue char
//Estructura
para el tiempo (dia, mes, hora, año)
time_t rawtime
struct tm * timeinfo
time ( &rawtime )
timeinfo = localtime ( &rawtime )
iniciar(computadoras,
hora1, hora2, minutos1, minutos2)
lectura(computadoras,
hora1, hora2, minutos1, minutos2)
do
{
print “ “
print
"
Menu principal"
print “ “
printf (asctime (timeinfo) )
print
"********************************************************************************"
print “ “
print "Seleccionar accion"
print “ “
print "1)Entrada"
print "2)Salida"
print "3)Desplegar lista de computadoras"
print "4)Utileria de base de datos"
print
"Opcion: "
read opcion
clrscr( )
print endl
switch(opcion)
{
case 1:
print
"
Entrada"
print “ “
printf (asctime (timeinfo) )
print
"********************************************************************************"
print “ “
asignar(computadoras,
hora1, hora2, minutos1, minutos2)
break
case 2:
print
"
Salida"
print “ “
printf (asctime (timeinfo) )
print
"********************************************************************************"
print “ “
salir(computadoras,
hora1, hora2, minutos1, minutos2)
break
case 3:
print " Desplegar lista de
computadoras"
print “ “
printf (asctime (timeinfo) )
print
"********************************************************************************"
print “ “
desplegar(computadoras,
hora1, hora2, minutos1, minutos2)
break
case 4:
print "
Utileria de base
de datos"
print “ “
printf (asctime (timeinfo) )
print
"********************************************************************************"
print “ “
borrartodo(computadoras,
hora1, hora2, minutos1, minutos2)
break
default:
print "Error en opcion:"
}
if(opcion
!=0)
{
print "Presione cualquier tecla para
continuar"
}
}
while(opcion!=0)
}
// Funciones
para la base de datos.
// Funcion
para reemplazar, en una cadena de caracteres 'str', todos los caracteres 'o' por
caracteres 'v'.
void
reemplazarcaracteres(char *str, char o, char v)
{
char *p
while (p = strchr(str, o))
{
*p = v
}
}
// Funcion
para agregar un nuevo usuario en la base de datos.
void
registrarusuario()
{
char
numero[16], nombre[128], carrera[128], semestre[16]
ofstream iusr
iusr.open("C://Datos//Base de datos.txt",
ifstream::app)
cin.ignore(9001, '\n')
print
"Numero: "
cin.getline(numero,
16)
print "Nombre:"
cin.getline(nombre,
128)
print "Carrera: "
cin.getline(carrera,
128)
print "Semestre: "
cin.getline(semestre,
16)
reemplazarcaracteres(carrera,
' ', '_')
reemplazarcaracteres(nombre,
' ', '_')
reemplazarcaracteres(semestre,
' ', '_')
iusr , numero
, " " , nombre , " " , carrera , " " , semestre
}
// Funcion
para verificar que el usuario este registrado en la base de datos y obtener sus
datos.
bool
buscarusuario(int numero, char nombre[128], char carrera[128], char
semestre[16])
{
ifstream iusr
n int
iusr.open("C://Datos//Base de datos.txt")
while (iusr.good())
{
iusr , n
if (n == numero)
{
iusr , nombre , carrera , semestre
reemplazarcaracteres(nombre,
'_', ' ')
reemplazarcaracteres(carrera,
'_', ' ')
reemplazarcaracteres(semestre,
'_', ' ')
return true
}
iusr.ignore(9001, '\n')
}
}
// Funciones
para el registro de entradas y salidas
// Funcion
para leer los datos del archivo.
void
lectura(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72],
int minutos2[72])
{
ifstream entrada
char fnombre[128]
time_t mt = time(0)
tm *lctm = localtime(&mt)
sprintf(fnombre, "C://Datos//%d-%d-%d.txt",
lctm->tm_mday, lctm->tm_mon + 1, lctm->tm_year + 1900)
entrada.open(fnombre)
for(int i=0 to 72 step i++)
{
entrada , computadoras[i] , hora1[i] , minutos1[i] , hora2[i] , minutos2[i]
}
}
// Funcion
para guardar los datos en el archivo.
void
guardar(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72],
int minutos2[72])
{
ofstream salida
fnombre[128] char
time_t mt = time(0)
tm *lctm = localtime(&mt)
sprintf(fnombre, "C://Datos//%d-%d-%d.txt",
lctm->tm_mday, lctm->tm_mon + 1, lctm->tm_year + 1900)
salida.open(fnombre)
for(int i=0 to 72 step i++)
{
salida , computadoras[i]
, " " , hora1[i] , " " , minutos1[i] , " " , hora2[i]
, " " , minutos2[i]}
}
// Funcion
para darle valor de 0 a todas las variables de los arreglos.
void
iniciar(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72],
int minutos2[72])
{
for(int i=0 to 72 step i++)
{
computadoras[i]=hora1[i]=hora2[i]=minutos1[i]=minutos2[i]=0
}
}
// Funcion
para desplegar cada computadora si esta ocupada o desocupada y la hora de
entrada y salida.
void
desplegar(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72],
int minutos2[72])
{
print "\t\t\tNumero de control\tEntrada\t\tsalida"
for(int i = 0 i < 72 i++)
{
print "Computadora " , (i+1) , “ “
, computadoras[i] , (!computadoras[i] ? "\t\t\t" : “ “ )
, hora1[i] , ":" , minutos1[i] , “ “
, hora2[i] , ":" , minutos2[i]
}
}
// Funcion
para desocupar una computadora.
void
salir(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72], int
minutos2[72])
{
struct time t
num int
print
"Salida"
print "Numero de computadora: "
read num
num--
gettime(&t)
hora2[num]=t.ti_hour
minutos2[num]=t.ti_min
guardar(computadoras,
hora1, hora2, minutos1, minutos2)
}
// Funcion
para asignar una computadora al alumno, segun las computadoras desocupadas.
void
asignar(int computadoras[72], int hora1[72], int hora2[72], int minutos1[72],
int minutos2[72])
{
nombre[128],
carrera[128], semestre[16], opc char
i, numero,
comp int
struct time t
print
"Numero de control: "
read numero
if
(buscarusuario(numero, nombre, carrera, semestre))
{
print "Alumno: " , nombre
print "Carrera: " , carrera
print
"Semestre: " , semestre
}
else
{
print "No es alumno del plantel"
print "Se recomienda registrar"
print "y pedir una identificacion."
print "Desea registrar nuevo usuario (s/n):
"
read opc
if(opc=='s'||opc=='S')
{
registrarusuario()
}
}
for(i = 0 i < 72 i++)
{
if
(computadoras[i] == numero && !hora2[i] && !minutos2[i])
{
print "Este alumno ya tiene asignada una
computadora"
}
}
print "Seleccionar computadora (s/n): "
read opc
if (opc == 's' || opc == 'S')
{
print
"Computadoras disponibles:"
for (i = 0 to 72 step
i++)
{
if
(!computadoras[i])
{
print "Computadora # " , (i+1)
}
}
print "Computadora deseada: "
read comp
comp--
if
(!computadoras[comp] || (hora2[comp] && minutos2[comp]))
{
i=comp
computadoras[i]
= numero
gettime(&t)
hora1[i] = t.ti_hour
minutos1[i] = t.ti_min
hora2[i] =
minutos2[i] = 0
guardar(computadoras,
hora1, hora2, minutos1, minutos2)
}
else
{
print "Esa computadora ya esta ocupada"
}
}
for(i = 0 i < 72 i++)
{
if(!computadoras[i]||(hora2[i] && minutos2[i]))
{
computadoras[i]=numero
gettime(&t)
hora1[i]=t.ti_hour
minutos1[i]=t.ti_min
hora2[i]=minutos2[i]=0
guardar(computadoras,
hora1, hora2, minutos1, minutos2)
break
}
}
print "Su computadora es: "
print "Computadora " , (i+1)
}
// Funcion
para borrar usuarios de la base de datos.
void
borrarusuarios()
{
ofstream
iusr
iusr.open("C://Datos//Base
de datos.txt", ostream::trunc)
}
// Funcion
para borrar base de datos.
void
borrartodo(int computadoras[72], int hora1[72], int hora2[72], int
minutos1[72], int minutos2[72])
{
opc char
clave=12212012 int
pasword int
print "Insertar clave de administrador: "
read pasword
if(clave==pasword)
{
print "Borrar base de datos(s/n): "
read opc
if(opc=='s'||opc=='S')
{
borrarusuarios()
}
}
else
{
print "Clave incorrecta"
}
}
fin






