viernes, 14 de diciembre de 2012

proyecto final



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 

No hay comentarios:

Publicar un comentario