Помощь - Поиск - Пользователи - Календарь
Полная версия: Создание дневника с оценками
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
microbe
Ребята! Хочу создать дневник с оценками такого вида.
Код

Список оценок:                                                   Средний балл:
                                                            
-------------------------------------------------------------------  --------
Белорусская литература            |
-------------------------------------------------------------------  --------
Русская литература                   |
-------------------------------------------------------------------  --------
Основы алгоритмизации и прогр.|
-------------------------------------------------------------------  --------
Операционные системы              |
-------------------------------------------------------------------  --------
Прикладное ПО                          |
-------------------------------------------------------------------  --------
Экономическая теория               |
-------------------------------------------------------------------  --------
Философия                                 |
-------------------------------------------------------------------  --------
Высшая математика                    |
-------------------------------------------------------------------  --------
Физкультура                              |
-------------------------------------------------------------------  --------
Инженерная графика                  |
-------------------------------------------------------------------  --------
Английский язык                         |
-------------------------------------------------------------------  --------


Шаблон записан в текстовом файле. Все, что нужно, это при запуске программы выбрать пункт меню (от 1 до 11), выбрав таким образом предмет, ввести новую оценку, чтобы она заняла свое место и записалась в файл и автоматически высчитать средний балл по текущему предмету, соответственно записать снова в файл. То есть, чтобы заново открыв программу, мне выдавался уже обновленный дневник.
Вот, что есть на данный момент: (Паскаль только начал, так что не судите строго, если где-то нерационально)

program DNEVNIK;
uses crt;
var t:text; ln,pt:string; key,bl,rl,oap,os,ppo,et,fil,vm,fk,ig,ang,x,y:integer;
bls,rls,oaps,oss,ppos,ets,fils,vms,fks,igs,angs:real;spc:char;
begin
repeat
clrscr;
assign(t,'ocenki.txt');
reset(t);
while not eof(t) do
begin
readln(t,ln);
writeln(ln);
end;
close(t);

{----------------------------------------------------------}
writeln('Выберите дисциплину:');
writeln;
writeln('1. Белорусская литература');
writeln('2. Русская литература');
writeln('3. Основы алгоритмизации и прогр.');
writeln('4. Операционные системы');
writeln('5. Прикладное ПО');
writeln('6. Экономическая теория');
writeln('7. Философия');
writeln('8. Высшая математика');
writeln('9. Физкультура');
writeln('10. Инженерная графика');
writeln('11. Английский язык');
writeln;
readln(key);
until (key>=1) and (key<=11);
{--------------------------------------------------------------------}
case of key
1: begin
assign(t,'ocenki.txt');
append(t);
writeln ('Введите оценку:');
readln(bl);
gotoxy(32,4);
write(bl,' ');
close(t);
end;

{--------------------------------------------------------------------------}


end.


ЗЫ. Процедуры не предлагать
Unconnected
Получается, оценки можно только добавлять? Пр запуске надо сделать считывание всех оценок из файла.
Здесь для хранения оценок подойдёт обычный одномерный массив целых чисел. Справишься? Метки использовать тоже не очень хорошо, подумай над большим циклом, который будет заменять goto.
volvo
Цитата
ЗЫ. Процедуры не предлагать
Ага. А к тебе - тоже есть требование: GoTo из программы убрать. Уберешь - приходи, будем разговаривать дальше. Все ясно?

P.S. С чего ты вообще решил, что тебе кто-то БУДЕТ что-то предлагать? Я как-то вопроса не увидел в первом посте. Ну, есть у тебя код. И?
microbe
Цитата(Unconnected @ 23.09.2010 19:56) *

Получается, оценки можно только добавлять? Пр запуске надо сделать считывание всех оценок из файла.
Здесь для хранения оценок подойдёт обычный одномерный массив целых чисел. Справишься? Метки использовать тоже не очень хорошо, подумай над большим циклом, который будет заменять goto.

Справлюсь, думаю) Но главная проблема в том, что я не могу записать оценки((( при выполнении она записывается на свое место, а когда открываю ocenki.txt, то там пусто. После долгосрочных танцев с бубнами я все-таки добился записи оценок, но записывались они в конец файла из-за append. а вот как ее на свое место поставить в таблице??

Добавлено через 2 мин.
Цитата(volvo @ 23.09.2010 20:00) *

Ага. А к тебе - тоже есть требование: GoTo из программы убрать. Уберешь - приходи, будем разговаривать дальше. Все ясно?

P.S. С чего ты вообще решил, что тебе кто-то БУДЕТ что-то предлагать? Я как-то вопроса не увидел в первом посте. Ну, есть у тебя код. И?

уберу я, уберу. это не суть важно. дело в другом совсем. Up
Unconnected
Цитата
После долгосрочных танцев с бубнами я все-таки добился записи оценок, но записывались они в конец файла из-за append. а вот как ее на свое место поставить в таблице??


Чего там танцевать, 3-4 функции) Я ж и говорю, читаешь в начале программы все оценки в массив, потом по ходу записи не дописываешь в файл, а вносишь изменения в массив, а в итоге перезаписываешь файл и кладёшь туда обновленные оценки. Или можно при вводе каждой новой оценки перезаписывать.

Цитата
уберу я, уберу. это не суть важно. дело в другом совсем. Up


Важно, чего может и не видно на первый взгляд.
microbe
Цитата(Unconnected @ 23.09.2010 20:18) *

Чего там танцевать, 3-4 функции) Я ж и говорю, читаешь в начале программы все оценки в массив, потом по ходу записи не дописываешь в файл, а вносишь изменения в массив, а в итоге перезаписываешь файл и кладёшь туда обновленные оценки. Или можно при вводе каждой новой оценки перезаписывать.
Важно, чего может и не видно на первый взгляд.

понял, буду работать)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.