Advertisement
Guest User

kwic-final

a guest
Nov 14th, 2018
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.00 KB | None | 0 0
  1. //
  2. // main.cpp
  3. // KWIC keyboard order
  4. //
  5. // Created by Alban Aguilar Campos on 11/13/18.
  6. // Copyright © 2018 Alban Aguilar Campos. All rights reserved.
  7. //
  8.  
  9. //Bibliotecas
  10. #include <iostream>
  11. #include <fstream>
  12. #include <string>
  13. #include <algorithm>
  14. #include <vector>
  15. using namespace std;
  16.  
  17.  
  18. //Funcion ordena vector de strings en orden ascendente
  19. void ascendente(vector<string>myVector){
  20. //Se despliega en pantalla las palabras ordenadas alfabeticamente
  21. for (int i = 0; i < myVector.size(); i++){
  22. cout << myVector[i] << endl;
  23. }
  24. }
  25.  
  26.  
  27. //Funcion ordena vector de strings en orden descendente
  28. void descendente(vector<string>myVector){
  29. //Se despliega en pantalla las palabras ordenadas descendentemente
  30. for (int i = myVector.size() - 1; i >= 0 ; i--){
  31. cout << myVector[i] << endl;
  32. }
  33. }
  34.  
  35.  
  36.  
  37. int main(int argc, const char * argv[]) {
  38. int lecturaDeDatos;
  39. cout << "Entrada de datos por: " << endl;
  40. cout << "1.- Teclado" << endl;
  41. cout << "2.- Archivo " << endl;
  42. do{
  43. cin >> lecturaDeDatos;
  44. }while(lecturaDeDatos < 1 || lecturaDeDatos > 2);
  45.  
  46.  
  47. //Se declara vector de strings donde se introducen todas las palabras
  48. vector<string>myVector;
  49. string palabraPalVector;
  50.  
  51. if(lecturaDeDatos == 1){ //Si es por teclado
  52.  
  53. cin >> palabraPalVector; //Checa el primer valor
  54. if (palabraPalVector == "0" || palabraPalVector == "nil"){
  55. return 0;
  56. } //Si el primer dato es 0 o nil se acaba ejecucion
  57.  
  58.  
  59. //Mete los datos al vector de palabras hasta toparse con 0 o nil
  60. while (palabraPalVector != "0" && palabraPalVector != "nil"){
  61. myVector.push_back(palabraPalVector);
  62. cin >> palabraPalVector;
  63. }
  64.  
  65.  
  66. cout << endl << "¿Como quiere ordenarlas?" <<endl;
  67. cout << "1.- Ascendentemente" << endl;
  68. cout << "2.- Descendentemente " << endl;
  69. do{
  70. cin >> lecturaDeDatos; // reciclar variable en vez de declarar nueva
  71. }while(lecturaDeDatos < 1 || lecturaDeDatos > 2);
  72.  
  73.  
  74. if (lecturaDeDatos == 1){
  75. //Se ordenan las palabras dentro del vector alfabeticamente
  76. sort(myVector.begin(), myVector.end());
  77. ascendente(myVector);
  78. }else{
  79. //Se ordenan las palabras dentro del vector alfabeticamente
  80. sort(myVector.begin(), myVector.end());
  81. descendente(myVector);
  82. }
  83.  
  84.  
  85. }else{ //Si es por archivo de texto
  86. ifstream myReadFile;
  87. myReadFile.open("filename.txt");
  88.  
  89. while (!myReadFile.eof()) {
  90. myReadFile >> palabraPalVector;
  91.  
  92. if (palabraPalVector == "0" || palabraPalVector == "nil"){
  93. return 0;
  94. }//Si el primer dato es 0 o nil se acaba ejecucion
  95.  
  96. //Mete los datos al vector de palabras hasta toparse con 0 o nil
  97. while (palabraPalVector != "0" && palabraPalVector != "nil"){
  98. myVector.push_back(palabraPalVector);
  99. myReadFile >> palabraPalVector;
  100. }
  101.  
  102.  
  103. cout << endl << "¿Como quiere ordenarlas?" <<endl;
  104. cout << "1.- Ascendentemente" << endl;
  105. cout << "2.- Descendentemente " << endl;
  106. do{
  107. cin >> lecturaDeDatos; // reciclar variable en vez de declarar nueva
  108. }while(lecturaDeDatos < 1 || lecturaDeDatos > 2);
  109.  
  110.  
  111. if (lecturaDeDatos == 1){
  112. //Se ordenan las palabras dentro del vector alfabeticamente
  113. sort(myVector.begin(), myVector.end());
  114. ascendente(myVector);
  115. }else{
  116. //Se ordenan las palabras dentro del vector alfabeticamente
  117. sort(myVector.begin(), myVector.end());
  118. descendente(myVector);
  119. }
  120. }
  121.  
  122. myReadFile.close();
  123. }
  124.  
  125. return 0;
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement