-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathonlyString.cs
147 lines (138 loc) · 3.14 KB
/
onlyString.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
using System;
using System.IO;
using System.Linq;
using System.Collections.Generic;
namespace OnlyString
{
public static class here
{
public static void start()
{
IQuestion q1=new stringQuestion();
q1.setinfo("عاصمة العراق","بغداد");
IQuestion q2=new mathDblQuestion();
q2.setinfo("5/2",((double)5/2).ToString());
IQuestion q3=new mathIntQuestion();
q3.setinfo("5+6",(5+6).ToString());
bool f;
Console.WriteLine("start");
while(true)
{
f=askandcheck(q1);
if(!f) break;
f=askandcheck(q2);
if(!f) break;
f=askandcheck(q3);
if(!f) break;
}
Console.WriteLine("end");
}
public static void start2()
{
IQuestion q1=new stringQuestion();
q1.setinfo("عاصمة العراق","بغداد");
IQuestion q2=new mathDblQuestion();
q2.setinfo("5/2",((double)5/2).ToString());
IQuestion q3=new mathIntQuestion();
q3.setinfo("5+6",(5+6).ToString());
// you can store all questions in array
IQuestion[] qs=new IQuestion[]{q1,q2,q3};
bool f=true;int i=0;
Console.WriteLine("start");
while(f)
{
f=askandcheck(qs[i]);
i++;if(i==qs.Length) i=0;
}
Console.WriteLine("end");
}
public static bool askandcheck(IQuestion q)
{
Console.WriteLine("enter !! to exit");
Console.Write("Q: "+q.question+" ? ");
string ua=Console.ReadLine();
if(ua=="!!") return false;
if(q.checkanswer(ua))
Console.WriteLine("good answer");
else
Console.WriteLine("bad answer");
Console.WriteLine();
return true;
}
}
public interface IQuestion
{
string question {get;}
string answer {get;}
void setinfo(string q,string s);
bool checkanswer(string ua);
}
public class stringQuestion : IQuestion
{
private string _question;
private string _answer;
public string question
=> _question;
public string answer
=> _answer;
public void setinfo(string q,string a)
{
_question=q;
_answer=a;
}
public bool checkanswer(string ua)
{
return _answer==ua;
}
}
public class mathDblQuestion : IQuestion
{
private string _question;
private string _answer;
public string question
=> _question;
public string answer
=> _answer;
public void setinfo(string q,string a)
{
_question=q;
_answer=a;
}
public bool checkanswer(string ua)
{
try
{
return double.Parse(_answer)==double.Parse(ua);
}
catch(Exception ex)
{
return false;
}
}
}
public class mathIntQuestion : IQuestion
{
private string _question;
private string _answer;
public string question
=> _question;
public string answer
=> _answer;
public void setinfo(string q,string a)
{
_question=q;
_answer=a;
}
public bool checkanswer(string ua)
{
try
{
return int.Parse(_answer)==int.Parse(ua);
}
catch(Exception ex)
{
return false;
}
}
}
}