Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //курсовая работа Вариант 13 Щеглов В.А. 19ВИ1
- #include <iostream>
- #include <fstream>
- #include <string>
- using namespace std;
- struct farm
- {
- string name;
- string vid;
- string form;
- int v=0;
- int price=0;
- farm *next,*prev;
- };
- void copy_into_prog(farm *start){
- ifstream fil("курсач.txt");
- farm *sp,*prev;
- string v,price;
- fil>>start->name;
- fil>>start->vid;
- fil>>start->form;
- fil>>v;
- fil>>price;
- start->v=stoi(v);
- start->price=stoi(price);
- sp=start;
- while(!(fil.eof())){
- farm *node=new farm;
- sp->next=node;
- prev=sp;
- sp=sp->next;
- sp->prev=prev;
- sp->next=NULL;
- fil>>sp->name;
- fil>>sp->vid;
- fil>>sp->form;
- fil>>v;
- fil>>price;
- sp->v=stoi(v);
- sp->price=stoi(price);
- }
- sp->next=NULL;
- fil.close();
- cout<<"Показать данные?";
- string b;
- cin>>b;
- if(b=="Да"){
- sp=start;
- do{
- cout<<endl<<sp->name<<" "<<sp->vid<<" "<<sp->form<<" "<<sp->v<<" "<<sp->price;
- sp=sp->next;
- }while(sp!=NULL);
- }
- }
- void dob_elem(farm *start){
- cout <<endl<< "Хотите добавить новый элемент?";
- string b;
- farm *sp,*prev;
- cin >> b;
- sp=start;
- if (b == "Да") {
- cout << "Сколько хотите добавить новых элементов?";
- int a;
- cin >> a;
- for(int i=1;i<=a;i++) {
- while(sp->next!=NULL){
- sp=sp->next;
- }
- farm *node=new farm;
- sp->next=node;
- prev=sp;
- sp=sp->next;
- sp->prev=prev;
- sp->next=NULL;
- cout << "Введите Название:";
- cin >> sp->name;
- cout << "Введите Вид:";
- cin >> sp->vid;
- cout << "Введите Форму:";
- cin >> sp->form;
- cout << "Введите Объём:";
- cin >> sp->v;
- cout << "Введите Цену:";
- cin >> sp->price;
- ofstream fi("курсач.txt", ios_base::app);
- fi<<endl<<sp->name<<" "<<sp->vid<<" "<<sp->form<<" "<<sp->v<<" "<<sp->price;
- sp=sp->next;
- }
- }
- }
- void find_sch(farm *start){
- cout<<"По какому параметру хотите произвести поиск(Вид, Название)?";
- string b;
- cin>>b;
- int min=1000000;
- farm min_i,*sp;
- if(b=="Вид"){
- cout<<"Данные по лекарствам с каким видом хотите найти?"<<endl;
- string c;
- cin>>c;
- sp=start;
- while(sp!=NULL){
- if(sp->vid==c){
- cout << sp->name << " " << sp->vid << " " << sp->form << " " << sp->v << " " << sp->price<<endl;
- cout<<"Хотите удалить этот элемент?";
- string d;
- cin>>d;
- if(d=="Да"){
- if(sp->prev==NULL){
- sp=sp->next;
- sp->prev=NULL;
- start=sp;
- }else{
- if(sp->next==NULL){
- sp->prev->next=NULL;
- }else{
- sp->prev->next=sp->next;
- sp->next->prev=sp->prev;
- }
- }
- }
- if (sp->price<min){
- min=sp->price;
- min_i=*sp;
- }
- }
- sp=sp->next;
- }
- cout<<"Данные по самому дешёвому лекарству вида "<<c<<":"<<endl<<min_i.name<<" "<<min_i.vid<<" "<<min_i.form<<" "<<min_i.v<<" "<<min_i.price;
- }
- if(b=="Название"){
- cout<<"Данные по лекарствам с каким названием хотите найти?"<<endl;
- string c;
- cin>>c;
- sp=start;
- while(sp!=NULL){
- if(sp->name==c){
- cout << sp->name << " " << sp->vid << " " << sp->form << " " << sp->v << " " << sp->price<<endl;
- cout<<"Хотите удалить этот элемент?";
- string d;
- cin>>d;
- if(d=="Да"){
- if(sp->prev==NULL){
- sp=sp->next;
- sp->prev=NULL;
- start=sp;
- }else{
- if(sp->next==NULL){
- sp->prev->next=NULL;
- }else{
- sp->prev->next=sp->next;
- sp->next->prev=sp->prev;
- }
- }
- }
- }
- sp=sp->next;
- }
- }
- sp=start;
- ofstream f("курсач.txt");
- while(sp!=NULL){
- f<<sp->name<<" "<<sp->vid<<" "<<sp->form<<" "<<sp->v<<" "<<sp->price<<endl;
- sp=sp->next;
- }
- f.close();
- }
- int main()
- {
- setlocale(LC_ALL, "Russian");
- farm start;
- start.prev=NULL;
- copy_into_prog(&start);
- dob_elem(&start);
- find_sch(&start);
- }
Add Comment
Please, Sign In to add comment