|
0 / 0 / 0
Регистрация: 28.06.2021
Сообщений: 1
|
|
Не работает код28.06.2021, 14:38. Показов 635. Ответов 0
//#include "stdafx.h"
#include <vector> #include <iostream> #include <cstdlib> #include <iomanip> #include<string> #include <fstream> #include <ctime> using namespace std; //#pragma warning(disable:4996) class Date { public: int year; int month; int day; Date: ate();int Date::GetYear(); int Date::GetMonth(); int Date::GetDay(); }; Date: ate(){ // Get the current time time_t t = time(0); tm* now = localtime(&t); year = now->tm_year + 1900; month = now->tm_mon + 1; day = now->tm_mday; } int Date::GetYear() { return year; } int Date::GetMonth() { return month; } int Date::GetDay() { return day; } class Event { public: Date date; string description; Event(Date d, string desc) { date = d; description = desc; } }; class Calendar { // Access specifier public: Date currentDate; vector<Event> events; // This method used as a Calendar driver, accept user input and perform corresponding actions. void Run(); //This method used to display the calendar for the current month. void Draw(); void NextMonth(); void PreviousMonth(); void ChangeDate(); void ChangeDay(int d); void ChangeMonth(int m); void ChangeYear(int y); bool isLeapYear(int year); string dayOfTheWeek(int month, int year); int numberOfDays(int monthNumber, int year); int dayNumber(int day, int month, int year); string getMonthName(int monthNumber); void CreateEvent(); void PrintEvents(); void DeleteEvent(); char Menu(); void Save(); void Load(); }; void Calendar: eleteEvent(){ int id, index=0; cout << "Enter the id:" << endl; cin >> id; id -= 1; vector <Event>::iterator it; for (it = events.begin(); it != events.end(); it++) { if (index == id) { events.erase(events.begin() + id); cout << "Event deleted sucessfully"; return; } else { index++; } } cout << "No event found!" << endl; } void Calendar::Load() { string filename, desc; ifstream myReadFile; cout << "Enter the file name: "; cin >> filename; myReadFile.open(filename); char date[50]; char descFile[100]; Date getDate; if (myReadFile.is_open()) { while (!myReadFile.eof()) { myReadFile >> date; getDate.day = (((int)date[0]-48) * 10) + ((int)date[1] - 48); getDate.month = (((int)date[3] - 48) * 10) + ((int)date[4] - 48); getDate.year = (((int)date[6] - 48) * 1000) + (((int)date[7] - 48)*100)+ (((int)date[8] - 48) * 10)+ ((int)date[9] - 48); myReadFile >> desc; Event eobj(getDate, desc); events.push_back(eobj); } } myReadFile.close(); cout << "Events added in the disk successfully!" << endl; } void Calendar::Save() { string filename; ofstream myfile; cout << "Enter the file name: "; cin >> filename; myfile.open(filename); for (int i = 0; i < events.size(); i++) { Date dt = events.at(i).date; myfile << dt.day << "-" << dt.month << "-" << dt.year << " "; myfile << events.at(i).description; myfile << "\n"; } myfile.close(); cout << "Events saved in a file successfully!" << endl; } void Calendar::PrintEvents() { if (events.size() == 0) { cout << "No events in the list" << endl; return; } for (int i = 0; i < events.size(); i++) { Date dt = events.at(i).date; cout << (i + 1) << ". " << dt.day << "-" << dt.month << "-" << dt.year << "\t"; cout << events.at(i).description << endl; } } void Calendar::CreateEvent() { int y, m, d; string desc; cout << "Enter year: "; cin >> y; cout << "Enter month: "; cin >> m; cout << "Enter day: "; cin >> d; cout << "Enter description: "; cin >> desc; Date gDate; gDate.day = d; gDate.month = m; gDate.year = y; Event aobj(gDate, desc); events.push_back(aobj); cout << "Event added successfully!" << endl; } void Calendar::ChangeDate() { int y, m; cout << "Enter year: "; cin >> y; cout << "Enter month: "; cin >> m; ChangeYear(y); ChangeMonth(m); Draw(); } void Calendar::Run() { Draw(); while (true) { char operation = Menu(); switch (operation) { case 'N': case 'n': NextMonth(); break; case 'P': case 'p': PreviousMonth(); break; case 'C': case 'c': ChangeDate(); break; case 'A': case 'a': CreateEvent(); break; case 'L': case 'l': PrintEvents(); break; case 'D': case 'd': DeleteEvent(); break; case 'S': case 's': Save(); break; case 'R': case 'r': Load(); break; case 'Q': case 'q': cout << "Thank you for using this app!" << endl; exit(0); break; default: cout << "Invalid Input!"; break; } } } void Calendar::NextMonth() { if (currentDate.month < 11) { ChangeMonth(currentDate.month + 1); Draw(); } else { cout << "This month is the ending month of the year." << endl; Draw(); } } void Calendar::PreviousMonth() { if (currentDate.month > 2) { ChangeMonth(currentDate.month - 1); Draw(); } else { cout << "This month is the starting month of the year." << endl; Draw(); } } int Calendar::dayNumber(int day, int month, int year) { static int t[] = { 0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4 }; year -= month < 3; return (year + year / 4 - year / 100 + year / 400 + t[month - 1] + day) % 7; } int Calendar::numberOfDays(int monthNumber, int year) { // January // March // May // July // August // October // December if (monthNumber == 1 || monthNumber == 3 || monthNumber == 5 || monthNumber == 7 || monthNumber == 8 || monthNumber == 10 || monthNumber == 12) return (31); // February if (monthNumber == 2) { // If the year is leap then February has // 29 days if (isLeapYear(year)) return (29); else return (28); } // remaining months if (monthNumber == 4 || monthNumber == 6 || monthNumber == 9 || monthNumber == 11) return (30); } string Calendar::getMonthName(int monthNumber) { string months[] = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" }; return (months[monthNumber]); } void Calendar: raw(){ cout << endl; cout << "\t" << getMonthName(currentDate.month - 1).c_str() << "\t" << currentDate.year << "\t" << endl; int days; // Index of the day from 0 to 6 int current = dayNumber(currentDate.day, currentDate.month, currentDate.year); days = numberOfDays(currentDate.month, currentDate.year); // Print the current month name cout << " **********" << endl; cout << " SU MO TU WE TH FR SA" << endl; // Print appropriate spaces int k; for (k = 0; k < current; k++) printf(" "); for (int j = 1; j <= days; j++) { printf("%4d", j); if (++k > 6) { k = 0; cout << endl; } } if (k) cout << endl; current = k; cout << endl; return; } void Calendar::ChangeDay(int d) { currentDate.day = d; } void Calendar::ChangeMonth(int m) { currentDate.month = m; } void Calendar::ChangeYear(int y) { currentDate.year = y; } string Calendar::dayOfTheWeek(int month, int year) { //calculate the week for the first day in this month int y, c, m; if (month == 1 || month == 2) { y = (year - 1) % 100; c = (year - 1) / 100; m = month + 12; } else { y = year % 100; y = year / 100; m = month; } int week = ((y + y / 4 + c / 4 - 2 * c + 26 * (m + 1) / 10 % 7 + 7) % 7); switch (week) { case 0: return "Sunday"; case 1: return "Monday"; case 2: return "Tuesday"; case 3: return "Wednesday"; case 4: return "Thursday"; case 5: return "Friday"; case 6: return "Saturday"; } } bool Calendar::isLeapYear(int year) { return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0); } char Calendar::Menu() { char choice; cout << "Press 'N': Show the calendar for the next month" << endl; cout << "Press 'P': Show the calendar for the previous month" << endl; cout << "Press 'C': Input year and month, the program will show the calendar as you inputted" << endl; cout << "Press 'A': Input year/month/day, then input a description, it will add an event to the calendar" << endl; cout << "Press 'L': Show all events you have created, each one with an ID" << endl; cout << "Press 'D': Input a event ID, delete the event with this ID" << endl; cout << "Press 'S': Input a file name, save the events you have created in this calendar program to a file on the disk" << endl; cout << "Press 'R': Input a file name, load the events you have saved" << endl; cout << "Press 'Q': Exit the program." << endl; cout << endl << "Enter choice: "; cin >> choice; while (choice != 'N' && choice != 'P' && choice != 'C' && choice != 'A' && choice != 'L' && choice != 'D' && choice != 'S' && choice != 'R' && choice != 'Q' && choice != 'q' && choice != 'n' && choice != 'p' && choice != 'c' && choice != 'a' && choice != 'l' && choice != 'd' && choice != 's' && choice != 'r') { cout << "Invalid choice!" << endl; cout << "Please enter the choice again: " << endl; cin >> choice; } return choice; } int main() { Calendar calObj; calObj.Run(); return 0; }
0
|
|
| 28.06.2021, 14:38 | |
|
Ответы с готовыми решениями:
0
Код написан в Dev C. Не работает в Visual. Как нужно переделать код? Проверьте код, почему-то не работает (код для бесконечного фона) Написал код в Full Debug, потом переделал в Release - и написанный код не работает |
| 28.06.2021, 14:38 | |
|
Помогаю со студенческими работами здесь
1
Код выполняемый из студии с пометкой debag, работает не так как уже компилированный код Excel: Код в модуле и тот же код в кнопке НЕ РАБОТАЕТ Excel: Код в модуле и тот же код в кнопке НЕ РАБОТАЕТ Код работает в песочнице, но не работает при импорте в файлы, что делать? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|