Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ejercicio 1
- ---------------------
- #include <iostream>
- #include <fstream>
- using namespace std;
- void fichero();
- int main(int argc, char *argv[]) {
- fichero();
- return 0;
- }
- void fichero() {
- ofstream archivo;
- string nom,texto;
- char rpt;
- cout<<"Digite nombre del archivo: ";
- getline(cin,nom);
- archivo.open(nom.c_str(),ios::out);
- do {
- fflush(stdin);
- cout<<"Dígite un texto: ";
- getline(cin,texto);
- archivo<<texto<<endl;
- cout<<"\n¿Desea agregar otro texto (S/N)?: ";cin>>rpt;
- } while(rpt=='s'||rpt=='S');
- archivo.close();
- }
- ---------------------
- ejercicio 2
- ----------------------
- #include <iostream>
- #include <fstream>
- using namespace std;
- void ingresar();
- void modificar();
- void salir();
- void eliminar();
- void buscar();
- void consultar();
- void menu();
- int codigo,auxcodigo;
- double sueldo;
- string nombre,apellido;
- bool encontrado=false;
- int main(int argc, char *argv[]) {
- menu ();
- return 0;
- system("PAUSE");
- }
- void menu() {
- int opc=0;
- do {
- cout<<"MANTENIMIENTO DE REGISTROS DE EMPLEADOS"<<endl;
- cout<<"\n1.- Ingresar"<<endl;
- cout<<"2.- Modificar"<<endl;
- cout<<"3.- Buscar"<<endl;
- cout<<"4.- Consultar"<<endl;
- cout<<"5.- Eliminar"<<endl;
- cout<<"6.- Salir"<<endl;
- cout<<"\nIngrese opción del 1 al 6: ";cin>>opc;
- switch (opc) {
- case 1:ingresar();break;
- case 2:modificar();break;
- case 3:buscar();break;
- case 4:consultar();break;
- case 5:eliminar();break;
- case 6:salir();break;
- default: cout<<"Opción incorrecta!"<<endl;
- }
- }while(opc!=6);
- }
- void ingresar () {
- ofstream escritura;
- ifstream consulta;
- bool repetido=false;
- escritura.open ("workers.txt",ios::out|ios::app);
- consulta.open ("workers.txt",ios::in);
- if (escritura.is_open() && consulta.is_open()) {
- cout<<"Ingrese código: ";cin>>auxcodigo;
- consulta>>codigo;
- while (!consulta.eof()) {
- consulta>>nombre>>apellido>>sueldo;
- if (auxcodigo==codigo) {
- cout<<"Ya existe un registro con este código"<<endl;
- repetido=true;break;
- }
- consulta>>codigo;
- }
- if (repetido==false) {
- cout<<"Ingrese nombre: ";cin>>nombre;
- cout<<"Ingrese apellido: ";cin>>apellido;
- cout<<"Ingrese sueldo: ";cin>>sueldo;
- escritura<<auxcodigo<<" "<<nombre<<" "<<apellido<<" "<<sueldo<<endl;
- cout<<"Registro guardado con éxito"<<endl;
- }
- }else {
- cout<<"El archivo no existe"<<endl;
- }
- consulta.close();
- escritura.close();
- }
- void consultar () {
- ifstream lectura;
- lectura.open("workers.txt",ios::out|ios::in);
- if (lectura.is_open()) {
- cout<<"MANTENIMIENTO DE REGISTRO DE TRABAJADORES"<<endl;
- cout<<"______________________________"<<endl;
- lectura>>codigo;
- while(!lectura.eof()) {
- lectura>>nombre>>apellido>>sueldo;
- cout<<"Código: "<<codigo<<endl;
- cout<<"Nombre: "<<nombre<<endl;
- cout<<"Apellido: "<<apellido<<endl;
- cout<<"Sueldo: "<<sueldo<<endl;
- cout<<"______________________________"<<endl;
- lectura>>codigo;
- }
- } else {
- cout<<"Error, el archivo no existe"<<endl;
- }
- lectura.close();
- }
- void eliminar () {
- ofstream aux;
- ifstream lectura;
- int auxcodigo=0;
- aux.open("auxiliar.txt",ios::out);
- lectura.open("workers.txt",ios::in);
- encontrado=false;
- if (aux.is_open() && lectura.is_open()) {
- cout<<"Ingrese código de empleado que desea eliminar: ";cin>>auxcodigo;
- lectura>>codigo;
- while (!lectura.eof()) {
- lectura>>nombre>>apellido>>sueldo;
- if (codigo==auxcodigo) {
- encontrado=true;
- cout<<"Registro eliminado"<<endl;
- }
- else {
- aux<<codigo<<" "<<nombre<<" "<<apellido<<" "<<sueldo<<endl;
- }
- lectura>>codigo;
- }
- }
- else {
- cout<<"Error, el archivo no existe"<<endl;
- }
- if (encontrado==false) {
- cout<<"No existe registro con el código: "<<auxcodigo<<endl;
- }
- aux.close();
- lectura.close();
- remove ("workers.txt");
- rename ("auxiliar.txt","workers.txt");
- }
- void buscar () {
- ifstream lectura;
- encontrado=false;
- lectura.open("workers.txt",ios::out|ios::in);
- if (lectura.is_open()) {
- cout<<"Ingrese código a buscar: ";cin>>auxcodigo;
- lectura>>codigo;
- while (!lectura.eof()) {
- lectura>>nombre>>apellido>>sueldo;
- if (auxcodigo==codigo) {
- cout<<"______________________________"<<endl;
- cout<<"Código: "<<codigo<<endl;
- cout<<"Nombre: "<<nombre<<endl;
- cout<<"Apellido: "<<apellido<<endl;
- cout<<"Sueldo: "<<sueldo<<endl;
- cout<<"______________________________"<<endl;
- encontrado=true;
- }
- lectura>>codigo;
- }
- if (encontrado==false){
- cout<<"No existe registro con el código: "<<auxcodigo<<endl;
- }
- } else {
- cout<<"Error, el archivo no existe"<<endl;
- }
- lectura.close();
- }
- void modificar () {
- ofstream aux;
- ifstream lectura;
- encontrado=false;
- int auxcodigo=0;
- double auxsueldo=0;
- aux.open("auxiliar.txt",ios::out|ios::app);
- lectura.open("workers.txt",ios::out|ios::in);
- if (aux.is_open() && lectura.is_open()) {
- cout<<"Ingrese código del empleado: ";cin>>auxcodigo;
- lectura>>codigo;
- while(!lectura.eof()) {
- lectura>>nombre>>apellido>>sueldo;
- if (auxcodigo==codigo) {
- cout<<"Ingrese nuevo sueldo: ";cin>>auxsueldo;
- aux<<codigo<<" "<<nombre<<" "<<apellido<<" "<<auxsueldo<<" "<<endl;
- encontrado=true;
- cout<<"Registro modificado con éxito"<<endl;
- }
- else {
- aux<<codigo<<" "<<nombre<<" "<<apellido<<" "<<sueldo<<endl;
- }
- lectura>>codigo;
- }
- } else cout<<"El archivo no existe"<<endl;
- if (encontrado==false){
- cout<<"No existe registro con el código brindado"<<endl;
- }
- aux.close();
- lectura.close();
- remove("workers.txt");
- rename("auxiliar.txt","workers.txt");
- }
- void salir() {
- system ("Pause");
- }
- --------------------------------------------------------
- ejercicio 3
- ---------------------
- #include <iostream>
- #include <time.h>
- #include <stdlib.h>
- using namespace std;
- bool descendente=false;
- void qsort(int primero, int ultimo, int num[]){
- int i=primero, j=ultimo, aux;
- int central=num[(primero+ultimo)/2];
- while(i<=j){
- if(descendente==true){
- while(central<num[i]) i++;
- while(central>num[j]) j--;
- }else{
- while(central>num[i]) i++;
- while(central<num[j]) j--;
- }
- if(i<=j){
- aux=num[i];
- num[i]=num[j];
- num[j]=aux;
- i++;
- j--;
- }
- }
- if(primero<j) qsort(primero,j,num);
- if(ultimo>i) qsort(i,ultimo,num);
- }
- int binario(int n,int num[], int valor){
- int mitad,izq=0,der=n-1;
- while(izq<=der){
- mitad=(izq+der)/2;
- if(valor>num[mitad]) izq=mitad+1;
- else if(valor<num[mitad]) der=mitad-1;
- else return mitad;
- }
- return -1;
- }
- int main(int argc, char *argv[]) {
- int cant, num[10000], valor;
- srand(time(NULL));
- cout<<"Ingrese cantidad de sueldos: ";cin>>cant;
- cout<<"Lista de todos los sueldos"<<endl;
- for(int i=0; i<cant; i++){
- num[i]=1000+rand()%(9999-1000);
- cout<<i<<". "<<num[i]<<endl;
- }
- cout<<"Sueldos mayores a 2500"<<endl;
- descendente=true;
- qsort(0,cant-1,num);
- for(int i=0; i<cant; i++){
- if(num[i]>2500){
- cout<<i<<". "<<num[i]<<endl;
- }
- }
- cout<<"Sueldos que no son multiplos de 5"<<endl;
- descendente=false;
- qsort(0,cant-1,num);
- for(int i=0; i<cant; i++){
- if(num[i]%5!=0){
- cout<<i<<". "<<num[i]<<endl;
- }
- }
- qsort(0,cant-1,num);
- cout<<"Sueldos ordenados"<<endl;
- for(int i=0; i<cant; i++){
- cout<<i<<". "<<num[i]<<endl;
- }
- cout<<"Ingrese sueldo a buscar: ";cin>>valor;
- int buscar=binario(cant,num,valor);
- if(buscar==-1) cout<<"Número no encontrado"<<endl;
- else cout<<"El número "<<valor<<" está en la posición "<<buscar<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement