0 / 0 / 0
Регистрация: 20.08.2011
Сообщений: 33
1

Создание и корректировка файла, содержащего сведения о студентах.

20.08.2011, 15:03. Показов 11255. Ответов 35
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
еще 1 задача:
Разработать программу создания и корректировки файла, содержащего сведения о студентах. Каждый элемент этого файла должен содержать следующие данные: номер группы, номер в группе по списку, фамилию, имя, отчество, год рождения, оценки за последнюю сессию. Программа должна предусматривать создание текстового файла, содержащего информацию о студентах заданной группы.

Добавлено через 35 минут
Ребят помогите плиз написать программу!!!!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.08.2011, 15:03
Ответы с готовыми решениями:

Создание и корректировка файла, содержащего сведения о книгах, находящихся в библиотеке
Разработать программу создания и корректировки файла, содержащего сведения о книгах, находящихся в...

Редактирование текстового файла, содержащего сведения о студентах
Привет. Нужна помощь с решением задачи. Знаю как решить логически но по программному коду че-то...

Создание и корректировка файла, содержащего сведения об абитуриентах
Код 322 что означает, кто знает? Добавлено через 21 минуту Program Prog; Uses Classes,...

Обработка текстового файла, содержащего сведения о студентах
Дан текстовый файл, содержащий сведения о студентах. Need help , может кто может помочь? Как это...

35
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
20.08.2011, 18:07 2
Pascal
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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
uses crt;
const filename='student';
const n=4;
type student=record
             grp:word;
             nom:byte;
             fam:string[20];
             im:string[20];
             otc:string[20];
             god:word;
             ocn:array[1..n] of byte;
             end;
tfile=file of student;
var b:boolean;{переменная для фиксации существования файла}
{ввод данных}
procedure Vvod(var st:student);
var k,i:byte;
begin
with st do
 begin
  repeat
  write(' Номер группы (число из 4х цифр)): ');
  readln(grp);
  until (grp>999)and(grp<=9999);
  repeat
  write(' Номер в списке(число от 1 до 30): ');
  readln(nom);
  until nom in [1..30];
  write(' Фамилия: ');readln(fam);
  write(' Имя: ');readln(im);
  write(' Отчество: ');readln(otc);
  repeat
  write(' Год рождения(1985-1994): ');
  readln(god);
  until(god>=1985)and(god<=1994);
  writeln(' Оценки за сессию(2-5):');
  for k:=1 to n do
   begin
    repeat
    write('  оценка ',k,'  ');
    readln(ocn[k]);
    until ocn[k] in [2..5];
   end;
 end;
end;
{создание файла записей}
procedure WriteFile(var t:tfile);
var m,i,k:integer;
    st:student;
begin
rewrite(t);
write('Количество записей m=');
readln(m);
writeln('Введите данные о студентах:');
for i:=1 to m do
 begin
  writeln('Студент ',i);
  Vvod(st);
  write(t,st);
 end;
close(t);
b:=true;
write('Press Enter...');
readln
end;
{открытие файла для чтения и редактирования}
procedure OpenFile(var t:tfile);
begin
if not b then
 begin
  writeln('Файл еще не создан, вернитесь к пункту 1');
  write('Press Enter...');
  readln;
  exit;
 end
else reset(t);
end;
{добавление записи}
procedure AddFile(var t:tfile);
var st:student;
begin
OpenFile(t);
if not b then exit;
writeln('Введите данные о студенте:');
Vvod(st);
seek(t,filesize(t));
write(t,st);
close(t);
write('Press Enter...');
readln
end;
{удаление записи из файла}
procedure DelFile(var t:tfile);
var n,i:integer;
    st:student;
begin
write('Удалить запись № ');
readln(n);
OpenFile(t);
if not b then exit;
if (filesize(t)<n)or(n<0) then
 begin
  writeln('В файле нет такой записи');
  close(t);
  write('Press Enter...');
  readln;
  exit;
 end;
seek(t,n-1);
for i:=n-1 to filesize(t)-2 do
 begin
  seek(t,i+1);
  read(t,st);
  seek(t,i);
  write(t,st);
 end;
seek(t,filesize(t)-1);
truncate(t);
close(t);
write('Press Enter...');
readln
end;
{редактирование записи}
Procedure Redakt(var t:tfile);
var n:integer;
    st:student;
begin
write('Заменить запись № ');
readln(n);
OpenFile(t);
if not b then exit;
if (filesize(t)<n)or(n<0) then
 begin
  writeln('В файле нет такой записи');
  close(t);
  write('Press Enter...');
  readln;
  exit;
 end;
seek(t,n-1);
writeln('Введите новые данные о студенте:');
Vvod(st);
write(t,st);
close(t);
write('Press Enter...');
readln
end;
{создание текстового файла}
procedure TextFile(var t:tfile;var f:text);
var gr:word;
    s:string;
    st:student;
    k,i,j:byte;
begin
OpenFile(t);
if not b then exit;
write('Имя файла ');{для каждой группы свое имя файла}
readln(s);
s:=s+'.txt';
assign(f,s);
rewrite(f);
k:=0;
writeln('Введите номер группы для поиска');
readln(gr);
while not eof(t) do
 begin
  read(t,st);
  if st.grp=gr then
   begin
    k:=1;
    with st do
     begin
      write(f,grp,' ',nom,' ',fam,' ',im,' ',otc,' ',god);
      for j:=1 to n do
      write(f,' ',ocn[j]);
     end;
    writeln(f,'');
   end;
  end;
if k=0 then writeln(f,'Takogo nomera gruppy net!');
close(t);
close(f);
write('Press Enter...');
readln
end;
{чтение исходного файла}
procedure ReadFile(var t:tfile);
var st:student;
    i:byte;
begin
OpenFile(t);
if not b then exit;
writeln('Содержание исходного файла:');
writeln('-------------------------------------------------------------------');
writeln('|Группа|Номер|   Фамилия   |  Имя  |   Отчество  | Г. р. | Оценки |');
writeln('-------------------------------------------------------------------');
while not eof(t) do
 begin
  read(t,st);
  with st do
   begin
    gotoXY(1,whereY);write('|',grp:5);
    gotoXY(8,whereY);write('|',nom:4);
    gotoXY(14,whereY); write('| ',fam);
    gotoXY(28,whereY); write('| ',im);
    gotoXY(36,whereY); write('| ',otc);
    gotoXY(50,whereY); write('|',god:5);
    gotoXY(58,whereY); write('|');
    for i:=1 to n do
    write(' ',ocn[i]);
    gotoXY(67,whereY); writeln('|');
   end;
 end;
writeln('-------------------------------------------------------------------');
write('Press Enter...');
readln
end;
var st:student;
    g:tfile;
    f:text;
    c:char;
begin
clrscr;
assign(g,filename);
b:=false;
repeat
clrscr;
writeln('Выберите действие:');
writeln('1-создать новый файл');
writeln('2-добавить запись');
writeln('3-удалить запись');
writeln('4-редактировать запись');
writeln('5-прочитать файл');
writeln('6-создать текстовый файл');
writeln('другое-выход');
readln(c);
case c of
'1':WriteFile(g);
'2':AddFile(g);
'3':DelFile(g);
'4':Redakt(g);
'5':ReadFile(g);
'6':TextFile(g,f);
else exit;
end;
until not(c in ['1'..'6']);
end.
1
0 / 0 / 0
Регистрация: 20.08.2011
Сообщений: 33
20.08.2011, 18:15  [ТС] 3
Огромное Вам спасибо!!!!
0
0 / 0 / 0
Регистрация: 20.08.2011
Сообщений: 33
27.09.2011, 18:10  [ТС] 4
помогите плиз программа на строчке gotoXY(1,whereY);write('|',grp:5); неизвестный индекатор
0
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
27.09.2011, 18:24 5
Vetalina, Пишите внимательно, в программе нет ошибок.
Может пропустили
Pascal
1
with st do
0
0 / 0 / 0
Регистрация: 20.08.2011
Сообщений: 33
28.09.2011, 11:08  [ТС] 6
Все спасибо большое! Ошибка и правда была у меня. Программа работает!!!

Добавлено через 1 час 20 минут
Есть еще вопрос, когда я добавляю запись в уже созданный файл, вылетает ошибка 101: Ошибка записи на диск( что это может быть?
0
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
28.09.2011, 11:14 7
Цитата Сообщение от Vetalina Посмотреть сообщение
когда я добавляю запись в уже созданный файл,
Нужно так
Pascal
1
2
3
reset(f);
seek(f,filesize(f));
write(f,zap);
0
0 / 0 / 0
Регистрация: 20.08.2011
Сообщений: 33
28.09.2011, 11:21  [ТС] 8
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure AddFile(var t:tfile);
var st:student;
begin
OpenFile(t);
if not b then exit;
writeln('Введите данные о студенте:');
Vvod(st);
reset (f);
seek(f,filesize(f));
write(f,zap);
close(t);
write('Press Enter...');
readln
Добавлено через 37 секунд
это так должно выглядеть?
0
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
28.09.2011, 11:24 9
Да, только reset наверное не нужно, он должен быть в процедуре OpenFile(t);

Добавлено через 1 минуту
Но у меня же все написано уже и программа рабочая была..
0
0 / 0 / 0
Регистрация: 20.08.2011
Сообщений: 33
28.09.2011, 11:28  [ТС] 10
ща проверю

Добавлено через 4 минуты
не так он на f указывает,что неизвестный. так-то она работает и компиляцию проводит и файл создает и записи вносит, но при добавление новой записи вылетает ошибка.
0
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
28.09.2011, 11:31 11
Кажется нашел, в процедуре ReadFile нужно в конце добавить close(t);

Добавлено через 23 секунды
А так все работает.
0
0 / 0 / 0
Регистрация: 20.08.2011
Сообщений: 33
28.09.2011, 11:40  [ТС] 12
может я скину вам мой файл вы проверите, ну я ща все пересмотрела, вроде все правильно напечатанно
0
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
28.09.2011, 11:41 13
Давайте, прикрепите его в тему, если не знаете как, читайте
https://www.cyberforum.ru/abou... 03521.html
0
0 / 0 / 0
Регистрация: 20.08.2011
Сообщений: 33
28.09.2011, 11:46  [ТС] 14
вроде оно
Вложения
Тип файла: rar 15.rar (3.1 Кб, 34 просмотров)
0
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
28.09.2011, 12:09 15
Я же написал, вставьте в процедуре Readfile это
Pascal
1
2
3
writeln('______________________________________________________________________');
 close(t);//вот это, закрыть файл после просмотра, и все работает
 write('Press Enter...');
0
0 / 0 / 0
Регистрация: 20.08.2011
Сообщений: 33
28.09.2011, 12:19  [ТС] 16
я все сделала, но почему-то таже ошибка. Может я не правильно ввожу данные? начало я выбираю 1 ввожу студентов, потом 6 создаю текстовый файл, потом 2 добавляю запись. и меня выбрасывает пишет ошибку
0
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
28.09.2011, 12:26 17
Я не знаю, у меня все работает, как ни делал, в любом порядке, работают все процедуры.

Добавлено через 41 секунду
Цитата Сообщение от Vetalina Посмотреть сообщение
Может я не правильно ввожу данные?
Программа не даст ввести неправильно.
0
0 / 0 / 0
Регистрация: 20.08.2011
Сообщений: 33
28.09.2011, 12:31  [ТС] 18
А в программе которую я напечатала нет ошибок?

Добавлено через 1 минуту
Может попробовать так сдать, может у препода будет тоже все работать.
Просто тут надо оформить и прикрепить примеры работы программы. я хотела показать как работает каждая процедура с 1 по 6
0
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
28.09.2011, 12:31 19
Vetalina, Так я Вашу английскую программу и тестировал, только close(t) вставил...
0
Почетный модератор
64288 / 47587 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
28.09.2011, 12:34 20
Ну погоняйте то что я гонял, если будут ошибки, напишите очно что в каком порядке делали и что вводили, может я чего не вижу.
Вложения
Тип файла: rar Программа.rar (8.0 Кб, 59 просмотров)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2011, 12:34
Помогаю со студенческими работами здесь

Создание файла, содержащего сведения о машинах на складе, и работа с ним
Задачка 2. Создать файл содержащий сведения о машинах на складе. Каждая запись файла должна...

Создание и обработка типизированного файла, содержащего сведения о месте жительства студента
Разработать программу решение задачи, в которой реализовать создание и обработку типизированного...

Разработать программу формирования файла, содержащего сведения о школьниках
помогите пожалуйста решить задачи в делфи очень надо 3.Разработать программу формирования файла,...

Разработать программу для создания файла, содержащего сведения о фамилиях студентов
Помогите разработать программу для создания файла, содержащего сведения о фамилиях студентов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru