Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 9, 2010 00:19:05

rokki
От:
Зарегистрирован: 2009-09-22
Сообщения: 79
Репутация: +  0  -
Профиль   Отправить e-mail  

Тестирование учащихся

Первый раз что то сделал, буду рад комментариям чтобы доработать недостатки.
Кодировка utf-8

import Tkinter as t


vopros=[['''Считая, что каждый символ кодируется 2 байтами,\nоцените информационный объем в кодировке Unicode:\nМой дядя самых честных правил, Когда не в шутку занемог,\nОн уважать себя заставил И лучше выдумать не мог''',['108 бит','832 бит','108 килобайт','864 килобайт']],
['''Считая, что каждый символ кодируется 2 байтами,\nоцените информационный объем в кодировке Unicode:\nОдин пуд - около 16,4 килограмм.''',['32 килобайта','512 бит','64 бита','32 байта']],
['''Считая, что каждый символ кодируется 1 байтом\nоцените информационный объем предложения:\nПевец-Давид был ростом мал, Но повалил же Голиафа!''',['400 бит','50 бит','400 байт','5 байт']],
['''Считая, что каждый символ кодируется 1 байтом,\nоцените информационный объем предложения:\nВ одном килограмме - 1000 грамм.''',['16 килобайт','256 бит','32 байта','16 байт']],
['''Световое табло состоит из лампочек, каждая из которых\nможет находиться в 2 состояниях("вкл" или "выкл").\nКакое наименьшее количество лампочек должно находиться\nна табло, чтобы с его помощью можно было передать\n200 различных сигналов?''',['8','9','100','200']],
['''Шахматная доска состоит из 64 полей:8 строк на 8 столбцов.\nКакое минимальное количество бит потребуется\nдля кодирования координат одного поля?''',['4','5','6','7']],
['''Сколько существует различных последовательностей из символов\n"а" и "б" длиной ровно в 10\nсимволов?''',['20','100','1024','2048']],
['''Сколько существует различных последовательностей из символов\n"+" и "-" длиной ровно в 5 символов?''',['64','50','32','20']],
['''В зрительном зале 2 прямоугольные области зрительских кресел:\nодна 10 на 12, а другая 17 на 8. Какое минимальное количество\nбит потребуется для кодирования каждого места в\nавтоматизированной системе?''',['5','6','7','8']],
['''Азбука Морзе позволяет кодировать символы для радиосвязи,задавая\nкомбинацию точек и тире. Сколько различных символов можно закодировать,\nиспользуя код Морзе длиной не менее 3\nи не более 5 сигналов(точек и тире)?''',['12','56','84','256']],
['''Сколько мегабайт информации содержит сообщение объемом 223 бит?\n \n''',['1','8','3','32']],
['''Получено сообщение, информационный объем которого равен 32 бит.\nЧему равен этот объем в байтах?''',['5','2','3','4']],
['''Для 5 букв латинского алфавита заданы их двоичные коды\n(для некоторых букв из двух бит, для некоторых-из трех).\nA-000, B-01, С-100, D-10, E-011.Определить, какой набор букв\nзакодирован двоичной строкой 0110100011000.''',['EBCEA','BDDEA','BDCEA','EBAEA']],
['''Для кодирования букв А, Б, В, Г решили использовать двухразрядные\nпоследовательные двоичные числа(от 00 до 11 соответственно).\nЕсли таким способом закодировать аоследовательность символов ГБАВ\nи перевести результат в шестнадцатиричную систему счислен\nто получится:''',['D2','132','3102','DBAC']],
['''Каждое показание датчика, фиксируемое в памяти компьютера, занимает\n10 бит.Запмсано 100 показаний этого счетчика. Каков информационный\nобъем снятых значений в байтах?''',['10','100','125','1000']],
['Количество значащих нулей в двоичной записи числа 129 равно:',['5','6','7','4']],
['Как представляется число 25 в двоичной системе счисления?',['1001','11001','10011','11010']],
['Как представлено число 83 в двоичной системе счисления?',['1001011','1100101','1010011','101001']],
['''Вычислите значение суммы в десятичной системе счисления\n(в скобках указано основание системы счисления):\n10(2)+10(8)+10(16)=?(10)''',['30','26','36','20']],
['''Вычислите сумму чисел x и y, если x=1110101(2),у=1011011(2).\nРезультат представьте в виде восьмеричного числа.\n(в скобках указано основание системы счисления)''',['2110(8)','298(8)','320(8)','318(8)']],
['''Вычислите сумму двоичных чисел х и у, если\nх=1010101(2), у=1010011(2)\n(в скобках указано основание системы счисления).''',['10100010(2)','10101000(2)','10100100(2)','10111000(2)']],
['''Вычислите сумму чисел x и y при x=В4(16),у=46(8).\nРезультат представьте в двоичной системе счисления.\n(в скобках указано основание системы счисления)''',['10001111(2)','1100101(2)','101011(2)','1010111(2)']],
['''Вычислите сумму чисел x и y при x=1D(16),у=72(8).\nРезультат представьте в двоичной системе счисления.\n(в скобках указано основание системы счисления)''',['10001111(2)','1100101(2)','101011(2)','1010111(2)']]
]


p=0
c=int

otvet=[]
protv=[0,2,3,1,3,1,2,3,3,4,2,1,4,3,1,3,2,2,3,2,3,2,1,4]


def result(ocenka):
global labelfont, c
print 'ocenka:',ocenka
kr=t.Tk()
akl=t.Label(kr, text='Ваша оценка:')
akl.grid(row=0, column=0)
akl1=t.Label(kr, text=ocenka)
akl1.grid(row=0, column=1)
akl2=t.Label(kr, text='правильных ответов:')
akl2.grid(row=1, column=0)
akl3=t.Label(kr, text=c-1)
akl3.grid(row=1, column=1)
akl.config(bg='black', fg='white', font=labelfont)
akl1.config(bg='black', fg='white', font=labelfont)
akl2.config(bg='black', fg='white', font=labelfont)
akl3.config(bg='black', fg='white', font=labelfont)
kr.config(bg='black')
kr.mainloop()




def vop():
global p, n, vopros, otvet, c

labelfont=('times', 12, 'bold')


if p<23:
lab2=t.Label(fr1, text=vopros[p][0])
lab2.grid(sticky=NW, row=0, column=1, ipadx=240, ipady=50)
lab2.config(bg='white', fg='black', font=labelfont)
la=Label(frn, text=p+1, bg='red')
la.grid(row=0, column=p, ipadx=7)
for i in range(4):
l1=t.Label(fr2, text=' ')
l1.grid(row=i+1, column=1)
l1.config(bg='black', fg='white')
l=t.Label(fr2, text=vopros[p][1][i])
l.grid(row=i+1, column=1)
l.config(bg='black', fg='white', font=labelfont)

u=var.get()
print u
otvet.append(u)
print otvet


else:
lab2=t.Label(fr1, text='Один момент............................')
lab2.grid(sticky=W, row=0, column=1, ipadx=425, ipady=100)
lab2.config(bg='white', fg='black')
sravn=zip(otvet,protv)
print sravn
c=0
n=0
for x in sravn:
if (sravn[n][0]==sravn[n][1]):
c=c+1
print c
n=n+1

if c>=18:
ocenka=5
result(ocenka)
print('krasavchik!!!!')
elif 14<c<=17:
ocenka=4
result(ocenka)
print('very beatiful')
elif 8<c<=14:
ocenka=3
result(ocenka)
print('Xm...')
else:
ocenka=2
result(ocenka)
print('Vot ti jestkii tip')

p=p+1
return c

labelfont=('times', 20, 'bold')

root=t.Tk()
root.title('Информационные процессы и системы')
root.config(bg='black', width=400, height=400)

frn=t.Frame(root)
frn.grid(row=6, padx=25, pady=15)

sch=range(1,24)

for n in sch:
la=Label(frn, text=n, bg='green')
la.grid(row=0, column=n-1, ipadx=7)


fr=t.Frame(root, bg='black')
fr.grid(row=0, column=0,padx=10, pady=10)
lab=t.Label(fr, text='Информация и ее кодирование', font=labelfont, bg='black', fg='white')
lab.grid(sticky=EW)


fr1=t.Frame(root, bg='black')
fr1.grid(sticky=W, row=2, column=0, padx=10, pady=10)
lab1=t.Label(fr1, text='Вопрос', fg='white', bg='black')
lab1.grid(sticky=NW, row=0, column=0)

lab2=t.Label(fr1, text='''Для начала тестирования
нажмите далее''')
lab2.grid(sticky=NW, row=0, column=1, ipadx=425, ipady=100)
lab2.config(bg='white', fg='black', font=14)



fr2=t.Frame(root, bg='black')
fr2.grid(row=3, column=0, sticky=W, padx=10, pady=10)
lab3=t.Label(fr2, text='Ответ', fg='white', bg='black')
lab3.grid(sticky=NW, row=0, column=0, padx=10, pady=10)

var=IntVar()
for i in range(1,5):
r=t.Radiobutton(fr2, value=i, variable=var)
r.grid(row=i, column=0, padx=10, pady=10)
r.config(bg='black', cursor='hand2')




but1=t.Button(root, text='Далее>>', cursor='hand2', command=vop)
but1.grid(row=5, column=0)
but2=t.Button(root, text='Выход', cursor='hand2', command=quit)
but2.grid(row=5, column=1)
but1.config(bg='black', fg='white')
but2.config(bg='black', fg='white')


root.resizable(0,0)
root.mainloop()



Отредактировано (Янв. 9, 2010 00:24:27)

Офлайн

#2 Янв. 9, 2010 00:54:26

Zubchick
От:
Зарегистрирован: 2009-07-08
Сообщения: 613
Репутация: +  0  -
Профиль   Отправить e-mail  

Тестирование учащихся

читай вопросы из файла же -_-'



Офлайн

#3 Янв. 9, 2010 12:19:47

rokki
От:
Зарегистрирован: 2009-09-22
Сообщения: 79
Репутация: +  0  -
Профиль   Отправить e-mail  

Тестирование учащихся

Zubchick
читай вопросы из файла же -_-'
Добавить вопросы в другой файл и брать оттуда?



Отредактировано (Янв. 9, 2010 12:23:23)

Офлайн

#4 Янв. 9, 2010 12:24:21

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Тестирование учащихся

Да.

Офлайн

#5 Янв. 9, 2010 13:34:11

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Тестирование учащихся

Или в базу данных запихнуть, типа sqlite3.
Редактировать (добавлять) будет удобней, используя какой нибудь менеджер sqlite.



Офлайн

#6 Янв. 10, 2010 05:12:59

Evgen
От:
Зарегистрирован: 2007-01-18
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Тестирование учащихся

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



Офлайн

#7 Янв. 10, 2010 05:18:49

rokki
От:
Зарегистрирован: 2009-09-22
Сообщения: 79
Репутация: +  0  -
Профиль   Отправить e-mail  

Тестирование учащихся

Evgen
а лучше если самому сделать сохранение вопросов в бд, и вообще всё хранить в базе, кто, когда сдавал, сколько ошибок сделал и т.д. т.е. довести программу до законченного состояния.
об этом то я тоже думал, осталось только сделать



Офлайн

#8 Фев. 16, 2010 12:17:21

hellslade
От:
Зарегистрирован: 2008-01-28
Сообщения: 240
Репутация: +  0  -
Профиль   Отправить e-mail  

Тестирование учащихся

rokki, а как на счет возможности вставить картинку в вопрос? И вывод вопроса можно сделать в виде html



Офлайн

#9 Фев. 17, 2010 07:39:21

Cover Story
От:
Зарегистрирован: 2008-08-26
Сообщения: 192
Репутация: +  0  -
Профиль   Отправить e-mail  

Тестирование учащихся

Можно также таймер обратного отсчета поставить. Чтобы ученики думали побыстрее.



Python 2.7.3
Pyside 1.1.2

Офлайн

#10 Фев. 17, 2010 08:48:36

.Serj.
От:
Зарегистрирован: 2008-09-27
Сообщения: 181
Репутация: +  0  -
Профиль   Отправить e-mail  

Тестирование учащихся

ИМХО, может, не стоит изобретать велосипед, а присоединиться к http://itest.sourceforge.net/ ? Правда, он на плюсах с Qt.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version