Моля за помощ със задача за запис на час
Здравейте!
Опитвам се да съставя програма, с която да бъдат записвани часове. Ето и кода, който имам.
#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();
}
Ползвах код от друга програма, която има сходните функции, които ми трябват и на мене, заради което излизат 143 грешки и 13 предупреждения.
Оправям грешките, като премахвам проблемите, с което програмата се опрости много.
Не съм наясно как да използвам ctime
Също как да направя така, че въведените данни да излизат на екрана , с възможност да бъдат променяни.
ctime го нямаш в кода, как и защо трябва да го използваш?
Първо я компилирай (изчисти всички грешки), после добавяй функционалности, които ти трябват; Накрая напиши кода в main() и работи с класовете за да изкараш каквото ти трябва
Благодаря!
Ето кодчето с още 15 грешки за дооправяне, действай, и чети в нета
https://pastebin.com/LJST2m1d