Форум программистов, компьютерный форум CyberForum.ru

составить базу данных.не могу найти ошибку - C++

Восстановить пароль Регистрация
 
Oksana_ks
 Аватар для Oksana_ks
2 / 2 / 0
Регистрация: 17.10.2012
Сообщений: 52
28.02.2013, 21:17     составить базу данных.не могу найти ошибку #1
вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#include <stdio.h>
#include <string.h> 
#include <conio.h>  
#include <iostream>
#include <fstream.h> 
 
using namespace std;
 
#define zagol   "\n\n                                    Г‘ÊËÀÄ "
#define shapka  "\n|Г*Г*çâГ*Г*|ГҐГ¤ èçìåð|èçãîò-ëü|ïîñòГ*Гў|ñòîèì ГҐГ¤|êîë ГҐГ¤| Г¤Г*ГІГ* |ñòîèì ГЇГҐГ°|ГЎГҐГ§ ГЇГҐГ°|Г± ГЇГҐГ°|"
#define line1   "\n|______|________|________|______|________|______|______|_________|_______|_____|"
#define line2   "\n|______________________________________________________________________________|"
#define line3   "\n_______________________________________________________________________________"
 
 
   
   struct sklad {char im[12], ed[12], izg[10], post[9], dat[7]; 
                 int sted, kol, stbper;
                 float stper, stsper;
                 friend istream& operator  >> (istream& is, sklad& dan);
                 friend ostream& operator  << (ostream& os, sklad& dan);
                 friend ofstream& operator << (ofstream& ofs, sklad& dan); } dan;
   
   istream& operator >> (istream& is, sklad dan)
   {
       cout << "Ââåäèòå Г*Г*èìåГ*îâГ*Г*ГЁГҐ òîâГ*Г°Г*: "; is >> dan.im;
       cout << "Ââåäèòå åäèГ*èöó èçìåðåГ*ГЁГї: "; is >> dan.ed;
       cout << "Ââåäèòå èìÿ èçãîòîâèòåëÿ: "; is >> dan.izg;
       cout << "Ââåäèòå èìÿ ïîñòГ*ГўГ№ГЁГЄГ*: "; is >> dan.post;
       cout << "Ââåäèòå ñòîèìîñòü åäèГ*èöû òîâГ*Г°Г*: "; is >> dan.sted;
       cout << "Ââåäèòå êîëè÷åñòâî åäèГ*ГЁГ¶ òîâГ*Г°Г*: "; is >> dan.kol;
       cout << "Ââåäèòå Г¤Г*ГІГі ïîñòóïëåГ*ГЁГї òîâГ*Г°Г*(Гў ôîðìå ÄÄÌÌÃÃ): "; is >> dan.dat;
       dan.stper = dan.kol * dan.sted *0.25;
       dan.stbper = dan.kol * dan.sted;
       dan.stsper = dan.stbper + dan.stper;
       return is;
} 
    ostream& operator >> (ostream& os, sklad& dan)
{    char str[100];
     sprintf (str, "|%6s|%8s|%8s|%6s|%8d|%6d|%6s|%8.1f|%7d|%4.1f|\n", dan.im, dan.ed, dan.izg, dan.post, dan.sted, dan.kol, dan.dat, dan.stper, dan.stbper, dan.stsper);
     str[99] = '\0';
     os << str;
     return os;
} 
    ofstream& operator >> (ofstream& os, sklad& dan)
{    char str[100];
     sprintf (str, "|%6s|%8s|%8s|%6s|%8d|%6d|%6s|%8.1f|%7d|%4.1f|\n", dan.im, dan.ed, dan.izg, dan.post, dan.sted, dan.kol, dan.dat, dan.stper, dan.stbper, dan.stsper);
     str[99] = '\0';
     ofs << str;
     return ofs;
}  
                 
   void VVOD()
   {    char n;
        ofstream fout;
        fout.open ("base.bd", ios::app);
        if (!fout)
           {cerr << "\n ГґГ*éë base.bd Г*ГҐ îòêðûò";
            return;}
        do {
            cin >> dan;
            fout.write ((char*)&dan, sizeof(sklad));
            cout << "ГўГўГҐГ±ГІГЁ ГҐГ№ГҐ Г§Г*ГЇГЁГ±ГЁ?";
            cout << "åñëè \"Г¤Г*\", ГІГ® ââåäèòå - \"D\", åñëè \"Г*ГҐГІ\", ГІГ® - \"H\"";
            cin >> n;
            }
        while (n=='D');
        fout.close();
        }
         
      void VIVOD()
   {
       ifstream fin;
       fin.open ("base.bd", ios::in);
       if(!fin)
       { 
               cout << "\n ГґГ*éë base.bd Г*ГҐ îòêðûò"; return;
       }
       ofstream fout;
       fout.open ("print.txt", ios::out);
       if(!fout)
       {
                cout << "\n ГґГ*éë print.txt Г*ГҐ îòêðûò";
                return;
       }
       cout << zagol << line3 << shapka << line3;
       fout << zagol << line3 << shapka << line3;
       do {fin.read ((char*)&dan,sizeof (struct sklad));
       if (!fin.eof())
       {
           cout << dan << line2;
           fout << dan << line2;
       }}
       while (!fin.eof());
       fin.close();
       fout.close();
   }
  
  
  
    main ()
   { 
        setlocale(LC_ALL, "Russian");
        int key=0;
        do {
             cout<< "\n ***Menu*** \n 1 - vvod \n 2 - vivod \n 3 - filtr \n 4 - exit \n ââåäèòå Г*îìåð:";
             cin>>key;
                 switch (key)
                    {
                       case 1: VVOD (); break;
                       case 2: VIVOD (); break;
                       case 3: break;
                       default: cout<< "\n Error";
                    } 
           }
        while (key!=3);
        cout << "\n ïðîãðГ*ììГ* Г§Г*ГЄГ®Г*Г·ГҐГ*Г*";
        getch();
   }
при компиляции выдает следующие ошибки:
`ofs' undeclared (first use this function)

ambiguous overload for 'operator>>' in 'std::cin >> dan'

candidates are: std::istream& operator>>(std::istream&, sklad&)

std::istream& operator>>(std::istream&, sklad)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.02.2013, 21:59     составить базу данных.не могу найти ошибку #2
24 строка: istream& operator >> (istream& is, sklad& dan)
38: ostream& operator << (ostream& os, sklad& dan)
45: ofstream& operator << (ofstream& os, sklad& dan)
49, 50: os << str; return os;
101: int main()
Oksana_ks
 Аватар для Oksana_ks
2 / 2 / 0
Регистрация: 17.10.2012
Сообщений: 52
28.02.2013, 22:00  [ТС]     составить базу данных.не могу найти ошибку #3
alsav22, выдает теперь: ld returned 1 exit status
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.02.2013, 22:01     составить базу данных.не могу найти ошибку #4
При компиляции? Если при компиляции, то исправленный код покажите.
Oksana_ks
 Аватар для Oksana_ks
2 / 2 / 0
Регистрация: 17.10.2012
Сообщений: 52
28.02.2013, 22:03  [ТС]     составить базу данных.не могу найти ошибку #5
alsav22, все, заработала)спасибо большое
Yandex
Объявления
28.02.2013, 22:03     составить базу данных.не могу найти ошибку
Ответ Создать тему
Опции темы

Текущее время: 15:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru