Академический Документы
Профессиональный Документы
Культура Документы
Выполнил:
Студент гр.N33461
Нгуен Тхань Чунг
Проверил:
Ищенко Алексей Петрович
Санкт-Петербург
2022
1. Цель работы:
Разработать простейшую программу, запрашивающую ФИО пользователя и заносящую эту
информацию в текстовый файл. Если такое ФИО имеется в файле, то выдавать об этом
сообщение. После ввода информации программа должна завершать работу и сообщать
пользователю о лимитах ее использования (временнОго или количества запусков). По
достижении лимита запусков программа должна предложить пользователю приобрести ее
полную версию или деинсталлировать себя. При повторной установке программы, она
должна сообщать о своем предыдущем нахождении на этом компьютере и сверяться с
прошлыми лимитами пользования (т.е. не давать их суммарно превысить). На защиту
принимается инсталлятор, программа и деинсталлятор (программа регистрируется в
системе, и Вы знаете, где это посмотреть и как ее «взломать»). Выполняются две версии
программы (можно сочетать в одной)
а) Time-limited (ограничение по времени сделать не более 3 минут, чтобы можно
было проследить в момент сдачи достижение лимита).
б) Start-limited (ограничение на количество запусков тоже должно быть наглядным,
например – 4-5)
# ID
idImg = pygame.image.load('./assets/id.png')
idX = 240
idY = 93
startTime = datetime.now()
def process(input):
endTime = datetime.now()
totalTime = endTime - startTime
totalTime = int(totalTime.total_seconds())
with open("info.txt",'r+') as f:
timeLive = int(f.readline().replace('\n',''))
timeLive -= totalTime
message1 = ''
if (timeLive <= 0):
message1 = 'Trial is over, please buy the official version!'
else:
message1 = 'Time trail left - ' + str(timeLive) + 's'
with open("info.txt",'r+') as f:
f.write(str(timeLive) + '\n')
f.write(path)
names = []
isExistingName = 0
if os.path.isfile("names.txt"):
f = open("names.txt",'r+')
tmp = f.readline().replace('\n','')
while (tmp != ''):
names.append(tmp)
tmp = f.readline().replace('\n','')
else:
f = open("names.txt",'a+')
for x in names:
if (input == x):
isExistingName = 1
break
message2 = ''
if (isExistingName == 0):
f.write(input+'\n')
message2 = 'Name has been added'
else:
message2 = 'Name already exists'
f.close
return [message2, message1]
path = os.getcwd()
font = pygame.font.SysFont('varsity_regular.ttf', 32)
def main():
os.chdir(r'/home/mh2107/Documents/')
if not os.path.isdir('.Lab2'):
os.mkdir('.Lab2')
os.chdir('.Lab2')
timeLive = 20
oldPath = ''
if os.path.isfile('info.txt'):
os.system("chmod -v 700 info.txt > /dev/null 2>&1")
with open("info.txt",mode='r') as f:
timeLive = int(str(f.readline().replace('\n','')))
oldPath = f.readline().replace('\n','')
else:
with open("info.txt",mode='w') as f:
f.write(str(timeLive) + '\n')
f.write(path)
main()
os.system("chmod -v 000 info.txt > /dev/null 2>&1")
pygame.quit()
б) Start-limited (ограничение на количество запусков тоже должно быть
наглядным, например – 4-5)
import time
import os
import pygame, sys
from pygame.locals import *
from pygame import mixer
# ID
idImg = pygame.image.load('./assets/id.png')
idX = 240
idY = 93
def process(input):
with open("info.txt",'r+') as f:
launches = int(f.readline().replace('\n',''))
launches -= 1
message1 = ''
if (launches < 1):
message1 = 'Trial is over, please buy the official version!'
else:
message1 = 'Number of trials - ' + str(launches)
with open("info.txt",'r+') as f:
f.write(str(launches) + '\n')
f.write(path)
names = []
isExistingName = 0
if os.path.isfile("names.txt"):
f = open("names.txt",'r+')
tmp = f.readline().replace('\n','')
while (tmp != ''):
names.append(tmp)
tmp = f.readline().replace('\n','')
else:
f = open("names.txt",'a+')
for x in names:
if (input == x):
isExistingName = 1
break
message2 = ''
if (isExistingName == 0):
f.write(input+'\n')
message2 = 'Name has been added'
else:
message2 = 'Name already exists'
f.close
return [message2, message1]
path = os.getcwd()
font = pygame.font.SysFont('varsity_regular.ttf', 32)
def main():
os.chdir(r'/home/mh2107/Documents/')
if not os.path.isdir('.Lab2'):
os.mkdir('.Lab2')
os.chdir('.Lab2')
launches = 3
oldPath = ''
if os.path.isfile('info.txt'):
os.system("chmod -v 700 info.txt > /dev/null 2>&1")
with open("info.txt",mode='r') as f:
launches = int(str(f.readline().replace('\n','')))
oldPath = f.readline().replace('\n','')
else:
with open("info.txt",mode='w') as f:
f.write(str(launches) + '\n')
f.write(path)
main()
os.system("chmod -v 000 info.txt > /dev/null 2>&1")
pygame.quit()