0 / 0 / 0
Регистрация: 11.04.2018
Сообщений: 2
|
|
1
|
Поправить ошибки нужно код,очень нужно,сегодня должен отослать
12.04.2018, 09:18. Показов 691. Ответов 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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
| #include "stdafx.h"
#include <iostream>
#include <fstream>
#include <conio.h>
using namespace std;
struct Student
{
char Fstudent[10]; // фамилия студента
int Ostudent; // оценка студента
char Pstudent[20]; // наим. предметов
};
void seeStudent(Student pst);
bool getStudent();
bool addStudent();
bool buyStudent();
int main()
{
char ch;
bool bMenu = true;
while (bMenu)
{
system("cls");
cout << "\t\t*** МЕНЮ БАЗА ДАННЫХ (Студенты) ***\n";
cout << "1 - просмотр списка студентов и предметов\n";
cout << "2 - добавить студента\n";
cout << "3 - добавить предмет\n";
cout << "4 - удалить студента\n";
cout << "5 - cохранить результат\n";
cout << "6 - выход из программы\n";
cout << (ch = getch()) << endl;
switch (ch)
{
case '1':
if (!getStudent())
cout << "При добавлении cтудента возникли ошибки\n";
break;
case '2':
if (!addStudent())
cout << "При добавлении студента возникли ошибки\n";
break;
case '3':
if (!buyStudent())
cout << "При удалении студента возникли ошибки\n";
break;
default:
bMenu = false;
cout << "Прекращаем работу программы\n";
break;
}
system("pause");
}
return 0;
void seeStudent(Student pst)
{
cout << "------------------------------------\n";
cout << "Фамилия студента : " << pst.Fstudent << endl;
cout << "Название предмета : " << pst.Pstudent << endl;
cout << "Оценка : " << pst.Ostudent << endl;
cout << "------------------------------------\n";
}
bool getStudent()
{
cout << "\tРежим просмотр списка cтудентов\n";
bool bFlag = false;
long i, j, N;
long fSize = -1;
char ch;
product * list = NULL;
product pst = { 0 };
ifstream ifs
(
"d.txt",
ios::binary
);
if (!ifs)
cout << "Ошибка открытия файла d.txt\n";
else
{
ifs.seekg(0, ios::end);
fSize = ifs.tellg();
ifs.seekg(0, ios::beg);
list = new product[(N = fSize / sizeof(product))];
ifs.read((char *)list, fSize);
bool buyStudent()
{
cout << "\tРежим удаления студента\n";
student pst = { 0 };
bool bFlag = false;
long fSize = -1;
long lPos = -1;
char iFam[10]; //iFam = int -1
ofstream ofs;
ifstream ifs
(
"data.txt",
ios::binary
);
if (!ifs)
cout << "Ошибка открытия файла data.txt\n";
else
{
ifs.seekg(0, ios::beg);
cout << "Введите фамилию студента: "; cin >> iFam;
while (!ifs.eof() && !bFlag)
{
ifs.read((char *)&pst, sizeof(student));
if (pst.Fstudent == iFam)
bFlag = true;
}
if (!bFlag)
cout << "Данной фамилии нет в data.txt\n";
else
{
lPos = ifs.tellg();
ifs.seekg(0, ios::end);
fSize = ifs.tellg();
ifs.seekg(0, ios::beg);
ofs.open("data.tmp", ios::binary);
if (!ofs)
cout << "Ошибка создания data.tmp\n";
else
{
while (!ifs.eof())
{
ifs.read((char *)&pst, sizeof(student));
if (lPos != ifs.tellg() && !ifs.eof())
ofs.write((char *)&pst, sizeof(student));
}
ifs.close();
ofs.close();
bFlag = false;
if (remove("data.txt"))
cout << "Ошибка удаления data.txt\n";
else
if (rename("data.tmp", "data.txt"))
cout << "Ошибка переименования data.tmp\n";
else
bFlag = true;
if (bFlag)
cout << "Студент с фамилией : " << iFam << " удалён из data.txt\n";
}
}
}
return bFlag;
}
} |
|
0
|