Aidez moi pour mon tp de java s'il vous plaît

Fermé
nouga - 8 avril 2008 à 20:51
 Dwayne - 21 juil. 2008 à 11:19
Bonjour,

je vous écris ce message pour vous demander de l'aide, en fait j'ai un tp à faire en java et je ne sais pas comment le faire, j'ai besoin d'explications et surtout d'aide pour que je réussisse mon tp , je suis vraiment nulle en informatique , j'ai commencé à le faire à partir du td qu'on a fait en classe et je ne sais pas si c'est juste ou pas, alors si quelqu'un peut voir ce que j'ai fait et faire la suite du tp si c'est possible car j'ai pas envie d'avoir un 0 et aussi est ce que vous pouvez m'envoyer des cours concernant java et les structures de données pour que je comprenne bien mon cours et merci beaucoup.
et voilà mon tp.
Ce td/tp a pour objectif d'aborder la programmation d'une file(par tableau de taille fixe et gestion circulaire des indices), la notion d'interface java et la notion de généricité.
partie TD:
I)Implémentation de la classe file (en respectant l'interface donnée)
interface File {

public boolean fileVide();

public boolean filePleine();

public void ajoutFile (int o);

public int oteFile();

int nbElement();

public String toString();

} //Interface File

vous devez "implémenter" l'interface file c'est à dire écrire une classe(donnez lui par exemple le nom FileArray) telle que l'on ait:
class FileArray implements File{

private int [] mem;
private int tete;
private int queue;

private int suivant(int i);// retourne l'élément suivant dans le tableau mem

public FileArray();
public FileArray(int n);
public FileArray(FileArray f);

// à compléter...
public static void main(String args[]) {// à compléter...// Test de la classe}

}//classe FileArray
Consignes: A l'initialisation, la tête égale la queue. On ajoute les éléments en queue. On retire les éléments en tête.
II) Manipulation de la classe File

Ecrire un programme qui:
- crée une file d'entiers f0,
- crée une file d'entiers f1 de contenance maximum 3 éléments,
- donne le nombre d'éléments de la file f1,
- affiche les files f0 et f1,
- ajoute les valeurs 1,2,3 à la file f1,
-créer une file f2 qui est la copie de f1,
- ôte un élément à f1,
- affiche f1 et f2.

III) Implémentation de la classe File (en respectant la nouvelle interface)

les deux méthodes suivantes sont ajoutées à l'interface File:
public int ithelement(int i);

public boolean egal(File f);
- Ajoutez l'implémentation de ces deux méthodes dans la classe FileArray.
- Ajoutez le constructeur suivant dans la classe FileArray:
public FileArray(file f);
[i][g]Partie TP:/g/i

IV) Implémentation de la classe File (en respectant l'interface donnée)

l'interface File(ci-dessous) vous est donnée.
public interface File {

public boolean fileVide();

public boolean filePleine();

public void ajoutFile (int o);

public int oteFile();

int nbElement();

public String toString();

public int ithelement(int i);

public boolean egal(File f);
} //Interface File
vous devez implémenter l'interface File
V) La généricité:
-Implémentez une classe File générique. Cette classe ne sera pas une implémentation java de l'interface File; par contre vous utiliserez les mêmes méthodes (qui seront génériques). Remarque: Il est impossible de créer en java un tableau générique; pour pallier ce problème nous prendrons la notion (dépassée) de "tableau d'Object" et nous utiliserons alors le cast (également appelé forceur ou transtypeur) à bon escient.
public class FileGene<T>{
private T[mem];// Il n'est pas possible d'allouer un tableau générique
// c'est à dire écrire ce genre de chose: mem=new T[10];
//à compléter...

public FileGene(){
mem=(T[])newObject[1000];//Création d'un tableau d'objet qui est ensuite "casté"
//à compléter
}
//à compléter...

public static void main (String args[]){
//Création d'une file d'entiers (attention utilisation du type Integer et non int)
FileGene<Integer>I=new FileGene<Integer>();
//à compléter...
}
}



J'ai commencé à le faire à partir du td qu'on a fait en classe et je ne sais pas si c'est juste ou pas.
class FileArray implements File{

private int [] mem;

private int tete;

private int queue;

private int suivant(int i){

return (i+1)%mem.length;

}

public FileArray(){

mem=new int [1000];

tete=0;

queue=0;

}

public FileArray (FileArray f){

mem=new int [f.mem.length];

tete=f.tete;

queue=f.queue;

if(!fileVide()){

boolean fini=false;

for (int i=tete;(!fini);i=suivant(i)){

mem[i]=f.mem[i];

fini=suivant(i)==queue;

}

}

}

public boolean fileVide(){

return (tete==queue);

}

public boolean filePleine(){

return (suivant (queue)==tete);

}

public void AjoutFile(int e){

if(! filePleine()){

mem[queue]=e;

queue=suivant(queue);

}

else

{

System.out.println("la file est pleine");

System.exit(-1);

}

}

public int oteFile(){

if(fileVide()){

System.out.println("la file est vide");

System.exit(-1);

}

else

{

int e=mem[tete];

tete=suivant(tete);

{return e;

}

public int nbElement(){

int compteur=0;

if(! fileVide())

{

for(int i= tete;i!=queue=suivant(i)){

compteur ++;

}

return compteur;

}

public String toString()

{

String s="[";

if(!fileVide())

{int i=0;

int a= tete;

while(i<nbElement())

{

s+=mem[a]+",";

a=suivant(a);

i++;

}

s+=mem [a];

}

s+="]";

return s;
}
A voir également:

1 réponse

Bonjour à tous et à toutes.
Je demande votre assistance pour réalier un tchat simple. J'ai mon serveur qui reçoit et renvoit un message à un seul client. J'aimerai qu'il puisse envoyer le message reçu à tous les clients. Voici le code source de mon serveur en JAVA (en utilisant les socket).
Merci d'avance pour votre précieuse aide.

import java.io.*;
import java.net.*;
public class serveurTchat

{
public static void main (String[] a)
{
try{

ServerSocket s=new ServerSocket(161);
Socket pc = s.accept();

PrintWriter flotsortant = new PrintWriter(pc.getOutputStream(), true);
BufferedReader flotentrant = new BufferedReader(new InputStreamReader(pc.getInputStream()));
while (true){
flotsortant.println("Bonjour Cher Client, voici votre message : "+flotentrant.readLine());
}

}
catch (IOException err) {
System.out.println("Erreur EXCEPTION");
}
}
}

Voici le client Telnet (mais mon problème c'est au niveau du serveur):

import java.io.*;
import java.net.*;
public class telnet
{
public static void main (String[] args)
{
try{
Socket telnetsocket; // Déclaration
Integer entier=new Integer(1);
telnetsocket=new Socket(args[0],entier.parseInt(args[1]));//existence de l'objet
InputStreamReader clavier = new InputStreamReader(System.in);
BufferedReader tmp=new BufferedReader(clavier);
PrintWriter sortant = new PrintWriter(telnetsocket.getOutputStream(),true);
InputStreamReader entrant=new InputStreamReader(telnetsocket.getInputStream());
BufferedReader tmpEntrant=new BufferedReader(entrant);
String chainelue;
while (true) {
chainelue=tmp.readLine();
sortant.write(chainelue);
System.out.println(tmpEntrant.readLine());
}
}
catch (IOException err) {
System.out.println("Erreur EXCEPTION");
}

}
}
Merci d'avance pour votre aide
0