Разработка базы данных на языке программирования Python

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,81 Мб
  • Опубликовано:
    2015-06-07
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка базы данных на языке программирования Python

Кафедра автомобиле- и тракторостроения









КУРСОВАЯ РАБОТА

По курсу информатики

На тему:

Разработка базы данных на языке программирования Python


РЕФЕРАТ

Объект разработки - база данных для хранения дипломных проектов.

Цель работы - разработка базы данных на языке программирования Python.

Во время выполнения работы была разработана структура базы данных, были созданы окна, включая технологию переходов, разработан внешний вид окон и в итоге была создана база данных в среде объектно-ориентированного программирования phyton.

База данных была экспериментально опробована, в результате чего было установлено, что существенных ошибок в коде программы не выявлено. Программа может быть успешно применена в работе стат. отделов ВУЗов.


Содержание:

Вступление

Структура б/д

Окна ввода-вывода информации

Технология переходов

Листинг с пояснениями

Специальное задание

Направления улучшения

Вывод

Список использованной литературы


Вступление

Актуальность хранения информации в электронном виде заключается в том, что бумажная документация имеет срок годности и портиться со временем. Для долгосрочного хранения информации гораздо удобнее использовать электронные базы данных.

К настоящему времени человечеством накоплено поистине гигантское количество информации об объектах и явлениях. Но эта информация не лежит мертвым грузом, она хранится в электронном виде и используется в базах данных. Базы данных - это часть информационных систем - программно-аппаратных комплексов, осуществляющих хранение и обработку огромных информационных массивов.

База данных представляет собой определенным образом структурированную совокупность данных, совместно хранящихся и обрабатывающихся в соответствии с некоторыми правилами. Как правило, база данных моделирует некоторую предметную область или ее фрагмент. Очень часто в качестве постоянного хранилища информации баз данных выступают файлы.

Программа, производящая манипуляции с информацией в базе данных, называется СУБД (система управления базами данных). Она может осуществлять выборки по различным критериям и выводить запрашиваемую информацию в том виде, который удобен пользователю. Основными составляющими информационных систем, построенных на основе баз данных, являются файлы БД, СУБД и программное обеспечение (клиентские приложения), позволяющие пользователю манипулировать информацией и совершать необходимые для решения его задач действия.

Информация, которая хранится в базе данных, может постоянно пополняться. От того, как часто это делается, зависит ее актуальность. Информацию об объектах также можно изменять и дополнять.

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


Структура базы данных

Исходя из задания была разработана база данных:















Рисунок 1 - Структура базы данных Base_stud.bso

Окна ввода/вывода информации

Окно «А»

Окно «А» выполняет функции входа

Окно «В»

В этом окне можно добавить диплом или открыть уже готовый. Так же можно настроить параметры шрифта и прочесть о готовой б/д.

Окно «С»

Окно «С» служит для ввода всей информации о студенте, также здесь указуються пути к документу с текстом и папке с изображениями.

В окне «D» выполняется поиск записей по заданным параметрам

Окно «D»

Окно «P»

Окно «P» служит для вывода полной информации по студенту

Технология переходов



 

 


 


 


Листинг с пояснениями

база данный диплом python

osnovnoe okno.py

# -*- coding: utf-8 -*-TkinterstringtkMessageBoxsysosNew_DataFontFind_DataCopy_RezO_ProgtkFontsystem:__init__(self, root, all_font):(root, all_font)__call__(self, root, all_font):font(event = None):.font(root)VHOD (event = None):

if self.tip_dostupa == u"Студент":():B (even = None):

#if even == u"Студент":close_all_prevision(event = None)::(self.C.FRC)

print u"Окно С закрыто"

except: pass:(self.D.FRD)

print u"Окно D закрыто"

except::(self.E.FRE)

print u"Окно E закрыто"

except::(self.K)

print u"Окно K закрыто"

except::(self.O.FRO)

print u"Окно O закрыто":

#Создание окна "Новая запись"

#Создание окна "Найти запись"Window_D(event = None):

close_all_prevision().D = Find_Data.find_data(root,all_font)

#Создание окна "Резервное копирование"Window_E (event = None):

close_all_prevision().E = Copy_Rez.copy_rez(root,all_font)

#Создание окна "Шрифты"Window_K(event = None):_all_prevision().K = Font.font(root,all_font)Window_O(event = None):_all_prevision().O = O_Prog.o_prog(root,all_font).destroy().geometry("1024x768+0+0")

root.update().title(u"База данных дипломных робот студентов ТМ факультета")

Bar = Tkinter.Menu(root)["font"] = all_font["tearoff"] = 0= Tkinter.Menu(Bar, tearoff = 0 , font = all_font).add_command(label = u"Новая запись", command = Window_C).add_command(label = u"Найти запись", command = Window_D).add_command(label = u"Резервное копирование", command =

Window_E).add_command(label = u"Общая информация").add_separator().add_command(label = u"Выход", command=die)= Tkinter.Menu(Bar, tearoff = 0 , font = all_font).add_command(label = u"Размер").add_command(label = u"Шрифты",command = Window_K)= Tkinter.Menu(Bar, tearoff = 0 , font = all_font).add_command(label = u"Помощь").add_command(label = u"О программе", command = Window_O).add_cascade(label = u"Управление базой", menu = Menu1).add_cascade(label = u"Настройка вида", menu = Vid).add_cascade(label = u"О программе", menu = Prog).config(menu=Bar).mainloop()

#else:

#pass

#Изминение состояния полей ввода и кнопок

def var123 (even = None):even == u"Студент":["state"] = "disabled"["state"] = "disabled"["state"] = "normal":["state"] = "normal"["state"] = "normal"["state"] = "normal"

#Закрытие программыdie(even = None):= tkMessageBox.askyesno(u"Важно!!!",u"Закрыть базу данных

дипломных работ студентов ТМ-факультета?")

r = responser == 1:.exit(0):.destroy()= Tkinter.Frame(root)["width"] = 250["height"] = 300.place(relx = 0.5, rely = 0.5, anchor = "center" )["bg"] = "white"["bd"] = "4m"["relief"] = "groove"

#Меню "Тип доступа"big(event = None):_NEW["text"] = (NEW_text[event])(NEW_text[event]).tip_dostupa = NEW_text[event]_NEW = Tkinter.Menubutton(FR, relief = "raised", justify = "center")_NEW.place(relx = 0.5, rely = 0.2, anchor = "center")_NEW.menu = Tkinter.Menu(MB_NEW, tearoff = 0)_NEW ["menu"] = MB_NEW.menu_NEW ["bg"] = "grey"_NEW ["activebackground"] = "white"

MB_NEW ["width"] = 20_text = [u"Администратор", u"Преподаватель", u"Студент"]

MB_NEW["text"] = (u"Тип доступа")= []i in NEW_text:.append(i+" "*(20-len(i)))_NEW.menu.add("cascade", label = NEW[0], command = lambda m=0

:big(m))_NEW.menu.add("cascade", label = NEW[1], command = lambda m=1

:big(m))_NEW.menu.add("cascade", label = NEW[2], command = lambda m=2

:big(m))

#Поле ввода "Имя пользователя"= Tkinter.LabelFrame(FR)["text"] = u"Имя пользователя"

LaFR1.place(relx = 0.5, rely = 0.4, anchor = "center")= Tkinter.Entry(LaFR1)["width"] = 25["state"] = "disabled".pack()

name = Ent1

#Поле ввода "Пароль"

LaFR2 = Tkinter.LabelFrame(FR)["text"] = u"Пароль".place(relx = 0.5, rely = 0.55, anchor = "center")= Tkinter.Entry(LaFR2)["width"] = 25["state"] = "disabled"["show"] = "*".pack()= Ent2

#Кнопка "Вход"= Tkinter.Button(FR)["bg"] = "white"["bd"] = "1m"["relief"] = "raised"["text"] = u"Вход"["state"] = "disabled".place(relx = 0.4, rely = 0.8, anchor = "center").bind("<Button-1>",VHOD).bind("<Return>", VHOD)

#Кнопка "Выход"= Tkinter.Button(FR)["bg"] = "white"["bd"] = "1m"["relief"] = "raised".place(relx = 0.2, rely = 0.8, anchor = "center")["text"] = u"Выход".bind("<Button-1>", die)

#Кнопка "Регистрация"= Tkinter.Button(FR)["bg"] = "white"["bd"] = "1m"["relief"] = "raised".place(relx = 0.7, rely = 0.8, anchor = "center")["text"] = u"Регистрация".bind("<Button-1>").mainloop()__name__ == "__main__":= Tkinter.Tk()_vhod = root.winfo_screenheight()_vhod = root.winfo_screenwidth()_vhod = (shyrina_vhod / 2) - 125_vhod = (vysota_vhod / 2) - 150_x_y = "250x300+%s+%s"%(x_vhod,y_vhod).geometry(razm_x_y)

root.title(u"Вход в базу данных дипломных проэктов

all_font = tkFont.Font()_font ["family"] = "Helvetica"_font ["size"] = 15_font ["weight"] = "normal"(root,all_font)

New_Data.py

# -*- coding: cp1251 -*-TkinterScrolledTexttkFontosstringpickletkFileDialogImage

import ImageTk

#окно "С" - создание новой записи

class new_data:

def __init__(self, root,all_font):(root,all_font)__call__(self, root,all_font):New_dictonary(event = None):= {}= 0i in range(0,13):.Param_2[self.dosm[i]] = self.informatino[ss]= ss + 1type(self.informatino[ss]).Param_2["Theme"] = self.ST.get(index1 = 0.0,index2 = "end").Param_2["Stepen"] = self.stepen.Param_2["tabl"] = Ent15.get()

#print self.ST.get(index1 = 0.0,index2 = "end")

#************************************************************

*******************

#ПРОВЕРКА ПУТЕЙ:os.path.exists("C:\\TM_Base") == 1:.chdir("C:\\TM_Base"):.makedirs("C:\\TM_Base").chdir("C:\\TM_Base")()Sohranenie (event= None):Sohranenie_pict(event = None): #сохранение картинок.chdir(self.path_pict)os.listdir(self.path_pict)= os.listdir(self.path_pict)= ["C:\\TM_Base\\Spec\\" + self.key_key + "\\",'C:\\TM_Base\\Bakalavr\\'

+ self.key_key + '\\','C:\\TM_Base\\Magistr\\' + self.key_key + '\\']= u[event]i in t:.chdir(self.path_pict)_pict = open(i,"rb")= open_pict.read()_pict.close().chdir(u[event])_pict = open(i ,"wb")_pict.write(p)_pict.close()Sohranenie_text (event = None):= ["C:\\TM_Base\\Spec\\" + self.key_key + "\\",'C:\\TM_Base\\Bakalavr\\'

+ self.key_key + '\\','C:\\TM_Base\\Magistr\\' + self.key_key + '\\']= string.split(self.path_pdf,"/"):i in z:i.find(".docx") != -1:.pdf = iself.pdfi.find(".pdf") != -1:.pdf = iself.pdfi.find(".txt") != -1:.pdf = iself.pdfi.find(".doc") != -1:.pdf = iself.pdf:= len (self.path_pdf)= len (self.pdf)= h - j= self.path_pdf[0:l]N.chdir(N)_pdf = open(self.pdf,"rb")= open_pdf.read()_pdf.close().chdir(u[event])_pdf = open(self.pdf,"wb")_pdf.write(f)_pdf.close():_font = tkFont.Font()_font ["family"] = "Helvetica"_font ["size"] = 30_font ["weight"] = "bold"_font ["slant"] = "italic"= Tkinter.Label(self.FRC)

krasavchik["text"] = u"Не верный тип данных!\n Текстовый файл не

сохранен!!!"

krasavchik["font"] = krasavchik_font["bg"] = "red".place(relx = 0.5,rely = 0.6 , anchor = "center")create_folders (event = None):

#ПРОВЕРКА ПУТЕЙ К ПАПКЕ СПЕЦИАЛИСТ:

u =

[C:\\TM_Base\\Spec\\",'C:\\TM_Base\\Bakalavr\\,C:\\TM_Base\\Magistr\\]os.path.exists(u[event]) == 1:.chdir(u[event]):.makedirs(u[event]).chdir(u[event])_1 = self.Param_2.get("Name_S")_2 = self.Param_2.get("SName_S")_3 = self.Param_2.get("LName_S").key_key = key_2 +"_" + key_1 +"_" + key_3os.path.exists(u[event] + self.key_key + "\\") == 1:.chdir(u[event] + self.key_key + "\\").stud_file = open ("Base_stud.bso", "rb") #ОТКРЫВАЕМ ФАЙЛ С

ИНФ О СТУДЕНТЕ:.makedirs(u[event] + self.key_key).chdir(u[event] + self.key_key).stud_file = open ("Base_stud.bso", "wb") #ОТКРЫВАЕМ ФАЙЛ С

ИНФ О СТУДЕНТЕ:.dump(self.Param_2,self.stud_file):.stud_file.close().stud_file = open ("Base_stud.bso", "wb").dump(self.Param_2,self.stud_file).stud_file.close()_text(event)_pict(event)self.stepen == u"Специалист":_folders(0)self.stepen == u"Бакалавр":_folders(1):_folders(2)

#************************************************************

***********************************************************otmena(event = None):.FRC.destroy()

root.title(u"Cоздание новой записи")

#root.geometry("1024x768+0+0")Seve_inform(event = None):_get=[]i in Inform:i.get() == '':["bg"] = "red":["bg"] = "white"_get.append(i.get()).informatino = entry_getlen(entry_get) == 14:_dictonary()_font = tkFont.Font()_font ["family"] = "Helvetica"_font ["size"] = 30_font ["weight"] = "bold"_font ["slant"] = "italic"= Tkinter.Label(self.FRC)

krasavchik["text"] = u"Новая запись успешно добавлена"["font"] = krasavchik_font["bg"] = "yellow"

krasavchik.place(relx = 0.5,rely = 0.5 , anchor = "center")

else:

#Новая рамка для окна "С"

self.FRC = Tkinter.Frame(root).FRC["width"] = 1024.FRC["height"] = 768.FRC.place(relx = 0, rely = 0, anchor = "nw" )= [].dosm =

["Spec","Grup","Mark","God_1","Name_S","SName_S","LName_S","Nam

e_P","SName_P","LName_P","page","plac","pict","tabl"]

#Parametry = ["Специальность","Группа","Оценка","Год

защити","Имя","Фамилия","Отчество","Имя2","Фамилия2","Отчество2"

,"Тема дипломного проэкта","Количество страниц","Количество

плакатов","Количество рисунков","Количество таблиц"]

self.Param_2 =

{"Spec":u"","Grup":u"","Mark":"","God_1":"","Name_S":"","SName_S":"",

"LName_S":"","Name_P":"","SName_P":"","LName_P":"","page":"","plac"

:"","pict":"","tabl":u"попал ты чувак"}

LaFR4["text"] = u"Год защити"

LaFR4["font"] = all_font.place(relx = 0.5, rely = 0.03, anchor = "w")= Tkinter.Entry(LaFR4)["width"] = 10.append(Ent4).pack()= Tkinter.LabelFrame(self.FRC)["text"] = u"Степень"["font"] = all_font.place(relx = 0.66, rely = 0.03, anchor = "w")big(event = None):_NEW["text"] = (NEW_text[event]).stepen = MB_NEW["text"]

#self.Inform.append(MB_NEW["text"])_NEW = Tkinter.Menubutton(LaFR5, relief = "raised", justify =

"center")_NEW.menu = Tkinter.Menu(MB_NEW, tearoff = 0)_NEW ["menu"] = MB_NEW.menu_NEW ["bg"] = "grey"_NEW ["activebackground"] = "white"_NEW ["width"] = 15_text = [u"Специалист", u"Бакалавр", u"Магистр", u" Выбрать " ]

MB_NEW["text"] = (NEW_text[3])= []i in NEW_text:.append(i)_NEW.menu.add("cascade", label = NEW[0], command = lambda m=0

:big(m))_NEW.menu.add("cascade", label = NEW[1], command = lambda m=1

:big(m))_NEW.menu.add("cascade", label = NEW[2], command = lambda m=2

:big(m))

MB_NEW.pack()

#Создание полей ввода, вторая строка (Данные о студенте)

LaFR_Date_1 = Tkinter.LabelFrame(self.FRC)

LaFR_Date_1["text"] = u"Данные о студенте"

LaFR_Date_1["font"] = all_font_Date_1.place(relx = 0.01, rely = 0.12, anchor = "w")_Date_1["width"] = 924_Date_1["height"] = 85= Tkinter.LabelFrame(LaFR_Date_1)["text"] = u"Имя"["font"] = all_font.place(relx = 0.01, rely = 0.5 , anchor = "w")= Tkinter.Entry(LaFR6)["width"] = 40.append(Ent6).pack()= Tkinter.LabelFrame(LaFR_Date_1)["text"] = u"Фамилия"["font"] = all_font.place(relx = 0.5, rely = 0.5 , anchor = "center")= Tkinter.Entry(LaFR7)["width"] = 40.append(Ent7).pack()= Tkinter.LabelFrame(LaFR_Date_1)["text"] = u"Отчество"["font"] = all_font.place(relx = 0.99, rely = 0.5 , anchor = "e")= Tkinter.Entry(LaFR8)["width"] = 40.append(Ent8).pack()

#Создание полей ввода, третья строка (Данные о научном

руководителе)

LaFR_Date_2 = Tkinter.LabelFrame(self.FRC)

LaFR_Date_2["text"] = u"Данные о научном руководителе"

LaFR_Date_2["font"] = all_font_Date_2.place(relx = 0.01, rely = 0.25, anchor = "w")_Date_2["width"] = 924_Date_2["height"] = 85= Tkinter.LabelFrame(LaFR_Date_2)["text"] = u"Имя"["font"] = all_font.place(relx = 0.01, rely = 0.5 , anchor = "w")= Tkinter.Entry(LaFR9)["width"] = 40.append(Ent9).pack()= Tkinter.LabelFrame(LaFR_Date_2)["text"] = u"Фамилия"["font"] = all_font.place(relx = 0.5, rely = 0.5 , anchor = "center")= Tkinter.Entry(LaFR10)["width"] = 40.append(Ent10).pack()= Tkinter.LabelFrame(LaFR_Date_2)["text"] = u"Отчество"["font"] = all_font.place(relx = 0.99, rely = 0.5 , anchor = "e")= Tkinter.Entry(LaFR11)["width"] = 40.append(Ent11).pack()

#Поле ввода текста "Тема дипломного проэкта"

LaFR_Date_3 = Tkinter.LabelFrame(self.FRC)

LaFR_Date_3["text"] = u"Тема дипломного проэкта"

LaFR_Date_3["font"] = all_font_Date_3.place(relx = 0.01, rely = 0.32, anchor = "nw").ST =ScrolledText.ScrolledText(LaFR_Date_3,background="white").ST["width"] = 150.ST["height"] =7

#self.self.ND = ST.get()

#Inform.append(ST)

#mm = ST.get()

#print self.ND.ST.pack()

#Создание полей ввода, третья строка (Данные о дипломном проэкте)

LaFR_Date_4 = Tkinter.LabelFrame(self.FRC)

LaFR_Date_4["text"] = u"Данные о дипломном проэкте"

LaFR_Date_4["font"] = all_font_Date_4.place(relx = 0.01, rely = 0.55, anchor = "w")_Date_4["width"] = 924_Date_4["height"] = 90= Tkinter.LabelFrame(LaFR_Date_4)

LaFR12["text"] = u"Количество страниц"

LaFR12["font"] = all_font.place(relx = 0.01, rely = 0.5 , anchor = "w")= Tkinter.Entry(LaFR12)["width"] = 32

#Ent12 ["bd"] = 6.append(Ent12).pack()= Tkinter.LabelFrame(LaFR_Date_4)

LaFR13["text"] = u"Количество плакатов"

LaFR13["font"] = all_font.place(relx = 0.38, rely = 0.5 , anchor = "center")= Tkinter.Entry(LaFR13)["width"] = 32.append(Ent13).pack()= Tkinter.LabelFrame(LaFR_Date_4)

LaFR14["text"] = u"Количество рисунков"

LaFR14["font"] = all_font.place(relx = 0.52, rely = 0.5 , anchor = "w")= Tkinter.Entry(LaFR14)["width"] = 32.append(Ent14).pack()= Tkinter.LabelFrame(LaFR_Date_4)

LaFR15["text"] = u"Количество таблиц"

LaFR15["font"] = all_font.place(relx = 0.99, rely = 0.5 , anchor = "e")= Tkinter.Entry(LaFR15)["width"] = 32.append(Ent15).pack()

#Создание полей ввода пути к файлам

LaFR_Date_5 = Tkinter.LabelFrame(self.FRC)

LaFR_Date_5["text"] = u"Опредиление путей к файлам"

LaFR_Date_5["font"] = all_font_Date_5.place(relx = 0.01, rely = 0.63, anchor = "nw")_Date_5["width"] = 924_Date_5["height"] = 120path_pict(event = None):

M = u"Выберете папку с изображениями и нажмите ОК"

path1 = tkFileDialog.askdirectory(title=M)_label1 = Tkinter.Label(LaFR_Date_5)_label1.place(relx = 0.65, rely = 0.7, anchor = "center")_label1['borderwidth'] = 5_label1["font"] = all_font_label1["height"] = 2_label1["width"] = 40_label1['text'] = path1.path_pict = path1

def path_pdf():= u"Выберете файл с текстом"

path = tkFileDialog.askopenfilename(title=P)_label = Tkinter.Label(LaFR_Date_5)_label.place(relx = 0.65, rely = 0.25, anchor = "center")

#path_label["bg"] = "red"_label['borderwidth'] = 5_label["font"] = all_font_label["height"] = 2_label["width"] = 40_label['text'] = path.path_pdf = path

#Создание кнопок= Tkinter.Button(LaFR_Date_5)["bg"] = "white"["bd"] = "1m"["width"] = 30["font"] = all_font["relief"] = "raised".place(relx = 0.2, rely = 0.25, anchor = "center")

But3["text"] = u"Путь к документу с текстом"

But3["command"] = path_pdf= Tkinter.Button(LaFR_Date_5)["width"] = 30["bg"] = "white"["bd"] = "1m"["font"] = all_font["relief"] = "raised".place(relx = 0.2, rely = 0.7, anchor = "center")

But4["text"] = u"Путь к изображениям"

But4["command"] = path_pict= Tkinter.Button(self.FRC)["bg"] = "white"["bd"] = "1m"["font"] = all_font["relief"] = "raised".place(relx = 0.25, rely = 0.85, anchor = "center")["text"] = u"Отмена".bind("<Button-1>",otmena)= Tkinter.Button(self.FRC)["bg"] = "white"["font"] = all_font["bd"] = "1m"["relief"] = "raised".place(relx = 0.75, rely = 0.85, anchor = "center")["text"] = u"Сохранить".bind("<Button-1>", Seve_inform)__delattr__ (self, a):.FRC.destroy()

#print u"ok))))))))))))))))))"__name__ == "__main__":= Tkinter.Tk().geometry("1024x768+0+0")_font = tkFont.Font()_font ["family"] = "Helvetica"_font ["size"] = 14_font ["weight"] = "normal"_data(root,all_font).mainloop()

Find_Data.py

# -*- coding: cp1251 -*-TkinterScrolledTexttkFontosstringpickletkFileDialogImageImageTkpreview_find

#окно "D" - поиск данныхfind_data:__init__(self, root, all_font):(root, all_font)__call__(self, root, all_font):.FRD = Tkinter.Frame(root).FRD["width"] = 1024.FRD["height"] = 768.FRD.place(relx = 0, rely = 0, anchor = "nw" ).FRD.pack()

#************************************************************

************************find_data (event = None):.baza_vsia_sort = [].baza_vsia = [].u =

['C:\\TM_Base\\Bakalavr\\',"C:\\TM_Base\\Spec\\",'C:\\TM_Base\\Magistr\\]m in self.u:.chdir(m).p = m

#print self.baza_vsia_sort

#print self.dictonary_find.keys()w in self.dictonary_find.keys():

#print self.dictonary_find.get(w).folders = [].baza_vsia_sortw == "1":= os.listdir(m)i in folders:i[-4] != '.':.folders.append(i)i in self.folders:.path_2 = self.p + i.chdir(self.path_2)= open ("Base_stud.bso" , "rb").k = pickle.load(base).close()= self.dictonary_find.get(w)[0]= self.dictonary_find.get(w)[1]_sr = self.k.get(poisk)

#if data.decode("cp1251") == data_sr:data == data_sr:.baza_vsia.append(self.k)

#print self.baza_vsia:

#print len(self.baza_vsia)

#print "baza vsja"

#print self.baza_vsiai in range(0, len(self.baza_vsia)):= self.baza_vsia[i]

#print b= self.dictonary_find.get(w)[0]= self.dictonary_find.get(w)[1]_sr = b.get(poisk)data == data_sr:.baza_vsia_sort.append(b)

#print "2"

#print self.baza_vsia

#print self.baza_vsia_sortfind_data_tabl(event = None):.dictonary_find.keys().Frame_Listbox.destroy()_widget_create().kol = 0.vibor = self.kol.Label_02 ["text"] = u"ФИО".Label_03 ["text"] = u"Год защиты"i in self.baza_vsia:.base_for_prosmotr = []"2".kol = self.kol + 1= i_1 = m.get("SName_S")_2 = m.get("Name_S")_3 = m.get("LName_S")_list_02 = key_1 + " " + key_2 + " " + key_3_list_03 = m.get("God_1").Listbox_01.insert("end", self.kol).Listbox_02.insert("end", text_list_02).Listbox_03.insert("end", text_list_03).base_for_prosmotr = self.baza_vsialen(self.baza_vsia_sort[0]) > 0:.base_for_prosmotr = self.baza_vsia_sorti in self.baza_vsia_sort:u"второй отбор".kol = self.kol + 1= i_1 = m.get("SName_S")_2 = m.get("Name_S")_3 = m.get("LName_S")_list_02 = key_1 + " " + key_2 + " " + key_3_list_03 = m.get("God_1").Listbox_01.insert("end", self.kol).Listbox_02.insert("end", text_list_02).Listbox_03.insert("end", text_list_03)

else:u"параметр поиска только один"

def die (event = None):self.baza_vsia_sortself.baza_vsia.FRD.destroy().kol = 0.dictonary_find = {}_for_poisk = []DOBAVIT (event = None):.kol = self.kol + 1.vibor = self.kol:_list_03 = self.Znachenie_data.get():_list_03 = self.Znachenie_data.Listbox_01.insert("end", self.kol).Listbox_02.insert("end", self.vibor_data).Listbox_03.insert("end", text_list_03)_for_poisk = []_for_poisk.append(self.parametp_poiska)_for_poisk.append(text_list_03)

#print param_for_poiskself.kol == 1:= "1"self.kol == 2:= "2"self.kol == 3:= "3"self.kol == 4:= "4"self.kol == 5:= "5"self.kol == 6:= "6".dictonary_find[ch] = param_for_poisk.l_spis = self.kol

#print self.dictonary_findpreview_inf (event = None):self.base_for_prosmotr_find.preview_find(root,all_font,self.base_for_prosmotr,event)Clear(event =None):.Frame_Listbox.destroy()

#print "listbox.destroy".kol = 0.dictonary_find = {}_widget_create()destroy_pole(event = None):## убивает открытие поля:.MB_Spec.destroy()::.EntD1.destroy()::.MB_Stepen.destroy()::.MB_Mark.destroy()::.Ent_Name.destroy()::.Ent_SName.destroy()::.Ent_LName.destroy()::.Ent_Kol_page.destroy()::.Ent_Kol_pict.destroy()::.Ent_Kol_plac.destroy()::.Ent_Kol_tabl.destroy()::.Ent_Theme.destroy()::.God.destroy(): Spec(event = None):## выбор специальности

self.EntD1 = Tkinter.Entry(self.FRD).EntD1.place(relx = 0.5, rely = 0.1, anchor = "w").EntD1['font'] = all_font.EntD1["width"] = 20.Znachenie_data = self.EntD1Grup(event = None):## поле ввода "Группа".EntD1 = Tkinter.Entry(self.FRD).EntD1.place(relx = 0.5, rely = 0.1, anchor = "w").EntD1['font'] = all_font.EntD1["width"] = 20.Znachenie_data = self.EntD1Mark (event = None): ## поле ввода "Оценка"m (event = None):.MB_Mark["text"] = event.Znachenie_data = event.MB_Mark = Tkinter.Menubutton(self.FRD, relief = "raised", justify =

"center").MB_Mark.place(relx = 0.5, rely = 0.1, anchor = "w").MB_Mark.menu = Tkinter.Menu(self.MB_Mark, tearoff = 0).MB_Mark ["menu"] = self.MB_Mark.menu.MB_Mark ["bg"] = "white".MB_Mark ["font"] = all_font.MB_Mark ["width"] = 20.MB_Mark["text"] = (u"Вибрать оценку")

#self.MB_Mark.menu.add("cascade", label = u"1", command = lambda

s=u"1" :m(s))

#self.MB_Mark.menu.add("cascade", label = u"2", command = lambda

s=u"2" :m(s)).MB_Mark.menu.add("cascade", label = u"3", command = lambda

s=u"3" :m(s)).MB_Mark.menu.add("cascade", label = u"4", command = lambda

s=u"4" :m(s)).MB_Mark.menu.add("cascade", label = u"5", command = lambda

s=u"5" :m(s))Stepen (event = None): ## поле ввода "степень"st (event = None):.MB_Stepen["text"] = event.Znachenie_data = event.MB_Stepen = Tkinter.Menubutton(self.FRD, relief = "raised", justify =

"center").MB_Stepen.place(relx = 0.5, rely = 0.1, anchor = "w").MB_Stepen.menu = Tkinter.Menu(self.MB_Stepen, tearoff = 0).MB_Stepen ["menu"] = self.MB_Stepen.menu.MB_Stepen ["bg"] = "white".MB_Stepen ["font"] = all_font.MB_Stepen ["width"] = 20.MB_Stepen["text"] = (u"Вибрать степень").MB_Stepen.menu.add("cascade", label = u"Бакалавр", command = s=u"Бакалавр" :st(s)).MB_Stepen.menu.add("cascade", label = u"Специалист", command =

lambda s=u"Специалист" :st(s)).MB_Stepen.menu.add("cascade", label = u"Магистр", command =

lambda s=u"Магистр" :st(s))Name(event = None):## поле ввода "Имя".Ent_Name = Tkinter.Entry(self.FRD).Ent_Name.place(relx = 0.5, rely = 0.1, anchor = "w").Ent_Name ['font'] = all_font.Ent_Name["width"] = 30.Znachenie_data = self.Ent_NameSName(event = None):## поле ввода "ФАМИЛИЯ".Ent_SName = Tkinter.Entry(self.FRD).Ent_SName.place(relx = 0.5, rely = 0.1, anchor = "w").Ent_SName ['font'] = all_font.Ent_SName["width"] = 30.Znachenie_data = self.Ent_SNameLName(event = None):## поле ввода "ОТЧЕСТВО".Ent_LName = Tkinter.Entry(self.FRD).Ent_LName.place(relx = 0.5, rely = 0.1, anchor = "w").Ent_LName ['font'] = all_font.Ent_LName["width"] = 30.Znachenie_data = self.Ent_LName

def Kol_page(event = None): ## поле ввода "КОЛИЧЕСТВО СТРАНИЦ"

self.Ent_Kol_page = Tkinter.Entry(self.FRD).Ent_Kol_page.place(relx = 0.5, rely = 0.1, anchor = "w").Ent_Kol_page ['font'] = all_font.Ent_Kol_page["width"] = 30.Znachenie_data = self.Ent_Kol_page

def Kol_plac(event = None): ## поле ввода "КОЛИЧЕСТВО

ПЛАКАТОВ"

self.Ent_Kol_plac = Tkinter.Entry(self.FRD).Ent_Kol_plac.place(relx = 0.5, rely = 0.1, anchor = "w").Ent_Kol_plac ['font'] = all_font.Ent_Kol_plac["width"] = 30.Znachenie_data = self.Ent_Kol_plac

def Kol_pict(event = None):## поле ввода "КОЛИЧЕСТВО РИСУНКОВ"

self.Ent_Kol_pict = Tkinter.Entry(self.FRD).Ent_Kol_pict.place(relx = 0.5, rely = 0.1, anchor = "w").Ent_Kol_pict ['font'] = all_font.Ent_Kol_pict["width"] = 30.Znachenie_data = self.Ent_Kol_pict

def Kol_tabl(event = None): ## поле ввода "КОЛИЧЕСТВО ТАБЛИЦ

self.Ent_Kol_tabl = Tkinter.Entry(self.FRD).Ent_Kol_tabl.place(relx = 0.5, rely = 0.1, anchor = "w").Ent_Kol_tabl ['font'] = all_font.Ent_Kol_tabl["width"] = 30.Znachenie_data = self.Ent_Kol_tabl

def God (event = None):## поле ввода "КОЛИЧЕСТВО РИСУНКОВ"

self.God = Tkinter.Entry(self.FRD).God.place(relx = 0.5, rely = 0.1, anchor = "w").God ['font'] = all_font.God ["width"] = 30.Znachenie_data = self.God Param(event = None):##при выборе параметра открывается новое

поле ввода\выбора_PARAM["text"] = eventevent == u"Специальность":_pole()().parametp_poiska = "Spec"event == u"Группа":_pole()().parametp_poiska = "Grup"event == u"Оценка":_pole()().parametp_poiska = "Mark"event == u"Степень":_pole()().parametp_poiska = "Stepen"event == u"Имя":_pole()().parametp_poiska = "Name_S"event == u"Фамилия":_pole()().parametp_poiska = 'SName_S'event == u"Отчество":_pole()().parametp_poiska = "LName_S"

elif event == u"Количество страниц":

destroy_pole()_page().parametp_poiska = "page"

elif event == u"Количество плакатов":

destroy_pole()_plac().parametp_poiska = "plac"

elif event == u"Количество рисунков":

destroy_pole()_pict().parametp_poiska = "pict"

elif event == u"Количество таблиц":

destroy_pole()_tabl().parametp_poiska = "tabl"event == u"Год":_pole()().parametp_poiska = "God_1".vibor_data = event.title(u"Найти запись")

#root.geometry("1024x768+0+0")_OK = Tkinter.Button(self.FRD)_OK ["text"] = u"Добавить"_OK.place(relx = 0.5, rely = 0.25, anchor = "center")_OK["height"] = 1_OK ["width"] = 20_OK ["font"] = all_font_OK.bind("<Button-1>",DOBAVIT)_Clear = Tkinter.Button(self.FRD)_Clear ["text"] = u"Очистить список"_Clear.place(relx = 0.5, rely = 0.75, anchor = "center")_Clear["height"] = 1_Clear ["width"] = 20_Clear ["font"] = all_font_Clear.bind("<Button-1>", Clear)_Otmena = Tkinter.Button(self.FRD)_Otmena ["text"] = u"Отмена"_Otmena.place(relx = 0.2, rely = 0.85, anchor = "center")_Otmena["height"] = 1_Otmena ["width"] = 25_Otmena ["font"] = all_font_Otmena.bind("<Button-1>", die)_Find = Tkinter.Button(self.FRD)_Find ["text"] = u"Искать"_Find.place(relx = 0.8, rely = 0.85, anchor = "center")_Find["height"] = 1_Find ["width"] = 25_Find ["font"] = all_font_Find.bind("<Button-1>",find_data)_Find.bind("<ButtonRelease>",find_data_tabl)

# основное меню параметров поиска_PARAM = Tkinter.Menubutton(self.FRD, relief = "raised", justify =

"center")_PARAM.place(relx = 0.2, rely = 0.1, anchor = "center")_PARAM.menu = Tkinter.Menu(MB_PARAM, tearoff = 0)_PARAM ["menu"] = MB_PARAM.menu_PARAM ["bg"] = "white"_PARAM ["font"] = all_font_PARAM ["width"] = 25_PARAM["text"] = (u"Параметр поиска")_PARAM.menu.add("cascade", label = u"Специальность", command = p=u"Специальность" :Param(p))_PARAM.menu.add("cascade", label = u"Группа", command = lambda

p=u"Группа" :Param(p))_PARAM.menu.add("cascade", label = u"Оценка", command = lambda

p=u"Оценка" :Param(p))_PARAM.menu.add("cascade", label = u"Степень", command = lambda

p=u"Степень" :Param(p))_PARAM.menu.add("cascade", label = u"Имя", command = lambda

p=u"Имя" :Param(p))_PARAM.menu.add("cascade", label = u"Фамилия", command =

lambda p=u"Фамилия" :Param(p))_PARAM.menu.add("cascade", label = u"Отчество", command =

lambda p=u"Отчество" :Param(p))_PARAM.menu.add("cascade", label = u"Количество страниц",

command = lambda p=u"Количество страниц" :Param(p))_PARAM.menu.add("cascade", label = u"Количество плакатов",

command = lambda p=u"Количество плакатов" :Param(p))_PARAM.menu.add("cascade", label = u"Количество рисунков",

command = lambda p=u"Количество рисунков" :Param(p))_PARAM.menu.add("cascade", label = u"Количество таблиц",

command = lambda p=u"Количество таблиц" :Param(p))

#MB_PARAM.menu.add("cascade", label = u"Тема дипломного проэкта",

command = lambda p=u"Тема дипломного проэкта" :Param(p))

MB_PARAM.menu.add("cascade", label = u"Год", command = lambda

p=u"Год" :Param(p))

#************************************************************

************************

#Создание таблиц:sroot_widget_create(event = None):

self.status = 0 ## Окон верхнего уровня не существуетanalis(event = None): ## Опеределяем направление прокручинвания

для мышки (MouseWhell): ## Чтобы для внешнего виджета не работало

self.Frame_Listbox.focus_set()()event.delta < 0:():():Clear(event = None):.Listbox_01.select_clear("active").Listbox_02.itemconfig(self.pos, bg = "white").Listbox_03.itemconfig(self.pos, bg = "white")Perehod(event = None):.Listbox_01.activate(self.pos).Listbox_01.select_set(self.pos).Listbox_02.itemconfig(self.pos, bg = "grey").Listbox_03.itemconfig(self.pos, bg = "grey")Hod(event = None):.vibor = string.atoi(self.Listbox_01.curselection()[0]).pos = self.viborbind_but(event = None):

## На левую клавишу мыши.Frame_Listbox.focus_set(): self.vibor = string.atoi(self.Listbox_01.curselection()[0]): pass: self.vibor = string.atoi(self.Listbox_02.curselection()[0]): pass: self.vibor = string.atoi(self.Listbox_03.curselection()[0]): pass.pos = self.vibor

#print self.vibor_inf(self.vibor)()_focus_out()

## На левую клавишу мышиalt_bind_but(event = None):

## На альт + левая клваиша.Frame_Listbox.focus_set(): self.vibor = string.atoi(self.Listbox_01.curselection()[0]): pass: self.vibor = string.atoi(self.Listbox_02.curselection()[0]): pass: self.vibor = string.atoi(self.Listbox_03.curselection()[0]): pass.pos = self.vibor"alt"()_focus_out()

## На альт + левая клваиша.l_spis = 1

self.vibor = 0.h_spis = 10.pos = 0.prev_verh = 0.prev_nizz = self.h_spis - 1

def Down(event = None): ## Кнопка вниз - перемещение вниз всех

четырех списков

## Прокручиваем списки

## Если список находится в границе видимой облафсти - ее верх и низ

не меняется

if self.pos > self.prev_nizz:.prev_nizz = self.prev_nizz + 1.prev_verh = self.prev_verh + 1self.pos < self.prev_nizz:self.pos == self.prev_nizz:.Listbox_01.see(self.prev_nizz).Listbox_02.see(self.prev_nizz).Listbox_03.see(self.prev_nizz).Listbox_01.see(self.prev_verh).Listbox_02.see(self.prev_verh).Listbox_03.see(self.prev_verh)

## Прокручиваем спискиUp(event = None): ## Кнопка вверх - перемещение вверх всех трех

списков

Clear()self.pos > 0:.pos = self.pos - 1

Perehod()

## Прокручиваем списки

## Если список находится в границе видимой облафсти - ее верх и низ

не меняется

if self.pos < self.prev_verh:.prev_nizz = self.prev_nizz - 1.prev_verh = self.prev_verh - 1self.pos > self.prev_verh:self.pos == self.prev_verh:.Listbox_01.see(self.prev_nizz).Listbox_02.see(self.prev_nizz).Listbox_03.see(self.prev_nizz).Listbox_01.see(self.prev_verh).Listbox_02.see(self.prev_verh).Listbox_03.see(self.prev_verh)

## Прокручиваем списки.Frame_Listbox = Tkinter.LabelFrame(self.FRD).Frame_Listbox ["text"] = u"Уровни отсеивания".Frame_Listbox ["labelanchor"] = "n".Frame_Listbox ["relief"] = "ridge".Frame_Listbox ["takefocus"] = 1.Frame_Listbox.bind("<Down>", Down).Frame_Listbox.bind("<Up>", Up).Frame_Listbox.bind_all("<MouseWheel>", analis).Frame_Listbox.bind("<KeyRelease-Return>", Hod).Frame_Listbox.bind("<KeyRelease-space>", Hod).Frame_Listbox.place(relx = 0.5, rely = 0.5, anchor = "center")

#self.Frame_Listbox.focus_force()_01 = Tkinter.Label(self.Frame_Listbox)_01 ["text"] = u"Номер"_01.grid(row = 1, column = 1, sticky = "ensw").Label_01 = Label_01_02 = Tkinter.Label(self.Frame_Listbox)_02 ["text"] = u"Параметр"_02.grid(row = 1, column = 2, sticky = "ensw").Label_02 = Label_02_03 = Tkinter.Label(self.Frame_Listbox)_03 ["text"] = u"Значение"_03.grid(row = 1, column = 3, sticky = "ensw").Label_03 = Label_03.Scrol_BA = Tkinter.Scrollbar(self.Frame_Listbox).Scrol_BA ["command"] = self.OnVsb.Listbox_01 = Tkinter.Listbox(self.Frame_Listbox).Listbox_01 ["takefocus"] = 0.Listbox_01 ["width"] = 10.Listbox_01 ["height"] = self.h_spis.Listbox_01 ["yscrollcommand"] = self.Scrol_BA.set

#self.Listbox_01.insert("end", *date).Listbox_01.select_set(self.vibor).Listbox_01.activate(self.vibor).Listbox_01.bind("<ButtonRelease-1>", bind_but).Listbox_01.bind("<Alt-ButtonRelease-1>", alt_bind_but).Listbox_02 = Tkinter.Listbox(self.Frame_Listbox).Listbox_02 ["takefocus"] = 0.Listbox_02 ["width"] = 32.Listbox_02 ["height"] = self.h_spis.Listbox_02 ["yscrollcommand"] = self.Scrol_BA.set

#self.Listbox_02.insert("end", *date_sl)

#self.Listbox_02.itemconfig(self.vibor, background = "grey").Listbox_02.bind("<ButtonRelease-1>", bind_but).Listbox_02.bind("<Alt-ButtonRelease-1>", alt_bind_but).Listbox_03 = Tkinter.Listbox(self.Frame_Listbox).Listbox_03 ["takefocus"] = 0.Listbox_03 ["width"] = 40.Listbox_03 ["height"] = self.h_spis.Listbox_03 ["yscrollcommand"] = self.Scrol_BA.set

#self.Listbox_03.insert("end", *date)

#self.Listbox_03.itemconfig(self.vibor, background = "grey").Listbox_03.bind("<ButtonRelease-1>", bind_but).Listbox_03.bind("<Alt-ButtonRelease-1>", alt_bind_but).Listbox_01.grid(row = 2, column = 1, sticky = "ensw").Listbox_02.grid(row = 2, column = 2, sticky = "ensw").Listbox_03.grid(row = 2, column = 3, sticky = "ensw").Scrol_BA.grid(row = 2, column = 6, sticky = "ensw")

def from_focus_in(event = None): ## При появлении фокуса - выделение

на бывший элементself.status == 0: ## Переход между элементами root, а не окнами...

self.Listbox_01.select_set(self.vibor).Listbox_01.activate(self.vibor).Listbox_02.itemconfig(self.vibor, background = "grey").Listbox_03.itemconfig(self.vibor, background = "grey").Listbox_01.see(self.prev_nizz).Listbox_02.see(self.prev_nizz).Listbox_03.see(self.prev_nizz).Listbox_01.see(self.prev_verh).Listbox_02.see(self.prev_verh).Listbox_03.see(self.prev_verh)

else: ## Переход между окнами - например, возвращение из окна .root_comment

self.status = 0.Frame_Listbox.bind("<FocusIn>", from_focus_in)

def from_focus_out (event = None): ## При потере фокуса - уходит и

выделение

self.Listbox_01.select_clear("active").vibor = self.posi in range(self.l_spis):.Listbox_02.itemconfig(i, background = "white").Listbox_03.itemconfig(i, background = "white").Frame_Listbox.bind("<FocusOut>", from_focus_out)_widget_create()__delattr__ (self, a):

self.FRD.destroy()OnVsb (self, *args): ## Для одновременного прокручивания

нескольких списков

self.Listbox_01.yview(*args).Listbox_02.yview(*args).Listbox_03.yview(*args)__name__ == "__main__":= Tkinter.Tk().geometry("1024x768+0+0")_font = tkFont.Font()_font ["family"] = "Helvetica"_font ["size"] = 18_font ["weight"] = "normal"_data(root,all_font).mainloop()

preview_find.py

# -*- coding: utf-8-*-TkinterScrolledTexttkFontosstringpickletkFileDialogImageImageTkpreview_find:__init__(self, root,all_font,res_data,number_of_path):(root,all_font,res_data,number_of_path)__call__(self,root,all_font,res_data,number_of_path):.number_of_path = number_of_pathotmena(event = None):.FRC.destroy()

root.title(u"Просмотр результатов поиска")

self.dosm =

["Spec","Grup","Mark","God_1","Name_S","SName_S","LName_S","Nam

e_P","SName_P","LName_P","page","plac","pict","tabl"]

#Parametry =

["Специальность","Группа","Оценка",

"Год

защити","Р�РјСЏ","Фамилия","Отчество","Р

�мя2","Фамилия2","Отчество2","Тема

дипломного проэкта","Количество

страниц","Количество

плакатов","Количество

рисунков","Количество таблиц"]

self.Param_2 =

{"Spec":u"","Grup":u"","Mark":"","God_1":"","Name_S":"","SName_S":"",

"LName_S":"","Name_P":"","SName_P":"","LName_P":"","page":"","plac"

:"","pict":"","tabl":""}.FRC = Tkinter.Frame(root).FRC["width"] = 1024.FRC["height"] = 768.FRC.place(relx = 0, rely = 0, anchor = "nw" ).stud_inf = res_data[number_of_path]= Tkinter.LabelFrame(self.FRC)["text"] = u"Специальность"["font"] = all_font.place(relx = 0.02, rely = 0.03, anchor = "w").Ent1 = Tkinter.Entry(LaFR1).Ent1["width"] = 40.Ent1.insert( "end" ,self.stud_inf.get("Spec")).Ent1 ["state"] = "disabled".Ent1.pack()= Tkinter.LabelFrame(self.FRC)["text"] = u"Группа"["font"] = all_font.place(relx = 0.34, rely = 0.03, anchor = "w").Ent2 = Tkinter.Entry(LaFR2).Ent2["width"] = 10.Ent2.insert("end" ,self.stud_inf.get("Grup")).Ent2 ["state"] = "disabled".Ent2.pack()= Tkinter.LabelFrame(self.FRC)["text"] = u"Оценка"["font"] = all_font.place(relx = 0.42, rely = 0.03, anchor = "w").Ent3 = Tkinter.Entry(LaFR3).Ent3.insert("end" ,self.stud_inf.get("Mark")).Ent3["width"] = 10.Ent3 ["state"] = "disabled".Ent3.pack()= Tkinter.LabelFrame(self.FRC)

LaFR4["text"] = u"Год защити"

LaFR4["font"] = all_font.place(relx = 0.5, rely = 0.03, anchor = "w").Ent4 = Tkinter.Entry(LaFR4).Ent4["width"] = 10.Ent4.insert("end" ,self.stud_inf.get("God_1")).Ent4 ["state"] = "disabled".Ent4.pack()= Tkinter.LabelFrame(self.FRC)["text"] = u"Степень"["font"] = all_font.place(relx = 0.66, rely = 0.03, anchor = "w").Ent123 = Tkinter.Entry(LaFR5).Ent123["width"] =17.Ent123.insert("end" ,self.stud_inf.get("Stepen")).Ent123 ["state"] = "disabled".Ent123.pack()_Date_1 = Tkinter.LabelFrame(self.FRC)

LaFR_Date_1["text"] = u"Данные о студенте"

LaFR_Date_1["font"] = all_font_Date_1.place(relx = 0.01, rely = 0.12, anchor = "w")_Date_1["width"] = 924_Date_1["height"] = 85= Tkinter.LabelFrame(LaFR_Date_1)["text"] = u"Имя"["font"] = all_font.place(relx = 0.01, rely = 0.5 , anchor = "w").Ent6 = Tkinter.Entry(LaFR6).Ent6["width"] = 40.Ent6.insert("end" ,self.stud_inf.get("Name_S")).Ent6 ["state"] = "disabled".Ent6.pack()= Tkinter.LabelFrame(LaFR_Date_1)["text"] = u"Фамилия"["font"] = all_font.place(relx = 0.5, rely = 0.5 , anchor = "center").Ent7 = Tkinter.Entry(LaFR7).Ent7["width"] = 40.Ent7.insert("end" ,self.stud_inf.get("SName_S")).Ent7 ["state"] = "disabled".Ent7.pack()= Tkinter.LabelFrame(LaFR_Date_1)["text"] = u"Отчество"["font"] = all_font.place(relx = 0.99, rely = 0.5 , anchor = "e").Ent8 = Tkinter.Entry(LaFR8).Ent8["width"] = 40.Ent8.insert("end" ,self.stud_inf.get("LName_S")).Ent8 ["state"] = "disabled".Ent8.pack()_Date_2 = Tkinter.LabelFrame(self.FRC)

LaFR_Date_2["text"] = u"Данные о научном руководителе"

LaFR_Date_2["font"] = all_font_Date_2.place(relx = 0.01, rely = 0.25, anchor = "w")_Date_2["width"] = 924_Date_2["height"] = 85= Tkinter.LabelFrame(LaFR_Date_2)["text"] = u"Имя"["font"] = all_font.place(relx = 0.01, rely = 0.5 , anchor = "w").Ent9 = Tkinter.Entry(LaFR9).Ent9["width"] = 40.Ent9.insert("end" ,self.stud_inf.get("Name_P")).Ent9 ["state"] = "disabled".Ent9.pack()= Tkinter.LabelFrame(LaFR_Date_2)["text"] = u"Фамилия"["font"] = all_font.place(relx = 0.5, rely = 0.5 , anchor = "center").Ent10 = Tkinter.Entry(LaFR10).Ent10["width"] = 40.Ent10.insert("end" ,self.stud_inf.get("SName_P")).Ent10 ["state"] = "disabled".Ent10.pack()= Tkinter.LabelFrame(LaFR_Date_2)["text"] = u"Отчество"["font"] = all_font.place(relx = 0.99, rely = 0.5 , anchor = "e").Ent11 = Tkinter.Entry(LaFR11).Ent11["width"] = 40.Ent11.insert("end" ,self.stud_inf.get("LName_P")).Ent11 ["state"] = "disabled".Ent11.pack()_Date_3 = Tkinter.LabelFrame(self.FRC)

LaFR_Date_3["text"] = u"Тема дипломного проэкта"

LaFR_Date_3["font"] = all_font_Date_3.place(relx = 0.01, rely = 0.32, anchor = "nw").ST =ScrolledText.ScrolledText(LaFR_Date_3,background="white").ST.insert("end" ,self.stud_inf.get("Theme")).ST["width"] = 150.ST["height"] =7.ST["state"] = "disabled".ST.pack()_Date_4 = Tkinter.LabelFrame(self.FRC)

LaFR_Date_4["text"] = u"Данные о дипломном проэкте"

LaFR_Date_4["font"] = all_font_Date_4.place(relx = 0.01, rely = 0.55, anchor = "w")_Date_4["width"] = 924_Date_4["height"] = 90= Tkinter.LabelFrame(LaFR_Date_4)

LaFR12["text"] = u"Количество страниц"

LaFR12["font"] = all_font.place(relx = 0.01, rely = 0.5 , anchor = "w").Ent12 = Tkinter.Entry(LaFR12).Ent12["width"] = 32.Ent12.insert("end" ,self.stud_inf.get("page")).Ent12 ["state"] = "disabled".Ent12.pack()= Tkinter.LabelFrame(LaFR_Date_4)

LaFR13["text"] = u"Количество плакатов"

LaFR13["font"] = all_font.place(relx = 0.38, rely = 0.5 , anchor = "center").Ent13 = Tkinter.Entry(LaFR13).Ent13["width"] = 32.Ent13.insert("end" ,self.stud_inf.get("plac")).Ent13 ["state"] = "disabled".Ent13.pack()= Tkinter.LabelFrame(LaFR_Date_4)

LaFR14["text"] = u"Количество рисунков"

LaFR14["font"] = all_font.place(relx = 0.52, rely = 0.5 , anchor = "w").Ent14 = Tkinter.Entry(LaFR14).Ent14["width"] = 32.Ent14.insert("end" ,self.stud_inf.get("pict")).Ent14 ["state"] = "disabled".Ent14.pack()= Tkinter.LabelFrame(LaFR_Date_4)

LaFR15["text"] = u"Количество таблиц"

LaFR15["font"] = all_font.place(relx = 0.99, rely = 0.5 , anchor = "e").Ent15 = Tkinter.Entry(LaFR15).Ent15["width"] = 32.Ent15.insert("end" ,self.stud_inf.get("tabl"))

#print self.stud_inf.get("tabl").Ent15 ["state"] = "disabled".Ent15.pack()number_1 (event = None):_n("1")number_2 (event = None):_n("-1")p_n (event = None):

#print self.number_of_path

#print string.atoi(event).number_of_path = self.number_of_path + string.atoi(event)self.number_of_pathself.number_of_path < 0:.number_of_path = 0::= res_data[self.number_of_path]:.number_of_path = self.number_of_path - 1(self.number_of_path)

But1["text"] = u"Завершить просмотр"

But1.bind("<Button-1>",otmena)__delattr__ (self, a):.FRC.destroy()

#print u"ok))))))))))))))))))"__name__ == "__main__":= Tkinter.Tk().geometry("1024x768+0+0")_font = tkFont.Font()_font ["family"] = "Helvetica"_font ["size"] = 14_font ["weight"] = "normal"_of_path = 2_data = [{'Spec': 'AAG', 'Name_S': 'B', 'Name_P': 'B', 'pict': '3', 'God_1':

'1993', 'tabl': '4', 'Mark': '5', 'SName_P': 'B', 'Theme': 'B\n', 'SName_S': 'B',

'Grup': 'TM-71B', 'LName_P': 'B', 'plac': '2', 'LName_S': 'B', 'Stepen':

u'\u041c\u0430\u0433\u0438\u0441\u0442\u0440', 'page': '1'}, {'Spec':

'AAG', 'Name_S': 'D', 'Name_P': 'D', 'pict': '3', 'God_1': '1993', 'tabl': '5',

'Mark': '5', 'SName_P': 'D', 'Theme': 'D\n', 'SName_S': 'D', 'Grup': 'TM-71B',

'LName_P': 'D', 'plac': '2', 'LName_S': 'D', 'Stepen':

u'\u041c\u0430\u0433\u0438\u0441\u0442\u0440', 'page': '1'}, {'Spec':

'AAG', 'Name_S': 'Q', 'Name_P': 'Q', 'pict': '3', 'God_1': '1993', 'tabl': '4',

'Mark': '4', 'SName_P': 'Q', 'Theme': 'Q\n', 'SName_S': 'Q', 'Grup': 'TM-71B',

'LName_P': 'Q', 'plac': '2', 'LName_S': 'Q', 'Stepen':

u'\u041c\u0430\u0433\u0438\u0441\u0442\u0440', 'page': '1'}]_find(root,all_font,res_data,number_of_path)

root.mainloop()

Направления улучшения

В программу можно добавить функцию распознавания орфографических ошибок. Что существенно поможет при составлении и поиске дипломных проектов.

Можно добавить «справку», что поможет пользователю детальней узнать о программе и помочь ему в работе с ней.

Так же, можно сделать «резервное копирование», что поможет сохранить текущие введённые данные в отдельную папку.


Вывод

Мы сделали программу для создания и хранения базы данных о дипломных проектах. Хранится БД в папке TM_Base и далее в 3х папках бакалавр, магистр или специалист.

Эта программа может быть полезной и актуальной, так как похожих программ нет, а без этой программы работать с дипломными проектами довольно трудно.


Список использованной литературы:

1. Россум Г. Язык программирования python, 2010.

2.      Б.А. Курс по библиотеке Tkinter языка python, 2008.

.        Б.А. Язык программирования python Ч1-Ч3, 2004.

.        Шипман Д.Д. Tkinter 8.4. GUI for python, 2011.

Похожие работы на - Разработка базы данных на языке программирования Python

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!