Advertisement
Guest User

Untitled

a guest
Feb 24th, 2017
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.70 KB | None | 0 0
  1. //---------------------------------------------------------------------------
  2.  
  3. #pragma hdrstop
  4.  
  5. //---------------------------------------------------------------------------
  6.  
  7. #pragma argsused
  8. #include <stdlib.h>
  9. #include <stdio.h>
  10. #include <string.h>
  11. #include <mem.h>
  12. #define EOT 100
  13. #define BOT 0
  14. struct BelRow
  15. {
  16. char Name[12];
  17. char Fam[15];
  18. unsigned long Tel;
  19. };
  20. class Bel
  21. {
  22. BelRow Table[100];
  23. int TableEnd;
  24. int CurrentRecord;
  25. public:
  26. Bel (void) {TableEnd = 0;}
  27. int Append(char *Name, char *Fam, unsigned long Tel);
  28. int Append(BelRow *ARow);
  29. BelRow *FindRowByName (char *Name);
  30. void First();
  31. int Next();
  32. int Prev();
  33. void Last();
  34. BelRow *Get();
  35. };
  36. int Bel::Append(char *Name, char *Fam, unsigned long Tel)
  37. {
  38. if(TableEnd >=100) return 0;
  39. strcpy(Table[TableEnd].Name,Name);
  40. strcpy(Table[TableEnd].Fam, Fam);
  41. Table[TableEnd].Tel = Tel;
  42. TableEnd++;
  43. return 1;
  44. }
  45. int Bel::Append(BelRow *ARow)
  46. {
  47. if(TableEnd >=100) return 0;
  48. memcpy(&Table[TableEnd], ARow, sizeof(BelRow));
  49. TableEnd++;
  50. return 1;
  51. }
  52. BelRow *Bel::FindRowByName(char *Name)
  53. {
  54. for(int i=0; i < TableEnd; i++)
  55. if(!strcmp(Table[i].Name, Name)) return &Table[i];
  56. return NULL;
  57. }
  58. void Bel::First()
  59. {
  60. CurrentRecord = 0;
  61. }
  62. int Bel::Next()
  63. {
  64. if(CurrentRecord == TableEnd -1) return EOT;
  65. else CurrentRecord++;
  66. return CurrentRecord;
  67. }
  68. int Bel::Prev()
  69. {
  70. if(CurrentRecord == 0 ) return BOT;
  71. else CurrentRecord--;
  72. return CurrentRecord;
  73. }
  74. void Bel::Last()
  75. {
  76. CurrentRecord = TableEnd -1;
  77. }
  78. BelRow *Bel::Get()
  79. {
  80. return &Table[CurrentRecord];
  81. }
  82. int main(int argc, char* argv[])
  83. {
  84. Bel Tef1;
  85. Tef1.Append("Ivan", "Petrov", 365531);
  86. Tef1.Append("Stefan", "Stoyanov", 895667732);
  87. Tef1.Append("Alexander", "Netsov", 453654);
  88. Tef1.Append("Lubomir", "Vladimirov", 12312);
  89.  
  90. Tef1.Last();
  91. BelRow *Last = Tef1.Get();
  92.  
  93. Tef1.First();
  94. BelRow *ARow = Tef1.Get();
  95.  
  96. printf("\n Name %s, Fam %s, Tel %lu\n", ARow->Name, ARow->Fam, ARow ->Tel);
  97. while(true){
  98. Tef1.Next();
  99. ARow = Tef1.Get();
  100. printf("\n Name %s, Fam %s, Tel %lu\n", ARow->Name, ARow->Fam, ARow ->Tel);
  101.  
  102. if (ARow == Last){
  103. break;
  104. }
  105.  
  106. }
  107.  
  108. system("pause");
  109. return 0;
  110. }
  111. //---------------------------------------------------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement