Loading...
EstervinaArias avatar EstervinaArias 4 Точки

Моля за помощ със задача за запис на час

Здравейте!

Опитвам се да съставя програма, с която да бъдат записвани часове. Ето и кода, който имам.


#include <iostream>
#include<fstream>
#include<windows.h>
#include<conio.h>
#include<stdio.h>


using namespace std;


class kabinet
{
    string day;
    int hour;
    string exam;
    char name[50];
    char address[50];
    int phone[10];
    int age[3];//години

public:

    void main_menu();//главно меню
    void type_examin();//вид преглед

    void setDay();//въвеждане на  ден
    void setHour();//назоваването на часа
    int check(int);

    void price_menu();//ценова листа на предлаганите услуги

    void showHour();//показване на свободните часове

    void edit();//опция за промяна

    void modifyHour();//промяна на часа
    void delete_hour();//изтриване на запазения час

    void showDisp();//изписване на информацията относно прегледа


};

void kabinet::main_menu()
{

    system("color D1");
    setlocale(LC_ALL, "bulgarian");    //за използване на български език
    system("chcp 1251>0");


    int choice = 0;

    while (choice != 5)
    {

        system("cls");

        
        cout << "                              /      1.Записване на час                 / /  /" << endl;
        cout << "                             /      2.Показване записани часове        / /  /" << endl;
        cout << "                            /      3.Промяна на час                   / /  /" << endl;
        cout << "                           /      4.Ценоразпис                       /  \_/" << endl;
        cout << "                          /      5.Изход                            /    *" << endl;
        cout << "                         /                                         /  " << endl;
        cout << "                        /                                         /  " << endl;
        cout << "                       /                                         /  " << endl;
        cout << "                      /_________________________________________/  " << endl

            << endl << endl << endl << "Моля въведете своя избор." << endl;
        cin >> choice;


        switch (choice) {

        case 1:system("cls");;
            type_examin();
            break;
        case 2: system("cls");;
            showHour();
            break;
        case 3: system("cls");;
            modifyHour();
            break;
        case 4: system("cls");;
            price_menu();
            break;
        case 5:
            default: {
            cout << "Благодарим Ви!";
            cout << "Благодарим Ви, че използвахте нашата система за записване." << endl;
            _getch();
        }
        }


    }
}

void kabinet::type_examin()
{
    system("cls");
    system("color F6");

    int choiExam = 0;
    string exam;

    while (choiExam != 7)
    {

        cout << endl << endl << endl;


        
        cout << "                               /     1.Медицински преглед                / /  / *" << endl;
        cout << "                              /     2.Диспансерен преглед               / /  /" << endl;
        cout << "                             /     3.Профилактичен преглед             / /  /" << endl;
        cout << "                            /     4.Детска консултация                / /  /" << endl;
        cout << "                           /     5.Женска консултация                /  \_/" << endl;
        cout << "                          /     6.Издаване на документи             /    *" << endl;
        cout << "                         /                                         /  " << endl;
        cout << "                        /     7.Изход                             /  " << endl;
        cout << "                       /                                         /  " << endl;
        cout << "                      /_________________________________________/  " << endl

            << endl << endl << endl << "Моля въведете своя избор." << endl;
        cin >> choiExam;

        string exam;

        switch (choiExam)
        {
        case 1:
            exam = "Медицински преглед";
            setDay(); break;
        case 2: exam = "Диспансерен преглед";
            setDay(); break;
        case 3: exam = "Профилактичен преглед ";
            setDay(); break;
        case 4: exam = "Детска консултация";
            setDay(); break;
        case 5: exam = "Женска консултация ";
            setDay(); break;
        case 6:  exam = "Издаване на документи ";
            setDay(); break;
        case 7:break;
        default:
        {
            cout << "Благодарим Ви!";
            _getch();

        }
        }
    }
}

                void kabinet::setDay()
                {

                    system("cls");
                    system("color B2");

                    int day;
                    string date;

                    while (day!=5) {

                        cout << endl << endl << endl;

                        cout << "                                  __________________________________   " << endl;
                        cout << "                                 /                                 /  " << endl;
                        cout << "                                /                                 /  " << endl;
                        cout << "                               /     1.Понеделник                /  " << endl;
                        cout << "                              /     2.Вторник                   /  " << endl;
                        cout << "                             /     3.Сряда                     /  " << endl;
                        cout << "                            /     4.Четвъртък                 /  " << endl;
                        cout << "                           /     5.Петък                     /  " << endl;
                        cout << "                          /                                 /  " << endl;
                        cout << "                         /                                 /  " << endl;
                        cout << "                        /_________________________________/  " << endl

                            << endl << endl << endl << "Моля въведете своя избор." << endl;

                        cin >> day;


                        switch (day)
                        {
                        case 1:
                            date = " Понеделник ";
                            setHour();
                            break;
                        case 2: date = " Вторник ";
                            setHour();
                            break;
                        case 3: date = " Сряда ";
                            setHour();
                            break;
                        case 4: date = " Четвъртък ";
                            setHour();
                            break;
                        case 5: date = " Петък ";
                            setHour();
                            break;
                        default:{
                            cout << "Грешен избор";
                            _getch();
                        }
                    }
                }
            }


            void kabinet::setHour()
            {
                system("cls");
                system("color C3");

                string custumer;
                string day;


                int c, flag;


                ofstream fout("Записани", ios::app);

                cout << endl << endl << " Въведете час: ";
                cin >> c;
                flag = check(c);

                if (flag)
                {
                    cout << "-----------------------------------" << endl;
                    cout << "   Избраният от Вас час е зает.    " << endl;
                    cout << "-----------------------------------" << endl;
                    cout << "      Моля, въведете друг.         " << endl;
                    cout << "-----------------------------------" << endl;
                }

                else
                {
                hour = c;

                cout << endl << endl << "Въведете име и фамилия: ";

                gets(name);

                cout << "Адрес: ";
                gets(address);

                cout << " Телефонен номер: ";

                gets(phone);

                cout << endl << endl << "Възраст: ";
                gets(age);

                fout.write((char*)this, sizeof(kabinet));

                cout << "Успешно записан час!";
            }
                cout << "Натиснете, който и да е клавиш, за да продължите!!!";
                _getch();
                fout.close();
        }

void kabinet::price_menu()
                {


                    cout << endl << endl << endl;

                    cout << "                                  _______________________________________________  " << endl;
                    cout << "                                 /                                              /  " << endl;
                    cout << "                                /                                              /  " << endl;
                    cout << "                               /  Медицинско за работа - 15 лева.             /  " << endl;
                    cout << "                              /  Медицинско за шофьорска книжка              /  " << endl;
                    cout << "                               /                        - 20 лева.            /  " << endl;
                    cout << "                            /  Оформяне на документи за застраховка        /  " << endl;
                    cout << "                           /                       - 50 лева.             /  " << endl;
                    cout << "                          /   Потребителски такси:                       /  " << endl;
                    cout << "                         /           за пенсионери - 1лев.              /  " << endl;
                    cout << "                        /            за осигурени лица - 2,90лева.     /  " << endl;
                    cout << "                       /                                              /  " << endl;
                    cout << "                      /   Преглед за лица, които не са осигурени     /  " << endl;
                    cout << "                     /                       - 20 лева.             /  " << endl;
                    cout << "                    /  1.Назад към главното меню                   /  " << endl;
                    cout << "                   /______________________________________________/  " << endl;

                    cout << "Натиснете, който и да е клавиш, за да продължите!!!";
                    _getch();
                    fout.close();

        }
        void kabinet::showHour();
        {
            system("cls");
            system("color B1");
            ifstream fin("Записани данни: ", ios::in);
            int c, flag;

            cout << "Въведете запазен час: ";
            cin >> c;
            while (!fin.eof())

            {
                fin.read((char*)this, sizeof(kabinet));
                if (hour == c)
                {
                    system("cls");
                    cout << " Данни на пациента. ";
                    cout << "--------------------" << endl;
                    cout << "Имена: " << name;
                    cout << "Адрес: " << address;
                    cout << "Телефонен номер: " << phone;
                    cout << "Записан час за: " << date << "Час: " << hour;

                    flag = 1;
                    break;

                }

            }
            if (nomb== 0)
                cout << "Търсеният от вас номер не фигурира!!!";

            cout << "Натиснете, който и да е клавиш, за да продължите!!!";
            _getch();
            fin.close();
        }


        void kabinet::edit()
        {
            system("cls");
            system("color A3");
            int c, flag;


            cout << "\n Меню за промяна";
            cout << "\n ***************";
            cout << "\n 1.Промяна на час ";
            cout << "\n 2.Изтриване на запазен час";

            cout << "Моля, изберете: ";
            cin >> choise;

            system("cls");
            cout << "\n Въведете запазен час: ";
            cin >> c;

            switch (choice)
            {
            case 1: modifyHour(c);
                break;
            case 2:
                 delete_hour(c);//изтриване на запазения час
                break;
            default: cout << "\n Грешен избор!!";
            }

            cout << "\n  Натиснете, който и да е клавиш, за да продължите!!!";
            _getch();
        }

        int kabinet::check(int c)
        {
            system("color F2");
            int flag = 0;
            ifstream fin("Записи: ", ios::in);
            while (!fin.eof())
            {
                fin.read((char*)this, sizeof(hotel));
                if (hour== c)
                {
                    flag = 1;
                    break;
                }
            }

            fin.choice();
            return (flag);

}

        void kabinet::modifyHour(int c)

        {
            system("color C3");
            long pos, flag = 0;
            fstream file("Record.dat", ios::in | ios::out | ios::binary);

            while (!file.eof())
            {
                pos = file.tellg();
                file.read((char*)this, sizeof(kabinet));
                if (hour == c)
                {
                    cout << "\n Въведете данните наново";
                    cout << "\n ***********************";
                    cout << "\n Име: ";
                    gets(name);
                    cout << " Адрес: ";
                    gets(address);
                    cout << " Телефонен номер: ";
                    gets(phone);

                    file.seekg(pos);
                    file.write((char*)this, sizeof(kabinet));
                    cout << "\n Данните Ви са променени!!!";
                    flag = 1;
                    break;
                }
            }

            if (flag == 0)
                cout << "\n Часът не е намерен!";

            file.close();


        }

        void kabinet::delete_hour(int c)

            int flag = 0;
        char ch;
        ifstream fin("Record.dat", ios::in);
        ofstream fout("temp.dat", ios::out);

        while (!fin.eof())
        {
            fin.read((char*)this, sizeof(kabinet));
            if (hour == c)
            {
                cout << "\n Име: " << name;
                cout << "\n Адрес: " << address;
                cout << "\n Телефонен номер: " << phone;
                cout << "\n\n Искате ли да изтриете данните? (y/n): ";
                cin >> ch;

                if (ch == 'n')
                    fout.write((char*)this, sizeof(kabinet));

                flag = 1;
            }
            else
                fout.write((char*)this, sizeof(kabinet));
        }
        fin.close();
        fout.close();

        if (flag == 0)
            cout << "\n Часът не е намерен.";
        else
        {
            remove("Record.dat");
            rename("temp.dat", "Record.dat");
        }
}

int main()
{


    kabinet h;

    system("color A4"

        system("cls");
    cout << "\n\t\t\t*********************************";
    cout << "\n\t\t\t*    Проект за запис на час     *";
    cout << "\n\t\t\t*********************************";
    Sleep(200);

    char text[] = { "\n\n\n\n\t\t };
    for (int p = 0; p < strlen(text); p++)   
        cout << text[p];
        Sleep(40);
    }

    cout << "\n\n\tНатиснете който и да е клавиш!!";
    _getch();
    h.main_menu();
}

Тагове:
0
C++ Programming
Jovanna avatar Jovanna 186 Точки

Грешките ли трябва да оправяш в кода, защото има такива? Да я компилираш ли се иска

0
11/11/2018 21:50:44
EstervinaArias avatar EstervinaArias 4 Точки

Ползвах код от друга програма, която има сходните функции, които ми трябват и на мене, заради което излизат 143 грешки и 13 предупреждения.
Оправям грешките, като премахвам проблемите, с което програмата се опрости много.
Не съм наясно как да използвам ctime
Също как да направя така, че въведените данни да излизат на екрана , с възможност да бъдат променяни. 

 

0
Jovanna avatar Jovanna 186 Точки

ctime  го нямаш в кода, как и защо трябва да го използваш?

Първо я компилирай (изчисти всички грешки), после добавяй функционалности, които ти трябват; Накрая напиши кода в main() и работи с класовете за да изкараш каквото ти трябва 

0
Jovanna avatar Jovanna 186 Точки

Ето кодчето с още 15 грешки за дооправяне, действай, и чети в нета

https://pastebin.com/LJST2m1d

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.