Записная книжка

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

touluk
Сообщения: 26
Зарегистрирован: 04 янв 2005, 17:23

Это снова я :rolleyes: В общем дело в том,что мне тепепрь нужно сделать не записную книжку,а прогу по учёту книг в библиотеке, и опять же на чистом Си.Может кто-нибудь может помочь,потому что на Си я ничего не нахожу :(
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

На чистом C ты ничего не найдёшь, на нём сейчас уже не пишут. Придётся тебе самому писать, touluk.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
touluk
Сообщения: 26
Зарегистрирован: 04 янв 2005, 17:23

Ды пишу вот 8) только толку мало пока что,тем более сначала должны были группой из 3х человек,а сейчас я вообще один остался :cry: ...Я не пойму почему не пишут на чистом С???Зачем мне он нужен тогда :roll:
touluk
Сообщения: 26
Зарегистрирован: 04 янв 2005, 17:23

Всем привет!!! Как я и говорил мне нужно сделать прогу для учёта книг в библиотеке.Вот написал что то но там ошибок сколько хочешь по моему,она запускается но ничего не работает по моему.И пока я сделал только три функции "добавить","поиск" и выход,ещё хотелось бы чтобы там была функция "удалить"...Кстати,она на французском,но я думаю,что у вас не будет проблем,чтобы понять.

ВОТ КОД :




/*Déclaration des bibliothèques*/
# include <stdio.h>
# include <stdlib.h>
# include <conio.h>
# include <string.h>


/*Déclaration du fichier*/
FILE *fichier;

/*Déclaration des constantes*/
# define chemin "C:\\Documents and Settings\Genkine Mikhail\Bureau\PROJET C1\\carnet.txt"

/*Déclaration des variables*/
int ModeOuverture;

int TailleNom;
int TaillePrenom;
int TailleAdresse;
int TailleVille;
//int TailleCodePostal;
int TailleTelephone;
int TailleMail;
int TailleReferencelivre;
int TailleDatederetour;
int RepAffichage;

/*Déclaration des variables "temporaires"*/
char Nom[20];
char Prenom[20];
char Adresse[50];
char Ville[30];
char CodePostal[6];
char Telephone[10];
char Mail[30];
char Referencelivre[50];
char Datederetour[10];

/*Déclaration des variables pour le fichier*/
char FNom[20];
char FPrenom[20];
char FAdresse[50];
char FVille[30];
char FCodePostal[6];
char FTelephone[10];
char FMail[30];
char FReferencelivre[50];
char FDatederetour[10];
char x[1];



int CalculNbEnreg(int Enreg),NbEnreg,Total;

/*Déclaration des procédures*/
void menu(); /*Procédure de saisi du menu*/
void ajout(); /*Procédure d'ajout d'un enregistrement*/
void recherche(); /*Procédure de recherche d'un enregistrement*/
void affichage();
/* Fonction qui permet de retirer les tirets bas */
void EspaceToTiret(char Texte[25], int LongueurTexte)
{int i;
for (i=0; i<LongueurTexte; i++)
{
if (Texte==' ')
Texte='_';
}
}

/* Fonction qui permet de remplacer les tirets bas du fichier par un espace */
void TiretToEspace (char Texte[25], int LongueurTexte)
{int i;
for (i=0; i<LongueurTexte; i++)
{
if (Texte=='_')
Texte=' ';
}
}



void menu(){
int ChoixMenu;

system("cls");
printf("//////////////////////////////////////////////////////////////////////////////////");
printf("// \\");
printf("// !!!!!! \\");
printf("// ² ² \\");
printf("// ² MENU ² \\");
printf("// ² ² \\");
printf("// !!!!!! \\");
printf("// \\");
printf("// 1. Ajout d'un emprunt. \\");
printf("// \\");
printf("// 2. Recherche d'un emprunt. \\");
printf("// \\");
printf("// 3. Quitter le programme. \\");
printf("// \\");
printf("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\");

do
{ printf("Votre choix: ");
scanf("%d",&ChoixMenu);
} while ((ChoixMenu != 1) && (ChoixMenu != 2) && (ChoixMenu != 3) && (ChoixMenu != 4));

switch (ChoixMenu)
{
case 1:
ajout();
break;
case 2:
recherche();
break;
case 3:
{ system("cls");
printf("////////////////////////////////////////////////////////////////////////////////");
printf("º º");
printf("º º");
printf("º º");
printf("º º");
printf("º !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! º");
printf("º ² ² º");
printf("º ²MERCI, A BIENTOT ² º");
printf("º ² ² º");
printf("º !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! º");
printf("º º");
printf("º º");
printf("º º");
printf("º º");
printf("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\");
system("exit");

}break;
}
}


void ajout()
/*Permet d'ajouter un emprunt (une fiche).*/
{ system("cls");

printf(" AJOUT D'UN EMPRUNT ");


ModeOuverture = 1;
//saisie();
}

int CalculNbEnreg(int Enreg)
{ if ((Enreg>0) && (Enreg<10000))
NbEnreg = NbEnreg + 1;
return NbEnreg;
}


void affichage()
/*Permet de visualiser les enregistrements contenu dans la mémoire.*/
{
fichier = fopen(chemin,"r");
while (!feof(fichier))
{ fscanf(fichier,"%d %s %s %s %s %s %s %s %s \n",&FReferencelivre,&FNom,&FPrenom,&FAdresse,&FVille,&FCodePostal,&FTelephone,&FMail,&FDatederetour);

}
fclose(fichier);
system("cls");

switch (NbEnreg)
{ case 0:
printf("\nIl n'y a aucun enregistrement dans la liste\n");
break;
case 1:
printf("\nIl y a un enregistrement dans la liste\n");
break;
default:
printf("\nIl y a %d enregistrements dans la liste\n",NbEnreg);
break;
}
fichier = fopen(chemin,"r");
printf("\n\n\n");
RepAffichage = 0;
do
{ printf("\nVoulez-vous visualiser toutes les references (0.Non - 1.Oui) ?");
scanf("%d",&RepAffichage);
} while ((RepAffichage != 0) && (RepAffichage != 1));
switch (RepAffichage)
{ case 1:
{
while (!feof(fichier))
{ fscanf(fichier,"%d %s %s %s %s %s %s %s %s \n",&FReferencelivre,&FNom,&FPrenom,&FAdresse,&FVille,&FCodePostal,&FTelephone,&FMail,&FDatederetour);
TiretToEspace(FNom,strlen(FNom));
TiretToEspace(FPrenom,strlen(FPrenom));
TiretToEspace(FAdresse,strlen(FAdresse));
TiretToEspace(FVille,strlen(FVille));
TiretToEspace(FCodePostal,strlen(FCodePostal));
TiretToEspace(FTelephone,strlen(FTelephone));
TiretToEspace(FMail,strlen(FMail));
TiretToEspace(FReferencelivre,strlen(FReferencelivre));
TiretToEspace(FDatederetour,strlen(FDatederetour));
printf("\n");
printf("Nø de references : %d\n",FReferencelivre);
printf("Nom : %s\n",FNom);
printf("Prenom : %s\n",FPrenom);
printf("Adresse : %s\n",FAdresse);
printf("Ville : %s\n",FVille);
printf("Code Postal : %s\n",FCodePostal);
printf("Telephone : %s\n",FTelephone);
printf("Mail : %s\n",FMail);
printf("Referencelivre : %s\n",FReferencelivre);
printf("Datederetour : %s\n",FDatederetour);
system("pause");
}
fclose(fichier);
}break;
}
menu();
}


void recherche()
/*Permet de recherche une fiche).*/
{int NumRecherche,TrouveRecherche,RepRecherche;
system("cls");

printf(" RECHERCHE ");

fichier = fopen(chemin,"r");
printf("\n\nSaisissez le Nø d'une reference recherchee : ");
scanf("%d",&NumRecherche);
TrouveRecherche = 0;
do
{ fscanf(fichier,"%d %s %s %s %s %s %s %s %s \n",&FNom,&FPrenom,&FAdresse,&FVille,&FCodePostal,&FTelephone,&FMail,&FReferencelivre,&FDatederetour);
TiretToEspace(FNom,strlen(FNom));
TiretToEspace(FPrenom,strlen(FPrenom));
TiretToEspace(FAdresse,strlen(FAdresse));
TiretToEspace(FVille,strlen(FVille));
TiretToEspace(FCodePostal,strlen(FCodePostal));
TiretToEspace(FTelephone,strlen(FTelephone));
TiretToEspace(FMail,strlen(FMail));
TiretToEspace(FReferencelivre,strlen(FReferencelivre));
TiretToEspace(FDatederetour,strlen(FDatederetour));
if (NumRecherche == 1)
TrouveRecherche = 1;
}while((TrouveRecherche != 1) && (!feof(fichier)));
fclose(fichier);
if (TrouveRecherche != 1)
printf("\nL'reference n'existe pas.");
else
{ /* */
printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
printf("³ ³");
printf("³ RESULTAT ³");
printf("³ ³");
if (sizeof(FReferencelivre) < 10)
TailleReferencelivre = 1;
else
{ if (sizeof(FReferencelivre) <100)
TailleReferencelivre = 2;
else
{ if (sizeof(FReferencelivre) < 1000)
TailleReferencelivre = 3;
else TailleReferencelivre=4;
}
}
printf("³ Nø d'une reference : %d",FReferencelivre);
for (TailleReferencelivre;TailleReferencelivre<5;TailleReferencelivre++)
printf(" ");
printf(" ³³ Nom : %s",FNom);
for (TailleNom=strlen(FNom);TailleNom<20;TailleNom++)
printf(" ");
printf(" Tel : %s",FTelephone);
for (TailleTelephone = strlen(FTelephone);TailleTelephone<10;TailleTelephone++)
printf(" ");
printf(" ³³ Prenom : %s",FPrenom);
for (TaillePrenom=strlen(FPrenom);TaillePrenom<20;TaillePrenom++)
printf(" ");
printf("³ Mail : %s",FMail);
for (TailleMail = strlen(FMail);TailleMail<30;TailleMail++)
printf(" ");
printf(" ³");
printf("³ ³");
printf("³ Adresse : %s",FAdresse);
for (TailleAdresse = strlen(FAdresse);TailleAdresse<50;TailleAdresse++)
printf(" ");
printf(" ³");
printf("³ %s %s",FCodePostal,FVille);
printf(" ");
printf(" ³");
printf(" Datederetour : %d",FDatederetour);
for (TailleDatederetour = strlen(FDatederetour);TailleDatederetour<10;TailleDatederetour++)
printf(" ");
printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
}
printf("\n\nUne autre recherche (0.Non - 1.Oui) ?");
scanf("%d",&RepRecherche);
if (RepRecherche == 1)
recherche();
else
menu();
}
int main(int argc, char *argv[])
{
menu();
printf("////////////////////////////////////////////////////////////////////////////////////////////////");
printf("º TOULUK (eXia) 2005 º");
printf("////////////////////////////////////////////////////////////////////////////////////////////////");
printf("º º");
printf("º **** ** **** * ** **** ******** * **** **** * * * **** º");
printf("º * * ** * * * ** * * * * * * * * * º");
printf("º * * ** * * * ** * * * * * * * * * º");
printf("º ***** ** ***** * ** * * * * **** * * * * * **** º");
printf("º * * ** * * * ** * * * * * * * * * º");
printf("º * * ** * * * ** * * * * * * * * * º");
printf("º **** ** **** ***** ** **** * * **** **** * **** * **** º");
printf("////////////////////////////////////////////////////////////////////////////////////////////////");

system("pause");
system("PAUSE");
return 0;
}
touluk
Сообщения: 26
Зарегистрирован: 04 янв 2005, 17:23

что то оно не очень хорошо скопировалось,но в принципе видно....заранее спасибо
touluk
Сообщения: 26
Зарегистрирован: 04 янв 2005, 17:23

Никто не может помочь? :(
Kolinus
Сообщения: 449
Зарегистрирован: 23 авг 2004, 14:02
Откуда: Минск

Если честно как-то особо времени нет во всем коде разбираться - кинь кусок и напиши за что он должен отвечать и какую логику реализовывать - 90 % что сам увидишь грабли, если нет - проще будет помочь
В SAD - все в SAD.
Ответить