Advertisement
Guest User

Untitled

a guest
Jun 3rd, 2015
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.02 KB | None | 0 0
  1. #include <iostream>
  2. #include <string.h>
  3. using namespace std;
  4.  
  5. void AddFilm(struct MusicShop* q);
  6. void GanreFilm(int tmp, struct MusicShop* q);
  7. void OutputStruct(struct MusicShop* q);
  8. struct MusicShop
  9. {
  10. int number;
  11. union
  12. {
  13. struct {
  14. int number;
  15. }Strun;
  16. struct {
  17. char *kind;
  18. }Udar;
  19. struct {
  20. char *kind;
  21. }Klavishi;
  22. struct {
  23. char *kind;
  24. }Duhovie;
  25. };
  26. char* view;
  27. char *name;
  28. int cost;
  29. bool ok;
  30. MusicShop* next;
  31. };
  32. int main()
  33. {
  34. // MAIN
  35. setlocale(0, "");
  36. MusicShop* q = new MusicShop;
  37. MusicShop* top = q;
  38. AddFilm(q);
  39. OutputStruct(top);
  40. cin.ignore();
  41. cin.ignore();
  42. return 0;
  43. // MAIN
  44. }
  45. void AddFilm(MusicShop* q)
  46. {
  47. int ok = 1;
  48. do
  49. {
  50. cout << "Введите название" << endl;
  51. q->name = new char[20];
  52. cin >> q->name;
  53. cout << "Выбирете вид. Доступные варианты:" << endl << "1. Струнные , 2. Ударные, 3.Клавиши , 4.Духовые" << endl;
  54. cin >> ok;
  55. GanreFilm(ok, q);
  56. cout << "Стоимость товара" << endl;
  57. cin >> q->cost;
  58. cout << "Наличиие на складе. 1 - да, другие цифры нет" << endl;
  59. int k;
  60. cin>>k;
  61. if (k==1) q->ok = true;
  62. else q->ok = false;
  63. cout << "Добавить еще? 1 - да, закончить ввод - любой символ отличный от 1" << endl;
  64. cin >> ok;
  65. if (ok != 1) q->next = NULL;
  66. else
  67. {
  68. q = new MusicShop;
  69. q = q->next;
  70. }
  71. } while (ok == 1);
  72. }
  73. void GanreFilm(int tmp, MusicShop* q)//Выбор особенности
  74. {
  75. int key;
  76. q->number = tmp;
  77. switch (tmp)
  78. {
  79. case 1:
  80. cout << "Введите кол-во струн" << endl;
  81. cin >> q->Strun.number;
  82. break;
  83. case 2:
  84. cout << "Введите вид Ударных. Доступные варианты:" << endl << "1.Мистика, 2.Жестокость/насилие, 3.Вампиры/оборотни, 4.Зомби " << endl;
  85. q->Udar.kind = new char[20];
  86. cin >> key;
  87. switch (key)
  88. {
  89. case 1:
  90. strcpy(q->Udar.kind, "Мистика");
  91. break;
  92. case 2:
  93. strcpy(q->Udar.kind, "Жестокость/насилие");
  94. break;
  95. case 3:
  96. strcpy(q->Udar.kind, "Вампиры/оборотни");
  97. break;
  98. case 4:
  99. strcpy(q->Udar.kind, "Зомби");
  100. break;
  101. }
  102. break;
  103. case 3:
  104. cout << "Введите вид клавишных. Доступные варианты:" << endl << "1.Трагедия, 2.Мелодрама, 3.Криминальная драма, 4. Военная драма" << endl;
  105. q->Klavishi.kind = new char[20];
  106. cin >> key;
  107. switch (key)
  108. {
  109. case 1:
  110. strcpy(q->Klavishi.kind,"Трагедия");
  111. break;
  112. case 2:
  113. strcpy(q->Klavishi.kind, "Мелодрама");
  114. break;
  115. case 3:
  116. strcpy(q->Klavishi.kind, "Криминальная драма");
  117. break;
  118. case 4:
  119. strcpy(q->Klavishi.kind, "Военная драма");
  120. break;
  121. }
  122. break;
  123. case 4:
  124. cout << "Введите вид духовых. Доступные варианты:" << endl << "1.Научная фантастика 2.Социальная фантастика, 3.Фэнтези, 4.Киберпанк" << endl;
  125. q->Duhovie.kind = new char[20];
  126. cin >> key;
  127. switch (key)
  128. {
  129. case 1:
  130. strcpy(q->Duhovie.kind, "Научная фантастика");
  131. break;
  132. case 2:
  133. strcpy(q->Duhovie.kind, "Социальная фантастика");
  134. break;
  135. case 3:
  136. strcpy(q->Duhovie.kind, "Фэнтези");
  137. break;
  138. case 4:
  139. strcpy(q->Duhovie.kind, "Киберпанк");
  140. break;
  141. }
  142. break;
  143. }
  144. }
  145. void OutputStruct(MusicShop* q)
  146. {
  147. while(q!=NULL)
  148. {
  149. cout<<"-------------------------------------------------------------------------------"<<endl;
  150. cout<<"Название: ";
  151. int i = 0;
  152. while (q->name[i])
  153. cout<<q->name[i++];
  154. cout<<endl;
  155. cout<<"Жанр: ";
  156. i = 0;
  157. while (q->view[i])
  158. cout<<q->view[i++];
  159. cout<<endl;
  160. cout<<endl<<"Особенность: ";
  161. i = 0;
  162. switch (q->number)
  163. {
  164. case 1:
  165. cout<<q->Strun.number;
  166. break;
  167. case 2:
  168. while (q->Udar.kind[i])
  169. cout<<q->Udar.kind[i++];
  170. break;
  171. case 3:
  172. while (q->Klavishi.kind[i])
  173. cout<<q->Klavishi.kind[i++];
  174. break;
  175. case 4:
  176. while (q->Duhovie.kind[i])
  177. cout<<q->Duhovie.kind[i++];
  178. break;
  179. }
  180. cout<<endl;
  181. cout<<"Стоимость товара: ";
  182. cout<<q->cost<<endl;
  183. cout<<"Наличие на складе: ";
  184. if (q->ok) cout<<"Есть";
  185. else cout<<"Нет";
  186.  
  187. q = q->next;
  188. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement