Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania
Viewing all articles
Browse latest Browse all 65225

C++ pliki tekstowe, baza danych, id

$
0
0

Cześć, słuchajcie mam taki malutki problem.

Piszę aktualnie program aplikacji bazodanowej działający na plikach. Zrobiłem podstawową funkcjonalność programu, dane wczytują się z pliku tekstowego do wektora klasy, ale teraz pojawia mi się problem z taką zmienną jak ID. No dobra, załóżmy, że z nią sobie poradziłem i w prosty sposób pętla tworzy za pomocą inkrementacji ID. Według mnie jest to trochę złe rozwiązanie, bo jeżeli raz usunę wpis o ID 7, to ponownie będę mógł dodać w to miejsce nową osobę - przejmować się tym, czy na tak starej architekturze olać ten problem? Wiem, że w typowych bazach danych jak raz się usunie jakiś element, to potem już nie można wstawić w to samo miejsce innych danych.

No dobra, a teraz mój jeden z poważniejszych problemów. Ktoś mógłby mi opisać słownie, jak wybrać konkretne ID pacjenta (w moim przypadku takie dane przechowuję) i wyświetlić tylko te dane do edycji z wektora?

 

//Struktura pliku tekstowego
Imie
Nazwisko
Wiek
Telefon

 

// main.cpp
#include <string>
#include <vector>
#include <fstream>
#include <cstdlib>
#include <iostream>
#include <conio.h>
#include "patient.h"

void WczytywanieDanych()
{
    std::vector<Patient> patients;
    int id = 0;
    std::string name, surname;
    unsigned char age;
    unsigned int phone_number;

    std::ifstream file("patient.txt");
    if(file.good())
    {
        std::string line; //przechowuje pobrana linie tekstu:
        int number_line = 0;
        while(getline(file, line))
        {
            switch(number_line % 4)
            {
            //case 0:
            //    id = atoi(line.c_str());
            //    break;
            case 0:
                name = line;
                break;
            case 1:
                surname = line;
                break;
            case 2:
                age = atoi(line.c_str());
                break;
            case 3:
                phone_number = atoi(line.c_str());

                id++;
                patients.push_back(Patient{id, name, surname, age, phone_number});
                break;
            }
            number_line++;
        }

        for(size_t i = 0; i < patients.size(); ++i)
        {
            patients[i].say_hello();
        }
    }
    else
    {
        std::cout << "Ten plik nie istnieje - blad.";
    }
}

void patients_hello()
{
       std::vector<Patient> patients;
       for(size_t i = 0; i < patients.size(); ++i)
        {
            patients[i].say_hello();
        }
}

void SaveToFile()
{
    int id;
    std::string name, surname;
    unsigned int ages = 0;
    unsigned int phone_number;
    //std::cout << "Podaj identyfikator: ";
    //std::cin >> id;
    std::cout << "Podaj imie: ";
    std::cin >> name;
    std::cout << "Podaj nazwisko: ";
    std::cin >> surname;
    do
    {
        std::cout << "Podaj wiek: ";
        std::cin >> ages;
        if (ages > 125)
        {
            system("CLS");
            std::cout << "Za duzy wiek. Podaj poprawna wartosc! \n \n";
        }
    }
    while (ages > 125);
    std::cout << "Podaj numer telefonu: ";
    std::cin >> phone_number;
    std::ofstream file("patient.txt", std::ios::app);

    if(file.good())
    {
        Patient patient{id, name, surname, ages, phone_number};
        file << patient.get_data_string();
        file.close();
    }
    else
    {
        std::cout << "Ten plik nie istnieje - blad.";
    }
}

void Menu()
{
    system("CLS");
    //WczytywanieDanych();
    std::cout << "1. Wyswietl i edytuj dane o pacjentach. \n";
    std::cout << "2. Wprowadz nowego pacjenta. \n";
    std::cout << "3. Usun pacjenta. \n";
    std::cout << "4. Wyszukiwanie pacjenta. \n";
    std::cout << "5. Sortowanie pacjentow. \n \n";
    std::cout << "Twoj wybor: ";
    int zmienna;
    std::cin >> zmienna;
    system("CLS");
    switch(zmienna)
    {
    case 1:
    {
        WczytywanieDanych();
        //patients_hello();
        std::cout << "\nKtorego pacjenta chcesz edytowac? ";
        int ktorego_edytowac;
        std::cin >> ktorego_edytowac;

        std::cout << "\n\nAby wrocic do menu kliknij przycisk: [R].";
        /*if (choise == 'R')
        {
            system("CLS");
            MainMenu();
        } */
    }
    break;
    case 2:
    {
        SaveToFile();
        std::cout << "\nAby wrocic do menu kliknij przycisk: [1]. ";
        int choise;
        std::cin >> choise;
        if (choise = 1)
        {
            system("CLS");
            ///MainMenu();
        }
    }
    break;
    default:
        std::cout << "Zly wybor - wybierz ponownie.";
    }
}

void MainMenu()
{
    std::cout << "                         ------------------------------ \n \n";
    std::cout << "                              BAZA DANYCH SZPITALA \n \n";
    std::cout << "                         ------------------------------ \n \n";
    std::cout << "1. Pacjenci \n";
    std::cout << "2. Lekarze \n";
    std::cout << "3. Karta chorob \n";
    std::cout << "\nTwoj wybor: ";
    int choice;
    std::cin >> choice;
    switch(choice)
    {
    case 1:
       Menu();
       break;

    }
}

int main()
{
    MainMenu();
}

 


Viewing all articles
Browse latest Browse all 65225

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>