![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Доброго времени суток, уважаемые форумчане!
В колледже на практике задали сделать программу по психологии: чтобы студент прошёл тест, результат подсчитался и вывелся его Тип (описание типов в приложенном фото в столбце "Шкала"). Застряла на том, как же ввести в программу данные (с фото). Case, по-моему не подходит. Делать 10 отдельных массивов...? В общем, программирование я ещё знаю плохо, немного работала с консольным приложением, а тут задали сделать полноценную программу. Помогите, пожуйста - в каком виде ввести в программу данные с фото. Работаю в Delphi XE3. P.S. архив с программой почему-то не загружается, выкладываю листинг так. Код:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
btn1: TButton;
Label1: TLabel;
Button2: TButton;
procedure btn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
f: Textfile; //файл теста
buf:string;
//nextqw следующий вопрос
i,j:integer; //i, j счётчики нажатия кнопок "Да" и "Нет"
implementation
uses Unit1;
{$R *.dfm}
function nextqw:boolean;
begin
if not eof(f) then nextqw:=false;
begin
form2.Label1.Caption:=buf;
readln(f,buf);
nextqw:=true;
end;
end;
procedure TForm2.btn1Click(Sender: TObject);
begin
i:=i+1; //"да"
nextqw;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
j:=j+1; // "Нет"
nextqw;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
AssignFile(f,'2.txt');
reset(f);
readln(f,buf);
form2.Caption:=buf;
readln(f,buf);
nq:=0;
nextqw;
end;
end. |
|
#2
|
||||
|
||||
|
Цитата:
Данные можно вводить через эдиты, чем не вариант. Мог бы помочь, но не понимаю логику работы, рисунок для меня какая-то китайская грамота. Не могли бы теорию попонятнее объяснить, будет легче реализовывать. |
|
#3
|
|||
|
|||
|
Цитата:
Ну вообщем , у нас есть 88 вопросов , на прикрепленном фото , есть "Ключ" это номера вопросов по которым идет счет критерия Г-1 .То есть у нас к примеру на вопрос 1 мы ответим "Да" , то мы получаем 1 балл, если на вопрос 11 мы отвечаем "Нет" , то ничего , если на вопрос 23 мы пишем "Да" то еще 1 балл , если на вопрос 33 пишем "Да" еще 1 балл , если на вопрос 45 мы отвечаем "Нет" то ничего , если на вопрос 55 мы отвечаем "Нет " опять ничего ,если на вопрос 67 мы овтечаем "Да " то 1 балл и если на вопрос 77 мы отвечаем "Да" то балл и того у нас ответов "Да" 5 тогда у нас есть 5 баллов , и мы должны эти 5 баллов умножить на множитель(Грубо) то есть на 3 и получим 15 баллов по этому притерию . А вот в "Ключе" на +(Да) у нас должны быть ответы на эти вопросы "Да" ,за которых дают 1 балл , а если ответ Нет , то ничего ,а на -(Нет) вопросы отвеченные на Нет мы получим 1 балл, а если в этом вопросе Да то ничего . Вот так вроде , да все запутанно , сама не могу толком понять как это реализовать =((( |
|
#4
|
||||
|
||||
|
Ну тогда вот, нарисовался такой пример оболочки - осталось только подсчёт результатов организовать. Посмотрите пжлст, в правильном направлении собираю или нет, в смысле, похоже? Как только вникну в алгоритм подсчёта, обновлю. Это под D7, но на ХЕ3 по идеи тоже должно пойти.
З.Ы. Вроде вник, обновил. Проверьте. З.Ы.З.Ы. Поплотнее вник, ещё раз обновил. Ну вы в курсе ![]() P.S.З.Ы.З.Ы. Как смог, закоментил. Последний раз редактировалось Alegun, 03.03.2013 в 03:39. |
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Guneska (02.03.2013)
| ||
|
#5
|
|||
|
|||
|
Да, что-то вроде этого, но я вот прошла этот тест, отвечая на ваши "бла-бла" (
) поочерёдно "Да" и "Нет", и результаты не совпали, например в Г1, у Вас программа вывела, что результат 0, а у меня получилось 8 ответов "Да", значит по 1 баллу за каждый совпавший "Да" = 8 баллов*3(в колонке "Грубо")=24.Вот, как-то так, но за Ваш труд вселенческое СПАСИБО! Теперь хоть есть пример, что и как делать, а то в голове был просто вакуум, пустота, никакого представления Но думаю, обращусь к Вам ещё не раз ( с Вашего позволения именно к Вам) P.S. Мне бы, дураку, ещё комментарии в коде ![]() Последний раз редактировалось Guneska, 02.03.2013 в 19:13. |
|
#6
|
||||
|
||||
|
Цитата:
Пжлст, посмотрите ещё разок архивчик. З.Ы. Кстати, получилось у вас в Data.txt вместо бла-блы тексты теста засунуть? Главное, чтоб было так: один вопрос - одна строчка. |
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Guneska (03.03.2013)
| ||
|
#7
|
||||
|
||||
|
Цитата:
![]() |
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Guneska (03.03.2013)
| ||
|
#8
|
|||
|
|||
|
Alegun, Вы действительно мой спаситель! Всё работает! Правда сначала результат немного не сходился, но до меня дошло, что ошибка где-то в Key.txt, и не промахнулась! Подправила там немножко цифры, и всё изумительно работает! Теперь осталось разобрать код на кусочки, вникнуть в суть и запомнить что и как делается.
СПАСИБО и доброго дня ![]() |
|
#9
|
||||
|
||||
|
Цитата:
![]() Кстати, насчёт ошибки - похоже она в таблице ключей шкал, (Г6, циклотимные) два раза учитывается 18й вопрос, вот я его на не использующийся в других шкалах 28й и подправил, точно инициатива не есть хорошо :-) извнт. |
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Guneska (04.03.2013)
| ||