Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Python_курсовая.docx
Скачиваний:
68
Добавлен:
02.02.2015
Размер:
1.01 Mб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ НАУКИ МОЛОДЕЖИ И СПОРТА УКРАИНЫ

НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ «ХПИ»

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

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

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

Выполнил: ст. группы ТМ-71б

Дыга Вадим

Проверил: старший преподаватель

Андросенко Виталий Викторович

РЕФЕРАТ

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

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

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

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

Содержание:

  1. Вступление

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

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

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

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

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

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

  8. Вывод

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

Вступление

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

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

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

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

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

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

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

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

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

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

Окно «А»:

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

Окно «В»:

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

Окно «С»:

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

Окно «D»:

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

Окно «P»:

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

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

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

osnovnoe okno.py

# -*- coding: utf-8 -*-

import Tkinter

import string

import tkMessageBox

import sys

import os

import New_Data

import Font

import Find_Data

import Copy_Rez

import O_Prog

import tkFont

class system:

def __init__(self, root, all_font):

self(root, all_font)

def __call__(self, root, all_font):

def font(event = None):

Font.font(root)

def VHOD (event = None):

if self.tip_dostupa == u"Студент":

B()

else:

pass

def B (even = None):

#if even == u"Студент":

def close_all_prevision(event = None):

try:

del (self.C.FRC)

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

except: pass

try:

del(self.D.FRD)

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

except:

pass

try:

del(self.E.FRE)

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

except:

pass

try:

del(self.K)

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

except:

pass

try:

del(self.O.FRO)

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

except:

pass

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

def Window_C(event = None):

close_all_prevision()

self.C= New_Data.new_data(root,all_font)

#Создание окна "Найти запись"

def Window_D(event = None):

close_all_prevision()

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

#Создание окна "Резервное копирование"

def Window_E (event = None):

close_all_prevision()

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

#Создание окна "Шрифты"

def Window_K(event = None):

close_all_prevision()

self.K = Font.font(root,all_font)

def Window_O(event = None):

close_all_prevision()

self.O = O_Prog.o_prog(root,all_font)

FR.destroy()

root.geometry("1024x768+0+0")

root.update()

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

Bar = Tkinter.Menu(root)

Bar ["font"] = all_font

Bar["tearoff"] = 0

Menu1 = Tkinter.Menu(Bar, tearoff = 0 , font = all_font)

Menu1.add_command(label = u"Новая запись", command = Window_C)

Menu1.add_command(label = u"Найти запись", command = Window_D)

Menu1.add_command(label = u"Резервное копирование", command = Window_E)

Menu1.add_command(label = u"Общая информация")

Menu1.add_separator()

Menu1.add_command(label = u"Выход", command=die)

Vid = Tkinter.Menu(Bar, tearoff = 0 , font = all_font)

Vid.add_command(label = u"Размер")

Vid.add_command(label = u"Шрифты",command = Window_K)

Prog = Tkinter.Menu(Bar, tearoff = 0 , font = all_font)

Prog.add_command(label = u"Помощь")

Prog.add_command(label = u"О программе", command = Window_O)

Bar.add_cascade(label = u"Управление базой", menu = Menu1)

Bar.add_cascade(label = u"Настройка вида", menu = Vid)

Bar.add_cascade(label = u"О программе", menu = Prog)

root.config(menu=Bar)

root.mainloop()

#else:

#pass

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

def var123 (even = None):

if even == u"Студент":

Ent1["state"] = "disabled"

Ent2["state"] = "disabled"

But2["state"] = "normal"

else:

Ent1["state"] = "normal"

Ent2["state"] = "normal"

But2["state"] = "normal"

#Закрытие программы

def die(even = None):

response = tkMessageBox.askyesno(u"Важно!!!",u"Закрыть базу данных дипломных работ студентов ТМ-факультета?")

r = response

if r == 1:

sys.exit(0)

else:

responce.destroy()

FR = Tkinter.Frame(root)

FR["width"] = 250

FR["height"] = 300

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

FR["bg"] = "white"

FR ["bd"] = "4m"

FR["relief"] = "groove"

#Меню "Тип доступа"

def big(event = None):

MB_NEW["text"] = (NEW_text[event])

var123(NEW_text[event])

self.tip_dostupa = NEW_text[event]

MB_NEW = Tkinter.Menubutton(FR, relief = "raised", justify = "center")

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

MB_NEW.menu = Tkinter.Menu(MB_NEW, tearoff = 0)

MB_NEW ["menu"] = MB_NEW.menu

MB_NEW ["bg"] = "grey"

MB_NEW ["activebackground"] = "white"

MB_NEW ["width"] = 20

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

MB_NEW["text"] = (u"Тип доступа")

NEW = []

for i in NEW_text:

NEW.append(i+" "*(20-len(i)))

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

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

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

#Поле ввода "Имя пользователя"

LaFR1 = Tkinter.LabelFrame(FR)

LaFR1["text"] = u"Имя пользователя"

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

Ent1 = Tkinter.Entry(LaFR1)

Ent1["width"] = 25

Ent1["state"] = "disabled"

Ent1.pack()

name = Ent1

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

LaFR2 = Tkinter.LabelFrame(FR)

LaFR2["text"] = u"Пароль"

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

Ent2 = Tkinter.Entry(LaFR2)

Ent2["width"] = 25

Ent2["state"] = "disabled"

Ent2 ["show"] = "*"

Ent2.pack()

parol = Ent2

#Кнопка "Вход"

But2 = Tkinter.Button(FR)

But2["bg"] = "white"

But2["bd"] = "1m"

But2["relief"] = "raised"

But2["text"] = u"Вход"

But2["state"] = "disabled"

But2.place(relx = 0.4, rely = 0.8, anchor = "center")

But2.bind("<Button-1>",VHOD)

But2.bind("<Return>", VHOD)

#Кнопка "Выход"

But1 = Tkinter.Button(FR)

But1["bg"] = "white"

But1["bd"] = "1m"

But1["relief"] = "raised"

But1.place(relx = 0.2, rely = 0.8, anchor = "center")

But1["text"] = u"Выход"

But1.bind("<Button-1>", die)

#Кнопка "Регистрация"

But3 = Tkinter.Button(FR)

But3["bg"] = "white"

But3["bd"] = "1m"

But3["relief"] = "raised"

But3.place(relx = 0.7, rely = 0.8, anchor = "center")

But3["text"] = u"Регистрация"

But3.bind("<Button-1>")

root.mainloop()

if __name__ == "__main__":

root = Tkinter.Tk()

vysota_vhod = root.winfo_screenheight()

shyrina_vhod = root.winfo_screenwidth()

x_vhod = (shyrina_vhod / 2) - 125

y_vhod = (vysota_vhod / 2) - 150

razm_x_y = "250x300+%s+%s"%(x_vhod,y_vhod)

root.geometry(razm_x_y)

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

all_font = tkFont.Font()

all_font ["family"] = "Helvetica"

all_font ["size"] = 15

all_font ["weight"] = "normal"

system(root,all_font)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]