Geradot345

курсовая работа, кс

Dec 19th, 2020 (edited)
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.39 KB | None | 0 0
  1. //курсовая работа Вариант 13 Щеглов В.А. 19ВИ1
  2.  
  3. #include <iostream>
  4. #include <fstream>
  5. #include <string>
  6.  
  7. using namespace std;
  8.  
  9. struct farm
  10. {
  11. string name;
  12. string vid;
  13. string form;
  14. int v=0;
  15. int price=0;
  16. farm *next,*prev;
  17. };
  18.  
  19. void copy_into_prog(farm *start){
  20. ifstream fil("курсач.txt");
  21. farm *sp,*prev;
  22. string v,price;
  23. fil>>start->name;
  24. fil>>start->vid;
  25. fil>>start->form;
  26. fil>>v;
  27. fil>>price;
  28. start->v=stoi(v);
  29. start->price=stoi(price);
  30. sp=start;
  31. while(!(fil.eof())){
  32. farm *node=new farm;
  33. sp->next=node;
  34. prev=sp;
  35. sp=sp->next;
  36. sp->prev=prev;
  37. sp->next=NULL;
  38. fil>>sp->name;
  39. fil>>sp->vid;
  40. fil>>sp->form;
  41. fil>>v;
  42. fil>>price;
  43. sp->v=stoi(v);
  44. sp->price=stoi(price);
  45. }
  46. sp->next=NULL;
  47. fil.close();
  48. cout<<"Показать данные?";
  49. string b;
  50. cin>>b;
  51. if(b=="Да"){
  52. sp=start;
  53. do{
  54. cout<<endl<<sp->name<<" "<<sp->vid<<" "<<sp->form<<" "<<sp->v<<" "<<sp->price;
  55. sp=sp->next;
  56. }while(sp!=NULL);
  57. }
  58. }
  59.  
  60. void dob_elem(farm *start){
  61. cout <<endl<< "Хотите добавить новый элемент?";
  62. string b;
  63. farm *sp,*prev;
  64. cin >> b;
  65. sp=start;
  66. if (b == "Да") {
  67. cout << "Сколько хотите добавить новых элементов?";
  68. int a;
  69. cin >> a;
  70. for(int i=1;i<=a;i++) {
  71. while(sp->next!=NULL){
  72. sp=sp->next;
  73. }
  74. farm *node=new farm;
  75. sp->next=node;
  76. prev=sp;
  77. sp=sp->next;
  78. sp->prev=prev;
  79. sp->next=NULL;
  80. cout << "Введите Название:";
  81. cin >> sp->name;
  82. cout << "Введите Вид:";
  83. cin >> sp->vid;
  84. cout << "Введите Форму:";
  85. cin >> sp->form;
  86. cout << "Введите Объём:";
  87. cin >> sp->v;
  88. cout << "Введите Цену:";
  89. cin >> sp->price;
  90. ofstream fi("курсач.txt", ios_base::app);
  91. fi<<endl<<sp->name<<" "<<sp->vid<<" "<<sp->form<<" "<<sp->v<<" "<<sp->price;
  92. sp=sp->next;
  93. }
  94. }
  95. }
  96.  
  97. void find_sch(farm *start){
  98. cout<<"По какому параметру хотите произвести поиск(Вид, Название)?";
  99. string b;
  100. cin>>b;
  101. int min=1000000;
  102. farm min_i,*sp;
  103. if(b=="Вид"){
  104. cout<<"Данные по лекарствам с каким видом хотите найти?"<<endl;
  105. string c;
  106. cin>>c;
  107. sp=start;
  108. while(sp!=NULL){
  109. if(sp->vid==c){
  110. cout << sp->name << " " << sp->vid << " " << sp->form << " " << sp->v << " " << sp->price<<endl;
  111. cout<<"Хотите удалить этот элемент?";
  112. string d;
  113. cin>>d;
  114. if(d=="Да"){
  115. if(sp->prev==NULL){
  116. sp=sp->next;
  117. sp->prev=NULL;
  118. start=sp;
  119. }else{
  120. if(sp->next==NULL){
  121. sp->prev->next=NULL;
  122. }else{
  123. sp->prev->next=sp->next;
  124. sp->next->prev=sp->prev;
  125. }
  126. }
  127. }
  128. if (sp->price<min){
  129. min=sp->price;
  130. min_i=*sp;
  131. }
  132. }
  133. sp=sp->next;
  134. }
  135. cout<<"Данные по самому дешёвому лекарству вида "<<c<<":"<<endl<<min_i.name<<" "<<min_i.vid<<" "<<min_i.form<<" "<<min_i.v<<" "<<min_i.price;
  136. }
  137. if(b=="Название"){
  138. cout<<"Данные по лекарствам с каким названием хотите найти?"<<endl;
  139. string c;
  140. cin>>c;
  141. sp=start;
  142. while(sp!=NULL){
  143. if(sp->name==c){
  144. cout << sp->name << " " << sp->vid << " " << sp->form << " " << sp->v << " " << sp->price<<endl;
  145. cout<<"Хотите удалить этот элемент?";
  146. string d;
  147. cin>>d;
  148. if(d=="Да"){
  149. if(sp->prev==NULL){
  150. sp=sp->next;
  151. sp->prev=NULL;
  152. start=sp;
  153. }else{
  154. if(sp->next==NULL){
  155. sp->prev->next=NULL;
  156. }else{
  157. sp->prev->next=sp->next;
  158. sp->next->prev=sp->prev;
  159. }
  160. }
  161. }
  162. }
  163. sp=sp->next;
  164. }
  165. }
  166. sp=start;
  167. ofstream f("курсач.txt");
  168. while(sp!=NULL){
  169. f<<sp->name<<" "<<sp->vid<<" "<<sp->form<<" "<<sp->v<<" "<<sp->price<<endl;
  170. sp=sp->next;
  171. }
  172. f.close();
  173. }
  174.  
  175. int main()
  176. {
  177. setlocale(LC_ALL, "Russian");
  178. farm start;
  179. start.prev=NULL;
  180. copy_into_prog(&start);
  181. dob_elem(&start);
  182. find_sch(&start);
  183. }
Add Comment
Please, Sign In to add comment