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 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define FFL fflush(stdin)
struct ordinateur
{
char type_proc[20];
char vitesse_proc[20];
char ram[20];
char HD[20];
char annee[20];
};
struct carnet
{
struct ordinateur nbpc[50];
int compteur;
};
void saisie(FILE*fichier,/*FILE*fichieran,*/struct ordinateur *pc);
void saisieannee(FILE*fichier,/* FILE*fichieran, */struct ordinateur *pc);
void affichage(FILE*fichier);
void suppression(FILE*fichier, struct ordinateur *pc);
int main(void)
{
FILE*fichier=NULL;
fichier=fopen("ordinateur.lst","a");
struct ordinateur pc;
int option;
do
{
printf("\tMenu");
printf("1: Saisie des caracteristiques d'un ordinateur.\n2: Tri des ordinateurs en fonction des annees.\n3: Affichage d'un des fichiers.\n4: Supprimer un ordinateur d'une liste.");
scanf("%d",&option);
switch (option)
{
case 1:
saisie(fichier/*,fichieran*/,&pc);
break;
case 2:
saisieannee(fichier/*,fichieran*/,&pc);
break;
case 3:
affichage(fichier);
break;
case 4:
suppression(fichier,&pc);
break;
}
}while (1);
return 0;
}
void saisie(FILE*fichier/*,FILE*fichieran*/, struct ordinateur *pc)
{
if (fichier==NULL)
puts("probleme a l'ouverture du fichier");
else
{
fichier=fopen("ordinateur.lst","a");
FFL;
puts("quelle est l'annee d'achat");
FFL;
gets((*pc).annee);
fprintf(fichier, "annee d'achat: %s\n", (*pc).annee);
FFL;
puts("quelle est le type du processeur");
FFL;
gets((*pc).type_proc);
fprintf(fichier, "type processeur: %s\n", (*pc).type_proc);
puts("quelle est la vitesse du processeur");
FFL;
gets((*pc).vitesse_proc);
fprintf(fichier, "vitesse proc: %s\n", (*pc).vitesse_proc);
FFL;
puts("quelle est la taille de la memoire vive");
FFL;
gets((*pc).ram);
fprintf(fichier, "taille ram: %s\n", (*pc).ram);
FFL;
puts("quelle est la taille du disque dur");
FFL;
gets((*pc).HD);
fprintf(fichier, "taille du disque dur: %s\n", (*pc).HD);
fclose(fichier);
}
}
void saisieannee(FILE*fichier/*,FILE*fichieran*/,struct ordinateur *pc)
{
char chaine[5000] = "";
fichier=fopen("ordinateur.lst","r");
if (fichier != NULL)
{
while (fgets(chaine, 5000, fichier) != NULL)
{
printf("%s", chaine);
}
fclose(fichier);
}
char year[5];
char date[20];
FFL;
puts("entrez la date");
gets(date);
char ordi[20]="ordi";
char nfichier[20];
char lst[6]=".lst";
strcpy(nfichier,ordi);
strcat(nfichier,date);
strcat(nfichier,lst);
printf("le nom du fichier est: %s\n",nfichier);
if (strcmp(date,(*pc).annee)==0)
{
fichier=fopen(nfichier,"a");
fprintf(fichier, "annee d'achat: %s\n", (*pc).annee);
fprintf(fichier, "type processeur: %s\n", (*pc).type_proc);
fprintf(fichier, "vitesse proc: %s\n", (*pc).vitesse_proc);
fprintf(fichier, "taille ram: %s\n", (*pc).ram);
fprintf(fichier, "taille du disque dur: %s\n", (*pc).HD);
fclose(fichier);
}
}
void affichage(FILE*fichier)
{
char name[20];
int caractuel = 0;
puts("quel fichier voulez vous ouvrir(tapez le nom exact)");
FFL;
gets(name);
fichier = fopen(name,"r");
if (fichier != NULL)
{
do
{
caractuel = fgetc(fichier);
printf("%c", caractuel);
}
while (caractuel != EOF);
fclose(fichier);
}
}
void suppression(FILE*fichier,struct ordinateur *pc)
{
int caractereActuel = 0;
char chaine[2000];
char year[20];
FILE*fichier2;
fichier = fopen("ordinateur.lst", "r");
puts("quelle est l'annee d'achat de l'ordinateur a supprimer?");
FFL;
gets(year);
printf("l'annee d'achat du pc a supprimer est: %s",year);
fichier2=fopen("tempo.lst","w");
char ligne[256];
int i=0;
fgets(ligne, sizeof ligne, fichier);
printf("%s\n",ligne);
if (strcmp(year,(*pc).annee)==0)
{
fputs(ligne, fichier2);
}
fclose(fichier);
fclose(fichier2);
/*
char chaine[20000] = "";
char year[5];
fgets(chaine, TAILLE_MAX, fichier);
printf("%s", chaine);
fseek(f, 0L, SEEK_SET);
for(i = 0; i < year; i++)
getc(f);
*/
} |
Partager