Potřebovala bych nutně poradit, sama jsem z toho už zoufalá. Jsem začátečnice v programování v céčku a mám problém s jednou částí domácího úkolu: ,,Napište tělo funkce ObstraneniPacienta, která bude mít na vstupu pacienta, kterého smaže a nic nevrací."
Od cvičícího jsme dostali základ programu do kterého jednotlivé části vepisujeme, vždycky když se pokusím o smazání vyhledaného pacienta, smaže se mi jiný pacient a nebo žádný. Snažím se na to přijít, ale vzhledem k tomu, že nám pořádně tuto část zatím nikdo nevysvětlil, jsem v tom ztracená. Chybí mi tam ještě části export a import dat ze souboru, ale tím se budu zabývat až po tom :D. Předem moc děkuju za vaší pomoc.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define N 20
typedef struct{
char jmeno[40];
long int vek;
long int cisloPojistovny;
} Pacient;
Pacient PolePacient[N];
int i=0;
int z=0;
void PridaniNovehoPacienta()
{
// Zde uvedte vasi cast programu
printf("Zadejte jmeno pacienta:\n");
scanf("%s", &PolePacient[i].jmeno);
printf("Zadejte vek pacienta:\n");
scanf("%li", &PolePacient[i].vek);
printf("Zadejte cislo pojistovny pacienta:\n");
scanf("%li", &PolePacient[i].cisloPojistovny);
i++;
// konec vasi casti programu
}
void SmazatPacientyZPameti()
{
// Zde uvedte vasi cast programu
do {
i--;
} while(i != 0);
printf("Vsichni pacienti byli smazani!\n\n");
// konec vasi casti programu
}
void ObstraneniPacienta(Pacient PacientInput)
{
// Zde uvedte vasi cast programu
// konec vasi casti programu
}
Pacient EditacePacienta(Pacient PacientInput)
{
// Zde uvedte vasi cast programu
{
printf("\n");
printf(" Jmeno pacienta: %s\n",PolePacient[z].jmeno);
printf(" Zadejte nove jmeno pacienta: ");
scanf("%s",&PolePacient[z].jmeno);
printf("\n");
printf(" Vek pacienta:%li\n",PolePacient[z].vek);
printf(" Zadejte novy vek pacienta: ");
scanf("%li",&PolePacient[z].vek);
printf("\n");
printf(" Cislo pojistovny: %li\n",PolePacient[z].cisloPojistovny);
printf(" Zadejte nove cislo pojistovny: ");
scanf("%li",&PolePacient[z].cisloPojistovny);
}
// konec vasi casti programu
}
void VypsaniPacientu()
{
// Zde uvedte vasi cast programu
int j;
if (i > 0 ) {
for(j = 0; j < i; j++) {
printf("Pacient %s, jeho vek je %li a cislo pojistovny je %li\n", PolePacient[j].jmeno, PolePacient[j].vek, PolePacient[j].cisloPojistovny);
}
}
else {
printf("Nejsou zadani zadni pacienti");
}
// konec vasi casti programu
}
void HledaniPacientuPodleJmena()
{
char h;
Pacient PacientInput;
// Zde uvedte vasi cast programu
int y;
char hjmeno[40];
system("CLS");
printf("Zadejte jmeno pacienta, ktereho hledate: \n");
scanf("%s", &hjmeno);
for(y = 0; y < i; y++) {
if((strcmp(hjmeno, PolePacient[y].jmeno)) == 0) {
PacientInput = PolePacient[y];
printf("Pacient je v seznamu: \n");
printf("Jmeno: %s vek: %li cislo pojistovny: %li \n", PacientInput.jmeno, PacientInput.vek, PacientInput.cisloPojistovny);
z = y;
}
}
// konec vasi casti programu
printf(" T .. Editovat pacienta\n");
printf(" G .. Smazat pacienta\n");
printf(" B .. Navrat do hlavniho menu\n");
do{
h = getch();
switch(h){
case 't':
case 'T': EditacePacienta(PacientInput); break;
case 'g':
case 'G': ObstraneniPacienta(PacientInput); break;
case 'b':
case 'B': mainFunction();
}
system("PAUSE");
} while(h != 'B' && h != 'b');
}
void HledaniPacientuPodlePojistovny()
{
// Zde uvedte vasi cast programu
char h;
Pacient PacientInput;
int x;
char pojist;
system("CLS");
printf("Zadejte cislo pojistovny: \n");
scanf("%li", &pojist);
for(x = 0; x < N; x++) {
if(pojist == PolePacient[x].cisloPojistovny) {
PacientInput = PolePacient[x];
printf("Pacient je v seznamu: \n");
printf("Cislo pojistovny %li ma pacient %s \n", PacientInput.cisloPojistovny, PacientInput.jmeno);
}
}
// konec vasi casti programu
}
void ExportDoSouboru()
{
// Zde uvedte vasi cast programu
// konec vasi casti programu
}
void ImportZeSouboru()
{
// Zde uvedte vasi cast programu
// konec vasi casti programu
}
mainFunction()
{
char c;
do{
system("CLS");
printf("\n");
printf(" P .. Pridat noveho pacienta\n");
printf(" V .. Vypsat vsechny pacienty\n");
printf(" F .. Hledat pacienta podle jmena\n");
printf(" C .. Hledat pacienty podle cisla pojistovny\n");
printf(" S .. Smazat vsechny pacienty\n");
printf(" -----------------------------\n");
printf(" E .. Exportovat do souboru\n");
printf(" I .. Importovat ze souboru\n");
printf(" -----------------------------\n");
printf(" K .. Konec\n\n");
c = getch();
switch(c){
case 'p':
case 'P': PridaniNovehoPacienta(); break;
case 'v':
case 'V': VypsaniPacientu(); break;
case 'c':
case 'C': HledaniPacientuPodlePojistovny(); break;
case 'f':
case 'F': HledaniPacientuPodleJmena(); break;
case 's':
case 'S': SmazatPacientyZPameti(); break;
case 'e':
case 'E': ExportDoSouboru(); break;
case 'i':
case 'I': ImportZeSouboru(); break;
}
system("PAUSE");
}while(c != 'K' && c != 'k');
}
int main()
{
mainFunction();
return 0;
}