Advertisement
Guest User

Untitled

a guest
Mar 25th, 2017
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.01 KB | None | 0 0
  1. Привет всем ! прошу помочь найти баг в программе
  2.  
  3. #include <cstdlib>
  4. #include <iostream>
  5. #include <string.h>
  6. #include <cstdio>
  7.  
  8. using namespace std;
  9. struct User{
  10.  
  11. char name[12];
  12.  
  13. char surname[20];
  14.  
  15. char nomer[12];
  16.  
  17. };
  18. void showall (User &us);
  19. void addUser(User& us);
  20. void deleteUser(User user[],int size);
  21.  
  22. int main(int argc, char** argv) {
  23. setlocale(LC_ALL,"Rus");
  24. //int size;
  25. User telbook[10];
  26. int k;
  27. cout<< "********Телефонный справочник********"<<"nnn";
  28. int iadd=0;
  29. char v;
  30. while(v!='n')
  31. {
  32. cout << "1 - Добавить запись.n" <<"2 - Показать всё.n"<<"3 - Удалить записьn";
  33. cout << "Введи команду: ";
  34. cin>> k;
  35. switch(k)
  36. {
  37. case 1:
  38. system("cls");
  39. addUser(telbook[iadd]);
  40. if (iadd>=1){
  41. for (int i=(iadd-1);i>=0;i--)
  42. {
  43. if(telbook[iadd].nomer==telbook[i].nomer)
  44. {
  45. cout<< "Введеный номер совпадает с номером " <<i+1 <<"пользователя";
  46. addUser(telbook[iadd]);
  47. }
  48. }cout << "Запись добавленаn";
  49. } iadd++; break;
  50. case 2:system("cls");
  51. for (int i =0;i<iadd;i++)
  52. {
  53. cout << i+1<< " Запись:n"; showall(telbook[i]);
  54. }
  55. cout << telbook[0].nomer<<'n'<<"Strlen:"<<strlen(telbook
  56. [0].nomer);
  57. break;
  58. case 3:
  59. system("cls");
  60. deleteUser(telbook, iadd);
  61. break;
  62. default :
  63. cout << "некорректная командаn";
  64. cin>>k;
  65. }
  66. cout<< "n Продолжить?? y-да/ n-выход из программыn";
  67.  
  68. cin >>v;
  69.  
  70. }
  71.  
  72. return 0;
  73. }
  74.  
  75. void addUser(User& us){
  76. int i=0;
  77. char nom[12];
  78. bool esdigit;
  79. cout<<"Пишите латиницейnn";
  80. do{//name
  81. esdigit=false;
  82. cout<<endl<< "enter namen";
  83. cin>>us.name;
  84. for (i=0;i<strlen(us.name);i++){
  85. if(!isalpha(us.name[i]))
  86. {
  87. cout <<"Имя не должно содержать цифрn" ;
  88. esdigit=true;
  89. }
  90. if(isspace(us.name[i])){break;break;}
  91. }
  92.  
  93. }
  94. while(strlen(us.name)>12 || esdigit);
  95. i=0;
  96. do{//surneme
  97.  
  98. esdigit=false;
  99. cout<< "enter surnamen";
  100. cin>>us.surname;
  101. for (i=0;i<strlen(us.surname);i++){
  102. if(isdigit(us.surname[i]))
  103. {
  104. cout <<"Фамилия не должна содержать цифрn" ;
  105. esdigit=true;break;
  106. }
  107. }
  108.  
  109. }
  110. while(strlen(us.name)>20 ||strlen(us.name)<=0|| esdigit);
  111. bool isbykva;
  112. i=0;
  113. do{//nomer
  114. isbykva=false;
  115. cout <<"n"<< "enter nomern";
  116. cin>>us.nomer;
  117. for(i=0;i<strlen(us.nomer);i++){
  118. if(isalpha(us.nomer[i]))
  119. {
  120. cout<< "Номер не должен содержать буквn";
  121. isbykva=true;
  122. break;
  123. }
  124. }
  125. if(strlen(us.nomer)!=12)cout <<"В номере 12 цифр!!";
  126.  
  127. }while (strlen(us.nomer)!=12 || isbykva);
  128. i=0;//strcpy(us.nomer,nom);
  129.  
  130.  
  131. }
  132. void deleteUser(User user[],int size){
  133.  
  134. bool isbykva;
  135. char nomer[12];
  136. cout<<"n Введите номер пользователя которого желаете удалитьn";
  137. do{
  138. isbykva=false;
  139. cin>>nomer;
  140. if(strlen(nomer)!=12)cout <<"В номере 12 цифр!!";
  141. for(int i=0;i<strlen(nomer);i++)
  142. {
  143. if(isalpha(nomer[i]))
  144. {
  145. cout<< "Номер не должен содержать буквn";
  146. isbykva=true;
  147. break;
  148. }
  149. }
  150. }while (strlen(nomer)!=12 || isbykva);
  151. bool find= false;
  152.  
  153. for (int i =0;i<=size;i++)
  154. {
  155. if (nomer==user[i].nomer)
  156. {
  157. find=true;//user[i].nomer=user[size-1].nomer;
  158. break;
  159. }
  160. if (find)
  161. {
  162. cout << "пользователь "<< user[i].name <<" "<< user[i].surname<< "
  163.  
  164. удален";
  165. user[i]=user[size];
  166. --size;
  167. }else cout<< "Запись не найдена!";
  168. }
  169.  
  170. }
  171.  
  172. void showall (User &us){
  173.  
  174. cout << us.name << " "<< us.surname<< "n"<< us.nomer<<"n";
  175.  
  176. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement