Sunteți pe pagina 1din 4

Medii si instrumente de programare

Examen: 50% proiecte de laborator; 50 examen scris (online)

Curs1

Introducere in aplicatii de tip consola in Visual Studio


Elemente de C#; structura (componente)

Aplicatii de tip consola in VS au care rezultat un "executabil" (fisier cu extensia


.exe)
care poate fi executat in linie de comanda (cmd sau consola).

Studiu de caz:

Sa se realizeze o aplicatie de tip consola care permite citirea de la consola


a informatiilor despre un student si salvarea acestora intr-un fisier, pe disk.
Ulterior, se ofera posibilitatea afisarii la consola parcurgand fisierul de pe
disk.

Structura aplicatii consola (StudentApplication):

(1) Solution (solutie) un fisier cu extensia .sln


(2) Unul sau mai multe proiecte in cadrul solutiei (.vsproj)

Structura unui proiect:

(1) Properties: proprietatii generale ale fisierului executabil rezultat (versiune,


autor, descrieri, companie)

- in fisierul AssemblyInfo

[assembly: AssemblyVersion("1.0.1.1")]
[assembly: AssemblyFileVersion("1.0.1.1")]

(2) References

Referinte catre alte librarii (.dll)/ proiecte din cadrul solutiei


Vor putea fi ulterior utilizate cu "using" in fisierele ce contin cod sursa c#

De exemplu, daca dorim sa construim clasa student in alt proiect


decat cel curent, ca sa o putem utiliza in proiectul nostru, trebuie sa
adaugam o referinta catre acesta.

(a) referinta catre un proiect din cadrul solutiei

Vom crea al doilea proiect StudentModel (clasa Student) de tip "class library"
References => Add reference => Projects => StudentModel

(b) referinta catre o librarie .NET existenta

References => Add => Assemblies => System.Configuration

(aceasta librarie este utila pentru administrarea fisierului de


configurare "App.config"

(3) App.config

este util pentru utilizarea diverselor chei de configurare care pot fi modificate
si accesate
dinamic fara sa fie necesara recompilarea fisierului executabil!

de exemplu: cai pe disk la foldere; adrese de servere, adrese de baza de date...

(4) Program.cs

Contine functia principala "Main" in cadrul unei clase C# implicite,


cu numele "Program"

///////////////////////////////////////////////////////////////////////

using StudentModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//using StudentModel; //using pentru namespace-ul care contine clasa Student
//altfel, fara using, trebuie sa scriem numele full al clasei!!

namespace StudentApplication
{
class Program
{
static void Main(string[] args)
{
Student stud = new Student("2A", "Info", "Coco@upit.ro", "Cocolino",
45);

Console.WriteLine(stud.ToString());

stud.ReadInfo();
stud.WriteToFile();
stud.DisplayInfo();

Console.ReadKey();
}
}
}

/////////////////////////////////////

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StudentModel
{
//o clasa C# care modeleaza notiunea de Student din lumea reala
public class Student
{
//adaugam proprietatile unui student
public string Id { get; set; }
public string Faculty { get; set; }
public string Email { get; set; }
public string Name { get; set; }
public int Age { get; set; }

public Student(string id, string faculty, string email, string name, int
age)
{
Id = id;
Faculty = faculty;
Email = email;
Name = name;
Age = age;
}

public void ReadInfo()


{
Console.WriteLine("Id:");
Id = Console.ReadLine();

Console.WriteLine("Faculty:");
Faculty = Console.ReadLine();

Console.WriteLine("Name:");
Name = Console.ReadLine();

Console.WriteLine("Email:");
Email = Console.ReadLine();

Console.WriteLine("Age:");
Age = int.Parse(Console.ReadLine());
}

public void DisplayInfo()


{
Console.WriteLine(ToString());
}

public void WriteToFile()


{
File.AppendAllText("Students.txt", ToString() + "\n");
}

//reprezentare ca string (sir de caractere)


//a obiectului curent

public override string ToString()


{
return $"{Id},{Faculty},{Email},{Name},{Age}";
}
}
}

S-ar putea să vă placă și