Міністерство освіти і науки України
Національний університет „ Львівська політехніка ”
Інститут комп’ютерних наук та інформаційних технологій
Кафедра САПР
ЗВІТ
про проходження проектно-технологічної практики на
базі технічного університету м. Лодзь
Львів 2008
Зміст
Вступ…………………………………………………………….… 3
Технічний університет м. Лодзь ………………………….. 4
● Ознайомлення з історією м. Лодзь ……………………….…………..….4
● Характеристика структури технічного університету м. Лодзь…..6
● Ознайомлення з програмним забезпеченням та технологічними процесами керування інформаційними потоками………………….…….. 7
● Висновки та аналіз набутих навичок ………………………….. 8
Індивідуальне завдання…………………………………….… 9
● Розробка та реалізація програми ……………………………. 10
Висновок………………………………………………………...……… 17
Вступ
Проектно-технологічна практика ставить за мету поглиблене ознайомлення зі специфікою майбутньої спеціальності, розширення й доповнення знань, здобутих під час вивчення теоретичних курсів та виконання практичних і лабораторних завдань з таких дисциплін: “Основи програмування та алгоритмічні мови ”, “Основи інформаційних технологій”, “Проблемно-орієнтовані мови програмування ”, “Системне програмування та операційні системи ”, “Алгоритми та структури даних ”, “Схемотехніка комп’ютерів ” та інших. А також формування первинних професійних умінь і навичок для прийняття самостійних рішень і розв’язування задач пов’язаних із сучасними комп’ютерними інформаційними технологіями в реальних виробничих умовах.
Під час проходження практики необхідно ознайомитись з нормативно-технологічною документацією підприємства – бази практики, вивчення особливостей адміністративної та інформаційної взаємодії між його окремими підрозділами; ознайомитись з конфігурацією та архітектурою технічних засобів підприємства; ознайомитись з програмним забезпеченням і програмними продуктами, які використовуються або створюються в процесі діяльності даного підприємства; оволодіти сучасними технологіями оброблення інформації та застосування їх для виконання практичних завдань; набути виробничих навичок, а саме: технічної, проектувальної, виконавської; набути навичок групової роботи та роботи в колективі спеціалістів та інше.
Технічний університет м. Лодзь.
1.Ознайомлення з історією м. Лодзь .
Лодзь – одне з наймолодших і великих міст (населення - близько 800,000) Польщі. Слово Лодзь означає «човен». Вперше Лодзь згадується в 1332 р. як село Лодзія (лат.), що знаходилося у власності єпископа Куяві.
У 19 столітті Лодзь перетворюється на найважливіший центр текстильної промисловості. Лодзь стала особливим містом Європи.
За 100 років існування міста (19 вік):
число городян збільшилося з 191 людини до 500,000 в 2,500 раз!
чисельність євреїв зросла з 11 до 170,000, в 15,500 разів!
2 найбільший після Варшави центр євреїв в королівстві Польщі.
чисельність польських німців зросла з 12 до 67,000, в 35,000 разів!
найбільший центр німців в королівстві Польщі.
з сільськогосподарського села Лодзь перетворилася:
- у друге за величиною місто в Польщі!
- у найбільший промисловий центр!
- у місце з найвищою чисельністю робочих!
євреїв були поміщені в Гетто, а після ліквідації Гетто в Лодзі євреїв були вивезені з Аусвтца (Освенцима) і Біркенау та винищені.
німці переселилися до Німеччини.
росіяни повернулися до Росії
За 50 років, що пройшли з другої світової війни, Лодзь перетворилася на найбільший текстильний центр Польщі. Після 1989 р. в результаті зміни політичній ситуації, старі заводи перестали приносити дохід через відсутність попиту на їх продукцію (раніше практично все купувала Росія). Заводи один за іншим ставали банкротами. У Лодзі рівень безробіття складає 16% населення, проте місто стає новітнім туристичним містом.
Визначні пам'ятки Лодзя:
архітектурний комплекс "Ксенжі Млин" – унікальний замковий ансамбль Кароля Вільгельма Шайблера, в якому нині розміщується Музей інтер'єрів палаців-резиденцій фабрикантів Лодзі;
палаци промисловця Ізраїлю Кальмановіча Познаньськего, в яких тепер розміщені – Музей історії міста Лодзь і Музей мистецтва;
архітектурний ансамбль "Біла Фабрика" з галереєю – експозицією значної колекції польської сучасної художньої тканини;
монастир францисканцев у стилі барокко і старі дерев'яні каплиці 1676 і 1703 рр. в міському лісопарку Лагевникі;
прекрасна вілла в стилі сецесії Леопольда Киндермана – нині тут знаходиться міська галерея мистецтв;
сакральні об'єкти – архієпископський кафедральний собор св. Станіслава Костки з 100-метровою баштою, евангелиско–аугсбургский храм св. Матвія, православна церква св. Олександра Невського, невелика синагога – що єдина збереглася в місті і найбільший в Європі єврейський некрополь – Нове кладовище 1892 року на вул. Брацкей. Тут на площі 42 га збереглося понад 180 тис. поховань і 65 тис. мацев.
музеї кінематографії, археології і етнографія, і єдиний в Польщі Музей текстильного виробництва;
головна вулиця Петрковська – 4-кілометрова пряма, щонайдовша в Європі торгова вулиця. Колоритна пішохідна зона – магазини, антикварні лавки, художні галереї, кінотеатри, більше 100 стильних ресторанів, пабів, дискотек і кафе, численних центральних установ, банок;
вересневий "Фестиваль Чотирьох Культур" за участю багатьох знаменитих виконавців з Росії, Польщі, Німеччини і Ізраїлю; інші численні культурні заходи.
2.Характеристика структури технічного університету м. Лодзь.
24 травня 1945 р. був підписаний початковий декрет про відкриття Політехніки Лодзі, статус державної академічної школи, що має три факультети, що дає нею: механічний, електротехнічний, хімічний, а також текстильне відділення. Декрет давав можливість утворення нових факультетів. Літом 1945 р. почалася діяльність Політехніки Лодзі, а сьогодні в її склад входять наступні факультети: механічний, електротехніки і електроніки, хімічний, текстильний, харчової хімії і біотехнології, будівництва і архітектури, технічної фізики, інформатики і прикладної математики, організації і управління, інженерних процесів і охорони навколишнього середовища. Крім того, в структурі Політехніки Лодзя знаходяться: центр міжнародної освіти, інститут паперу і паперових машин, студія іноземних мов, студія фізичного виховання і спорту, центральна бібліотека, комп'ютерний центр, центр діагностики і лазерної терапії, дві філії в Бельську-бялой: факультет приладобудування і факультет текстильної промисловості і охорони середовища. По даним на 1 жовтня 1997 р. в Політехніці Лодзі навчалися 16572 студенти. Заняття проводять 1650 академічних викладачів, зокрема 135 професорів, 209 докторів наук і 745 кандидатів наук.
3. Ознайомлення з програмним забезпеченням та технологічними процесами керування інформаційними потоками.
Технічний університет м. Лодзь має:
- розширену локальну і глобальну мережі, яка охоплює всі комп’ютери ВУЗу і утворює спільну інформаційну базу даних;
- якісне, ліцензійне програмне забезпечення;
- велику базу прикладних програм, які дають максимальну зручність та ефективність у навчанні;
- відкритий доступ до мережі WWW;
- ліцензійну базу офісних програм;
- добре налагоджену інформаційно – потокову базу даних.
Завдяки локальній і глобальній мережі, інформаційні потоки даних охоплюють всі кафедри та бази даних університету і тим самим забезпечують ефективну та надійну співпрацю між викладачами та студентами. Технічний університет м. Лодзь володіє комплексним пакетом офісних програм, які оптимально забезпечують керування інформаційними потоками та базами даних даної системи.
Складовими пакету є : Microsoft Windows, Microsoft Office, Adobe Reader, Unix, Corel Draw ,AutoCAD,MathCAD та багато інших.
4.Висновки та аналіз набутих навичок.
Під час проходження проектно-технологічної практики, я поглибив свої знання по інформаційних технологій, набув практичні навички програмування на об’єктно-орієнтованій мові JAVA.
Основними завданням за час проходження практики були:
- ознайомлення з системою ВУЗу;
- здобуття практичний навиків програмування;
- оволодіння сучасними технологіями обробки інформації та застосування їх для виконання практичних завдань;
- виконання індивідуального завдання з використанням набутих знань за час проходження практики;
- робота в ОС Linux ;
Отже, за період проходження проектно-технологічної практика в технічному університеті м. Лодзь, я здобув важливі навики роботи зі сучасними інформаційними технологіями, прослухав курс по об’єктно-орієнтованій мові програмування JAVA, практично закріпив здобуті там знання по програмуванню на мові JAVA .
Індивідуальне завдання.
Ex.1 Напишіть додаток, який читає запит аргументів і перетворення їх на цілий тип. Змініть їх застосування так , що запит аргументів був би чинником многочлена (Ax2+Bx+C=0).
Ex.2 Напишіть додаток, який читає запит аргументів і друкує частину текстового рядка, обмеженого з двома номерами. Наприклад
java welcome 2 4
повинен друкуватися:
lco
Зловіть і обпрацюйте всі можливі виключення (кидають, коли аргументи неправильні).
Ex.3 Напишіть додаток, який генерує випадкове число з 0 до 100. Наступний додаток просить користувача вгадати цей номер. Якщо припущення неправильне, користувач отримує інформацію, якщо його номер був більший або нижче від випадкового. Якщо користувач вгадав, він отримує інформацію, скільки випробувань він мав і його питають, якщо він хоче грати знову.
Ex.4 Додаток питає користувача про довжину двох векторів. Кінець вектора помічається знаком "введення". Якщо деякий елемент вектора - не додаток номера програма нехтує цим. Якщо обидва вектора мають ідентичну довжину, додаток робить суму їх. Інакше спрацьовує власне виключення.
Ex.5 Дано клас Запису TelephoneNumber, що складається з двох полів: directionNumber і telNumber, що здійснює Зіставний інтерфейс. Створіть абстрактний class Позиція і інші класи Person і Компанія які успадковують від Позиції. Клас позиції повинен мати абстрактний опис методу, який повертає опис специфічної позиції на списку. Це повинні (або не повинен) бути інші абстрактні методи також. Клас Person повинен мати інформацію про firstname, lastname і адреса (висновок TelephoneNumber). Клас компанії повинен мати своє ім'я а також адресу (висновок TelephoneNumber). Створіть трохи об'єктів type Персони і type Компанії і помістіть їх в контейнер TreeMap, використовуючи як ключового TelephoneNumber. Чим друкуються на екрані створив в такій книзі телефону шляху, використавши інтерфейс Iterator.
Ex.6. Напишіть додатку, який з'єднується з вибраною веб-сторінкою і друкує всі зв'язки, знайдені на цій сторінці (використовуйте регулярні вирази, щоб проаналізувати вміст веб-сторінки).
Ex.7 Напишіть багатопотоковий сервер Запису і клієнт-сервер (ви можете початися від однопотокового).
1.Розробка та реалізація програми.
Дані програми розроблені в середовищі ОС LINUX і написані на мові програмування JAVA.
Ex.1
import java.io.*;
class n1
{
public static void main (String args []) throws IOException
{
boolean i=true;
double x1,x2;
double A,B,C,d;
A=B=C=d=0;
x1=x2=0;
try{
A=Integer.parseInt(args[0]);
B=Integer.parseInt(args[1]);
C=Integer.parseInt(args[2]);
}
catch (NumberFormatException e){
System.out.println("Eror format!!!!");
i=false;
}
if (i== true){
d=Math.pow(B,2)-4*A*C;
if( d>=0){
x1=(-B+Math.pow(d,1/2)/(2*A));
x2=(-B-Math.pow(d,1/2)/(2*A)); }
else
{System.out.println("Eror in polunom!!");}
System.out.println("x1="+x1+" x2="+x2);
}}}
Ex.2
public class Exercise2{
public static void main(String[] args)
{
String MyStr=new String();
int x1,x2;
x1=x2=-1;
try{
x1=Integer.parseInt(args[1]);
x2=Integer.parseInt(args[2]);
MyStr=args[0].substring(x1,x2);
System.out.println("/nResult: "+MyStr);
}catch(NumberFormatException e){System.out.println("ERROR: X or Y is not positive integer");
}catch(StringIndexOutOfBoundsException e){System.out.println("ERROR: Value of x or of y is incorrect");}
finally{System.out.println("\nIt is over of program running.");}
} }
Ex.3
import java.util.Random;
import java.io.*;
public class Exercise3{
public static int randomGenerator(){
Random randomGenerator=new Random();
int randomInt=randomGenerator.nextInt(100);
System.out.println("Generated: "+randomInt);
return randomInt;
}
public static int inputInt(String s){
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
System.out.print(s);
int i=0;
try {i=Integer.parseInt(input.readLine());}
catch(Exception e) {e.printStackTrace();}
catch(NumericFormatException e){System.out.println("Incorrect numeric format!!");}
return i;
}
public static void main(String[] args){
int userInput=0,rand=0,choice=0,countOfTryes=0;
System.out.println("To exit input -1");
rand=randomGenerator();
for(;;){
userInput=inputInt("\nInput your number(0-99): ");
if(userInput==rand){System.out.println("\nYou Guess!!!");
System.out.println("You did "+countOfTryes +" tries" );
choice=inputInt("If you want to play again, input 1 else input 0");
if(choice==0)break;}
else{
if(userInput<rand) System.out.println("Your number is lower from random one ");
else System.out.println("Your number is greater from random one ");
//System.out.println("You not guess!!((");
}
if(userInput==-1)break;
countOfTryes++;
//System.out.println("\nCount of tries is "+countOfTryes);
}
}
}
Ex.4
import java.io.*;
import java.util.*;
public class Exercise4{
public static Vector inputVector(String s){
String st="",st2="";
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
System.out.print(s);
Vector<Integer> v=new Vector<Integer>(0);
try {
st=input.readLine();
System.out.println("Your string: "+st);
for(int i=0;is<st.length();i++){
if (st.substring(i,i)!=" ") {st2=st2+st.substring(i,i);v.add(Integer.parseInt(st2));}
else{st2="";}
}
}
catch(Exception e) {e.printStackTrace();}
return v;
}
public static void main(String[] args){
Vector<Integer> vec=new Vector<Integer>(0);
vec=inputVector("Input the vector: ");
System.out.println("Your vector: "+vec.toString());
}
}
Ex.5
import java.util.*;
class TelephoneNumber implements Comparable<TelephoneNumber>
{
private String telNumber;
private int directionNumber;
TelephoneNumber(){/*System.out.println("Its default constructor");*/}
TelephoneNumber(String s,int d)
{
telNumber=new String(s);
directionNumber=d;
/*System.out.println("Its parameter constructor");*/
}
String getTelNumber()
{
return this.telNumber;
}
public int compareTo(TelephoneNumber t1)
{
if(this.directionNumber > t1.directionNumber) return 1;
if(this.directionNumber < t1.directionNumber) return -1;
else return 0;
}
}
abstract class Position{
abstract String description();
}
class Person extends Position{
private TelephoneNumber tel=new TelephoneNumber();
private String fName;
private String lName;
Person(){}
Person(TelephoneNumber t, String fn, String ln){
tel=t;
fName=new String(fn);
lName=new String(ln);
}
String description(){
return this.fName+" "+this.lName+" "+" - tel: "+tel.getTelNumber();
}
}
class Company extends Position{
private TelephoneNumber tel=new TelephoneNumber();
private String cName;
Company(){}
Company(TelephoneNumber t, String cn){
tel=t;
cName=new String(cn);
}
String description(){
return this.cName+" "+" - tel: "+tel.getTelNumber();
}
}
public class Exercise5{
public static void main(String args[]){
TreeMap tm=new TreeMap();
TelephoneNumber tn1=new TelephoneNumber("255-80-25", 1);
TelephoneNumber tn2=new TelephoneNumber("255-80-27", 2);
TelephoneNumber tn3=new TelephoneNumber("255-80-28", 3);
Company c1=new Company(tn1,"Microsoft1");
Company c2=new Company(tn2,"Microsoft2");
Person p1=new Person(tn3,"Dombrowa","Michal");
tm.put(tn1,c1);
tm.put(tn2,c2);
tm.put(tn3,p1);
Iterator i = tm.entrySet().iterator();
while (i.hasNext()) {
Map.Entry m= (Map.Entry) i.next();
System.out.println("Key"+((TelephoneNumber)m.getKey()).getTelNumber()+"Value"+((Position)m.getValue()).description());
}
}
}
Ex.6.
import java.net.*;
import java.io.*;
public class Exercise6 {
public static void main(String args[]) {
URL KM;
URLConnection KMC;
try {
KM = new URL("http://www.km.ru/");
URL indexKM = new URL(KM,"/index.html");
try {
KMC = KM.openConnection();
System.out.println(uc.getURL());
}
catch (IOException e) {
System.err.println(e);
} }
catch (MalformedURLException e) {
System.err.println(e);
} }
}
Ex.7 Програма клієнт-сервер .
import java.io.*;
import java.net.*;
public class Exercise7c implements Runnable{
static Socket clientSocket = null;
static PrintStream os = null;
static DataInputStream is = null;
static BufferedReader inputLine = null;
static boolean closed = false;
public static void main(String[] args) {
int port_number=2222;
String host="localhost";
if (args.length < 2)
{
System.out.println("Usage: java MultiThreadChatClient \n"+
"Now using host="+host+", port_number="+port_number);
} else {
host=args[0];
port_number=Integer.valueOf(args[1]).intValue();
}
try {
clientSocket = new Socket(host, port_number);
inputLine = new BufferedReader(new InputStreamReader(System.in));
os = new PrintStream(clientSocket.getOutputStream());
is = new DataInputStream(clientSocket.getInputStream());
} catch (UnknownHostException e) {
System.err.println("Don't know about host "+host);
} catch (IOException e) {
System.err.println("Couldn't get I/O for the connection to the host "+host);
}
if (clientSocket != null && os != null && is != null) {
try {
new Thread(new Exercise7c()).start();
while (!closed) {
os.println(inputLine.readLine()); }
os.close();
is.close();
clientSocket.close();
} catch (IOException e) {
System.err.println("IOException: " + e); } } }
public void run() {
String responseLine;
try{
while ((responseLine = is.readLine()) != null) {
System.out.println(responseLine);
if (responseLine.indexOf("Bay") != -1) break;
}
closed=true;
} catch (IOException e) {
System.err.println("IOException: " + e);
}
}
}.
Ex.7 Програма сервер Запису .
import java.io.*;
import java.net.*;
public class Exercise7s {
static Socket clientSocket = null;
static ServerSocket serverSocket = null;
static clientThread t[] = new clientThread[10];
public static void main(String args[]) {
int port_number=2222;
if (args.length < 1)
{
System.out.println("Usage: java MultiThreadChatServer \n"+ "Now using port number="+port_number);
} else {
port_number=Integer.valueOf(args[0]).intValue(); }
try {
serverSocket = new ServerSocket(port_number); }
catch (IOException e)
{System.out.println(e);}
while(true){
try {
clientSocket = serverSocket.accept();
for(int i=0; i<=9; i++){
if(t[i]==null)
{(t[i] = new clientThread(clientSocket,t)).start(); break;
} } }
catch (IOException e) {
System.out.println(e);}
}
}
}
class clientThread extends Thread{
DataInputStream is = null;
PrintStream os = null;
Socket clientSocket = null;
clientThread t[];
public clientThread(Socket clientSocket, clientThread[] t){
this.clientSocket=clientSocket;
this.t=t;
}
public void run() {
String line;
String name;
try{
is = new DataInputStream(clientSocket.getInputStream());
os = new PrintStream(clientSocket.getOutputStream());
os.println("Enter your name.");
name = is.readLine();
os.println("Hello "+name+" to our chat room.\nTo leave enter /quit in a new line");
for(int i=0; i<=9; i++)
if (t[i]!=null && t[i]!=this)
t[i].os.println("*** A new user "+name+" entered the chat room !!! ***" );
while (true) {
line = is.readLine();
if(line.startsWith("/quit")) break;
for(int i=0; i<=9; i++)
if (t[i]!=null) t[i].os.println("<"+name+"> "+line); }
for(int i=0; i<=9; i++)
if (t[i]!=null && t[i]!=this)
t[i].os.println("*** The user "+name+" is leaving the chat room !!! ***" );
os.println("*** Bye "+name+" ***");
for(int i=0; i<=9; i++)
if (t[i]==this) t[i]=null;
is.close();
os.close();
clientSocket.close(); }
catch(IOException e){}; } }
Висновок.
Проходження технологічної практика на базі технічного університету м. Лодзь допомогло мені у формуванню первинних професійних умінь і навичок для прийняття самостійних рішень і розв’язування задач пов’язаних із сучасними комп’ютерними інформаційними технологіями в реальних виробничих умовах.
Навики здобуті при проходженні практики допомогли мені практично закріпити знання роботи з різними прикладними програмами та системами, комп’ютерними мережами, новітніми інформаційними технологіями.
Представлене мною індивідуальне завдання є чітким прикладом здобутих мною навичок по мові програмування JAVA, роботи прикладних програм, системного підходу до вирішення задач.