Post on 18-Oct-2019
UNIVERSITATEA TEHNICĂ DIN CLUJ-NAPOCA
CENTRUL REGIONAL DE EDUCAŢIE ŞI FORMARE PROFESIONALĂ
FLEXIBILĂ – CLUJ
LUCRARE de EVALUARE
Titlul lucrării:
Model de documentatie pentru proiectul de atestat
la clasa a 12-a, Specializarea Matematica-Informatica
Cursant: Prof. Diana Man
Cuprins
Tema proiectului ........................................................................................... 3
Specificarea cerinţelor ................................................................................... 3
Analiza ........................................................................................................... 4
Proiectarea aplicaţiei ..................................................................................... 5
Certificarea .................................................................................................. 10
Implementarea ............................................................................................. 11
Bibliografie .................................................................................................. 13
Prezentarea proiectului
Tema proiectului
Astronomia. Constelatii stelare este o aplicatie care ofera informatii generale din
domeniul astronomiei, realizeaza reprezentarea grafică si clasificarea unui set de
puncte si ofera posibilitatea de a testa cunostintele acumulate prin rezolvarea unui
set de teste grila.
Motivam alegerea temei datorita intereselui nostru pentru studiul Universului.
Specificarea cerinţelor
a) Date de intrare
In cazul datelor din domeniul astronomiei
o Imagini, informatii, site-ul NASA,etc.
In cazul reprezentării grafice şi a clasificării unei mulţimi de puncte
o Fisierele text care contin coordonatele punctelor: Dataset1, Dataset2,..
o Numărul de clase specifiat
In cazul testelor de evaluare a cunoştinţelor
o Fisierele care contin întrebarile, respectiv răspunsul corect: Test1,
Test2, etc.
b) Datele de ieşire
In cazul datelor din domeniul astronomiei,
o Imagini, informatii, site-ul NASA, etc.
In cazul reprezentării grafice şi a clasificării unei mulţimi de puncte
o Matricea de apartenenţă a punctelor la clase
o Matricea centrelor claselor
In cazul testelor de evaluare a cunoştinţelor
o Rezultatul testului
c) Cerinţe de sistem
Microsoft Visual Studio.NET or Microsoft .NET Framework
Microsoft Windows NT 4.0, Windows 2000 or Windows XP
Analiza a) Algoritmii
Pentru clasificarea punctelor se foloseşte algoritmul Fuzzy Clustering
Funcţia obiectiv care trebuie minimizată este:
c
i
c
i ik
q
ik
K
kic dmJcccMJ1 1
2
121 ),...,,( (1)
unde q ),1[ este exponentul de fuzificare
Sunt două condiţii necesare ca J să atingă minimul:
K
k
q
ik
K
k k
q
ik
i
m
umc
1
1 (2)
c
j
q
jk
ikik
d
dm
1
)1/(2)(
1 (3)
unde ikd este distanţa intre fiecare punct şi centrul clasei din care aparţine.
M are două proprietăţi: suma fiecărei coloane este 1 şi suma tuturor elementelor este
K. (4)
Algorithm (Jang et al., 1977) 1. Se iniţializează matricea de apartenenţă M cu valori aleatorii 0 sau 1,
respectând constrăngerile cerute de (4)
2. Se calculează centrele claselor ),...2,1( cici folosind (2).
3. Se calculează funcţia obiectiv, folosind (1). Stop dacă s-au atins numărul
maxim de iteraţii (100) sau nu se observă o imbunătăţire a acestei funcţii fată
de iteraţia anterioară
4. Se calculează din nou M, folosind (3)
5. Se reia pasul 2.
b) Tipul aplicaţiei
Este o aplicatie de dimensiune mică dar se urmăreşte extinderea acesteia.
c) Caracteristicile aplicaţiei
S-a urmărit acurateţea, robusteţea, extensibilitatea, eficienţa, compatibilitatea,
integritatea şi nu în ultimul rând realizarea unei interfeţe prietenoase. De asemenea
s-a avut în vedere realizarea unei aplicaţii modulare.
Proiectarea aplicaţiei
Se urmăreşte proiectarea de ansamblu prin studierea modulelor ce compun
aplicaţia şi a legăturii reciproce dintre ele.
a) Fişierele text care conţin coordonatele punctelor care compun setul de date de
intrare a clasificarii, precum si fisierele care conţin testele pot fi create manual,
din Notepad.
b) Operaţii
Vizualizarea informaţiilor legate de astronomie (info generale, planete,
constelatii, clasificarea stelelor)
Reprezentarea grafică şi clasificarea unei mulţimi de puncte
Rezolvarea unei set de teste cu întrebări legate de informaţiile prezentate
anterior.
c) Modelul fizic
Interfaţa
i. Meniul este compun dinurmătoarele opţiuni:
1. Informaţii generale –oferă informatii generale din domeniul
astrologiei
2. Planete cu submeniul:
- Marcur
- Venus
- Terra
- Marte
- Jupiter
- Saturn
- Uranus
- Neptuln
- Pluto
Ofera informaţii referitoare la planetele sistemului nostru
solar, precum şi imagini reprezentative.
3. Constelaţii cu submeniul:
- Andromeda
- Antile
- Virgo
- Hercules
- Scorpio
- Ara
- Ursa Major
- Auriga
- Bootes
- Cancer
Oferă informaţii referitoare la constelatiile amintite mai sus
precum şi imagini reprezentative.
4. Clasificare stele - prezinta o clasificare a stelelor (dupa stralucire, gruparea in
spatiu, existenta sateliţilor artificiali, etc)
- reprezintă graphic o multime de puncte ale căror
coordonate se citesc dintr-un fişier text şi încearcă o
clasificare a acesteia într-un număr de clase specificat;
clasele obţinute sunt evidenţiate prin reprezentare cromatică
5. Test- oferă posibilitatea testării cunoştinţelor acumulate, prin
rezolvarea unui set de teste grilă cu patru variante de răspuns
corect, din care e corectă o singură variantă. Intrebările se
citesc din fişiere test, realizate în Notepad.
Raspusurile corecte sunt codificate in fisirul text, dupa
formula:
Raspcodificat=(raspcorect+’N’-‘A’)*nrIntrebarii
6. NASA- Incărcă site-ul NASA, permiţând aflarea noutăţilor
de ultimă oră din domeniu, folosind un WebBrowser, oferit
de toolbox-ul limbajului C#
7. Despre- oferă informatii despre propiect, realizatori,
versiune, copyright
8. Ieşire-permite ieşirea din aplicaţie
Form principal
Formularul Form1, care realizeaza reprezentarea grafică a unei mulţimi de puncte si
clasificarea acestora in 10 clase (10 contelatii):
Proiectarea modulelor
Form principal: - implementeză interfaţa (meniul principal)
Form1 Class
- Apelează metodele statice ale clasei Fuzzy, respectiv
Graphic
Fuzzy Class
- Foloseşte metodele clasei Matrix
- Realizează metodele necesare implementării
algoritmului Fuzzy Clustering
i. InitFcm –iniţializează matricea de apartenetă U
cu numere aleatoare
- StepFcm- calculează coordonatele centrelor
1. calculează distanţa de la fiecare punct la
centru
2. calculează valoarea funcţiei obiectiv
3. recalculează matricea de aparteneţă U
- Fcm- apelează in mod repetat metoda FCM, atata timp
cat nu s-a realizat numărul maxim de iteratii (100) sau
nu s-a observat o imbunătaţirea a fucţiei obiectiv faţă
de iteraţia precedentă
Graphic Class
- Realizează reprezentarea grafică a punctelor
Matrix Class - implementează operaţiile specifice
lucrului cu matrici (inmulţirea a două matrici,
inmulţirea unei matrici cu un scalar, ridicarea la
putere a unei matri, transpusa unei matrici, etc.)
Form
principa
l
Form1 Form2 Form3 Form4 Form5 Form6 Form7
Grapg
Class
Matrix lass Fuzzy
Class
Form31 Form31 …Form39
- implementează operaţiile specifice lucrului cu matrici
(inmulţirea a două matrici, inmulţirea unei matrici cu
un scalar, ridicarea la putere a unei matri, transpusa
unei matrici, etc.)
Certificarea In acest pas se urmăreşte:
- Demonstrarea corectitudinii algoritmului
- Testarea aplicaţiei
- Corectarea eventualelor erori
In această aplicaţie se folosesc algoritmi a căror corectitudine a fost deja
demonstrată. Fiecare modul se testează în mod independent, apoi se testează aplicaţia
în totalitatea ei. Se folosesc sistemul de generarea a excepţiilor, oferit de limbajul C#.
Implementarea
//Conţinutuil clasei Graphic
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace FuzzyClustering
{
class Grafic : Form
{
public static void Puncte(int nl, int nc, int _nrPuncte, float[,]
a) //reprezinta grafic punctele initiale ale caror coordonate s-au citit
din fisier
Graphics g = Form1.ActiveForm.CreateGraphics();
SizeF sizef = g.VisibleClipBounds.Size;
g.PageUnit = GraphicsUnit.Inch;
g.PageScale = Math.Min(sizef.Width / g.DpiX / 1700,
sizef.Height / g.DpiY / 1700);
g.TranslateTransform(50, 50);
g.FillRectangle(new SolidBrush(System.Drawing.Color.Black),
1, 1,1500, 1500);
g.DrawRectangle(new Pen(System.Drawing.Color.White), 1, 1,
1500, 1500);
Random x = new Random();
for (int i = 0; i < _nrPuncte; i++)
{
Pen p = new Pen(System.Drawing.Color.LightSteelBlue);
g.DrawEllipse(p, a[i, 0], a[i, 1], 10, 10);
}
}
public static void Clusteri(int nrClusters, int nrPuncte, int
nrCoordonate, float[,] u, float[,] A, float[,] center)
{
//reprezinta cromatic clusterii obtinuri cu ajutorul FCM
algorithm
Graphics g = Form1.ActiveForm.CreateGraphics();
SizeF sizef = g.VisibleClipBounds.Size;
g.PageUnit = GraphicsUnit.Inch;
g.PageScale = Math.Min(sizef.Width / g.DpiX / 1700,
sizef.Height / g.DpiY / 1700);
g.TranslateTransform(50, 50);
g.FillRectangle(new SolidBrush(System.Drawing.Color.Black),
1, 1, 1500, 1500);
g.DrawRectangle(new Pen(System.Drawing.Color.White), 1, 1,
1500, 1500);
Color[] culori ={ System.Drawing.Color.DeepSkyBlue,
System.Drawing.Color.YellowGreen, System.Drawing.Color.Red,
System.Drawing.Color.DarkSalmon, System.Drawing.Color.Silver,
System.Drawing.Color.LightPink, System.Drawing.Color.MediumPurple,
System.Drawing.Color.Yellow, System.Drawing.Color.Blue,
System.Drawing.Color.Coral };
for (int j = 0; j < nrPuncte; j++)
{
int cl;
float max = u[0, j]; cl = 0;
for (int i = 1; i < nrClusters; i++)
if (u[i, j] > max) { max = u[i, j]; cl = i; }
g.DrawEllipse(new Pen(culori[cl]), A[j, 0], A[j, 1], 10,
10);
}
//Desenam centrele
for (int i = 0; i < nrClusters; i++)
{
g.FillEllipse(new SolidBrush(culori[i]), center[i, 0],
center[i, 1], 10, 10);
g.DrawEllipse(new Pen(culori[i]), center[i, 0], center[i,
1], 10, 10);
}
}
}
//ieşirea din aplicaţie
private void exitToolStripMenuItem1_Click(object sender, EventArgs e)
{
//optiunea din meniu Exit
Application.Exit();
}
Puncte tari:
Design
Usurinta in utilizare, datorita existentei meniului, butoanelor de înapoi
Originalitate
Finalizare
Complexitatea elementelor de programare
Posibilităţi de dezvoltare ulterioara, rezultate
Aplicatia se poate desvolta prin inserarea de noi elemente, astfel incât să
poata fi folosita ca meterial didactic.
Bibliografie
1. Wikipedia, the free enciclopedia
2. .NETFramework, Jeffrey Richter, Editura Microsoft Press,
2002
3. C# Charles Petzold, Editura Microsoft Press, 2005