![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 26.03.2011
Сообщений: 18
|
![]()
Подскажите где в этой программе перегрузка операторов и для чего вообще это нужно?
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop //--------------------------------------------------------------------------- #include <stdio.h> #include <iostream.h> #include <string.h> #include <conio.h> #include <fstream> #pragma argsused //--------------------------------------------------------------------------- class Klient { public: char nom_scheta[7]; char familiya[10]; char imya[10]; char ochestvo[15]; float summa; char data_operacii[11]; char tip_operacii [11]; int vvod_dannih(Klient &data); }; class Operation: public Klient { public: void operacii(Klient client){ cout<<"vvedite daty operacii:"; char dat[11]; cin>>dat; cout<<"vvedite tip operacii (popolnenie/snyatie):"; char key_type[11]; float sum; cin>>key_type; if (strcmp(key_type,"popolnenie")==0) { cout<<"Vvedite summu popolneniya sum="; cin>>sum; client.summa+=sum; } else if (strcmp(key_type,"snyatie")==0) { cout<<"Vvedite summu snyatiya sum="; cin>>sum; client.summa-=sum; } ofstream fout("klients.txt",ios::trunc); fout.write((char*)&client, sizeof(client)); fout.close(); } }; //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- int Klient::vvod_dannih (Klient &data) { cout<<"Vvedite nomer scheta: "; cin.getline(data.nom_scheta,7); cin.getline(data.nom_scheta,7); cout<<"Vvedite familiu: "; //cin.getline (data.familiya,10); cin.getline (data.familiya,10); cout<<"Vvedite imya: "; cin.getline (data.imya,10); cout<<"Vvedite ochestvo: "; cin.getline (data.ochestvo,15); cout<<"Vvedite daty operacii: "; cin.getline (data.data_operacii,11); cout<<"Vvedite tip operacii: "; cin.getline (data.tip_operacii,11); cout<<"Vvedite summy: "; cin>>data.summa; ofstream fout("klients.txt",ios::app); fout.write((char*)&data, sizeof(data)); fout.close(); return 1; } //--------------------------------------------------------------------------- void vyvod (Klient& data) { cout<<"\n"<<data.nom_scheta<<" " <<data.familiya<<" " <<data.imya<<" " <<data.ochestvo<<" " <<data.data_operacii<<" " <<data.tip_operacii<<" " <<data.summa<<"\n " ; } //--------------------------------------------------------------------------- void main() { char ch; do { cout<<" -------------- MENU -------------\n"; cout<<"| 1.Dobavlenie klienta |\n"; cout<<"| 2.Poisk, operacii, vuvod |\n"; cout<<"| 3.Poisk i udalenie |\n"; cout<<"| 4.Vyhod |\n"; cout<<" ---------------------------------\n"; cout<<"\nVash vubor-->"; cin>>ch; Klient data; Operation operation; switch (ch) { //------------------------------------------------------------------------------ case '1': { Klient Input; Input.vvod_dannih (data); vyvod (data); break; } |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 26.03.2011
Сообщений: 18
|
![]()
Вот продолжение:
case '2': { const k=70; Klient A[k]; int i=0,l=0; ifstream fin ("klients.txt"); while (!fin.eof()) { fin.read((char*)&A[i],sizeof(Klient)); i++; } fin.close(); char key_nom[10]; cout<<"Dlya poiska po baze vvedite dannye\n"; cout<<"nomer scheta: "; cin>>key_nom; l=i; int point=0,n; for (i=0;i<l;i++) { if (strcmp(key_nom,A[i].nom_scheta)==0) { cout<<"\n"<<A[i].nom_scheta<<" " <<A[i].familiya<<" " <<A[i].imya<<" " <<A[i].ochestvo<<" " <<A[i].data_operacii<<" " <<A[i].tip_operacii<<" " <<A[i].summa<<"\n " ; n=i; point=1; } } if (point==0) { cout<<"\nDannye ne naydeny"; getch(); } else { cout<<"Vy hotite operirovat so schetom? (Y/N) "; char resh[1]; cin>>resh; if (strcmp(resh,"y")==0) { operation.operacii(A[n]); } else cout<<"OK\n\n"; } clrscr(); } break; //------------------------------------------------------------------------------ case '3': { const k=70; Klient A[k]; int i=0,l=0; ifstream fin ("klients.txt"); while (!fin.eof()) { fin.read((char*)&A[i],sizeof(Klient)); i++; } fin.close(); char key_nom[10]; cout<<"Dlya udaleniya iz bazy vvedite dannye\n"; cout<<"nomer scheta: "; cin>>key_nom; l=i; int point=0,n; for (i=0;i<l;i++) if (strcmp(key_nom,A[i].nom_scheta)==0) { cout<<"\n"<<A[i].nom_scheta<<" " <<A[i].familiya<<" " <<A[i].imya<<" " <<A[i].ochestvo<<" " <<A[i].data_operacii<<" " <<A[i].tip_operacii<<" " <<A[i].summa<<"\n " ; n=i; point=1; } if (point==0) { cout<<"\nDannye ne naydeny\n\n"; getch(); } else { cout<<"Vy hotite udalit dannyu zapis? (Y/N) :"; char ch1[1]; cin>>ch1; if (strcmp(ch1,"y")==0) { for (i=n;i<l;i++) A[i]=A[i+1]; ofstream fout("klients.txt",ios::trunc); fout.write((char*)&A, sizeof(A)); fout.close(); } } clrscr(); } break; //------------------------------------------------------------------------------ case '4': { exit(1); break; } //------------------------------------------------------------------------------ } } while (ch!=4); getch(); } |
![]() |
![]() |
![]() |
#3 |
Форумчянин
Форумчанин
Регистрация: 05.04.2009
Сообщений: 446
|
![]()
Если ты не хочешь, я могу погуглить за тебя. А перегрузки операторов я тут не нашел.
Nobody expects Spanish Inquisition!
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
в данном коде нет перегрузки операторов.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 26.03.2011
Сообщений: 18
|
![]() |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 03.01.2011
Сообщений: 2,508
|
![]()
так разве << и >> тут не перегружены? понятно, что перегрузил их не автор программы, но, имхо, этого условия и не было в исходном вопросе )
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перегрузка операторов | Jugger | Помощь студентам | 7 | 23.11.2011 23:40 |
Перегрузка операторов | Leo_ня | Общие вопросы C/C++ | 7 | 10.04.2011 15:52 |
Перегрузка операторов | raspberry | Общие вопросы C/C++ | 2 | 06.04.2010 00:19 |
Перегрузка операторов. | Macb3th | Общие вопросы C/C++ | 5 | 01.04.2010 21:14 |
Перегрузка операторов, Организация перегрузки операторов | chagin_yav | Помощь студентам | 2 | 12.05.2008 09:15 |