Автор работы: Пользователь скрыл имя, 11 Апреля 2014 в 15:16, отчет по практике
В ходе прохождения практики были изучены вопросы техники безопасности, правильной организации рабочего программиста, изучены технологии разработки программного обеспечения в условиях реального предприятия и применяемое для этого программное обеспечение и среды разработки.
Были получены навыки работы с фреймворком PyQt4. Также был получен опыт работы с языком программирования Python, в том числе для разработки desktop-приложений с использованием HTML5. В том числе получен опыт работы с расширением для Mozilla Firefox - SQLiteManager, используемого для администрирования СУБД SQLite.
Введение 4
1 Описание программного обеспечения 6
2 Программы контроля и диагностики средств вычислительной техники 8
3 Описание средств защиты информации 11
4 Описание технологии разработки информационной системы 13
5 Организация рабочего места 14
6 Техника безопасности 17
7 Проектирование информационной системы 20
Заключение 22
Список использованных источников 23
ЗАКЛЮЧЕНИЕ
В ходе прохождения практики были изучены вопросы техники безопасности, правильной организации рабочего программиста, изучены технологии разработки программного обеспечения в условиях реального предприятия и применяемое для этого программное обеспечение и среды разработки.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
ПРИЛОЖЕНИЕ А
Листинг программы
# -*- coding: utf-8 -*-
from PyQt4 import QtGui, QtCore, QtWebKit, Qt
from database import DBManager
import JSObjects
class MainWindow(QtGui.QMainWindow):
def __init__(self):
QtGui.QMainWindow.__init__(
self.js_dialogs = JSObjects.Dialogs()
self.js_connector = JSObjects.JSConnector()
self.setupUi()
self.webView.load(QtCore.QUrl(
self.setWindowTitle(self.
self.db = DBManager
a = self.db.getDistricts()
print a
def setupUi(self):
if self.objectName().isEmpty():
self.setObjectName(self.toUtf(
self.resize(800, 600)
self.webView = QtWebKit.QWebView(self)
self.webView.setObjectName("
self.setCentralWidget(self.
#self.webView.setUrl(QtCore.
self.webView.page().mainFrame(
self.webView.page().mainFrame(
@QtCore.pyqtSlot(str)
def test(self,what):
print what
@QtCore.pyqtSlot()
def onclose(self):
self.db.close()
@staticmethod
def toUtf(text):
"""
Method convert string to UTF-8
:param text: string
:return: QString or str in UTF-8
"""
if isinstance(text, str):
return QtGui.QApplication.translate("
elif isinstance(text, QtCore.QString):
return str(text.toUtf8())
from sqlite3 import dbapi2 as sqlite
from PyQt4.QtGui import QApplication
from PyQt4.QtCore import QString
class _DBManager(object):
def __init__(self, path):
self.file = path
self.connection = sqlite.connect(self.toUtf(
self.cursor = self.connection.cursor()
self.connection.text_factory = str
self.execute("PRAGMA auto_vacuum=FULL")
self.execute('PRAGMA encoding = "UTF-8"')
self.createTables()
#self.load()
def close(self):
self.connection.commit()
self.cursor.close()
def save(self):
self.connection.commit()
def fetchall(self):
trueValues = []
for value in self.cursor.fetchall():
if isinstance(value, tuple):
if len(value) > 1:
trueValues.append(value)
else:
trueValues.append(value[0])
else:
trueValues.append(value)
return trueValues
def execute(self, statement, args=None):
if args is None:
self.cursor.execute(statement)
else:
self.cursor.execute(statement, args)
def fetchone(self):
result = self.cursor.fetchone()
if hasattr(result, '__iter__'):
if len(result) == 1:
return result[0]
return result
def addDistrict(self, name):
self.execute('INSERT INTO districts( name ) VALUES (?)', (name,))
id = self.cursor.lastrowid
self.save()
return id
def addStreet(self, street_name):
self.execute('INSERT INTO streets (name) VALUES (?)', (street_name, ))
id = self.cursor.lastrowid
self.save()
return id
def addHouseToStreet(self, street_id, dist_id, house_data):
self.execute('INSERT INTO houses (streetID, num, corp, distID) VALUES (?,?,?,?)', (int(street_id), int(house_data[0]), int(house_data[1]), int(dist_id)))
id = self.cursor.lastrowid
self.save()
return id
def getDistricts(self):
self.execute('SELECT id, name FROM districts')
result = self.fetchall()
return result
def getStreets(self):
self.execute('SELECT id, name FROM streets')
result = self.fetchall()
return result
def addHuman(self, name, surname, patronymic, bday, gtel, mtel, sex, zbl, tbl, vt, uz, iov, uv, vvov):
self.execute('INSERT INTO Peoples (name, surname, patronymic, birthday, telephone, mobile, sex, zbl, tbl, tt, uz, iov, uv, vov) '
'VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?)'
id = self.cursor.lastrowid
self.save()
return id
def createTables(self):
self.execute('''
CREATE TABLE IF NOT EXISTS Peoples(
ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
name VARCHAR(100) NOT NULL,
surname VARCHAR(100) NOT NULL,
patronymic VARCHAR(100) NOT NULL,
birthday VARCHAR(10) NOT NULL,
telephone VARCHAR(15) NOT NULL,
mobile VARCHAR(15) NOT NULL,
sex INTEGER NOT NULL,
zbl INTEGER NOT NULL,
tbl INTEGER NOT NULL,
tt INTEGER NOT NULL,
uz INTEGER NOT NULL,
iov INTEGER NOT NULL,
uv INTEGER NOT NULL,
vov INTEGER NOT NULL
)
''')
self.execute('''
CREATE TABLE IF NOT EXISTS address(
ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
peopleID INTEGER NOT NULL ,
houseID INTEGER NOT NULL ,
flat VARCHAR(10) NOT NULL ,
fakt INTEGER NOT NULL,
postindex VARCHAR(6)
)
''')
self.execute('''
CREATE TABLE IF NOT EXISTS houses(
ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
streetID INTEGER NOT NULL,
num INTEGER NOT NULL ,
corp VARCHAR(5),
distID INTEGER NOT NULL
)
''')
self.execute('''
CREATE TABLE IF NOT EXISTS streets(
ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
name VARCHAR NOT NULL
)
''')
self.execute('''
CREATE TABLE IF NOT EXISTS districts(
ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
name VARCHAR NOT NULL
)
''')
self.execute('''
CREATE TABLE IF NOT EXISTS actions(
ID INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
peopleID INTEGER NOT NULL,
type VARCHAR NOT NULL,
actdate VARCHAR NOT NULL,
other TEXT
)
''')
def toUtf(self, text):
if isinstance(text, str):
return str((QApplication.translate("
elif isinstance(text, QString):
return str(text.toUtf8())
DBManager = _DBManager('db.sqlite')
# -*- coding: utf-8 -*-
import dialogs
from database import DBManager
from PyQt4.QtCore import QObject, pyqtSlot, QStringList, QVariant, QString
from PyQt4.QtGui import QApplication
Dialogs = dialogs.JSDialogs
class JSConnector(QObject):
@pyqtSlot(str, QVariant)
def save(self, what, args):
if what == 'district':
print args
name = args[0].toString()
print "Название ", name
data = args[1]
#data[0] = str(data[0]).split(',')
for x in data.toStringList():
x = str(x).split(',')
street = x.pop(0)
print 'Улица: ', street
for i in range(0, len(x)/2), 2:
print 'Дом: ',x[i],(' корпус: '+str(x[i+1]) if x[i+1] > 0 else '')
#DBManager.addDistrict(str(
@pyqtSlot(str, QStringList)
def saveDistrict(self, name, data):
print 'Название округа: ',self.toUtf(name)
id = DBManager.addDistrict(self.
for street_data in data:
street_data = list(street_data.split(','))
street_name = street_data.pop(0)
street_id = DBManager.addStreet(self.
print 'Улица', self.toUtf(street_name)
for i in range(0,len(street_data),2):
DBManager.addHouseToStreet(
print 'Дом: ',street_data[i], (u'Корпус ',street_data[i+1] if street_data[i+1] >0 else '')
@pyqtSlot(result=QStringList)
def getStreets(self):
print DBManager.getStreets()
return QStringList([str(x[0])+','+
#@pyqtSlot(QString, QString, QString, QString, QString,QString, int, int, int, int, int, int, int, int, result=int)
@pyqtSlot(int, result=int)
#def addHuman(self, name, surname, patronymic, bday, gtel, mtel, sex, zbl, tbl, vt, uz, iov, uv, vvov):
def addHuman(self, vvov):
print vvov
return 1#DBManager.addHuman(self.
def toUtf(self, text):
if isinstance(text, str):
return str((QApplication.translate("
elif isinstance(text, QString):
return str(text.toUtf8())
# -*- coding: utf-8 -*-
import main
from PyQt4.QtGui import QApplication
from sys import argv, exit
def run():
app = QApplication(argv)
mW = main.MainWindow()
mW.showMaximized()
exit(app.exec_())
if __name__ == '__main__':
run()
function addDistrict(){
var id="#add-district";
$(id).load('dialogs/add-
$(id).dialog({
title:'Добавление: округ',
modal: true,
width: 550,
maxWidth:700,
height:490,
buttons: {
}
});
}
function saveDistrict(){
var data = [];
var name = $('#district-name').val();
var temp = [];
var num, corp;
if (!name || name == ''){
//Error msg
return false;
}
$('#streets-list-container
.dialog-street-to-district').
temp = [$(this).children('.dialog-
$(this).children('.streets-
num = $(this).children('.house-num')
corp = $(this).children('.house-corp'
if (parseInt(num)) temp[1].push([num, (!parseInt(corp) ? 0 : parseInt(corp))]);
});
data.push(temp);
});
App.saveDistrict(name, data);
return true;
}
function addStreetRow(element){
$('#streets-list-container').
<input type="text" class="dialog-input dialog-street-name"
placeholder="Наазвание улицы"><a href="#"
onclick="$(this).next().
<div class="streets-houses">\
<span class="dialog-p">Дома, входящие в округ\
<div class="add-btn-block" onclick="addHouseRow(this)">\
<img alt="Добавить" class="img-add" src="images/add.png">\
</div>\
</span>\
<div class="houses-table-container"
<table class="dialogs-input-table houses-table">\
<tr>\
<th>Дом</th>\
<th>Корпус</th>\
</tr>\
<tr class="house-table-tr">\
<td class="house-table-td house-num"><input type="text" class="dialog-input dialog-house-number" size=4></td>\
<td class="house-table-td house-corp"><input type="text" class="dialog-input dialog-house-corpus" size=4></td>\
</tr>\
</table>\
</div>\
</div>\
</div>\
</div>'))
}
function addHouseRow(element){
var e = $('<tr></tr>').addClass('