Académique Documents
Professionnel Documents
Culture Documents
Enonc :
Dveloppez une application client-serveur permettant de donner des exercices aux tudiants sous
forme de questions choix multiple.
Le client essaie de se connecter un serveur (de port 8888 de notre ordinateur).
Le serveur affiche le message suivant : "Quel est votre nom ?"
Le client rpond en saisissant son non (exemple KONAN)
Le serveur affiche le premier exercice sous la forme :
Le serveur attend la rponse du client et effectue un certain service (Affiche : "Bravo vous avez
trouv" lorsque le client a saisi le numro de la bonne rponse, et "Dsol" dans le cas contraire)
lorsquil en accepte un.
Ainsi de suite jusqu la Question N10
A la fin de lexamen, le serveur affiche la note du client sous la forme :
"M. KONAN vous avez obtenu 8/10"
1/2
Compltez les prototypes ci-dessous.
import java.io.*;
import java.net.*;
public class QCMClient
{
public static void main(String[] args) throws IOException
{
//debut QCM
System.out.print("question 1:");
System.out.println("Quelle est la capitale politique de la cote
dIvoire ?");
System.out.println("Choisissez la bonne rponse :");
System.out.println("1- Abidjan");
System.out.println("2- Bouak");
System.out.println("3- Man");
System.out.println("4- Yamoussoukro");
System.out.print("reponse :");
entree = tampon.readLine();
if (reponse.equals("question 2:"))
{
System.out.println(reponse);
System.out.println("O a t cre la premire cole officielle
franaise de la Cte d'Ivoire ? :");
System.out.println("Choisissez la bonne rponse :");
System.out.println("1- Bonoua");
System.out.println("2- Elima");
System.out.println("3- Grand bassam");
System.out.println("4- No");
System.out.print("reponse :");
entree = tampon.readLine();
commande = entree + "\n";
System.out.print("Envoi : " + commande);
writer.print(commande);
writer.flush();
reponse = reader.readLine();
System.out.print(reponse +". tapez suivant pour continuer:");
entree = tampon.readLine();
commande = entree + "\n";
System.out.print("Envoi : " + commande);
writer.print(commande);
writer.flush();
reponse = reader.readLine();
}
if (reponse.equals("question 3:"))
{
System.out.println(reponse);
System.out.println("Combien y a-t-il de groupes ethniques en Cte
d'Ivoire ? :");
System.out.println("Choisissez la bonne rponse :");
System.out.println("1- 8");
System.out.println("2- 4");
System.out.println("3- 2");
System.out.println("4- 6");
System.out.print("reponse :");
entree = tampon.readLine();
commande = entree + "\n";
System.out.print("Envoi : " + commande);
writer.print(commande);
writer.flush();
reponse = reader.readLine();
System.out.print(reponse +". tapez suivant pour continuer:");
entree = tampon.readLine();
commande = entree + "\n";
System.out.print("Envoi : " + commande);
writer.print(commande);
writer.flush();
reponse = reader.readLine();
System.out.println(reponse);
}
if (reponse.equals("question 4:"))
{
System.out.println("Combien de communes denombre t-on en cte
d'ivoire ? ");
System.out.println("Choisissez la bonne rponse :");
System.out.println("1- 1000 communes");
System.out.println("2- 528 communes ");
System.out.println("3- 1200 communes");
System.out.println("4- 1126 communes");
System.out.print("reponse :");
entree = tampon.readLine();
commande = entree + "\n";
4/2
System.out.print("Envoi : " + commande);
writer.print(commande);
writer.flush();
reponse = reader.readLine();
System.out.print(reponse +". tapez suivant pour continuer:");
entree = tampon.readLine();
commande = entree + "\n";
System.out.print("Envoi : " + commande);
writer.print(commande);
writer.flush();
reponse = reader.readLine();
}
if (reponse.equals("question 5:"))
{
System.out.println(reponse);
System.out.println("Combien de districts compte la cte d'ivoire ?
:");
System.out.println("Choisissez la bonne rponse :");
System.out.println("1- 10 districts");
System.out.println("2- 19 districts");
System.out.println("3- 12 districts");
System.out.println("4- 21 districts");
System.out.print("reponse :");
entree = tampon.readLine();
commande = entree + "\n";
System.out.print("Envoi : " + commande);
writer.print(commande);
writer.flush();
reponse = reader.readLine();
System.out.print(reponse +". tapez suivant pour continuer:");
entree = tampon.readLine();
commande = entree + "\n";
System.out.print("Envoi : " + commande);
writer.print(commande);
writer.flush();
reponse = reader.readLine();
System.out.println(reponse);
}
5/2
while (reponse.equals("Vous devez taper suivant pour continuer !!!!"))
{
System.out.print(reponse);
entree = tampon.readLine();
commande = entree + "\n";
System.out.print("Envoi : " + commande);
writer.print(commande);
writer.flush();
reponse = reader.readLine();
}
if (reponse.equals("question 6:"))
{
System.out.println(reponse);
System.out.println("Quel est le plus long fleuve de la cte
d'ivoire ?:");
System.out.println("Choisissez la bonne rponse :");
System.out.println("1- Bandama ");
System.out.println("2- Sassandra");
System.out.println("3- Cavally");
System.out.println("4- Como");
System.out.print("reponse :");
entree = tampon.readLine();
commande = entree + "\n";
System.out.print("Envoi : " + commande);
writer.print(commande);
writer.flush();
reponse = reader.readLine();
System.out.print(reponse +". tapez suivant pour continuer:");
entree = tampon.readLine();
commande = entree + "\n";
System.out.print("Envoi : " + commande);
writer.print(commande);
writer.flush();
reponse = reader.readLine();
System.out.println(reponse);
}
if (reponse.equals("question 7:"))
{
6/2
System.out.println(reponse);
System.out.println("La cte d'ivoire est le premier pays Africain
producteur en :");
System.out.println("Choisissez les bonnes rponses :");
System.out.println("1- cacao");
System.out.println("2- Acajou ");
System.out.println("3- caf");
System.out.println("4- Riz ");
System.out.print("reponse :");
entree = tampon.readLine();
commande = entree + "\n";
System.out.print("Envoi : " + commande);
writer.print(commande);
writer.flush();
reponse = reader.readLine();
System.out.print(reponse +". tapez suivant pour continuer:");
entree = tampon.readLine();
commande = entree + "\n";
System.out.print("Envoi : " + commande);
writer.print(commande);
writer.flush();
reponse = reader.readLine();
System.out.println(reponse);
}
if (reponse.equals("question 8:"))
{
System.out.println(reponse);
System.out.println("O rencontre-t-on la fort dense en Cte
d'Ivoire ? :");
System.out.println("Choisissez la bonne rponse :");
System.out.println("1- sud");
System.out.println("2- sud-est");
System.out.println("3- sud-ouest");
System.out.println("4- sud et ouest");
System.out.print("reponse :");
entree = tampon.readLine();
commande = entree + "\n";
System.out.print("Envoi : " + commande);
writer.print(commande);
writer.flush();
7/2
reponse = reader.readLine();
System.out.print(reponse +". tapez suivant pour continuer:");
entree = tampon.readLine();
commande = entree + "\n";
System.out.print("Envoi : " + commande);
writer.print(commande);
writer.flush();
reponse = reader.readLine();
System.out.println(reponse);
}
if (reponse.equals("question 9:"))
{
System.out.println(reponse);
System.out.println("En quelle anne est dcd Flix Houphout-
Boigny, premier prsident du pays ? :");
System.out.println("Choisissez la bonne rponse :");
System.out.println("1- 1992");
System.out.println("2- 1993");
System.out.println("3- 1994");
System.out.println("4- 1991");
System.out.print("reponse :");
entree = tampon.readLine();
commande = entree + "\n";
System.out.print("Envoi : " + commande);
writer.print(commande);
writer.flush();
reponse = reader.readLine();
System.out.print(reponse +". tapez suivant pour continuer:");
entree = tampon.readLine();
commande = entree + "\n";
System.out.print("Envoi : " + commande);
writer.print(commande);
writer.flush();
reponse = reader.readLine();
System.out.println(reponse);
}
if (reponse.equals("question 10:"))
{
System.out.println(reponse);
System.out.println("Quel animal est reprsent sur les armoiries
du pays? :");
System.out.println("Choisissez la bonne rponse :");
System.out.println("1- Une girafe");
System.out.println("2- Un buffle ");
System.out.println("3- Un oiseau ");
System.out.println("4- Un elephant");
System.out.print("reponse :");
entree = tampon.readLine();
commande = entree + "\n";
System.out.print("Envoi : " + commande);
writer.print(commande);
writer.flush();
reponse = reader.readLine();
System.out.print(reponse +".FIN ");
entree = tampon.readLine();
commande = entree + "\n";
System.out.print("Envoi : " + commande);
writer.print(commande);
writer.flush();
reponse = reader.readLine();
System.out.println(reponse);
}
commande = "QUIT\n";
System.out.print("Envoi : " + commande);
writer.print(commande);
writer.flush();
s.close();
}
} // fin du QCMClient
9/2
import java.io.*; import java.net.*;
public class QCMServer
{ public static void main(String[] args) throws IOException
{ final int SQUARE_PORT = 8888;
ServerSocket server;
Socket s;
server = new ServerSocket(SQUARE_PORT);
System.out.println("En attente de client...");
while(true)
{ s = server.accept();
QCMService service = new QCMService(s);
service.start();
}
}
}
10/2
import java.io.*; import java.net.*;
class QCMService extends Thread
{ private Socket s;
public QCMService(Socket aSocket){ s = aSocket; }
public void run(){
try
{
BufferedReader in = new BufferedReader(
new InputStreamReader(s.getInputStream()));
PrintWriter out = new PrintWriter(s.getOutputStream());
String entree;
String reponse = null;
String reponsefinale = null;
int n=0,m=0,k=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;
//reception de la donne entre par l'utilisateur
entree = in.readLine();
while (! entree.equals("suivant"))
{
reponse= "Vous devez taper suivant pour continuer !!!";
11/2
System.out.print("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
System.out.println("Recu : " + entree);
if (entree.equals("suivant"))
{
reponse = "question 2:";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
System.out.println("Recu : " + entree);
//if (entree.equals("b"))
m = Integer.parseInt(entree);
if (m==2)
{
a = a+1;
reponse= "Bravo vous avez trouv!";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
}
else if(m!=2)
{
a = a;
reponse= "Dsol !";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
}
// if (entree.equals("QUIT")) s.close();
while (! entree.equals("suivant"))
{
reponse= "Vous devez taper suivant pour continuer !!!";
System.out.print("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
System.out.println("Recu : " + entree);
12/2
//on pose les instructions qui suivent le respect de la condition
if (entree.equals("suivant"))
{
reponse = "question 3:";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
System.out.println("Recu : " + entree);
k = Integer.parseInt(entree);
if (k==2)
{
a = a+1;
reponse= "Bravo vous avez trouv!";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
}
else
{
a = a;
reponse= "Dsol !";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
}
//entree = in.readLine();
System.out.println("Recu : " + entree);
while (! entree.equals("suivant"))
{
reponse= "Vous devez taper suivant pour continuer !!!";
System.out.print("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
System.out.println("Recu : " + entree);
13/2
if (entree.equals("suivant"))
{
reponse = "question 4:";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
System.out.println("Recu : " + entree);
p = Integer.parseInt(entree);
if (p==4)
{
a = a+1;
reponse= "Bravo vous avez trouv!";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
}
else
{
a = a;
reponse= "Dsol !";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
}
// entree = in.readLine();
System.out.println("Recu : " + entree);
while (! entree.equals("suivant"))
{
reponse= "Vous devez taper suivant pour continuer !!!";
System.out.print("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
System.out.println("Recu : " + entree);
if (entree.equals("suivant"))
{
reponse = "question 5:";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
14/2
System.out.println("Recu : " + entree);
q = Integer.parseInt(entree);
if (q==3)
{
a = a+1;
reponse= "Bravo vous avez trouv!";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
}
else
{
a = a;
reponse= "Dsol !";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
}
//entree = in.readLine();
System.out.println("Recu : " + entree);
while (! entree.equals("suivant"))
{
reponse= "Vous devez taper suivant pour continuer !!!";
System.out.print("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
System.out.println("Recu : " + entree);
if (entree.equals("suivant"))
{
reponse = "question 6:";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
System.out.println("Recu : " + entree);
}
r = Integer.parseInt(entree);
if (r==4)
{
a = a+1;
reponse= "Bravo vous avez trouv!";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
15/2
yield();
entree = in.readLine();
}
else
{
a = a;
reponse= "Dsol !";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
}
//entree = in.readLine();
System.out.println("Recu : " + entree);
while (! entree.equals("suivant"))
{
reponse= "Vous devez taper suivant pour continuer !!!";
System.out.print("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
System.out.println("Recu : " + entree);
if (entree.equals("suivant"))
{
reponse = "question 7:";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
System.out.println("Recu : " + entree);
}
s = Integer.parseInt(entree);
if (s==123 || s==132 || s==213 || s==231 || s==312 || s==321)
{
a = a+1;
reponse= "Bravo vous avez trouv!";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
}
else
{
a = a;
16/2
reponse= "Dsol!";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
}
// entree = in.readLine();
System.out.println("Recu : " + entree);
while (! entree.equals("suivant"))
{
reponse= "Vous devez taper suivant pour continuer !!!";
System.out.print("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
System.out.println("Recu : " + entree);
if (entree.equals("suivant"))
{
reponse = "question 8:";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
System.out.println("Recu : " + entree);
}
t = Integer.parseInt(entree);
if (t==4)
{
a = a+1;
reponse= "Bravo vous avez trouv!";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
}
else
{
a = a;
reponse= "Dsol !";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
}
System.out.println("Recu : " + entree);
while (! entree.equals("suivant"))
{
reponse= "Vous devez taper suivant pour continuer !!!";
System.out.print("Envoye : " + reponse);
17/2
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
System.out.println("Recu : " + entree);
if (entree.equals("suivant"))
{
reponse = "question 9:";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
System.out.println("Recu : " + entree);
}
u = Integer.parseInt(entree);
if (u==2)
{
a = a+1;
reponse= "Bravo vous avez trouv!";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
}
else
{
a = a;
reponse= "Dsol !";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
}
//entree = in.readLine();
System.out.println("Recu : " + entree);
while (! entree.equals("suivant"))
{
reponse= "Vous devez taper suivant pour continuer !!!";
System.out.print("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
entree = in.readLine();
System.out.println("Recu : " + entree);
if (entree.equals("suivant"))
{
reponse = "question 10:";
System.out.println("Envoye : " + reponse);
out.println(reponse);
18/2
out.flush();
yield();
entree = in.readLine();
System.out.println("Recu : " + entree);
v = Integer.parseInt(entree);
if (v==4)
{
a = a+1;
reponse= "Bravo vous avez trouv! tape sur" +
" n'importe quelle touche pour terminer et
recevoir" +
"ta note";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
}
else
{
a = a;
reponse= "Dsol ! tape sur" +
" n'importe quelle touche pour terminer et
recevoir" +
"ta note";
System.out.println("Envoye : " + reponse);
out.println(reponse);
out.flush();
yield();
}
switch (a)
{
case 1:
reponsefinale= "ta note finale est "+ a+"/10. pas bon
du tout" +
"va reprendre tout le cours pour t'amliorer
et reviens!" +
"OK !";
System.out.println("Envoye : " + reponsefinale);
out.println(reponsefinale);
out.flush();
yield();
break;
case 2:
reponsefinale= "ta note finale est "+ a+"/10. ce n'est
pas bon!!!" +
"va reprendre tout le cours pour amliorer
ton niveau et reviens!" +
"OK !";
System.out.println("Envoye : " + reponsefinale);
out.println(reponsefinale);
out.flush();
yield();
break;
case 3:
19/2
reponsefinale= "ta note finale est "+ a+"/10. ce n'est
pas bon !!!" +
"va reprendre tout le cours et reviens!" +
"OK !";
System.out.println("Envoye : " + reponsefinale);
out.println(reponsefinale);
out.flush();
yield();
break;
case 4:
reponsefinale= "ta note finale est "+ a+"/10. encore un
petit effort " +
"va reviser ton cours et reviens vite jouer!"
;
case 6:
reponsefinale= "ta note finale est "+ a+"/10. passable
!!! " +
"peux mieux faire si tu pousse loin" ;
case 7:
reponsefinale= "ta note finale est "+ a+"/10. assez
bien !!! " +
"peux mieux faire" +
"juste une petite revision et c'est ok " ;
case 8:
reponsefinale= "ta note finale est "+ a+"/10. bien !!!
" +
"peux mieux faire" +
20/2
"juste une petite revision et c'est ok " ;
System.out.println("Envoye : " + reponsefinale);
out.println(reponsefinale);
out.flush();
yield();
break;
case 9:
reponsefinale= "ta note finale est "+ a+"/10. tres bien
!!! " +
"tu maitrises entirement tes cours" +
"continue comme ca !!";
System.out.println("Envoye : " + reponsefinale);
out.println(reponsefinale);
out.flush();
yield();
break;
case 10:
reponsefinale= "ta note finale est "+ a+"/10. excellent
!!! " +
}//fin du switch
catch(IOException e)
{
}//fin du QCMService
21/2