Advertisement
193030

Kursova 1 Programirane 2

Apr 19th, 2020
408
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.89 KB | None | 0 0
  1. 1#include <iostream>  
  2. 2#include <stdio.h>  
  3. 3#include <string>  
  4. 4#include <string>  
  5. 5#include <string.h>  
  6. 6.   
  7. 7.   
  8. 8using namespace std;  
  9. 9.   struct student {  
  10. 10.     char name[30];  
  11. 11.     char referenceNum[10];  
  12. 12.     int grades[6] = {};  
  13. 13.     int gradesSum;  
  14. 14.     bool gradesSumBool = 0;  
  15. 15.  
  16. 16.   };  
  17. 17.  
  18. 18. int gradesSumCounter = 0;  
  19. 19.  
  20. 20.  
  21. 21.  
  22. 22. int main()  
  23. 23. {  
  24. 24.  
  25. 25.   setlocale(LC_ALL, "Bulgarian");  
  26. 26.  
  27. 27.   int k; // Брой на студентите  
  28. 28.   int check = 0;  
  29. 29.   printf("Въведете брой на студентите:\n");  
  30. 30.     while(scanf("%d",&k) <= 0){  
  31. 31.         scanf("%*s");  
  32. 32.         printf("Моля, въведете цяло число.\n");  
  33. 33.     }  
  34. 34.  
  35. 35.   student* stud;  
  36. 36.   stud = new(nothrow) student[k];  
  37. 37.   // Инициализиране на динамичен масив stud от структурата student  
  38. 38.  
  39. 39.  
  40. 40.   for(int i =0; i<k; i++)  
  41. 41.   {  
  42. 42.       printf("Въведете името на студента (индекс %d): \n", i);  
  43. 43.       int flag = 1;  
  44. 44.       while(flag){  
  45. 45.         scanf("%30s", stud[i].name);  
  46. 46.         int arraySize = sizeof(sizeof(stud[i].name)/sizeof(*stud[i].name));  
  47. 47.         flag = 0;  
  48. 48.         for(int j =0; j<=arraySize; j++)  
  49. 49.         {  
  50. 50.             int currentChar = stud[i].name[j];  
  51. 51.             if( (currentChar>=48) && (currentChar<=57))  
  52. 52.             {  
  53. 53.                 printf("Моля, въведете името отново. \n");  
  54. 54.                 flag = 1;  
  55. 55.                 break;  
  56. 56.  
  57. 57.             }  
  58. 58.         }  
  59. 59.     }  
  60. 60.       printf("Моля въведете входящия номер на студента (индекс %d): \n", i);  
  61. 61.       flag = 1;  
  62. 62.       while(flag) {  
  63. 63.       scanf("%30s", stud[i].referenceNum);  
  64. 64.       int arraySize = sizeof(sizeof(stud[i].referenceNum)/sizeof(*stud[i].referenceNum));  
  65. 65.         flag = 0;  
  66. 66.         for(int j =0; j<=arraySize; j++)  
  67. 67.         {  
  68. 68.             int currentChar = stud[i].referenceNum[j];  
  69. 69.             if(!(currentChar<57) && (currentChar>48))  
  70. 70.             {  
  71. 71.                 printf("Моля, въведете входящия номер отново. \n");  
  72. 72.                 flag = 1;  
  73. 73.                 break;  
  74. 74.             }  
  75. 75.         }  
  76. 76.       }  
  77. 77.       printf("Въведете оценките на студента. \n", i);  
  78. 78.       for(int j =0; j<5; j++)  
  79. 79.       {  
  80. 80.         printf("Въведете оценка номер %d: \n", j+1);  
  81. 81.         while(scanf("%d",stud[i].grades+j) <= 0){  
  82. 82.         scanf("%*s");  
  83. 83.         printf("Моля, въведете цяло число. \n");  
  84. 84.          }  
  85. 85.       }  
  86. 86.   }  
  87. 87.  
  88. 88.  
  89. 89.  
  90. 90.   for(int i =0; i<k; i++)  
  91. 91.   {  
  92. 92.       int gradesSum = 0;  
  93. 93.       for(int j =0; j<5; j++)  
  94. 94.       {  
  95. 95.           gradesSum += stud[i].grades[j];  
  96. 96.       }  
  97. 97.       stud[i].gradesSum = gradesSum;  
  98. 98.       if(stud[i].gradesSum < 12)  
  99. 99.       {  
  100. 100.             stud[i].gradesSumBool =1;  
  101. 101.             gradesSumCounter++;  
  102. 102.          }  
  103. 103.      }  
  104. 104.     
  105. 105.      delete [] stud; // Освобождаване на паметта  
  106. 106.     
  107. 107.      printf("---------------------\n");  
  108. 108.      printf("Студентите със сума от оценките под 12 са: \n");  
  109. 109.      for(int i =0; i<=gradesSumCounter; i++)  
  110. 110.      {  
  111. 111.          if(stud[i].gradesSumBool)  
  112. 112.          {  
  113. 113.              printf("%s ", stud[i].referenceNum);  
  114. 114.              printf("%s ",stud[i].name);  
  115. 115.     
  116. 116.          }  
  117. 117.          printf("\n");  
  118. 118.      }  
  119. 119.     
  120. 120.      return 0;  
  121. 121.     
  122. 122.    }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement