Documente Academic
Documente Profesional
Documente Cultură
MessageBox.Show("Hello!",
"Mesaj important");
MessageBoxButtons.YesNo);
MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question,
MessageBoxDefaultButton.Button2);
1
Pentru a obţine răspunsurile:
if (result1 == DialogResult.Yes && result2 == DialogResult.No)
}
MessageBox.Show("C# e cel mai tare!","Critical Warning",MessageBoxButtons.OKCancel,
MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1,
MessageBoxOptions.RightAlign,true);
MessageBoxIcon.Exclamation,
MessageBoxDefaultButton.Button1);
6. Setarea focusului
txtNume.Focus();
sau
txtDenp.Text = "";
2
lblStocf.Visible = false; //- ascunderea
lblStocf.Visible = true; //- afişarea
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace lab01_ex2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
3
//declarat si intializat variabila element
string element = txtDenMijlocFix.Text + " " + txtValIntrare.Text + " " +
txtDNU.Text + " " + txtValAmortizare.Text;
//Am adaugat continutul variabilei element in listbox
lstRezultate.Items.Add(element);
}
}
}
Seminar 2
double doutput = 0;
else
4
2 1
5 5
1 7
1 6
1 3 6
7
1 6
6
4 7
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
5
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
6
valimprumut = valramasa;
i++;
}
}
}
Seminar 3
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
7
}
double[] a;
private void btnGenerare_Click(object sender, EventArgs e)
{
a = new double[Convert.ToInt32(txtnr.Text)];
}
int i = 0;
8
2 3
1
2 3
1
3
1
3 3 3
3
9
Fig. 2. Fereastra la execuţia aplicaţiei
Seminar 4
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp5
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int[,] a;
private void btnGenerare_Click(object sender, EventArgs e)
{
a = new int[Convert.ToInt32(txtLinii.Text),
Convert.ToInt32(txtColoane.Text)];
Random r = new Random();
label3.Text = "";
for(int i =0; i< Convert.ToInt32(txtLinii.Text);i++)
1
0
{
for(int j=0;j< Convert.ToInt32(txtColoane.Text);j++)
{
a[i, j] = r.Next(0, 10);
label3.Text += a[i, j] + " ";
}
label3.Text += "\n";
}
}
1
1
{
int suma = 0;
for (int i = 0; i < c; i++)
suma += a[i, i];
MessageBox.Show("suma elemetelor de pe diagonala principala este
" + suma);
}
else
MessageBox.Show("Matricea nu este patratica");
break;
case "suma elementelor aflate deaspra diagonalei principale":
int sd = 0;
for (int i = 0; i < l; i++)
{
for (int j =i+1; j < c; j++)
{
sd += a[i, j];
}
}
MessageBox.Show("Suma elementelor este " + sd);
break;
default:
MessageBox.Show("Alegeti o optiune");
break;
}
}
}
}
3
1 8
4
2
1
2
Fig. 1. Fereastra în modul Design
1
3
Fig2. AfisareListView
Rezolvare:
{ "Dolar", "1", "4.00" },{ "Dolar", "2", "4.15" },{ "Dolar", "3", "4.05" },{
"Dolar", "4", "4.75" },{ "Dolar", "5", "4.10" },{ "Dolar", "6", "4.20" }};
1
4
Application.Exit();
this.Hide();
fg.Show();
this.Hide();
fv.Show();
dataGridView.Columns.Add("Moneda", "Moneda");
if(Form1.date[i, 0]=="Euro")
contor[0]++;
else
1
5
medie[1] += Convert.ToDouble(Form1.date[i, 2]);
contor[1]++;
medie[1] = Math.Round(medie[1]/contor[1],2);
if (Form1.date[i, 0] == "Euro")
else
this.Hide();
f1.Show();
chart1.DataSource = Form1.date;
chart1.Series.Clear();
chart1.Series.Add("Euro");
chart1.Series.Add("Dolar");
1
6
chart1.Series["Euro"].Points.AddXY(Convert.ToInt32(Form1.date[i, 1]),
Convert.ToDouble(Form1.date[i, 2]));
chart1.Series["Dolar"].Points.AddXY(Convert.ToInt32(Form1.date[i, 1]),
Convert.ToDouble(Form1.date[i, 2]));
chart1.Series["Euro"].IsValueShownAsLabel = true;
chart1.Series["Dolar"].IsValueShownAsLabel = true;
this.Hide();
f1.Show();
Laborator 7
int nrlinii;
nrlinii = angajatiDataGridView.Rows.Count - 1;
salrarii[i] =
Convert.ToDouble(angajatiDataGridView.Rows[i].Cells[4].Value);
1
7
double min = salrarii[0];
min = salrarii[i];
double medie = 0;
int contor = 0;
medie += salrarii[i];
contor++;
max = salrarii[i];
Lab 08
Rezolvare:
1
8
Codul asociat ferestrei Form1:
public partial class Form1 : Form
public Form1()
InitializeComponent();
this.Hide();
f2.Show();
this.Hide();
f3.Show();
Application.Exit();
public Form2()
InitializeComponent();
1
9
private void produseBindingNavigatorSaveItem_Click(object sender, EventArgs e)
this.Validate();
this.produseBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.bdDataSet);
// TODO: This line of code loads data into the 'bdDataSet.Intrari' table. You
can move, or remove it, as needed.
this.intrariTableAdapter.Fill(this.bdDataSet.Intrari);
// TODO: This line of code loads data into the 'bdDataSet.produse' table. You
can move, or remove it, as needed.
this.produseTableAdapter.Fill(this.bdDataSet.produse);
this.Hide();
f1.Show();
}
Codul asociat Ferestrei Form3:
public partial class Form3 : Form
public Form3()
InitializeComponent();
2
0
this.Hide();
f1.Show();
group by denumire";
da.Fill(ds, "Rezultat");
dataGridView1.DataSource = ds.Tables["Rezultat"];
chart1.Series.Clear();
chart1.Series.Add("Achizitii");
chart1.Series.Add("Vanzari");
chart1.Series["Vanzari"].Points.AddXY(ds.Tables["Rezultat"].Rows[i].Field<string>("denumi
re"), ds.Tables["Rezultat"].Rows[i].Field<double>("total_canitate_vanduta"));
chart1.Series["Achizitii"].Points.AddXY(ds.Tables["Rezultat"].Rows[i].Field<string>("denu
mire"), dataGridView1.Rows[i].Cells[2].Value);
chart1.Series["Achizitii"].IsValueShownAsLabel = true;
chart1.Series["Vanzari"].IsValueShownAsLabel = true;
2
1
Fig1. Fereastra de login
La clic pe oricare din primele 4 butoane de mai sus se dorește citirea datelor de intrare
(suma_imprumutului, rata_dobanzii și perioada) în câte un Inputbox și afișarea ratei lunare pentru
imprumut într-un Messagebox, ca în exemplul de mai jos
2
2
InputBox
MessageBox
Pentru fiecare din urmatoarele 4 butoane (button1, button2, button3 și button4) se va utiliza un alt tip de
funcție, conform indicațiilor de pe fiecare buton.
namespace lab_10
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
2
3
private void btnInchidere_Click(object sender, EventArgs e)
{
Application.Exit();
}
if(c==1)
{
FrmMeniu fm = new FrmMeniu();
this.Hide();
fm.Show();
}
else
{
MessageBox.Show("User sau parola incorecte!");
}
}
}
}
Pentru a putea folosi funcția Inputbox, care în mod normal nu există în C# dar există în Visual Basic (care
face parte din pachetul Visual Studio, la fel ca și C#), va trebui să dăm clic dreapta pe proiect in fereastra
Solution Explorer și să alegem Add Reference, să căutam în listă Microsoft.VisualBasic, să-l bifăm și să
dăm OK. Apoi la codul aferent formei să adăugăm în partea de sus utilizarea spațiului de nume
VisualBasic cu instrucțiunea:
using Microsoft.VisualBasic;
Acum vom putea folosi obiectul Interaction (aparținând spațiului de nume Microsoft.VisualBasic) cu
funcția Inputbox, ca de exemplu în linia de cod de mai jos:
double imprumut = Convert.ToDouble(Interaction.InputBox("Introduceti suma"));
namespace lab_10
{
2
4
public partial class FrmMeniu : Form
{
public FrmMeniu()
{
InitializeComponent();
}
void rata()
{
double imprumut = Convert.ToDouble(Interaction.InputBox("Introduceti suma"));
double dobanda = Convert.ToDouble(Interaction.InputBox("Introduceti rata
dobanzii"));
double perioada = Convert.ToDouble(Interaction.InputBox("Introduceti durata
imprumutului "));
double anuitate = Math.Round((dobanda * imprumut) / (1 - Math.Pow((1 +
dobanda), -perioada)), 1);
MessageBox.Show("Valaorea ratei este de " + anuitate);
double rata_3()
{
double imprumut = Convert.ToDouble(Interaction.InputBox("Introduceti suma"));
double dobanda = Convert.ToDouble(Interaction.InputBox("Introduceti rata
dobanzii"));
double perioada = Convert.ToDouble(Interaction.InputBox("Introduceti durata
imprumutului "));
double anuitate = Math.Round((dobanda * imprumut) / (1 - Math.Pow((1 +
dobanda), -perioada)), 1);
return anuitate;
}
private void button3_Click(object sender, EventArgs e)
{
double anuitate = rata_3();
MessageBox.Show("Valaorea ratei este de " + anuitate);
}
2
5
{
Facultativ:
Putem să definim noi o funcție utilizator care ridică un număr real x la o putere întreagă pozitivă y.
(Observație: Funcția Math.Pow era mai puternică, deoarece putea ridica un numar real (double) x la o
putere reală (double) y!)
și o vom plasa oriunde în cadrul clasei Form1. Specificatorul de acces public de mai sus e necesar
pentru a putea apela această funcție-membru a clasei Form1 și din cealaltă formă a aplicației, forma
Meniu. Dacă nu era nevoie să fie apelată și dintr-o altă formă puteam să omitem specificatorul public
și totul funcționa foarte bine (când specificatorul de acces lipsește se consideră impl icit specificatorul
private, care permite utilizarea funcției respective doar în clasa unde a fost definită).
În cadrul clasei Form1 apelul funcției putere se va face foarte simplu, ca de exemplu în linia de cod:
double calcul =putere(4,2);
În schimb, în cea de-a doua formă, forma Meniu, apelul ei se va face astfel:
2
6
Form1 f=new Form1();
double calcul = f.putere(4,2);
Acest mod de apel e necesar deoarece funcția putere se poate apela doar ca funcție membru a unui
obiect (f) de clasă Form1 (deoarece în clasa Form1 a fost definită cu public -nu public static! - funcția
putere!)
TEMA:
Sa se construiască o aplicatie care sa contina minim:
- O baza de date (4 Puncte)
- O fereastra de login (1 Punct)
- 2 functii (3 Puncte)
- Un array (1 Punct)
1 Punct din oficiu
2
7
Fig.1
Rezolvare:
Se creeaza forma Meniu de mai sus cu cele 4 butoane din care primele 3 deschid 3 noi forme
(numite frmRap, frmRapPar si frmGrafic de exemplu), si apoi se salveaza proiectul si se
plaseaza baza de date in folderul bin/Debug, dar si in folderul parinte al lui bin/Debug.
Se va realiza adaugarea sursei de date la proiect: din meniul Project, Add New Data Source,
Database, Next, Dataset, Next, New Connection, se alege Access, baza de date
Programari din bin/Debug, Test Connection, ok si apare fereastra:
2
8
Se da ok, Next, ramane selectat butonul Use SQL Statements, si apoi se da iar Next:
În fereastra Enter a SQL Statement se selectează butonul Query Builder, tabelele Doctori,
Pacienti, Programari şi câmpurile numeprend (numele si prenumele doctorului), specialitatea
acestuia (câmpul specialitate), nume_pren (Pacienti), sex, data si ora programarii (câmpurile
datap si orap).
Se completeaza cu sortarea dorita (ca in figura, dupa datap si orap) si se poate verifica
rezultatul apasand butonul Execute Query:
2
9
Apoi se da ok, Next, Next, Finish.
3
0
Fig.2
Pentru Visual Studio 2012 difera putin pasii de aici incolo fata de Visual Studio 2017, si anume:
Se selectează Next (nu exista posibilitatea calcularii subtotalurilor întrucât nu am ales nici un
criteriu de grupare), se alege un stil (de exemplu Corporate), Next.
Raportul (Report1.rdlc [Design]) va arăta ca în imagine:
3
1
În formularul frmRap selectăm săgeata de sus din dreapta a controlului reportviewer şi alegem
numele raportului creat (Lab13.Report1.rdlc):
Fig.3
f.Show();
Pentru alegerea lui Design a New Report in fig.2 la reportviewer, va apare urmatoarea fereastra:
3
2
Totodata apare in fereastra Solution Explorer Report1.rdlc. Se da dublu clic pe acest
Report1.rdlc si se obtine fereastra Report1.rdlc[Design]:
In aceasta se trage din Toolbox (de la Report Items) un control Table. Se va deschide fereastra
Dataset Properties din figura de mai jos, la care se alege la Data source: DSRaport si fereastra
va fi completata automat cu campurile setului de data ca in figura:
3
3
Aici se completeaza pe rand toate coloanele cu campurile corespunzatoare din DataSet care apar
automat la pozitionarea mouse-ului in coloana respectiva:
Se pot adauga noi coloane cu clic dreapta pe ultima coloana si alegand Insert Column, Right, ca
in final sa avem:
În formularul frmRap selectăm săgeata de sus din dreapta şi alegem numele raportului creat
(deci Lab13.Report1.rdlc), la fel ca in fig. 3.
f.Show();
3
4
Observatie:
In ambele cazuri (deci fie ca folositi Visual Studio 2012 sau 2017), cand alegeti numele
raportului la proprietatea Choose report a controlului ReportViewer din fig.3, daca e sa va uitati
la evenimentul Load a formularului frmRap veti vedea ca s-a generat automat codul:
this.reportViewer1.RefreshReport();
Fig.4
Si in figura 4 de mai sus s-a glisat din fereastra Toolbox, din categoria Reporting un control
Reportviewer pe formular.
Dar, inainte de a alege din nou Design a new report de la sageata dreapta sus a controlului
reportviewer, va trebui sa ne pregatim Dataset-ul. Pentru aceasta urmam exact aceeasi pasi:
Din meniul Proiect, Add new Item, Data, dataset, si se da numele DSRapPar. Se trage din
Toolbox un TableAdapter pe suprafata DSRapPar.xsd care apare. Se deschide Table Adapter
ConfigurationWizard si se urmeaza aceeasi pasi (Dar intotdeauna la New Connection pentru
setarea sursei de date se va lua baza de date din parintele lui bin/Debug), pana la Query
Builder, unde comanda SQL generata va fi insa una cu parametru sex citit de la tastatura, ca in
figura de mai jos, unde s-a completat interogarea SELECT generată cu clauza WHERE sex=?
3
5
Se poate verifica rezultatul apăsând butonul Execute Query. Pentru parametrul ?, în loc
de valoarea NULL, va trebui aleasă o alta valoare din domeniul de valori (M sau F), de
exemplu F. Se apasă butonul OK. Rezultatul este afişat mai jos:
Se da apoi Ok, Next, Next şi Finish. Automat a fost creat următorul Table Adapter, cu
parametrul GetData (sex)
f.Show();
}
In continuare se urmeaza aceeasi pasi ca si la celalalt raport, alegand Design a new report la
sageata din partea de sus a reportviewerului de pe forma frmRapPar, si se va crea fisierul
Report2.rdlc (si Report2.rdlc [Design]). Apoi se alege ca sursa de date a controlului
reportviewer fisierul Report2.rdlc creat.
Codurile controalelor de pe forma frmRapPar până în acest moment (codul pentru metoda
frmRapPar_Load s-a generat automat) sunt:
// TODO: This line of code loads data into the 'DSRapPar.DataTable1' table.
You can move, or remove it, as needed.
this.DataTable1TableAdapter.Fill(this.DSRapPar.DataTable1);
this.reportViewer1.RefreshReport();
Close();
}
private void btnAfisare_Click(object sender, EventArgs e)
3
7
}
f.Show();
Pentru început se va crea sursa de date, Project/ Add New Item, Data, Dataset, și vom da
numele DSGrafic.xsd. Se vor urma paşii cunoscuţi până la Query Builder (din nou cu baza
de date din parintele lui bin/Debug), unde se vor alege câmpurile numeprend (numele şi
prenumele doctorului) şi CNP-ul pacientului, apoi se va modifica comanda SELECT ca în
figura următoare.
3
8
Pe formularul frmGrafic se va adăuga din fereastra Toolbox, categoria Data, controlul Chart.
Se redimensionează controlul şi se modifică proprietatea Data Source din fereastra de
proprietăţi, se va alege Other data sources apoi Project data sources, DSGrafic, Doctori şi
apare numele DoctoriBindingSource.
Se vor adăuga şi cele 2 butoane de comandă Întoarcere şi Ieşire, şi se scriu codurile asociate.
3
9
Tot pentru chart, se va modifica proprietatea Series (Collection), și din categoria Data,
proprietatea Name – se schimbă în Numarul pacientilor, iar pentru aceeași proprietate
Series (Collection) din categoria Data Source se va alege XValueMember numeprend şi
YValueMember nr_pacienti.
Dacă se doreşte, se poate modifica tipul graficului folosind opţiunea Chart Type (tot din
proprietatea Series (Collection).
4
0
[]
Rezultatul execuţiei:
Raportul simplu:
Raportul cu parametru:
Graficul
Lab 13
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace lab13
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
{
if (array[i, j] < 0)
n_neg++;
if (array[i, j] > 0)
n_poz++;
if (array[i, j] == 0)
n_zero++;
}
}
MessageBox.Show(" Sunt " + n_neg + " valori negative , " + n_poz + "valori
pozitive si valoriel egale cu zero sunt in numar de " + n_zero);
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
class Program
{
static void Main()
{
int[] vector = new int[50];
int[] pozitiiMaxime;
int valoareMaxima;
int numarPozitiiMaxime = 0;
{
numarPozitiiMaxime++;
}
}
// Afișarea rezultatelor
Console.WriteLine("Vectorul generat aleator:");
for (int i = 0; i < 50; i++)
{
Console.Write(vector[i] + " ");
}
Console.ReadLine();
}
}
namespace lab13
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;
namespace Proiect_8
{
public partial class Form3 : Form
{
public Form3()
{
InitializeComponent();
}
}
OleDbConnection con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data
Source=|DataDirectory|\\Sal.accdb");
private void Form3_Load(object sender, EventArgs e)
{
// 3 comenzi SELECT pte cele 3 ComboBox-uri
// departamentul
con.Open();
string sql1 = "select deptno &' '& dname from dept order by deptno";
OleDbDataAdapter da1 = new OleDbDataAdapter(sql1, con);
DataSet ds1 = new DataSet();
// datele sunt salvate in RAM intr-un DataSet;
// in cadrul acestuia se defineste tabela virtuala Departamente
da1.Fill(ds1, "Departamente");
//Elementele din DataSet vor forma lista de Items a ComboBox-ului
// n1 - numarul de elemente din DataSet
int n1 = ds1.Tables["Departamente"].Rows.Count;
for (int i = 0; i < n1; i++)
comboBox1.Items.Add(ds1.Tables["Departamente"].Rows[i][0].ToString());
// se selecteaza primul element
comboBox1.Text = ds1.Tables["Departamente"].Rows[0][0].ToString();
// job-uri;
string sql2 = "select distinct job from emp order by job";
OleDbDataAdapter da2 = new OleDbDataAdapter(sql2, con);
DataSet ds2 = new DataSet();
da2.Fill(ds2, "Job-uri");
int n2 = ds2.Tables["Job-uri"].Rows.Count;
for (int i = 0; i < n2; i++)
comboBox2.Items.Add(ds2.Tables["Job-uri"].Rows[i][0]);
// se selecteaza primul element
comboBox2.SelectedIndex = 0;
// sefi
string sql3 = "select distinct empno from emp order by empno";
OleDbDataAdapter da3 = new OleDbDataAdapter(sql3, con);
DataSet ds3 = new DataSet();
da3.Fill(ds3, "Sefi");
int n3 = ds3.Tables["Sefi"].Rows.Count;
for (int i = 0; i < n3; i++)
comboBox3.Items.Add(ds3.Tables["Sefi"].Rows[i][0]);
// se selecteaza primul element
comboBox3.SelectedIndex = 0;
}
Int codpr=9
String denpr=”dorna”
Int pret 20
Insrare (copr,denpr,pret,cant)
Form1_load(sender,e)
Con.open()
c.connection =con
c.commnadtype=commnadtype.text
values(“ + cpdpr+”,”+”’”+denpr+”,”+”’”pret+”,”+cant+”)
c.executenonquery();
con.close();
connection.Open();
connection.Close();
if (result > 0)
else