Académique Documents
Professionnel Documents
Culture Documents
Unidad Azcapotzalco
Almacenamiento y Estructuras de Archivos
Irma Fernanda Ardn Pulido
Introduccin
Para proyecto final se escogi el Programa de RRN ya que nos pareci un tcnica
interesante para la gestin de informacin en al medio secundario, este programa se
hizo sobre el lenguaje de programacin C++. El propsito del programa es, dado un
archivo con ciertos datos ya almacenados en memoria secundara usamos la memoria
principal para al momento de solicitar un registro en memoria principal solo hacemos
uso de sus cdigos para ubicarla en medio secundario, de esta manera la carga en
ambas memoria es poca en comparacin con tener que tratar todos los datos ya sea en
memoria principal o secundara, en este trabajo se hacen operaciones de altas, bajas y
consultas.
Cdigo
#include
#include
#include
#include
#include
<iostream>
<stdio.h>
<stdlib.h>
<fstream>
<string>
/* printf, fgets */
}
}
while (i <= mid){
b[k][0] = a[i][0];
b[k][1] = a[i][1];
k++;
i++;
k--;
while (k >= 0) {
a[low + k][0] = b[k][0];
a[low + k][1] = b[k][1];
k--;
}
void mergesort(int a[][2], int low, int high){
if (low < high) {
int m = (high + low)/2;
mergesort(a, low, m);
mergesort(a, m + 1, high);
merge(a, low, m, high);
}
}
int conversion(string cadena){
int flag = 0;
char c;
int i = 0;
string codigo = "";
while(flag != 1){
c = cadena[i];
if(cValue(c)){
while(flag != 1){
if(cadena[i] == 32){
flag = 1;
}else{
}
i++;
}
i++;
}
return atoi(codigo.c_str());
}
int busqueda(int v[][2], int principio, int fin, int x){
int res;
if(principio <= fin ){
int m = (principio + fin)/2;
if(x < v[m][0]) {
res = busqueda(v, principio, m-1, x);
}
else if(x > v[m][0]){
res = busqueda(v, m+1, fin, x);
}
else{
res = v[m][1];
}
}else {
res = -1;
}
return res;
}else{
while(i < cnt){
ArchivoW3 << a[i][0] <<" "<<a[i][1]<<"\n";
i++;
}
ArchivoW3.close();
}
int main(){
string cadena;
int code[9][2];
int ubicacion;
int findCode;
int cnt = 0;
int i = 0;
int option;
en indice.dat
elemento no existe
de la inf
if(findCode == 0){
ArchivoR.close();
indiceWrite(code,cnt);
return 0;
}
//hacemos una consulta del codigo
ubicacion = busqueda(code, 0, cnt, findCode);
//si develve un -1 la consulta, indica que el
if(ubicacion == -1){
cout << "Tu elemento no existe\n";
}else{
i=0;
while(i <= ubicacion){
//en caso exitoso obtenemos la cadena
//del codigo solocitado
getline(ArchivoR, cadena);
i++;
}
cout<<cadena<<"\n\n";
}
}
ArchivoR.close();
}
}else if(option == 2){
//Aqui podremos actualizar nuestros registros
string producto;
int codigo, costo, existenciaMin, existenciaActual;
int numReg;
cout << "Cuantos registros desea ingresar?\n";
cin >> numReg;
int w = 0;
ArchivoW.open("registros.txt", ios::app);
for(w = 0; w < numReg; w++){
cout << "\nNombre del producto: ";
getline(cin,producto);
getline(cin,producto);
cout << "\nCodigo: ";
cin >> codigo;
cout << "\nCosto: ";
cin >> costo;
cout << "\nExistencia Minima: ";
cin >> existenciaMin;
cout << "\nExistencia Actual: ";
cin >> existenciaActual;
ArchivoW <<"\n";
eliminado
return 0;
Imgenes de Ejecucin
Inicialmente tenemos un archivo llamado registros.txx con la sig informacin
Filtro de agua 3290 1000 5000 13568
Vlvula de admisin 2150 1215 100 356
Vlvula de descarga 3560 1990 20 586
Taladro 1890 1815 300 2569
Mezcladora tipo arandela 1202 995 75 7895
Mezcladora con vlvula 125 1500 200 3665
Voltmetro 3508 1280 300 2598
Mezcladora de cartucho 4596 1760 5 236
Dar de alta 3 registros:
Queso Maria
Cable de Red
Reglas T
Consulta de
registros
Con los registros
dados de alta, los
que ya estaban y
uno que no existe.
Dar de baja
Conclusiones
Durante el de desarrollo de este trabajo logramos aumentar nuestros conocimientos
sobre manejo de archivos, como almacenar la informacin en medio secundario y
primario, ademas de tcnicas para disminuir en trabajo de lectura en memoria
dinmica y esttica, con esto ahora comprendemos de mejor manera como hacer un
uso adecuado de la informacin para lograr operaciones que no requieran un uso
excesivo de operaciones, el problema que se nos presento durante el desarrollo de este
proyecto ha sido realizar distintas operaciones sin salir de la ejecucin del programa,
ya que cada operacin requiere volver a realizar una ejecucin del mismo, sin
embargo esto no afecto la forma en que actualizamos, damos de baja registros y
hacemos consultas.