Advertisement
Guest User

Untitled

a guest
Dec 8th, 2019
162
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.57 KB | None | 0 0
  1. ejercicio 1
  2. ---------------------
  3. #include <iostream>
  4. #include <fstream>
  5. using namespace std;
  6. void fichero();
  7. int main(int argc, char *argv[]) {
  8. fichero();
  9. return 0;
  10. }
  11.  
  12. void fichero() {
  13. ofstream archivo;
  14. string nom,texto;
  15. char rpt;
  16. cout<<"Digite nombre del archivo: ";
  17. getline(cin,nom);
  18. archivo.open(nom.c_str(),ios::out);
  19. do {
  20. fflush(stdin);
  21. cout<<"Dígite un texto: ";
  22. getline(cin,texto);
  23. archivo<<texto<<endl;
  24.  
  25. cout<<"\n¿Desea agregar otro texto (S/N)?: ";cin>>rpt;
  26. } while(rpt=='s'||rpt=='S');
  27. archivo.close();
  28. }
  29.  
  30.  
  31.  
  32. ---------------------
  33. ejercicio 2
  34. ----------------------
  35. #include <iostream>
  36. #include <fstream>
  37. using namespace std;
  38. void ingresar();
  39. void modificar();
  40. void salir();
  41. void eliminar();
  42. void buscar();
  43. void consultar();
  44. void menu();
  45. int codigo,auxcodigo;
  46. double sueldo;
  47. string nombre,apellido;
  48. bool encontrado=false;
  49. int main(int argc, char *argv[]) {
  50. menu ();
  51. return 0;
  52. system("PAUSE");
  53. }
  54. void menu() {
  55. int opc=0;
  56. do {
  57. cout<<"MANTENIMIENTO DE REGISTROS DE EMPLEADOS"<<endl;
  58. cout<<"\n1.- Ingresar"<<endl;
  59. cout<<"2.- Modificar"<<endl;
  60. cout<<"3.- Buscar"<<endl;
  61. cout<<"4.- Consultar"<<endl;
  62. cout<<"5.- Eliminar"<<endl;
  63. cout<<"6.- Salir"<<endl;
  64. cout<<"\nIngrese opción del 1 al 6: ";cin>>opc;
  65. switch (opc) {
  66. case 1:ingresar();break;
  67. case 2:modificar();break;
  68. case 3:buscar();break;
  69. case 4:consultar();break;
  70. case 5:eliminar();break;
  71. case 6:salir();break;
  72. default: cout<<"Opción incorrecta!"<<endl;
  73. }
  74. }while(opc!=6);
  75.  
  76. }
  77. void ingresar () {
  78. ofstream escritura;
  79. ifstream consulta;
  80. bool repetido=false;
  81. escritura.open ("workers.txt",ios::out|ios::app);
  82. consulta.open ("workers.txt",ios::in);
  83. if (escritura.is_open() && consulta.is_open()) {
  84. cout<<"Ingrese código: ";cin>>auxcodigo;
  85. consulta>>codigo;
  86. while (!consulta.eof()) {
  87. consulta>>nombre>>apellido>>sueldo;
  88. if (auxcodigo==codigo) {
  89. cout<<"Ya existe un registro con este código"<<endl;
  90. repetido=true;break;
  91. }
  92. consulta>>codigo;
  93. }
  94. if (repetido==false) {
  95. cout<<"Ingrese nombre: ";cin>>nombre;
  96. cout<<"Ingrese apellido: ";cin>>apellido;
  97. cout<<"Ingrese sueldo: ";cin>>sueldo;
  98. escritura<<auxcodigo<<" "<<nombre<<" "<<apellido<<" "<<sueldo<<endl;
  99. cout<<"Registro guardado con éxito"<<endl;
  100. }
  101. }else {
  102. cout<<"El archivo no existe"<<endl;
  103. }
  104. consulta.close();
  105. escritura.close();
  106. }
  107. void consultar () {
  108. ifstream lectura;
  109. lectura.open("workers.txt",ios::out|ios::in);
  110. if (lectura.is_open()) {
  111. cout<<"MANTENIMIENTO DE REGISTRO DE TRABAJADORES"<<endl;
  112. cout<<"______________________________"<<endl;
  113. lectura>>codigo;
  114. while(!lectura.eof()) {
  115. lectura>>nombre>>apellido>>sueldo;
  116. cout<<"Código: "<<codigo<<endl;
  117. cout<<"Nombre: "<<nombre<<endl;
  118. cout<<"Apellido: "<<apellido<<endl;
  119. cout<<"Sueldo: "<<sueldo<<endl;
  120. cout<<"______________________________"<<endl;
  121. lectura>>codigo;
  122. }
  123. } else {
  124. cout<<"Error, el archivo no existe"<<endl;
  125. }
  126. lectura.close();
  127. }
  128. void eliminar () {
  129. ofstream aux;
  130. ifstream lectura;
  131. int auxcodigo=0;
  132. aux.open("auxiliar.txt",ios::out);
  133. lectura.open("workers.txt",ios::in);
  134. encontrado=false;
  135. if (aux.is_open() && lectura.is_open()) {
  136. cout<<"Ingrese código de empleado que desea eliminar: ";cin>>auxcodigo;
  137. lectura>>codigo;
  138. while (!lectura.eof()) {
  139. lectura>>nombre>>apellido>>sueldo;
  140. if (codigo==auxcodigo) {
  141. encontrado=true;
  142. cout<<"Registro eliminado"<<endl;
  143. }
  144. else {
  145. aux<<codigo<<" "<<nombre<<" "<<apellido<<" "<<sueldo<<endl;
  146. }
  147. lectura>>codigo;
  148. }
  149.  
  150. }
  151. else {
  152. cout<<"Error, el archivo no existe"<<endl;
  153. }
  154. if (encontrado==false) {
  155. cout<<"No existe registro con el código: "<<auxcodigo<<endl;
  156. }
  157. aux.close();
  158. lectura.close();
  159. remove ("workers.txt");
  160. rename ("auxiliar.txt","workers.txt");
  161. }
  162.  
  163. void buscar () {
  164. ifstream lectura;
  165. encontrado=false;
  166. lectura.open("workers.txt",ios::out|ios::in);
  167. if (lectura.is_open()) {
  168. cout<<"Ingrese código a buscar: ";cin>>auxcodigo;
  169. lectura>>codigo;
  170. while (!lectura.eof()) {
  171. lectura>>nombre>>apellido>>sueldo;
  172. if (auxcodigo==codigo) {
  173. cout<<"______________________________"<<endl;
  174. cout<<"Código: "<<codigo<<endl;
  175. cout<<"Nombre: "<<nombre<<endl;
  176. cout<<"Apellido: "<<apellido<<endl;
  177. cout<<"Sueldo: "<<sueldo<<endl;
  178. cout<<"______________________________"<<endl;
  179. encontrado=true;
  180. }
  181. lectura>>codigo;
  182. }
  183. if (encontrado==false){
  184. cout<<"No existe registro con el código: "<<auxcodigo<<endl;
  185. }
  186. } else {
  187. cout<<"Error, el archivo no existe"<<endl;
  188. }
  189. lectura.close();
  190. }
  191.  
  192. void modificar () {
  193. ofstream aux;
  194. ifstream lectura;
  195. encontrado=false;
  196. int auxcodigo=0;
  197. double auxsueldo=0;
  198. aux.open("auxiliar.txt",ios::out|ios::app);
  199. lectura.open("workers.txt",ios::out|ios::in);
  200. if (aux.is_open() && lectura.is_open()) {
  201. cout<<"Ingrese código del empleado: ";cin>>auxcodigo;
  202. lectura>>codigo;
  203. while(!lectura.eof()) {
  204. lectura>>nombre>>apellido>>sueldo;
  205. if (auxcodigo==codigo) {
  206. cout<<"Ingrese nuevo sueldo: ";cin>>auxsueldo;
  207. aux<<codigo<<" "<<nombre<<" "<<apellido<<" "<<auxsueldo<<" "<<endl;
  208. encontrado=true;
  209. cout<<"Registro modificado con éxito"<<endl;
  210. }
  211. else {
  212. aux<<codigo<<" "<<nombre<<" "<<apellido<<" "<<sueldo<<endl;
  213. }
  214. lectura>>codigo;
  215. }
  216. } else cout<<"El archivo no existe"<<endl;
  217. if (encontrado==false){
  218. cout<<"No existe registro con el código brindado"<<endl;
  219. }
  220. aux.close();
  221. lectura.close();
  222. remove("workers.txt");
  223. rename("auxiliar.txt","workers.txt");
  224. }
  225.  
  226. void salir() {
  227. system ("Pause");
  228. }
  229.  
  230.  
  231. --------------------------------------------------------
  232. ejercicio 3
  233. ---------------------
  234. #include <iostream>
  235. #include <time.h>
  236. #include <stdlib.h>
  237. using namespace std;
  238. bool descendente=false;
  239. void qsort(int primero, int ultimo, int num[]){
  240. int i=primero, j=ultimo, aux;
  241. int central=num[(primero+ultimo)/2];
  242. while(i<=j){
  243. if(descendente==true){
  244. while(central<num[i]) i++;
  245. while(central>num[j]) j--;
  246. }else{
  247. while(central>num[i]) i++;
  248. while(central<num[j]) j--;
  249. }
  250. if(i<=j){
  251. aux=num[i];
  252. num[i]=num[j];
  253. num[j]=aux;
  254. i++;
  255. j--;
  256. }
  257. }
  258. if(primero<j) qsort(primero,j,num);
  259. if(ultimo>i) qsort(i,ultimo,num);
  260. }
  261.  
  262. int binario(int n,int num[], int valor){
  263. int mitad,izq=0,der=n-1;
  264. while(izq<=der){
  265. mitad=(izq+der)/2;
  266. if(valor>num[mitad]) izq=mitad+1;
  267. else if(valor<num[mitad]) der=mitad-1;
  268. else return mitad;
  269. }
  270. return -1;
  271. }
  272.  
  273. int main(int argc, char *argv[]) {
  274. int cant, num[10000], valor;
  275. srand(time(NULL));
  276. cout<<"Ingrese cantidad de sueldos: ";cin>>cant;
  277. cout<<"Lista de todos los sueldos"<<endl;
  278. for(int i=0; i<cant; i++){
  279. num[i]=1000+rand()%(9999-1000);
  280. cout<<i<<". "<<num[i]<<endl;
  281. }
  282. cout<<"Sueldos mayores a 2500"<<endl;
  283. descendente=true;
  284. qsort(0,cant-1,num);
  285. for(int i=0; i<cant; i++){
  286. if(num[i]>2500){
  287. cout<<i<<". "<<num[i]<<endl;
  288. }
  289. }
  290. cout<<"Sueldos que no son multiplos de 5"<<endl;
  291. descendente=false;
  292. qsort(0,cant-1,num);
  293. for(int i=0; i<cant; i++){
  294. if(num[i]%5!=0){
  295. cout<<i<<". "<<num[i]<<endl;
  296. }
  297. }
  298. qsort(0,cant-1,num);
  299. cout<<"Sueldos ordenados"<<endl;
  300. for(int i=0; i<cant; i++){
  301. cout<<i<<". "<<num[i]<<endl;
  302. }
  303. cout<<"Ingrese sueldo a buscar: ";cin>>valor;
  304. int buscar=binario(cant,num,valor);
  305. if(buscar==-1) cout<<"Número no encontrado"<<endl;
  306. else cout<<"El número "<<valor<<" está en la posición "<<buscar<<endl;
  307.  
  308. return 0;
  309. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement