Raport
Lucrarea de laborator nr.7
Disciplina: Programarea Pilotată de Evenimente
Chișinău - 2020
Tema: “Limbajul de programare C#, .NET frameworkul pentru Windows”
Obiective:
Listingul programului:
MainWindow Form:
<Window x:Class="GeneralQuiz.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:GeneralQuiz"
mc:Ignorable="d"
Title="MainWindow" Height="500" Width="800" ResizeMode="NoResize">
<Grid>
<Image Source="C:\Users\Daniel Iepuras\Desktop\wall.jpg" HorizontalAlignment="Left" Height="499"
VerticalAlignment="Top" Width="836" Margin="0,0,-42.4,-28.6"/>
<Label Content="Test your knowledge" FontSize="45" HorizontalAlignment="Left" Margin="180,9,0,0"
VerticalAlignment="Top" Height="76" Width="425" RenderTransformOrigin="0.5,-0.073">
<Label.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform AngleY="0.259"/>
<RotateTransform/>
<TranslateTransform Y="0.745"/>
</TransformGroup>
</Label.RenderTransform>
<Label.Foreground>
<LinearGradientBrush EndPoint="0.5,1" MappingMode="RelativeToBoundingBox" StartPoint="0.5,0">
<GradientStop Color="Green" Offset="0.187"/>
<GradientStop Color="#FFE7EAF1" Offset="0.457"/>
<GradientStop Color="Green" Offset="0.617"/>
</LinearGradientBrush>
</Label.Foreground>
</Label>
<Button x:Name="start" Content="Start" HorizontalAlignment="Left" FontSize="35" Margin="291,303,0,0"
VerticalAlignment="Top" Width="208" Height="61" Panel.ZIndex="17" Click="Button_Click" Foreground="#FF200F68">
<Button.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Green" Offset="0"/>
<GradientStop Color="White" Offset="0.491"/>
<GradientStop Color="Green" Offset="0.965"/>
</LinearGradientBrush>
</Button.Background>
</Button>
<Label x:Name="quest" Visibility="Hidden" Content="" Opacity="0.7" FontSize="20"
HorizontalAlignment="Left" Margin="64,94,0,0" VerticalAlignment="Top" Width="672" Height="48"
Foreground="#FFF3F3F3" Background="Green"/>
<Button x:Name="ans1" Visibility="Hidden" Content="Button1" FontSize="18" HorizontalAlignment="Left"
Margin="64,222,0,0" VerticalAlignment="Top" Width="308" Height="82" Foreground="#FFFDFDFD" Click="ans1_Click">
<Button.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Black" Offset="0"/>
<GradientStop Color="Green" Offset="1"/>
</LinearGradientBrush>
</Button.Background>
</Button>
<Button x:Name="ans2" Visibility="Hidden" Content="Button2" FontSize="18" HorizontalAlignment="Left"
Margin="444,222,0,0" VerticalAlignment="Top" Width="292" Height="82" Foreground="#FFFBFBFB"
Click="ans2_Click">
<Button.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Black" Offset="0"/>
<GradientStop Color="Green" Offset="1"/>
</LinearGradientBrush>
</Button.Background>
</Button>
<Button x:Name="ans4" Visibility="Hidden" Content="Button3" FontSize="18" HorizontalAlignment="Left"
Margin="444,329,0,0" VerticalAlignment="Top" Width="292" Height="82" Foreground="White" Click="ans4_Click">
<Button.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Black" Offset="0"/>
<GradientStop Color="Green" Offset="1"/>
</LinearGradientBrush>
</Button.Background>
</Button>
<Button x:Name="ans3" Visibility="Hidden" Content="Button4" FontSize="18" HorizontalAlignment="Left"
Margin="64,329,0,0" VerticalAlignment="Top" Width="308" Height="82" Foreground="White" Click="ans3_Click">
<Button.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Black" Offset="0"/>
<GradientStop Color="Green" Offset="1"/>
</LinearGradientBrush>
</Button.Background>
</Button>
</Grid>
</Window>
Main Window class:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Forms;
namespace GeneralQuiz
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
// The current elapsed time is the time since the start button
// was clicked, plus the total time elapsed since the last reset
_currentElapsedTime = timeSinceStartTime + _totalElapsedTime;
// These are just two Label controls which display the current
// elapsed time and total elapsed time
timer.Content = _currentElapsedTime.ToString();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
if (!_timerRunning)
{
// Set the start time to Now
_startTime = DateTime.Now;
start.Visibility = Visibility.Hidden;
quest.Visibility = Visibility.Visible;
ans1.Visibility = Visibility.Visible;
ans2.Visibility = Visibility.Visible;
ans3.Visibility = Visibility.Visible;
ans4.Visibility = Visibility.Visible;
scoreLbl.Visibility = Visibility.Visible;
timer.Visibility = Visibility.Visible;
//
int i = this.getRandom();
quest.Content = q.getQuestion(i);
//
ans1.Content = q.getAnswer(i, 1);
ans2.Content = q.getAnswer(i, 2);
ans3.Content = q.getAnswer(i, 3);
ans4.Content = q.getAnswer(i, 4);
if (Convert.ToString(ans1.Content).StartsWith("*"))
{
this.ans = Convert.ToString(ans1.Content).Substring(1, Convert.ToString(ans1.Content).Length -
1);
ans1.Content = Convert.ToString(ans1.Content).Substring(1,
Convert.ToString(ans1.Content).Length - 1);
}
else
{
if (Convert.ToString(ans2.Content).StartsWith("*"))
{
this.ans = Convert.ToString(ans2.Content).Substring(1,
Convert.ToString(ans2.Content).Length - 1);
ans2.Content = Convert.ToString(ans2.Content).Substring(1,
Convert.ToString(ans2.Content).Length - 1);
}
else
{
if (Convert.ToString(ans3.Content).StartsWith("*"))
{
this.ans = Convert.ToString(ans3.Content).Substring(1,
Convert.ToString(ans3.Content).Length - 1);
ans3.Content = Convert.ToString(ans3.Content).Substring(1,
Convert.ToString(ans3.Content).Length - 1);
}
else
{
this.ans = Convert.ToString(ans4.Content).Substring(1,
Convert.ToString(ans4.Content).Length - 1);
ans4.Content = Convert.ToString(ans4.Content).Substring(1,
Convert.ToString(ans4.Content).Length - 1);
}
}
}
lst.Add(i);
}
public int getRandom()
{
Random rnd = new Random();
int i = rnd.Next(11);
if(lst.Contains(i) && lst.Count()<11)
while(lst.Contains(i))
i = rnd.Next(0,11);
return i;
}
}
else
{
quest.Visibility = Visibility.Hidden;
ans1.Visibility = Visibility.Hidden;
ans2.Visibility = Visibility.Hidden;
ans3.Visibility = Visibility.Hidden;
ans4.Visibility = Visibility.Hidden;
final.Visibility = Visibility.Visible;
final.Content =" Congratulations" + "\n Your score is " + this.score + "\n
Elapsed time:" + this._currentElapsedTime;
_timer.Stop();
_timerRunning = false;
}
}
_timer.Start();
_timerRunning = true;
}
else // If the timer is already running
{
_timer.Stop();
_timerRunning = false;
}
this.score = 0;
scoreLbl.Content = "Score : "+this.score;
this.number = 1;
final.Visibility = Visibility.Hidden;
lst.Clear();
restart.Visibility = Visibility.Hidden;
quest.Visibility = Visibility.Visible;
ans1.Visibility = Visibility.Visible;
ans2.Visibility = Visibility.Visible;
ans3.Visibility = Visibility.Visible;
ans4.Visibility = Visibility.Visible;
scoreLbl.Visibility = Visibility.Visible;
//
int i = this.getRandom();
quest.Content = q.getQuestion(i);
//
ans1.Content = q.getAnswer(i, 1);
ans2.Content = q.getAnswer(i, 2);
ans3.Content = q.getAnswer(i, 3);
ans4.Content = q.getAnswer(i, 4);
if (Convert.ToString(ans1.Content).StartsWith("*"))
{
this.ans = Convert.ToString(ans1.Content).Substring(1, Convert.ToString(ans1.Content).Length -
1);
ans1.Content = Convert.ToString(ans1.Content).Substring(1,
Convert.ToString(ans1.Content).Length - 1);
}
else
{
if (Convert.ToString(ans2.Content).StartsWith("*"))
{
this.ans = Convert.ToString(ans2.Content).Substring(1,
Convert.ToString(ans2.Content).Length - 1);
ans2.Content = Convert.ToString(ans2.Content).Substring(1,
Convert.ToString(ans2.Content).Length - 1);
}
else
{
if (Convert.ToString(ans3.Content).StartsWith("*"))
{
this.ans = Convert.ToString(ans3.Content).Substring(1,
Convert.ToString(ans3.Content).Length - 1);
ans3.Content = Convert.ToString(ans3.Content).Substring(1,
Convert.ToString(ans3.Content).Length - 1);
}
else
{
this.ans = Convert.ToString(ans4.Content).Substring(1,
Convert.ToString(ans4.Content).Length - 1);
ans4.Content = Convert.ToString(ans4.Content).Substring(1,
Convert.ToString(ans4.Content).Length - 1);
}
}
}
lst.Add(i);
}
}
Quiz class:
class Quiz
{
private string[,] questions = new string[20, 5];
public Quiz()
{
questions[0, 0] = "What is the capital of Turkey?";
questions[0, 1] = "*Ankara";
questions[0, 2] = "Kabul";
questions[0, 3] = "Tirana";
questions[0, 4] = "Moscow";
//
questions[1, 0] = "What is the national animal of China?";
questions[1, 1] = "Cat";
questions[1, 2] = "*Giant panda";
questions[1, 3] = "Tiger";
questions[1, 4] = "Bear";
//
questions[2, 0] = "How many continents are there?";
questions[2, 1] = "*7";
questions[2, 2] = "6";
questions[2, 3] = "5";
questions[2, 4] = "8";
//
questions[3, 0] = "Who was the first president of the USA?";
questions[3, 1] = "Donald Trump";
questions[3, 2] = "Abraham Lincoln";
questions[3, 3] = "Bill Clinton";
questions[3, 4] = "*George Washington";
//
questions[4, 0] = "Who invented Ferrari?";
questions[4, 1] = "*Enzo Ferrari";
questions[4, 2] = "Bill Ferrari";
questions[4, 3] = "Leonardo Ferrari";
questions[4, 4] = "Bienca Ferrari";
//
questions[5, 0] = "Who is the owner of Marvel Studios";
questions[5, 1] = "Warner Bros";
questions[5, 2] = "*Walt Disney";
questions[5, 3] = "21st Century Fox";
questions[5, 4] = "Universal Studios";
//
questions[6, 0] = "Which river is flowing through Rome?";
questions[6, 1] = "*Tiber";
questions[6, 2] = "Dintel";
questions[6, 3] = "Nil";
questions[6, 4] = "Rhin";
//
questions[7, 0] = "In what year was Google launched on the web?";
questions[7, 1] = "2000";
questions[7, 2] = "2002";
questions[7, 3] = "*1998";
questions[7, 4] = "1990";
//
questions[8, 0] = "Oscar Awards were instituted in";
questions[8, 1] = "1968";
questions[8, 2] = "1901";
questions[8, 3] = "1965";
questions[8, 4] = "*1929";
//
questions[9, 0] = "What is the name of the Barcelona football stadium ?";
questions[9, 1] = "Santiago Bernabéu";
questions[9, 2] = "Barca Camp";
questions[9, 3] = "*Camp Nou";
questions[9, 4] = "Stamford Bridge";
//
questions[10, 0] = "How many players has a hockey team got on the ice?";
questions[10, 1] = "5";
questions[10, 2] = "*6";
questions[10, 3] = "9";
questions[10, 4] = "11";
}
public string getQuestion(int i)
{
return questions[i, 0];
}
public string getAnswer(int i,int j)
{
return questions[i, j];
}
}
}
Rezultate obtinute:
Concluzie: